跳至主要內容

Chapter10 - 管理逻辑卷管理(LVM)存储

Change Lee...大约 12 分钟LinuxRHEL134

逻辑卷管理(LVM)概念

逻辑卷和逻辑卷管理有助于更加轻松的管理磁盘空间。如果 LVM 托管的文件系统需要更多的空间,可以将其卷组中的可用空间分配给逻辑卷,并且可以调整文件系统的大小。如果磁盘开始出现错误,可以将替换磁盘注册为物理卷放入卷组中,并且逻辑卷的区块可迁移到新磁盘。

image.png
1532914548221728.png
  • 物理设备是用于保留逻辑卷中所存储的存储设备。它们是块设备,可以是磁盘分区、整个磁盘、RAID阵列SAN磁盘。设备必须初始化为 LVM 物理卷,才能与 LVM结合使用。整个”设备“将作用一个物理卷。
  • 物理卷(PV)用于注册基础物理设备以便在卷组中使用。 LVM 自动将 PV划分为物理区块(PE);它们是充当 PV 是最小的存储块的小块数据。
  • 卷组(VG) 是存储池,由一个或多个物理卷组成。一个PV只能分配给一个 VG ,VG 可以包含未使用的空间和任意数目的逻辑卷。
  • 逻辑卷(LV)根据卷组中的空闲物理范围创建,提供应用、用户和操作系统所使用的”存储“设备。 LV是逻辑区块 ( LE)的集合, LE映射到物理区块(PV 的最小存储块)。默认情况下,每个 LE将映射到一个PE ,设置特定的 LV选项将会更改此映射;例如:镜像会导致每个 LE映射到两个 PE。
image.png
1532915362809606.png

管理逻辑卷

创建逻辑卷

创建可用的逻辑卷需要五个步骤:

  1. 准备物理设备

使用 fdiskgdiskparted 创建新分区,以便与 LVM 结合使用。在 LVM 分区上,始终将分区类型设备为 Linux LVM 。也可以使用完成的磁盘、RAID 阵列或 SAN 磁盘。

image.png
1532915604992709.png
  1. 创建物理卷

使用pvcreate 为分区(或其他物理设备)添加标签,使其作为物理卷与 LVM 结合使用。会将用于存储 LVM 配置数据的一个标头直接写入到 PV ,PV 分为多个固定大小的物理范围(PE),以空格分隔多个设备名。

image.png
1532915758521488.png

此命令会将设备 /dev/vda2 /dev/vdb1 标记为 PV,准备好分配到卷组中。

仅当没有空闲的 PV 可以创建或扩展 VG 时,才需要创建 PV

  1. 创建卷组

vgcreate 用于创建包含一个或多个物理卷的池,称为卷组。 VG 的大小由池中的物理范围的总数决定。 VG 负责通过向 LV 分配空闲 PE 来托管一个或多个逻辑卷;因此 ,在创建 LV时 ,VG 必须具有足够的空闲 PE 可用。

以 vgcreate 的参数形式,定义 VG 名称并列出一个或多个要分配给 VG 的 PV。

image.png
1532916156887043.png

此命令将创建名为 vg-alpha 的 VG ,它的大小是/dev/sda2/dev/vdb1 ,这两个PV的总大小(以PE单位计)

仅当没有现有 VG 时才需要创建VG.可能会出于管理原因创建额外的 VG ,用于管理 PV和 LV的使用。否则,可在需要时扩展现有 VG 以容纳新的 LV。

  1. 创建逻辑卷

lvcreate 根据卷组中的可用物理范围创建新的逻辑卷。至少为 lvcreate 使用以下参数:使用 -n 选项设置 LV名称,使用 -L 选项设置 LV 大小(以字节为单位),并确定要在其中创建 LV 的 VG 名称。

image.png
1532916442904085.png

此命令将在 VG vg-alpha 中创建一个名为 hercules 的 LV ,其大小为 2GB.必须有足够的空闲物理范围来分配 2GB,如有必要会将其取整为 PE 单元大小的倍数。

有多种方式可以指定大小: -L 要求以字节或更大指定值为单位的大小。例如 M,G。-l 选项要求以物理范围数为单位进行衡量的大小。

lvcreate -L 128M,将逻辑卷的大小确定为正好 128 MiB

lvcreate -l 128,将逻辑卷的大小确定为正好128个范围(PE)的大小,大小取决于 PE 块的大小。

TIPS

不同的工具将使用传统名称 /dev/vgname/lvname 或内核设备映射程序名。 /dev/mapper/vgname-lvname 。显示逻辑卷名。

  1. 添加文件系统

使用mkfs在新逻辑卷上创建文件系统(xfs,ext4

image.png
1532917059786660.png
删除逻辑卷

删除所有逻辑卷组件需要四个步骤:

  1. 准备文件系统

将必须保留的所有数据移动到另一个文件系统,然后使用 umount 卸载该文件系统。不要忘记删除与此文件系统关联的任何/etc/fstab 条目

image.png
1532923101657518.png

tips

删除逻辑卷会破坏该逻辑卷上存储的所有数据。删除逻辑卷之前,请备份或移动数据

  1. 删除逻辑卷

使用 lvremove 删除不再使用的逻辑卷。使用设备名称作为参数。

image.png
1532923218881106.png

运行此命令之前,必须卸载 LV 文件系统。删除 LV 之前,将请求确认

LV 的物理范围将会被释放,并可用于分配给卷组中的现在 LV 或新 LV。

  1. 删除卷组

使用vgremove删除不再需要的卷组。使用 VG 名称作为参数。

image.png
1532923227946554.png

VG 的物理卷组会被释放,并可用于分配给系统中的现在 VG 或新 VG

  1. 删除物理卷

使用 pvremove 删除不再需要的物理卷。使用空格分隔的 PV 设备列表同时删除多个 PV 。PV 元数据将从分区(或磁盘)清除,分区现在已空闲,可重新分配或重新格式化。

image.png
1532923483491728.png

查看 LVM 状态信息

使用 pvdisplay 显示有关物理卷的信息。如果未随命令指定任何参数,则它将列出有关系统上所有 PV 的信息。如果参数为特定设备名称,则将仅显示特定 PV 的信息。

image.png
1532923530769371.png
  1. PV Name 映射到设备名称
  2. VG Name 显示将 PV 分配到的卷组。
  3. PV Size 显示 PV 的物理大小,包括任何不可用的空间。
  4. PE Size 是物理范围大小,它是逻辑卷中可分配的最小大小。
    1. 它也是计算以 PE 单位报告的任何值(如 Free PE)的大小时的倍数,例如:26个 PE x 4MiB(PE Size)可提供104 MiB 可用空间。逻辑卷大小将取整为 PE 单位的倍数。
  5. Free PE 显示有多少 PE 单位可用于分配给新逻辑卷。

卷组

使用 vgdisplay 显示有关卷组的信息。如果没有为命令指定任何变量,则它将显示有关所有 VG 的信息, 使用 VG 名称作为变量将仅显示该特定 VG 的信息。

image.png
1532923545926922.png
  1. VG Name 是此卷组的名称
  2. VG Size 是存储池可用于逻辑卷分配的总大小。
  3. Total PE 是以 PE 单位表示的总大小
  4. Free PE /Size 显示 VG 中有多少空闲空间可用于分配给新 LV 或扩展现在 LV。
逻辑卷

使用 lvdisplay 显示有关逻辑卷的信息。同样,如果未随命令指定任何参数,则将显示有关所有 LV 的信息; 而使用 LV 设备名称任何参数将仅显示有关该特定设备的信息。

image.png
1532923602504982.png
  1. LV Patch 显示此逻辑卷的设备名称;某些工具可能会将设备名报告为/dev/mapper/vgname-lvname; 两个名称都表示同一 LV
  2. VG Name 显示从其分配 LV的卷组。
  3. LV Size 显示 LV的总大小。使用文件系统工具检查可用空间和数据存储的已用空间。
  4. Current LE 显示此 LV 使用的逻辑范围数。 LE 通常映射到 VG 中的物理范围,并因此映射到物理卷。
扩展逻辑卷

扩展和缩减卷组

可以通过添加额外的物理卷来为卷组增加更多磁盘空间。这种做法称为扩展卷组。由额外的物理卷提供的新物理区段可以分配给逻辑卷。

可以将未使用的物理卷从卷组中删除。这种做法称为缩减卷组。可以使用名为 pvmove 的工具,将数据从一个物理卷上的区段移动到卷组中其他物理卷上的区段。通过这种方式,可以将新磁盘添加到现在卷组,将数据从较旧或较慢的磁盘移动到新磁盘,并将旧磁盘从卷组中删除。可在卷组中的逻辑卷正在使用时完成这些操作。

扩展卷组可能需要四个步骤:

  1. 准备物理设备
image.png
1532934683798263.png
  1. 创建物理卷
image.png
1532934694227911.png
  1. 扩展卷组

vgextend 用于向卷组添加新物理卷。使用 VG 名称和 PV 设备名称作为 vgextend 的参数。

image.png
1532934705170371.png
  1. 验证新空间是否可用
image.png
1532934716787931.png
缩减卷组需要两个步骤:
  1. 移动物理区段

使用 pvmove将物理卷上使用的任何物理区段重新分配给 VG 中的其他 PV。仅当 VG 中存在足够的空间范围,且所有这些范围都来自其他 PV 时,才能执行此操作。使用将移动的 PE 所属的 PV 设备名称作为该命令的参数。

image.png
1532934896111896.png

警告

使用 pvmove 前建议备份卷组所有逻辑卷上存储的数据。如果操作期间意外断电,可能会导致卷组状态不一致。这可能导致卷组中逻辑卷上的数据丢失。

  1. 缩减卷组

使用vgreduce将物理卷从卷组中删除。使用VG 名称和 PV 设备名称作为该命令参数。

image.png
1532935348576038.png

/dev/vdb2 PV 现在已从 vg-alpha VG 删除,并可以添加到其他 VG 。或者 ,也可以使用pvremove永久停止将设备用作 PV。

扩展逻辑卷和 XFS 文件系统

逻辑卷是一个优势在于能够在不停机的情况下增加其大小。可将卷组中的空闲物理区段添加到逻辑卷以扩展其容量,然后可使用逻辑卷扩展所包含的文件系统。

扩展逻辑卷需要三个步骤:

  1. 验证卷组是否具有可用的空间

使用 vgdisplay 验证是否有足够的物理区段供使用。

image.png
1532935692930444.png

检查输入中的 Free PE /Size ,它应该报告一个等于或大于所需额外空间的值 。如果没有足够的可用空间,则卷组扩展幅度至少要达到所需空间的大小。

  1. 扩展逻辑卷

lvextend 可将逻辑卷扩展为新的大小。添加 LV设备名称作为命令的最后一个参数。

image.png
1532935843642498.png

此命令可将逻辑卷 hercules 的大小增加 300 M 。请注意空间大小前面的+,它表示 向现有大小增加此值;如无该符号,该值定义 LV 的最终确切大小。

lvcreate 类似,有多种方式可以指定大小:-l 通常要求物理区段值,而 -L 要求以字节或更大的单位表示 。


lvextend -l 128 #将逻辑卷的大小调整为正好 128 个范围
lvextend -l +128 #向逻辑卷的当前大小添加128 个范围
lvextend -L 128M #将逻辑卷的大小调整为正好128M
lvextend -L +128M #向逻辑卷的当前大小增加128M
lvextend -l +50%FREEE #向 LV 添加 VG 中当前可以空间的 50%

3、扩展文件系统

xfs_growfs /mountpoint 扩展文件系统以占用已扩展的 LV。xfs_growfs要求在文件系统运行时进行搭载该系统;在调整大小操作期间仍然可以使用该文件系统。

image.png
1532936322407591.png

注意

常见错误是运行 lvextend 但忘记运行 xfs_growfs 。两步合二为一的方法是 lvextend 使用-r作为命令的一个选项,这将使用 fsadm(8) 在扩展 LV后调整文件系统的大小。它可以用于多种不同的文件系统。

验证已挂载文件系统的新大小:

df -h /mountpoint
扩展逻辑卷和ext 4文件系统

扩展基于ext4 的逻辑卷的步骤基本和扩展基于 xfs的 LV 相同,只有调整文件系统大小的步骤不同

  1. 验证卷组的可用性

  2. 扩展逻辑卷

  3. 扩展文件系统

resize2fs /dev/vgname/lvname 扩展文件系统以占用新扩展的 LV。正与 xfs_growfs 一样,可以在文件系统正在运行时挂载该文件系统(可选)包含 -p 选项以查看调整大小操作的进度。

image.png
1533021882431708.png

注意

xfs_growfsresize2fs 之间的主要区别是为识别文件系统而传递的参数。

xfs_growfs 采用挂载点,而resize2fs 采用逻辑卷名称。

总结

管理逻辑卷
  • pvcreate、pvremove和pvdisplay 创建、删除和列出物理卷(PV)
  • vgcreate、vgremove和vgdisplay 创建、删除和列出卷组(VG)
  • lvcreate、lvremove和lvdisplay 创建、删除和列出逻辑卷(LV)
  • 添加逻辑卷以 PV、VG、和 LV的先后顺序完成。
  • 删除逻辑卷以 LV、VG、和 PV 的先后顺序完成。
扩展逻辑卷
  • 使用 pvcreate 和 vgextend 扩展卷组(VG);使用vgdisplay 检查结果。
  • 使用pvmove 和 vgreduce 缩减 VG 。
  • 使用xfs_growfs 调整xfs 文件系统的大小。
  • 使用 resize2fs 调整ext4 文件系统的大小。
上次编辑于:
贡献者: change,lichangyangccm@163.com
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3