67.4. 管理 LVM 逻辑卷


逻辑卷是文件系统、数据库或应用可以使用的虚拟块存储设备。要创建 LVM 逻辑卷,物理卷(PV)合并为一个卷组(VG)。这会创建一个磁盘空间池,用于分配 LVM 逻辑卷(LV)。

67.4.1. 逻辑卷功能的概述

使用逻辑卷管理器(LVM),您可以以一种传统分区方案无法提供的灵活、高效的方式管理磁盘存储。以下是用于存储管理和优化的重要的 LVM 功能的概述。

级联
级联涉及将一个或多个物理卷中的空间合并成一个逻辑卷,来有效地合并物理存储。
条带
条带通过将数据分布到多个物理卷上来优化数据 I/O 效率。这个方法通过允许并行 I/O 操作提高了顺序读写的性能。
RAID
LVM 支持 RAID 0、1、4、5、6 和 10。当您创建 RAID 逻辑卷时,LVM 会创建一个元数据子卷,它是阵列中的每个数据或奇偶校验子卷的大小的一个区块。
精简置备
精简配置允许创建比可用物理存储大的逻辑卷。通过精简配置,系统可以根据实际使用情况,而不是预先分配预定的量来动态分配存储。
快照
使用 LVM 快照,您可以创建逻辑卷的时间点副本。快照开始为空。当原始逻辑卷上发生更改时,快照会通过写时复制(CoW)捕获更改前的状态,并仅随着变化而增长,以保留原始逻辑卷的状态。
Caching
LVM 支持在较慢的块设备中使用快速块设备(比如 SSD 驱动器)作为写入或者写入缓存。用户可以创建缓存逻辑卷来提高其现有逻辑卷的性能,或者创建由小而快速的设备组成的新缓存逻辑卷,再加上一个大型、较慢的设备。

67.4.2. 管理逻辑卷快照

快照是一个在特定时间点镜像另一个 LV 的内容的逻辑卷(LV)。

67.4.2.1. 了解逻辑卷快照

当您创建快照时,您在创建一个作为另一个 LV 的时间点副本的新 LV。最初,快照 LV 不包含实际数据。而它会在创建快照时引用原始 LV 的数据块。

警告

定期监控快照的存储使用情况非常重要。如果快照达到其分配空间的 100%,则它将无效。

必须在完全填满快照之前扩展快照。这可以通过使用 lvextend 命令手动完成,或者通过 /etc/lvm/lvm.conf 文件自动完成。

厚 LV 快照
当原始 LV 上的数据发生变化时,写时复制(CoW)系统会在更改之前将原始数据,未更改的数据复制到快照。这样,快照的大小仅在更改发生时增长,在创建快照时存储原始卷的状态。后快照是一种 LV,其需要您预先分配一些存储空间。这个数量以后可以进行扩展或减少,但您应该考虑您要对原始 LV 进行何种类型的更改。这帮助您避免由于分配太多空间而浪费资源,或者由于分配的太少而频繁增加快照大小。
精简 LV 快照

精简快照是从现有精简置备的 LV 创建的一种 LV 。精简快照不需要预先分配额外的空间。最初,原始 LV 及其快照共享同样的数据块。当对原始 LV 进行更改时,它会将新数据写到不同的块,而快照继续引用原始块,并在创建快照时保留 LV 数据的时间点视图。

精简配置是一种通过按需分配磁盘空间来优化和高效管理存储的方法。这意味着您可以创建多个 LV,而无需为每个 LV 预先分配大量存储。存储在精简池中的所有 LV 中共享,使精简池更有效地使用资源。精简池按需为其 LV 分配空间。

在厚和精简 LV 快照之间进行选择
厚或精简 LV 快照之间的选择直接由您在执行的快照的 LV 的类型决定。如果您的原始 LV 是厚 LV,则您的快照将是厚的。如果您的原始 LV 是精简的,则您的快照将是精简的。

67.4.2.2. 管理厚逻辑卷快照

当您创建厚 LV 快照时,务必要考虑存储要求和快照的预期寿命。您需要根据原始卷的预期变化来为其分配足够的存储。在其预期的寿命内,快照必须有足够的大小来捕获更改,但它不能超过原始 LV 的大小。如果您预期更改率较低,则 10%-15% 的快照大小可能就足够了。对于高更改率的 LV,您可能需要分配 30% 或更多的空间。

重要

必须在完全填满快照之前扩展快照。如果快照达到其分配空间的 100%,则其变为无效。您可以使用 lvs -o lv_name,data_percent,origin 命令监控快照容量。

67.4.2.2.1. 创建厚逻辑卷快照

您可以使用 lvcreate 命令创建厚 LV 快照。

先决条件

  • 管理访问权限.
  • 您已创建了一个物理卷。如需更多信息,请参阅 创建 LVM 物理卷
  • 您已创建了一个卷组。如需更多信息,请参阅创建 LVM 卷组
  • 您已创建了一个逻辑卷。如需更多信息,请参阅 创建逻辑卷

步骤

  1. 确定您要创建快照的 LV:

    # lvs -o vg_name,lv_name,lv_size
    
      VG              LV                LSize
      VolumeGroupName LogicalVolumeName 10.00g

    快照的大小不能超过 LV 的大小。

  2. 创建厚 LV 快照:

    # lvcreate --snapshot --size SnapshotSize --name SnapshotName VolumeGroupName/LogicalVolumeName

    使用您要为快照分配的大小(如 10G)替换 SnapshotSize。使用您要给快照逻辑卷取的名称替换 SnapshotName。使用包含原始逻辑卷的卷组的名称替换 VolumeGroupName。使用您要为其创建快照的逻辑卷的名称替换 LogicalVolumeName

验证

  • 验证快照是否已创建:

    # lvs -o lv_name,origin
    
      LV                  Origin
      LogicalVolumeName
      SnapshotName        LogicalVolumeName

其他资源

  • lvcreate (8)lvs (8) 手册页
67.4.2.2.2. 手动扩展逻辑卷快照

如果快照达到其分配空间的 100%,则其变为无效。必须在完全填满快照之前扩展快照。这可以通过使用 lvextend 命令手动完成此操作。

先决条件

  • 管理访问权限.

步骤

  1. 列出快照的卷组、逻辑卷、源卷、它们的使用率百分比和大小:

    # lvs -o vg_name,lv_name,origin,data_percent,lv_size
      VG              LV                Origin            Data%  LSize
      VolumeGroupName LogicalVolumeName                          10.00g
      VolumeGroupName SnapshotName      LogicalVolumeName 82.00   5.00g
  2. 扩展厚配置快照:

    # lvextend --size +AdditionalSize VolumeGroupName/SnapshotName

    使用要添加到快照中的空间(如 +1G)替换 AdditionalSize。将 VolumeGroupName 替换为卷组的名称。使用快照的名称替换 SnapshotName

验证

  • 验证 LV 是否已扩展:

    # lvs -o vg_name,lv_name,origin,data_percent,lv_size
      VG              LV                Origin            Data%  LSize
      VolumeGroupName LogicalVolumeName                          10.00g
      VolumeGroupName SnapshotName      LogicalVolumeName 68.33   6.00g
67.4.2.2.3. 自动扩展厚逻辑卷快照

如果快照达到其分配空间的 100%,则其变为无效。必须在完全填满快照之前扩展快照。这可以自动完成。

先决条件

  • 管理访问权限.

步骤

  1. root 用户身份,在您选择的编辑器中打开 /etc/lvm/lvm.conf 文件。
  2. 取消 snapshot_autoextend_thresholdsnapshot_autoextend_percent 行的注释,并将每个参数设置为所需的值:

    snapshot_autoextend_threshold = 70
    snapshot_autoextend_percent = 20

    snapshot_autoextend_threshold 决定 LVM 开始自动扩展快照的百分比。例如,将参数设置为 70 表示 LVM 将在达到 70% 容量时尝试扩展快照。

    snapshot_autoextend_percent 指定快照在达到阈值时应扩展的百分比。例如,将参数设置为 20 表示快照将增加其当前大小的 20%。

  3. 保存更改并退出编辑器。
  4. 重启 lvm2-monitor

    # systemctl restart lvm2-monitor
67.4.2.2.4. 合并厚逻辑卷快照

您可以将厚 LV 快照合并到创建快照的原始逻辑卷中。合并过程意味着原始 LV 恢复回创建快照时所处的状态。合并完成后,快照被删除。

注意

如果原始 LV 和快照 LV 中的任何一个处于活动状态,则它们之间的合并会被推迟。只有在 LV 被重新激活且没有使用时,才会继续。

先决条件

  • 管理访问权限.

步骤

  1. 列出 LV、其卷组及其路径:

    # lvs -o lv_name,vg_name,lv_path
    
      LV                   VG              Path
      LogicalVolumeName    VolumeGroupName /dev/VolumeGroupName/LogicalVolumeName
      SnapshotName         VolumeGroupName /dev/VolumeGroupName/SnapshotName
  2. 检查挂载 LV 的位置:

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/SnapshotName

    /dev/VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。将 /dev/VolumeGroupName/SnapshotName 替换为快照的路径。

  3. 卸载 LV:

    # umount /LogicalVolume/MountPoint
    # umount /Snapshot/MountPoint

    /LogicalVolume/MountPoint 替换为逻辑卷的挂载点。将 /Snapshot/MountPoint 替换为您的快照的挂载点。

  4. 停用 LV:

    # lvchange --activate n VolumeGroupName/LogicalVolumeName
    # lvchange --activate n VolumeGroupName/SnapshotName

    VolumeGroupName 替换为卷组的名称。使用逻辑卷的名称替换 LogicalVolumeName。将 SnapshotName 替换为您的快照的名称。

  5. 将厚 LV 快照合并到原始卷中:

    # lvconvert --merge SnapshotName

    使用快照的名称替换 SnapshotName

  6. 激活 LV:

    # lvchange --activate y VolumeGroupName/LogicalVolumeName

    VolumeGroupName 替换为卷组的名称。使用逻辑卷的名称替换 LogicalVolumeName

  7. 挂载 LV:

    # umount /LogicalVolume/MountPoint

    /LogicalVolume/MountPoint 替换为逻辑卷的挂载点。

验证

  • 验证快照是否已删除:

    # lvs -o lv_name

其他资源

  • lvconvert (8), lvs (8) 手册页

67.4.2.3. 管理精简逻辑卷快照

当存储效率是优先考虑因素时,精简置备是合适的。存储空间动态分配减少了初始存储成本,并最大限度地利用了可用的存储资源。在具有动态工作负载或存储随时间而增长的环境中,精简配置允许灵活性。它使存储系统能够适应变化的需求,而无需预先分配大量的存储空间。使用动态分配时,有可能会过度置备,其中所有 LV 的总大小可能会超过精简池的物理大小,假设所有空间不会被同时使用。

67.4.2.3.1. 创建精简逻辑卷快照

您可以使用 lvcreate 命令创建精简 LV 快照。在创建精简 LV 快照时,避免指定快照大小。包含 size 参数会导致创建厚快照。

先决条件

  • 管理访问权限.
  • 您已创建了一个物理卷。如需更多信息,请参阅 创建 LVM 物理卷
  • 您已创建了一个卷组。如需更多信息,请参阅创建 LVM 卷组
  • 您已创建了一个逻辑卷。如需更多信息,请参阅 创建逻辑卷

步骤

  1. 确定您要创建快照的 LV:

    # lvs -o lv_name,vg_name,pool_lv,lv_size
    
      LV                VG              Pool       LSize
      PoolName          VolumeGroupName            152.00m
      ThinVolumeName    VolumeGroupName PoolName   100.00m
  2. 创建精简 LV 快照:

    # lvcreate --snapshot --name SnapshotName VolumeGroupName/ThinVolumeName

    使用您要给快照逻辑卷取的名称替换 SnapshotName。使用包含原始逻辑卷的卷组的名称替换 VolumeGroupName。使用您要为其创建快照的精简逻辑卷的名称替换 ThinVolumeName

验证

  • 验证快照是否已创建:

    # lvs -o lv_name,origin
    
      LV                Origin
      PoolName
      SnapshotName      ThinVolumeName
      ThinVolumeName

其他资源

  • lvcreate (8)lvs (8) 手册页
67.4.2.3.2. 合并精简逻辑卷快照

您可以将精简 LV 快照合并到创建快照的原始逻辑卷中。合并过程意味着原始 LV 恢复回创建快照时所处的状态。合并完成后,快照被删除。

先决条件

  • 管理访问权限.

步骤

  1. 列出 LV、其卷组及其路径:

    # lvs -o lv_name,vg_name,lv_path
    
      LV                VG              Path
      ThinPoolName      VolumeGroupName
      ThinSnapshotName  VolumeGroupName /dev/VolumeGroupName/ThinSnapshotName
      ThinVolumeName    VolumeGroupName /dev/VolumeGroupName/ThinVolumeName
  2. 检查原始 LV 挂载的位置:

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/ThinVolumeName

    VolumeGroupName/ThinVolumeName 替换为逻辑卷的路径。

  3. 卸载 LV:

    # umount /ThinLogicalVolume/MountPoint

    /ThinLogicalVolume/MountPoint 替换为逻辑卷的挂载点。将 /ThinSnapshot/MountPoint 替换为您的快照的挂载点。

  4. 停用 LV:

    # lvchange --activate n VolumeGroupName/ThinLogicalVolumeName

    VolumeGroupName 替换为卷组的名称。将 ThinLogicalVolumeName 替换为逻辑卷的名称。

  5. 将精简 LV 快照合并到原始逻辑卷中:

    # lvconvert --mergethin VolumeGroupName/ThinSnapshotName

    VolumeGroupName 替换为卷组的名称。将 ThinSnapshotName 替换为快照的名称。

  6. 挂载 LV:

    # umount /ThinLogicalVolume/MountPoint

    /ThinLogicalVolume/MountPoint 替换为逻辑卷的挂载点。

验证

  • 验证原始 LV 是否已合并:

    # lvs -o lv_name

其他资源

  • lvremove (8), lvs (8) 手册页

67.4.3. 创建 RAID0 条带化逻辑卷

RAID0 逻辑卷以条的大小为单位,将逻辑卷数据分散到多个数据子卷中。下面的步骤创建了一个名为 mylv 的 LVM RAID0 逻辑卷,该逻辑卷在磁盘间条状分布数据。

先决条件

  1. 您已创建了三个或者多个物理卷。有关创建物理卷的更多信息,请参阅 创建 LVM 物理卷
  2. 您已创建了卷组。如需更多信息,请参阅创建 LVM 卷组

流程

  1. 从现有卷组中创建 RAID0 逻辑卷。以下命令从卷组 myvg 中创建 RAID0 卷 mylv,大小为 2G,有三个条带,条带大小为 4kB

    # lvcreate --type raid0 -L 2G --stripes 3 --stripesize 4 -n mylv my_vg
      Rounding size 2.00 GiB (512 extents) up to stripe boundary size 2.00 GiB(513 extents).
      Logical volume "mylv" created.
  2. 在 RAID0 逻辑卷中创建文件系统。以下命令在逻辑卷中创建 ext4 文件系统:

    # mkfs.ext4 /dev/my_vg/mylv
  3. 挂载逻辑卷并报告文件系统磁盘空间使用情况:

    # mount /dev/my_vg/mylv /mnt
    
    # df
    Filesystem             1K-blocks     Used  Available  Use% Mounted on
    /dev/mapper/my_vg-mylv   2002684     6168  1875072    1%   /mnt

验证

  • 查看创建的 RAID0 剥离的逻辑卷:

    # lvs -a -o +devices,segtype my_vg
      LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type
      mylv my_vg rwi-a-r--- 2.00g mylv_rimage_0(0),mylv_rimage_1(0),mylv_rimage_2(0) raid0
      [mylv_rimage_0] my_vg iwi-aor--- 684.00m /dev/sdf1(0) linear
      [mylv_rimage_1] my_vg iwi-aor--- 684.00m /dev/sdg1(0) linear
      [mylv_rimage_2] my_vg iwi-aor--- 684.00m /dev/sdh1(0) linear

67.4.4. 从逻辑卷中删除磁盘

这个步骤描述了如何从现有逻辑卷中删除磁盘,替换磁盘或者将磁盘用作不同卷的一部分。

要删除磁盘,您必须首先将 LVM 物理卷中的扩展移动到不同的磁盘或者一组磁盘中。

流程

  1. 在使用 LV 时查看物理卷的已用和可用空间:

    # pvs -o+pv_used
      PV          VG    Fmt    Attr   PSize      PFree     Used
     /dev/vdb1 myvg  lvm2   a--    1020.00m    0         1020.00m
     /dev/vdb2 myvg  lvm2   a--    1020.00m    0         1020.00m
     /dev/vdb3 myvg  lvm2   a--    1020.00m   1008.00m   12.00m
  2. 将数据移到其他物理卷中:

    1. 如果现有卷组中的其他物理卷中有足够的可用扩展,请使用以下命令移动数据:

      # pvmove /dev/vdb3
        /dev/vdb3: Moved: 2.0%
       ...
        /dev/vdb3: Moved: 79.2%
       ...
        /dev/vdb3: Moved: 100.0%
    2. 如果现有卷组中的其他物理卷上没有足够的可用扩展,请使用以下命令来添加新物理卷,使用新创建的物理卷扩展卷组,并将数据移动到此物理卷中:

      # pvcreate /dev/vdb4
        Physical volume "/dev/vdb4" successfully created
      
      # vgextend myvg /dev/vdb4
        Volume group "myvg" successfully extended
      
      # pvmove /dev/vdb3 /dev/vdb4
        /dev/vdb3: Moved: 33.33%
        /dev/vdb3: Moved: 100.00%
  3. 删除物理卷:

    # vgreduce myvg /dev/vdb3
    Removed "/dev/vdb3" from volume group "myvg"

    如果逻辑卷包含失败的物理卷,您就无法使用该逻辑卷。要从卷组中删除缺少的物理卷,如果缺少的物理卷上没有分配逻辑卷,您可以使用 vgreduce 命令的 --removemissing 参数:

    # vgreduce --removemissing myvg

其它资源

  • pvmove (8), vgextend (8), vereduce (8), 和 pvs (8) man page

67.4.5. 使用 Web 控制台更改卷组中的物理驱动器

您可以使用 RHEL 8 web 控制台更改卷组中的驱动器。

先决条件

  • 用于替换旧的或有问题的驱动器的新物理驱动器。
  • 该配置期望物理驱动器在一个卷组中进行组织。

67.4.5.1. 在 web 控制台中的卷组中添加物理驱动器

您可以使用 RHEL 8 web 控制台在现有逻辑卷中添加新物理驱动器或者其他类型的卷。

先决条件

  • 已安装 RHEL 8 web 控制台。

    具体步骤请参阅安装并启用 Web 控制台

  • cockpit-storaged 软件包已安装在您的系统上。
  • 必须创建一个卷组。
  • 连接到机器的新驱动器。

流程

  1. 登录到 RHEL 8 web 控制台。

    详情请参阅 Web 控制台的日志记录

  2. Storage
  3. Storage 表中,点您要向其添加物理驱动器的卷组。
  4. LVM2 volume group 页面中,单击 Add physical volume
  5. Add Disks 对话框中,选择首选的驱动器并点 Add

验证

  • LVM2 volume group 页面中,检查 Physical volumes 部分,以验证卷组中的新物理驱动器是否可用。

67.4.5.2. 在 web 控制台中,从卷组中删除物理驱动器

如果逻辑卷包含多个物理驱动器,您可以在线删除其中一个物理驱动器。

系统会在删除过程中自动将驱动器中的所有数据移至其他驱动器。请注意,这可能需要一些时间。

web 控制台也会验证删除物理驱动器是否会有足够的空间。

先决条件

  • 已安装 RHEL 8 web 控制台。

    具体步骤请参阅安装并启用 Web 控制台

  • cockpit-storaged 软件包已安装在您的系统上。
  • 一个连接了多个物理驱动器的卷组。

流程

  1. 登录到 RHEL 8 web 控制台。
  2. Storage
  3. Storage 表中,点您要向其添加物理驱动器的卷组。
  4. LVM2 volume group 页面中,滚动到 Physical volumes 部分。
  5. 点您要删除的物理卷旁边的菜单按钮
  6. 从下拉菜单中选择 Remove

    RHEL 8 web 控制台会验证逻辑卷是否有足够可用空间来删除磁盘。如果没有可用空间来传输数据,则无法删除磁盘,您必须首先添加一个磁盘来增加卷组的容量。详情请参阅 在 web 控制台中向逻辑卷添加物理驱动器

67.4.6. 删除逻辑卷

您可以使用 lvremove 命令删除现有逻辑卷,包括快照。

先决条件

  • 管理访问权限.

流程

  1. 列出逻辑卷及其路径:

    # lvs -o lv_name,lv_path
    
      LV                Path
      LogicalVolumeName /dev/VolumeGroupName/LogicalVolumeName
  2. 检查挂载逻辑卷的位置:

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
    
    SOURCE                                        TARGET
    /dev/mapper/VolumeGroupName-LogicalVolumeName /MountPoint

    /dev/VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。

  3. 卸载逻辑卷:

    # umount /MountPoint

    /MountPoint 替换为您的逻辑卷的挂载点。

  4. 删除逻辑卷:

    # lvremove VolumeGroupName/LogicalVolumeName

    VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。

其它资源

  • LVs (8), lvremove (8) man page

67.4.7. 使用 RHEL 系统角色管理 LVM 逻辑卷

使用 storage 角色执行以下任务:

  • 在由多个磁盘组成的卷组中创建 LVM 逻辑卷。
  • 在逻辑卷中创建一个带给定标签的 ext4 文件系统。
  • 永久挂载 ext4 文件系统。

先决条件

  • 包含 storage 角色的 Ansible playbook

67.4.7.1. 使用 storage RHEL 系统角色创建或者重新定义逻辑卷大小

使用 storage 角色执行以下任务:

  • 在由多个磁盘组成的卷组中创建 LVM 逻辑卷
  • 在 LVM 上重新定义现有文件系统大小
  • 以池总大小的百分比表示 LVM 卷大小

如果卷组不存在,则角色会创建它。如果逻辑卷存在于卷组中,如果大小与 playbook 中指定的内容不匹配,则会调整大小。

如果您要缩小逻辑卷,为了避免数据丢失,您必须确保该逻辑卷中的文件系统没有使用正在缩小的逻辑卷中的空间。

先决条件

流程

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      tasks:
        - name: Create logical volume
          ansible.builtin.include_role:
            name: rhel-system-roles.storage
          vars:
            storage_pools:
              - name: myvg
                disks:
                  - sda
                  - sdb
                  - sdc
                volumes:
                  - name: mylv
                    size: 2G
                    fs_type: ext4
                    mount_point: /mnt/data

    示例 playbook 中指定的设置包括以下内容:

    大小:&lt ;size>
    您必须使用单位(如 GiB)或百分比(例如 60%)来指定大小。

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.storage/README.md 文件。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  • 验证指定的卷是否已创建或重新定义到请求的大小:

    # ansible managed-node-01.example.com -m command -a 'lvs myvg'

其它资源

  • /usr/share/ansible/roles/rhel-system-roles.storage/README.md 文件
  • /usr/share/doc/rhel-system-roles/storage/ 目录

67.4.7.2. 其它资源

67.4.8. 使用 storage RHEL 系统角色调整 LVM 上现有文件系统的大小

您可以使用 storage RHEL 系统角色使用文件系统重新定义 LVM 逻辑卷大小。

如果您要缩小的逻辑卷有一个文件系统,为了防止数据丢失,您必须确保文件系统没有使用正在缩小的逻辑卷中的空间。

先决条件

流程

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      tasks:
        - name: Resize LVM logical volume with file system
          ansible.builtin.include_role:
            name: rhel-system-roles.storage
          vars:
            storage_pools:
              - name: myvg
                disks:
                  - /dev/sda
                  - /dev/sdb
                  - /dev/sdc
                volumes:
                  - name: mylv1
                    size: 10 GiB
                    fs_type: ext4
                    mount_point: /opt/mount1
                  - name: mylv2
                    size: 50 GiB
                    fs_type: ext4
                    mount_point: /opt/mount2

    此 playbook 调整以下现有文件系统的大小:

    • 挂载在 /opt/mount1 上的 mylv1 卷上的 Ext4 文件系统,大小调整为 10 GiB。
    • 挂载在 /opt/mount2 上的 mylv2 卷上的 Ext4 文件系统,大小调整为 50 GiB。

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.storage/README.md 文件。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  1. 验证逻辑卷是否已调整为请求的大小:

    # ansible managed-node-01.example.com -m command -a 'lvs myvg'
  2. 使用文件系统工具验证文件系统大小。例如,对于 ext4,通过乘以块数和 dumpe2fs 工具报告的块大小来计算文件系统大小:

    # ansible managed-node-01.example.com -m command -a 'dumpe2fs -h /dev/myvg/mylv | grep -E "Block count|Block size"'

其它资源

  • /usr/share/ansible/roles/rhel-system-roles.storage/README.md 文件
  • /usr/share/doc/rhel-system-roles/storage/ 目录
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.