Posted at

新しいHDDを追加して既存LVM領域を拡張する手順メモ


要件

元々20GBだったTargetHostサーバに、新しいHDD30GBを追加したい。


手順メモ


HDDの追加

今回はESXi上の仮想マシンだったため、Vsphereで新しいHDDを論理的に追加しました。

物理サーバーだったら、内蔵ディスクを増設したり、外付けHDDを追加接続するイメージです。


HDDがOSからどう認識されているか確認

[root@TargetHost dev]# fdisk -l


ディスク /dev/sda: 21.5 GB, 21474836480 バイト
ヘッド 64, セクタ 32, シリンダ 20480
Units = シリンダ数 of 2048 * 512 = 1048576 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000c12df

デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2 501 512000 83 Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 502 20480 20458496 8e Linux LVM
パーティション 2 は、シリンダ境界で終わっていません。

ディスク /dev/mapper/vg_centos6target-lv_root: 18.8 GB, 18798870528 バイト
ヘッド 255, セクタ 63, シリンダ 2285
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/mapper/vg_centos6target-lv_swap: 2147 MB, 2147483648 バイト
ヘッド 255, セクタ 63, シリンダ 261
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/sdb: 32.2 GB, 32212254720 バイト
ヘッド 64, セクタ 32, シリンダ 30720
Units = シリンダ数 of 2048 * 512 = 1048576 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

新しく追加したHDDが、sdbとして認識されていることがわかります。


新しいHDD上にPVを作成

[root@TargetHost dev]# pvcreate /dev/sdb

Physical volume "/dev/sdb" successfully created


拡張したいLVが含まれるVGに新しいPVを追加

以下は既存のVG vg_targethostserver にPV /dev/sdb を追加する場合の実行例。

既存VGの確認は、もう一つ下の手順参照。

[root@TargetHost ~]# vgextend vg_targethostserver /dev/sdb

Volume group "vg_targethostserver" successfully extended


VGの確認

vgdisplay を実行し実行結果の--- Physical volumes ---の部分を見ることで、新しいPVが追加されたことを確認できます。

[root@TargetHost ~]# vgdisplay -v

Finding all volume groups
Finding volume group "vg_targethostserver"
--- Volume group ---
VG Name vg_targethostserver
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 49.50 GiB
PE Size 4.00 MiB
Total PE 12673
Alloc PE / Size 4994 / 19.51 GiB
Free PE / Size 7679 / 30.00 GiB
VG UUID uwLcTX-A3qe-u6As-kB1r-GniV-maUj-sLydnk

--- Logical volume ---
LV Path /dev/vg_targethostserver/lv_root
LV Name lv_root
VG Name vg_targethostserver
LV UUID 3MPIJd-2MHJ-hH1N-U0e2-b2Jh-6AlV-hAsRQO
LV Write Access read/write
LV Creation host, time centos6target, 2014-05-09 04:52:58 +0900
LV Status available
# open 1
LV Size 17.51 GiB
Current LE 4482
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

--- Logical volume ---
LV Path /dev/vg_targethostserver/lv_swap
LV Name lv_swap
VG Name vg_targethostserver
LV UUID he2HLI-lCSO-XgZL-yM0u-prON-CvxS-ngmqYP
LV Write Access read/write
LV Creation host, time centos6target, 2014-05-09 04:53:06 +0900
LV Status available
# open 1
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1

--- Physical volumes ---
PV Name /dev/sda2
PV UUID nQnUoY-pxQV-sOL2-Wf1D-vDbg-cAAb-W5hYUH
PV Status allocatable
Total PE / Free PE 4994 / 0

PV Name /dev/sdb
PV UUID HoxWHo-urf3-Djea-dhUB-Y3Ht-cdqe-7BsAsT
PV Status allocatable
Total PE / Free PE 7679 / 7679


LVの拡張

lvextendを実行することで、拡張されたVGの未使用領域をLVに追加できます。

以下はVG上の未使用領域のすべてをLVに追加する場合の実行例となります。

[root@TargetHost ~]# lvextend -l +100%FREE /dev/vg_targethostserver/lv_root

Extending logical volume lv_root to 47.50 GiB
Logical volume lv_root successfully resized


ファイルシステムの拡張

LVを拡張してもファイルシステムは以前の大きさのままなので、最後にファイルシステムの拡張も行う必要があります。

ext3/ext4の場合はresize2fsを実行します。

xfsの場合はxfs_growfsを実行します。CentOS7系だと基本的にはxfsだと思います。

なおこの処理は数分かかる場合もあります。

[root@TargetHost ~]# resize2fs /dev/vg_targethostserver/lv_root

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_targethostserver/lv_root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 3
Performing an on-line resize of /dev/vg_targethostserver/lv_root to 12452864 (4k) blocks.
The filesystem on /dev/vg_targethostserver/lv_root is now 12452864 blocks long.

処理完了後、dfコマンドでファイルシステムが拡張されたことを確認します。

[root@TargetHost ~]# df -h

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_targethostserver-lv_root
47G 1.5G 43G 4% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 485M 75M 385M 17% /boot

以上です!