文章目录
LVM基本组成
LVM利用Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间,避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便。
LVM的基本组成部分如下:
-
物理卷 (PV)
一个可供存储LVM的块设备. 例如: 一块硬盘, 一个MBR或GPT分区, 一个回环文件, 一个被内核映射的设备 (例如 dm-crypt).它包含一个特殊的LVM头。
-
卷组 (VG)
物理卷的一个组,作为存放逻辑卷的容器。 PEs are allocated from a VG for a LV.
-
逻辑卷 (LV)
"虚拟/逻辑卷"存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统。
-
物理块 (PE)
一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。
优点
比起普通的硬盘分区管理方式,LVM更富于灵活性:
- 将多块硬盘看作一块大硬盘
- 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
- 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
- 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。
- 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作。
- 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
- 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
- 支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据(caching of frequently used data)。这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统,使用LVM on top 可轻松地管理和调这些整独立的加密卷 (例如.
/
,/home
,/backup
等) 并免去开机时多次输入密钥的麻烦。
创建物理卷(PV)
可通过以下命令列出可被用作物理卷的设备:
# lvmdiskscan ##警告:请确认你对正确的设备进行操作,否则会导致文件丢失!
扫描所有磁盘上的物理卷
pvscan ##指令会扫描系统中连接的所有硬盘,列出找到的物理卷列表
主要参数
-d 调试模式s
-e 仅显示属于输出卷组的物理卷
-n 仅显示不属于任何卷组的物理卷
-s 短格式输出
-u 显示UUID
在列出的设备上查看物理卷:
pvs ##命令用于输出格式化的物理卷信息报表。使用pvs命令仅能得到物理卷的概要信息,如果要得到更加详细的信息可以使用pvdisplay命令。
--noheadings:不输出标题头;
--nosuffix:不输出空间大小的单位。
显示物理卷属性
pvdisplay ##指令用于显示物理卷的属性(大小,PE大小,被卷组描述符使用的空间)。
主要参数
-s 以短格式输出
-m 显示PE到LV和LE的映射
[root@www ~]# pvdisplay #更详细的列示出系统上面每个 PV 资讯
"/dev/hda6" is a new physical volume of "1.40 GB"
--- NEW Physical volume ---
PV Name /dev/hda6 #实际的 partition 分区名称
VG Name #因为尚未分配出去,所以空白!
PV Size 1.40 GB #就是容量说明
Allocatable NO #是否已被分配,结果是 NO
PE Size (KByte) 0 #在此 PV 內的 PE 大小
Total PE 0 #共分割出几个 PE
Free PE 0 #沒被 LV 用掉的 PE
Allocated PE 0 #尚可分配出去的 PE 数量
PV UUID Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
创建物理卷:
pvcreate /dev/sdb
pvcreate [选项] [参数] #指令用于将物理硬盘分区初始化为物理卷,以便被LVM使用。
主要参数
-f 强制创建物理卷,不需要用户确认
-u 指定设备的UUID
-y 所有的问题都回答“yes”
-Z 是否利用前4个扇区
fdisk -l
pvscan
pvcreate /dev/sdb
pvs
pvdisplay
删除物理卷
pvremove /dev/sdb
创建卷组(VG)
创建卷组
vgcreate [选项] [参数] #指令用于创建LVM卷组
主要参数
-l 卷组上允许创建的最大逻辑卷数
-p 卷组中允许添加的最大物理卷数
-s 卷组上的物理卷的PE大小
vgcreate VolGroup01 /dev/sdb #创建 卷组名 物理卷
vgcreate VolGroup00 /dev/sda2 /dev/sdb1 /dev/sdc #一步创建卷组
查看卷组
vgscan #确定存在这个 vbirdvg 的 VG
vgs #:显示有关卷组的信息
扩展卷组
vgextend rhel /dev/sdb #扩展 需要扩展的卷组名 新添加的物理卷,vgextend指令用于动态的扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。
[root@www ~]# vgdisplay
--- Volume group ---
VG Name vbirdvg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 1
VG Access read/write
VG Status resizable #卷组状态
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 4.17 GB #整个 VG 容量就这么大
PE Size 16.00 MB #內部每个 PE 的大小
Total PE 267 #总共的 PE 数量!
Alloc PE / Size 0 / 0
Free PE / Size 267 / 4.17 GB
VG UUID 4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO
vgcreate -s 16M vbirdvg /dev/hda{
6,7,8} #将/dev/hda6-8 建立成为一个 VG,且指定 PE 为 16MB #
删除卷组
vgremove volGroup01 #删除这个卷组
vgreduce rhel /dev/sdb #将物理卷/dev/sdb2从卷组rhel中删除(缩减)
设置卷组属性
vgchange -ay vg1000 #将卷组"vg1000"设置为活动状态
重命名卷组
vgrename /dev/vg02 /dev/my_volume_group #将卷组vg02重命名为my_volume_group
vgrename vg02 my_volume_group
激活卷组
vgchange -ay volGroup00
停用卷组
vgchange -a n volGroup00
创建逻辑卷
lvcreate指令:创建逻辑卷
【语 法】lvcreate [选项] [参数]
【功能介绍】lvcreate指令用于创建LVM的逻辑卷。
主要参数
-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数)
-n 后面跟逻辑卷名
-s 创建快照
lvcreate -L <卷大小> <"卷组名> -n <卷名>
lvcreate -L 10G VolGroup00 -n lvolhome #创建逻辑卷 指定大小为10G 在VolGroup00卷组中 卷名为lvolhome
lvcreate -L 10G VolGroup00 -n lvolhome /dev/sdc1 #希望在较