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