LVMの論理ボリュームのオンライン拡張
ファイルサーバーとして運用しているサーバーでは、LVMを利用し動的に容量拡張ができるようにしています。今回、ファイルサーバーの空き容量がなくなったため、論理ボリュームをオンライン*1で拡張してみました。その時のメモ。
環境
- Debian GNU/Linux 5.0/amd64
- LVM環境
- PV: /dev/sdb
- VG名: vg01
- LV名: lv01
- ファイルシステム: xfs
- 新規追加ディスク: /dev/sdc
現状確認
df
# df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/sda3 9.2G 446M 8.3G 5% / tmpfs 250M 0 250M 0% /lib/init/rw udev 10M 620K 9.4M 7% /dev tmpfs 250M 0 250M 0% /dev/shm /dev/sda1 122M 22M 94M 19% /boot /dev/sda7 17G 173M 16G 2% /home /dev/sda5 7.4G 559M 6.5G 8% /usr /dev/sda6 1.9G 39M 1.8G 3% /var/log /dev/mapper/vg01-lv01 1.0T 1018G 6.3G 100% /data
今回は/dev/mapper/vg01-lv01となっている論理ボリュームを拡張します。
PVの状況
# pvdisplay --- Physical volume --- PV Name /dev/sdb VG Name vg01 PV Size 1.00 TB / not usable 32.00 MB Allocatable yes (but full) PE Size (KByte) 32768 Total PE 32767 Free PE 0 Allocated PE 32767 PV UUID (UUID値)
本サーバーでは、現在のところLVMのPVは/dev/sdbだけの状態です。
VGの状況
# vgdisplay --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 1023.97 GB PE Size 32.00 MB Total PE 32767 Alloc PE / Size 32767 / 1023.97 GB Free PE / Size 0 / 0 VG UUID (UUID値)
今回はこのボリュームグループvg01へ物理ボリュームを追加します。
LVの状況
# lvdisplay --- Logical volume --- LV Name /dev/vg01/lv01 VG Name vg01 LV UUID (UUID値) LV Write Access read/write LV Status available # open 1 LV Size 1023.97 GB Current LE 32767 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0
vg01へPVを追加後、この論理ボリュームlv01を拡張します。
実際に拡張する
1. /dev/sdcをPVに追加する
以下のコマンドを実行することで/dev/sdcがPVへ追加されます。
# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created
正しく追加されているか確認します。
# pvdisplay --- Physical volume --- PV Name /dev/sdb VG Name vg01 PV Size 1.00 TB / not usable 32.00 MB Allocatable yes (but full) PE Size (KByte) 32768 Total PE 32767 Free PE 0 Allocated PE 32767 PV UUID (UUID値) "/dev/sdc" is a new physical volume of "750.00 GB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 750.00 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID (UUID値)
先ほどまではなかった/dev/sdcが表示されており、正しくPVへ追加されていることが確認できます。
2. PV /dev/sdcを既存VG vg01へ追加する
以下のコマンドでPV /dev/sdcを既存VG vg01へ追加します。
# vgextend vg01 /dev/sdc Volume group "vg01" successfully extended
確認してみます。
# vgdisplay --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.73 TB PE Size 32.00 MB Total PE 56766 Alloc PE / Size 32767 / 1023.97 GB Free PE / Size 23999 / 749.97 GB VG UUID (UUID値)
VG sizeの容量が増え、また、未割り当てのPE数が増えていることが確認できます。
3. 既存LV lv01を拡張する
以下のコマンドで既存論理ボリュームlv01を拡張します。今回はすべてのPEをlv01へ割り当てるため、+100%FREEとしています。
# lvextend -l +100%FREE /dev/vg01/lv01 Extending logical volume lv01 to 1.73 TB Logical volume lv01 successfully resized
確認してみます。
# lvdisplay --- Logical volume --- LV Name /dev/vg01/lv01 VG Name vg01 LV UUID (UUID値) LV Write Access read/write LV Status available # open 1 LV Size 1.73 TB Current LE 56766 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0
LVのサイズが正しく拡張されていることが確認できます。
4. ファイルシステムを拡張する
論理ボリュームは拡張されましたが、その中に格納されているファイルシステムは拡張前の容量として扱われていますので、拡張後の容量を扱えるようにする必要があります。
私の環境ではファイルシステムとしてxfsを利用していますのでxfs_growfsコマンドを実行します。ext3などのファイルシステムを利用している場合は、そのファイルシステム用のコマンドを実行してください。
# xfs_growfs /data(マウントポイントを指定します)
meta-data=/dev/mapper/vg01-lv01 isize=256 agcount=4, agsize=67106816 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=268427264, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096
log =internal bsize=4096 blocks=32768, version=2
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 268427264 to 465027072
確認してみます。
# df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/sda3 9.2G 446M 8.3G 5% / tmpfs 250M 0 250M 0% /lib/init/rw udev 10M 628K 9.4M 7% /dev tmpfs 250M 0 250M 0% /dev/shm /dev/sda1 122M 22M 94M 19% /boot /dev/sda7 17G 173M 16G 2% /home /dev/sda5 7.4G 559M 6.5G 8% /usr /dev/sda6 1.9G 39M 1.8G 3% /var/log /dev/mapper/vg01-lv01 1.8T 1018G 757G 58% /data
正しく拡張されていることが確認できました。