Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for RHEL 8

8.12. 更改现有 RAID1 设备中的镜像数

您可以更改现有 RAID1 阵列中的镜像数量,就如同在早期的 LVM 镜像部署中更改镜像数量。使用 lvconvert 命令指定要添加或删除的额外元数据/数据子卷对数。

当您使用 lvconvert 命令向 RAID1 设备中添加镜像时,您可以指定所生成设备的镜像总数,或者您可以指定要添加到该设备中的镜像数量。您还可以有选择地指定新元数据/数据镜像对所在的物理卷。

元数据子卷(名为 rmeta)始终存在于同一物理设备中,其数据子卷对应了 rimage。元数据/数据子卷对不会在与 RAID 阵列中另一个元数据/数据子卷对相同的物理卷中创建(除非您在 任何位置指定 --alloc)。

在 RAID1 卷中添加镜像的命令格式如下:

lvconvert -m new_absolute_count vg/lv [removable_PVs]
lvconvert -m +num_additional_images vg/lv [removable_PVs]

例如,以下命令显示 LVM 设备 my_vg/my_lv,它是一个双向 RAID1 阵列:

# lvs -a -o name,copy_percent,devices my_vg
  LV                Copy%  Devices
  my_lv             6.25    my_lv_rimage_0(0),my_lv_rimage_1(0)
  [my_lv_rimage_0]         /dev/sde1(0)
  [my_lv_rimage_1]         /dev/sdf1(1)
  [my_lv_rmeta_0]          /dev/sde1(256)
  [my_lv_rmeta_1]          /dev/sdf1(0)

下面的命令可将双向 RAID1 设备 my_vg/my_lv 转换为三向 RAID1 设备:

# lvconvert -m 2 my_vg/my_lv
# lvs -a -o name,copy_percent,devices my_vg
  LV               Copy%  Devices
  my_lv              6.25 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
  [my_lv_rimage_0]        /dev/sde1(0)
  [my_lv_rimage_1]        /dev/sdf1(1)
  [my_lv_rimage_2]        /dev/sdg1(1)
  [my_lv_rmeta_0]         /dev/sde1(256)
  [my_lv_rmeta_1]         /dev/sdf1(0)
  [my_lv_rmeta_2]         /dev/sdg1(0)

当您向 RAID1 阵列中添加镜像时,您可以指定要用于该镜像的物理卷。下面的命令可将双向 RAID1 设备 my_vg/my_lv 转换为三向 RAID1 设备,指定该阵列的物理卷 /dev/sdd1

# lvs -a -o name,copy_percent,devices my_vg
  LV               Copy%  Devices
  my_lv             56.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
  [my_lv_rimage_0]        /dev/sda1(1)
  [my_lv_rimage_1]        /dev/sdb1(1)
  [my_lv_rmeta_0]         /dev/sda1(0)
  [my_lv_rmeta_1]         /dev/sdb1(0)
# lvconvert -m 2 my_vg/my_lv /dev/sdd1
# lvs -a -o name,copy_percent,devices my_vg
  LV               Copy%  Devices
  my_lv             28.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
  [my_lv_rimage_0]        /dev/sda1(1)
  [my_lv_rimage_1]        /dev/sdb1(1)
  [my_lv_rimage_2]        /dev/sdd1(1)
  [my_lv_rmeta_0]         /dev/sda1(0)
  [my_lv_rmeta_1]         /dev/sdb1(0)
  [my_lv_rmeta_2]         /dev/sdd1(0)

要从 RAID1 阵列中删除镜像,请使用以下命令。当您使用 lvconvert 命令从 RAID1 设备中删除镜像时,您可以指定生成的设备的镜像总数,或者您可以指定要从该设备中删除的镜像数量。您还可以选择指定要从中删除该设备的物理卷。

lvconvert -m new_absolute_count vg/lv [removable_PVs]
lvconvert -m -num_fewer_images vg/lv [removable_PVs]

另外,当镜像及其关联的元数据子卷被删除时,任何带有高数值的镜像都将用来填充被删除卷的位置。如果您从由 lv_rimage_0lv_rimage_1lv_rimage_2 组成的三向 RAID1 阵列中删除 lv_rimage_1,则会产生一个由 lv_rimage_0lv_rimage_1 组成的 RAID1 阵列。子卷 lv_rimage_2 将重命名并接管空插槽,成为 lv_rimage_1

以下示例显示了三向 RAID1 逻辑卷 my_vg/my_lv 的布局。

# lvs -a -o name,copy_percent,devices my_vg
  LV               Copy%  Devices
  my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
  [my_lv_rimage_0]        /dev/sde1(1)
  [my_lv_rimage_1]        /dev/sdf1(1)
  [my_lv_rimage_2]        /dev/sdg1(1)
  [my_lv_rmeta_0]         /dev/sde1(0)
  [my_lv_rmeta_1]         /dev/sdf1(0)
  [my_lv_rmeta_2]         /dev/sdg1(0)

下面的命令可将三向 RAID1 逻辑卷转换成双向 RAID1 逻辑卷。

# lvconvert -m1 my_vg/my_lv
# lvs -a -o name,copy_percent,devices my_vg
  LV               Copy%  Devices
  my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
  [my_lv_rimage_0]        /dev/sde1(1)
  [my_lv_rimage_1]        /dev/sdf1(1)
  [my_lv_rmeta_0]         /dev/sde1(0)
  [my_lv_rmeta_1]         /dev/sdf1(0)

下面的命令可将三向 RAID1 逻辑卷转换成双向 RAID1 逻辑卷,并指定包含镜像的物理卷作为 /dev/sde1

# lvconvert -m1 my_vg/my_lv /dev/sde1
# lvs -a -o name,copy_percent,devices my_vg
  LV               Copy%  Devices
  my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
  [my_lv_rimage_0]        /dev/sdf1(1)
  [my_lv_rimage_1]        /dev/sdg1(1)
  [my_lv_rmeta_0]         /dev/sdf1(0)
  [my_lv_rmeta_1]         /dev/sdg1(0)