Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.4. 論理ボリュームからディスクを削除する

この手順例では、ディスクを交換するか、別のボリュームで使用するために、既存の論理ボリュームからディスクを削除する方法を示しています。ディスクを削除する前に、LVM 物理ボリュームのエクステントを、別のディスクまたはディスクセットに移動する必要があります。

5.4.1. 既存の物理ボリュームへのエクステントの移動

この例では、論理ボリュームが、ボリュームグループ myvg の 4 つの物理ボリュームに分散されています。
# pvs -o+pv_used
  PV         VG   Fmt  Attr PSize  PFree  Used
  /dev/sda1  myvg lvm2 a-   17.15G 12.15G  5.00G
  /dev/sdb1  myvg lvm2 a-   17.15G 12.15G  5.00G
  /dev/sdc1  myvg lvm2 a-   17.15G 12.15G  5.00G
  /dev/sdd1  myvg lvm2 a-   17.15G  2.15G 15.00G
この例では、エクステントを /dev/sdb1 から移動し、ボリュームグループから削除できるようにします。
  1. ボリュームグループ内の他の物理ボリュームに空きエクステントが十分にある場合は、他のオプションを指定せずに、削除するデバイスで pvmove コマンドを実行すると、エクステントが他のデバイスに分配されます。
    # pvmove /dev/sdb1
      /dev/sdb1: Moved: 2.0%
     ...
      /dev/sdb1: Moved: 79.2%
     ...
      /dev/sdb1: Moved: 100.0%
    
    pvmove コマンドの実行が終了すると、エクステントの分散は以下のようになります。
    # pvs -o+pv_used
      PV         VG   Fmt  Attr PSize  PFree  Used
      /dev/sda1  myvg lvm2 a-   17.15G  7.15G 10.00G
      /dev/sdb1  myvg lvm2 a-   17.15G 17.15G     0
      /dev/sdc1  myvg lvm2 a-   17.15G 12.15G  5.00G
      /dev/sdd1  myvg lvm2 a-   17.15G  2.15G 15.00G
    
  2. vgreduce コマンドを使用して、ボリュームグループから物理ボリューム /dev/sdb1 を削除します。
    # vgreduce myvg /dev/sdb1
      Removed "/dev/sdb1" from volume group "myvg"
    # pvs
      PV         VG   Fmt  Attr PSize  PFree
      /dev/sda1  myvg lvm2 a-   17.15G  7.15G
      /dev/sdb1       lvm2 --   17.15G 17.15G
      /dev/sdc1  myvg lvm2 a-   17.15G 12.15G
      /dev/sdd1  myvg lvm2 a-   17.15G  2.15G
    
これでディスクは物理的に削除できるようになり、他のユーザーに割り当てることも可能になります。

5.4.2. 新規ディスクへのエクステントの移動

この例では、以下のように、ボリュームグループ myvg の 3 つの物理ボリュームに、論理ボリュームが分散されています。
# pvs -o+pv_used
  PV         VG   Fmt  Attr PSize  PFree  Used
  /dev/sda1  myvg lvm2 a-   17.15G  7.15G 10.00G
  /dev/sdb1  myvg lvm2 a-   17.15G 15.15G  2.00G
  /dev/sdc1  myvg lvm2 a-   17.15G 15.15G  2.00G
以下の手順では、/dev/sdb1 のエクステントを、新しいデバイス /dev/sdd1 に移動します。
  1. /dev/sdd1 から、物理ボリュームを新規作成します。
    # pvcreate /dev/sdd1
      Physical volume "/dev/sdd1" successfully created
    
  2. 新しい物理ボリューム /dev/sdd1 を既存のボリュームグループ myvg に追加します。
    # vgextend myvg /dev/sdd1
      Volume group "myvg" successfully extended
    # pvs -o+pv_used
      PV         VG   Fmt  Attr PSize  PFree  Used
      /dev/sda1   myvg lvm2 a-   17.15G  7.15G 10.00G
      /dev/sdb1   myvg lvm2 a-   17.15G 15.15G  2.00G
      /dev/sdc1   myvg lvm2 a-   17.15G 15.15G  2.00G
      /dev/sdd1   myvg lvm2 a-   17.15G 17.15G     0
    
  3. pvmove コマンドを使用して、データを /dev/sdb1 から /dev/sdd1 に移動します。
    # pvmove /dev/sdb1 /dev/sdd1
      /dev/sdb1: Moved: 10.0%
    ...
      /dev/sdb1: Moved: 79.7%
    ...
      /dev/sdb1: Moved: 100.0%
    
    # pvs -o+pv_used
      PV          VG   Fmt  Attr PSize  PFree  Used
      /dev/sda1   myvg lvm2 a-   17.15G  7.15G 10.00G
      /dev/sdb1   myvg lvm2 a-   17.15G 17.15G     0
      /dev/sdc1   myvg lvm2 a-   17.15G 15.15G  2.00G
      /dev/sdd1   myvg lvm2 a-   17.15G 15.15G  2.00G
    
  4. データを /dev/sdb1 から移動したら、ボリュームグループから削除できます。
    # vgreduce myvg /dev/sdb1
      Removed "/dev/sdb1" from volume group "myvg"
    
これで、このディスクを別のボリュームグループに再度割り当てたり、システムから削除できるようになりました。