跳转至

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上的PE pvchange -x n /dev/sdb1

卷组相关

vgcreate:

  • 用于创建LVM卷组
  • 例如:创建卷组myvg1并且将物理卷/dev/sdb1添加到卷组中,vgcreate myvg1 /dev/sdb1

vgscan:

  • 指令查找系统中存在的LVM卷组,并显示找到的卷组列表。
  • 例如:扫描并显示LVM卷组列表 vgscan

vgdisplay:

  • 指令用于显示LVM卷组的元数据信息。
  • 例如:显示所有卷组的属性 vgdisplay

vgextend:

  • 指令用于动态的扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。
  • 例如:将物理卷/dev/sdb2加入卷组myvg1vgextend 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指令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,需谨慎操作。
  • 例如:将逻辑卷的空间大小减少10Glvreduce -L -10G /dev/myvg1/lv1

lvremove:

  • 用于删除指定LVM逻辑卷。
  • 如果逻辑卷已经使用mount指令加载,则不能使用lvremove指令删除。必须umount后方可操作。
  • 例如:删除逻辑卷 lv1 ,lvremove /dev/myvg1/lv1

lvresize:

  • 用于调整LVM逻辑卷的空间大小,可以增大空间和缩小空间。
  • 使用lvresize指令调整逻辑卷空间大小和缩小空间时需要谨慎,因为它有可能导致数据丢失。
  • 例如:将逻辑卷空间增加200Mlvresize -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 //逻辑卷信息

更多例子请参考下面的链接。

参考

回到页面顶部