LVM 逻辑卷管理器
2013-04-11 by dongnan
开始之前
在 Linux
操作系统中使用LVM
逻辑卷管理器可以很方便的扩展磁盘容量,无论是物理机还是虚拟机均可,或者与OVF
模版结合使用,快速部署虚拟机。
LVM基本单元:
- 物理存储介质(
Thephysicalmedia
):指的就是存储设备硬盘,例如:/dev/sda
等。 - 物理卷(
physicalvolume
):指的是磁盘的分区,使用pvcreate
指令创建物理卷 - 卷组(
VolumeGroup
):卷组将多个物理卷组织成一个整体,屏蔽了底层物理卷细节,可以在卷组上建立多个逻辑卷而不用考虑具体的物理卷信息。 - 逻辑卷(
logicalvolume
):LVM的逻辑卷类似于硬盘分区,在逻辑卷之上可以建立文件系统(比如/var
分区)。 - PE(
physicalextent
):每一个物理卷被划分为称为PE(PhysicalExtents
)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。 - LE(
logicalextent
):逻辑卷也被划分为被称为LE(LogicalExtents
)的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
LVM命令
物理卷相关
pvcreate:
- 用于将物理硬盘分区初始化为物理卷,以便被LVM使用。
- 要创建物理卷必须首先对硬盘进行分区,并且将硬盘分区的类型设置为
8e
后,才能使用pvcreate
指令将分区初始化为物理卷。 - 例如:将分区初始化为物理卷
pvcreate /dev/sdb1
。
pvscan:
- 用于扫描系统中连接的所有硬盘,列出找到的物理卷列表
- 例如:描所有硬盘上的物理卷
pvscan
。
pvdisplay:
- 用于显示物理卷的属性(大小,PE大小,被卷组描述符使用的空间)
- 例如:显示物理卷基本信息
pvdisplay
。
pvremove:
- 用于删除一个存在的物理卷
- 例如:删除物理卷
pvremove /dev/sdb2
pvck:
- 用来检查物理卷的LVM元数据的一致性。
- 例如:检查物理卷元数据
pvck -v /dev/sdb1
pvchange:
- 允许管理员改变物理卷的分配许可。
- 例如:禁止分配
/dev/sdb1
上的PEpvchange -x n /dev/sdb1
卷组相关
vgcreate:
- 用于创建LVM卷组
- 例如:创建卷组
myvg1
并且将物理卷/dev/sdb1
添加到卷组中,vgcreate myvg1 /dev/sdb1
vgscan:
- 指令查找系统中存在的LVM卷组,并显示找到的卷组列表。
- 例如:扫描并显示LVM卷组列表
vgscan
vgdisplay:
- 指令用于显示LVM卷组的元数据信息。
- 例如:显示所有卷组的属性
vgdisplay
vgextend:
- 指令用于动态的扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。
- 例如:将物理卷
/dev/sdb2
加入卷组myvg1
,vgextend myvg1 /dev/sdb2
vgreduce:
- 指令通过删除LVM卷组中的物理卷来减少卷组容量。
- 不能删除LVM卷组中剩余的最后一个物理卷。
- 例如:将物理卷
/dev/sdb2
从卷组myvg1
中删除vgreduce myvg1 /dev/sdb2
vgchange:
- 指令用于修改卷组的属性,经常被用来设置卷组是处于活动状态或者非活动状态。
- 处于活动状态的卷组无法被删除,必须使用
vgchange
指令将卷组设置为非活动状态后才能删除。 - 例如:将卷组
myvg1
设置为活动状态vgchange -ay myvg1
vgremove:
- 用于删除LVM卷组。
- 例如:删除卷组"myvg1"
vgremove myvg1
逻辑卷相关命
lvcreate:
- 用于创建LVM的逻辑卷。
-L
参数指定逻辑卷的大小,单位为kKmMgGtT
字节- 例如:在卷组
myvg1
上创建大小为10G
的逻辑卷,lvcreate -L 10G -n lv1 myvg1
lvscan:
- 用于扫描当前系统中存在的所有的LVM逻辑卷
- 例如:扫描所有的逻辑卷,
lvscan
lvdisplay:
- 用于显示LVM逻辑卷空间大小、读写状态和快照信息等属性。
- 例如:省略"逻辑卷"参数,则
lvdisplay
指令显示所有的逻辑卷属性,lvdisplay
lvextend:
- 用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。
- 例如:为lv1增加10G空间,
lvextend -L +10G /dev/myvg1/lv1
lvreduce:
- 用于减少LVM逻辑卷占用的空间大小。
- 使用
lvreduce
指令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,需谨慎操作。 - 例如:将逻辑卷的空间大小减少
10G
,lvreduce -L -10G /dev/myvg1/lv1
lvremove:
- 用于删除指定LVM逻辑卷。
- 如果逻辑卷已经使用
mount
指令加载,则不能使用lvremove
指令删除。必须umount
后方可操作。 - 例如:删除逻辑卷 lv1 ,
lvremove /dev/myvg1/lv1
lvresize:
- 用于调整LVM逻辑卷的空间大小,可以增大空间和缩小空间。
- 使用
lvresize
指令调整逻辑卷空间大小和缩小空间时需要谨慎,因为它有可能导致数据丢失。 - 例如:将逻辑卷空间增
加200M
,lvresize -L +10G /dev/myvg1/lv1
举个栗子
操作顺序: 磁盘分区 -> 物理卷 -> 卷组 -> 逻辑卷 -> 使用(格式化挂载等等)。
将分区/dev/sda5
建立物理卷:
pvcreate /dev/sda5
创建一个卷组名字为myvg2
,并将/dev/sda5
物理卷加入卷组:
vgcreate myvg2 /dev/sda5
在卷组上,创建逻辑卷lv2
,容量为10GB
:
lvcreate -L 10G -n lv2 myvg2
或者-l参数为使用多少PE
lvcreate -l 313 -n lv2 myvg2
格式化逻辑卷并挂载它:
mkfs.ext3 /dev/myvg2/lv2
mkdir /data/
mount /dev/myvg2/lv2 /data/
检查逻辑卷:
pvdisplay //物理卷信息
vgdisplay //卷组信息
lvdisplay //逻辑卷信息
更多例子请参考下面的链接。