Red Hat Training

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

4.4.9. ストライプ化ボリュームの拡大化

ストライプ化論理ボリュームのサイズを拡大するためには、ボリュームグループを構成している 物理ボリュームに、ストライプをサポートする為の十分な空き領域がなければなりません。例えば、 ボリュームグループ全域を使用してしまう2方向ストライプがある場合、ボリュームグループに 1つの物理ボリュームを追加しただけでは、ストライプの拡大にはなりません。その為には、 少なくとも2つの物理ボリュームをボリュームグループに追加する必要があります。
例えば、以下の vgs コマンドで表示される2つの背後にある物理 ボリュームから構成されるボリュームグループ vg を考えてみます。
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     2   0   0 wz--n- 271.31G 271.31G
ボリュームグループの全ての領域を使用してストライプを作成することができます。
# lvcreate -n stripe1 -L 271.31G -i 2 vg
  Using default stripesize 64.00 KB
  Rounding up size to full physical extent 271.31 GB
  Logical volume "stripe1" created
# lvs -a -o +devices
  LV      VG   Attr   LSize   Origin Snap%  Move Log Copy%  Devices
  stripe1 vg   -wi-a- 271.31G                               /dev/sda1(0),/dev/sdb1(0)
ボリュームグループには、空き領域がなくなったことに注意してください。
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     2   1   0 wz--n- 271.31G    0
以下のコマンドは、ボリュームグループにもう1つの物理ボリュームを追加し、これが 135G の追加領域を与えます。
# vgextend vg /dev/sdc1
  Volume group "vg" successfully extended
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     3   1   0 wz--n- 406.97G 135.66G
この時点では、ストライプ化論理ボリュームをボリュームグループの全サイズまで 拡大することは出来ません。データをストライプ化するのに背後にあるデバイスが 2つ必要です。
# lvextend vg/stripe1 -L 406G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 406.00 GB
  Insufficient suitable allocatable extents for logical volume stripe1: 34480 
more required
ストライプ化論理ボリュームを拡大するには、もう1つの物理ボリュームを追加して、それで論理ボリュームを拡大します。この例では、ボリュームグループに2つの物理 ボリュームを追加することにより、論理ボリューム 5A をボリュームグループの全サイズまで 拡大できるようになっています。
# vgextend vg /dev/sdd1
  Volume group "vg" successfully extended
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     4   1   0 wz--n- 542.62G 271.31G
# lvextend vg/stripe1 -L 542G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 542.00 GB
  Logical volume stripe1 successfully resized
ストライプ化論理ボリュームを拡張するのに十分な背後の物理デバイスがない場合でも、 その拡張部分がストライプでなくても良い場合には、ボリュームの拡張はとにかく可能です。但しこれは不均一なパフォーマンスになる可能性があります。論理ボリュームに領域を追加している時、 デフォルトの動作は既存論理ボリュームの最後のセグメントと同じストライプパラメータを使用することですが、これらのパラメータは書き換えることができます。以下の例では、初期の lvextend コマンドが失敗した後に、既存のストライプ化論理ボリュームを拡張して残りの空き領域を使用するようにしています。
# lvextend vg/stripe1 -L 406G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 406.00 GB
  Insufficient suitable allocatable extents for logical volume stripe1: 34480 
more required
# lvextend -i1 -l+100%FREE vg/stripe1