跳到正文

LVM

LVM 全称为 Logical Volume Manager,即逻辑卷管理器,在磁盘分区和文件系统之间添加一个逻辑层, 为文件系统屏蔽下层磁盘分区布局提供一个抽象的盘卷,在盘卷上建立文件系统。

利用 LVM 可以在磁盘不用重新分区的情况下动态调整文件系统的大小,并且利用 LVM 管理的文件系统可以跨越磁盘。 当服务器添加了新的磁盘后,管理员不必将原有的文件移动到新的磁盘上,而是通过 LVM 直接扩展文件系统跨越磁盘。 也就是通过将底层的物理硬盘封装起来,然后以逻辑卷的方式呈现给上层应用。

LVM 通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,不再是针对分区进行操作,而是通过一个叫做逻辑卷的东西对其进行底层的磁盘管理操作。

LVM 主要构成

物理存储介质 (PM, physical media):LVM 存储介质可以是分区、磁盘、RAID 阵列或 SAN 磁盘。

物理卷 (PV, physical volume):物理卷是 LVM 的基本存储逻辑块,但与基本的物理存储介质(如分区、磁盘等)比较, 却包含有与 LVM 相关的管理参数,创建物理卷可以用磁盘分区,也可以用磁盘本身。磁盘设备必须初始化为 LVM 物理卷,才能与 LVM 结合使用。

卷组 (VG, Volume Group):LVM 卷组由一个或多个物理卷组成。

逻辑卷 (LV, logical volume):LV 建立在 VG 之上,可以在 LV 之上建立文件系统。

物理范围 (PE, physical extents):PV 物理卷中可以分配的最小存储单元,PE 的大小是可以指定的,默认为 4MB。

逻辑范围 (LE, logical extents):LV 逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE 的大小与 PE 是相同的, 并且一一对应。

LVM 优点

  • 使用卷组,使多个硬盘空间看起来像是一个大的硬盘
  • 使用逻辑卷,可以跨多个硬盘空间的分区 sdb1 sdb2 sdc1 sdd2 sdf
  • 使用逻辑卷,可以在空间不足时动态调整它的大小
  • 在调整逻辑卷大小时,不需要考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间
  • 可以在线对 LV、VG 进行创建、删除、调整大小等操作,LVM 上的文件系统也需要重新调整大小
  • 允许创建快照,可以用来保存文件系统的备份
  • RAID + LVM 结合使用:LVM 是软件的卷管理方式,而 RAID 是磁盘管理的方法。对于重要的数据, 使用 RAID 来保护物理磁盘不会因为故障而中断业务,再用 LVM 来实现对卷的良性管理,更好地利用磁盘资源。

使用 LVM 的基本步骤

  1. 物理磁盘被格式化为 PV,即空间被划分为一个个的 PE。PV 包含多个 PE。
  2. 不同的 PV 加入到同一个 VG 中,即不同 PV 的 PE 全部进入到 VG 的 PE 池内。VG 包含多个 PV。
  3. 在 VG 中创建 LV 逻辑卷,这个创建过程基于 PE,所以组成 LV 的 PE 可能来自不同的物理磁盘。LV 基于 PE 创建。
  4. LV 直接可以格式化后挂载使用。
  5. LV 的扩缩实际上就是增加或减少组成该 LV 的 PE 数量,其过程不会丢失原始数据。
  6. 格式化 LV,并挂载使用。

LV 扩容

首先,确定是否有可用的扩容空间,因为空间是从 VG 里面创建的,并且 LV 不能跨 VG 扩容。若 VG 没有了容量,需要先扩 VG。步骤如下:

$ vgs
VG #PV #LV #SN Attr VSize VFree
vg-sdb1 1 8 1 wz--n- <16.00g <5.39g
$ lvextend -L +100M -r /dev/vg-sdb1/lv-sdb1 #将 /dev/vg-sdb1/lv-sdb 扩容 100M

VG 扩容

如果 VG 卷组中的空间不够了,需要添加新的磁盘,依次运行以下命令:

$ pvcreate /dev/sdc
$ vgextend vg-sdb1 /dev/sdb3

LV 快照

LVM 机制提供了对 LV 做快照的功能,以此来获得文件系统的状态一致性备份。LVM 采用写时复制技术 (Copy-On-Write, COW), 不用停止服务或将逻辑卷设为只读就可以进行备份,使用 LVM 快照功能既可以获得一致备份,又不会影响服务器的可用性。

LVM 采用的写时复制,是指创建 LVM 快照时,仅复制原始卷中数据的元数据。换句话说,也就是在创建 LVM 逻辑卷时, 并不会发生数据的物理复制。再换句话说,仅复制元数据,不复制物理数据,因此快照的创建几乎是实时的。 当原始卷上执行写入操作时,快照会跟踪原始卷中块的变更,这时原始卷上将要变更的数据会在变更之前拷贝到快照预留的空间。