Red Hat Training

A Red Hat training course is available for RHEL 8

68.7.12. 既存の RAID1 デバイスのイメージ数を変更

既存の RAID1 アレイ内のイメージ数は、LVM ミラーリングの初期実装でイメージ数を変更する場合と同様に変更できます。lvconvert コマンドを使用して、追加または削除するメタデータ/データサブボリュームのペアの数を指定します。

lvconvert コマンドを使用して RAID1 デバイスにイメージを追加する際、追加後のイメージ数を指定するか、デバイスに追加するイメージ数を指定できます。メタデータ/データイメージのペアを置く物理ボリュームを指定することもできます。

メタデータサブボリューム (rmeta と呼ばれる) は、対応するデータサブボリューム (rimage) と同じ物理デバイスに常に存在します。メタデータ/データのサブボリュームのペアは、--alloc anywhere を指定しない限り、RAID アレイにある別のメタデータ/データサブボリュームのペアと同じ物理ボリュームには作成されません。

RAID1 ボリュームにイメージを追加するコマンドの形式は、以下のとおりです。

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

たとえば、以下のコマンドは、2 方向の RAID1 アレイである LVM デバイス 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_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)

以下のコマンドは、2 方向の RAID1 デバイス my_vg/my_lv を、3 方向の 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 アレイに追加する場合は、イメージに使用する物理ボリュームを指定できます。以下のコマンドは、2 方向の RAID1 デバイス my_vg/my_lv を、3 方向の 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_1、および lv_rimage_2 で構成される 3 方向の RAID1 アレイから lv_rimage_1 を削除すると、RAID1 アレイを構成するイメージの名前は lv_rimage_0lv_rimage_1 になります 。サブボリューム lv_rimage_2 の名前が、空のスロットを引き継いで lv_rimage_1 になります。

以下の例は、3 方向の 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)

以下のコマンドは、3 方向の RAID1 論理ボリュームを、2 方向の 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)

以下のコマンドは、3 方向の RAID1 論理ボリュームを、2 方向の 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)