Extend VM volume size wothout rebooting VM
- ディスクを追加してVM再起動なしに認識させる方法( echo "- - -" > /sys/class/scsi_host/host#/scan あたり)も紹介されてますが、既存のディスクを拡張する方法が簡単そうなのでこちらを選択。LVM に足すのでね…
Before
# fdisk -l /dev/sdc
ディスク /dev/sdc: 15 GiB, 16106127360 バイト, 31457280 セクタ
ディスク型式: Virtual disk
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x4eb35aa3
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/sdc1 2048 10485759 10483712 5G 8e Linux LVM
vSphere 側で既存のハードディスクを拡張
Rescan
# echo 1 > /sys/block/sdc/device/rescan
After
# fdisk -l /dev/sdc
ディスク /dev/sdc: 30 GiB, 32212254720 バイト, 62914560 セクタ
ディスク型式: Virtual disk
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x4eb35aa3
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/sdc1 2048 10485759 10483712 5G 8e Linux LVM
fdisk で拡張後
# fdisk -l /dev/sdc
ディスク /dev/sdc: 30 GiB, 32212254720 バイト, 62914560 セクタ
ディスク型式: Virtual disk
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x4eb35aa3
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/sdc1 2048 10485759 10483712 5G 8e Linux LVM
/dev/sdc2 10485760 62914559 52428800 25G 8e Linux LVM
ついで (LVM 拡張)
# vgs
VG #PV #LV #SN Attr VSize VFree
rl 4 5 0 wz--n- <49.40g 0
# pvcreate /dev/sdc2
Physical volume "/dev/sdc2" successfully created.
# vgextend rl /dev/sdc2
Volume group "rl" successfully extended
# vgs
VG #PV #LV #SN Attr VSize VFree
rl 5 5 0 wz--n- 74.39g <25.00g
# df -hT /docker-data
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
/dev/mapper/rl-docker--vol1 xfs 5.0G 2.8G 2.3G 55% /docker-data
# lvextend -L +5G /dev/rl/docker-vol1
# xfs_growfs /dev/mapper/rl-docker--vol1
# df -hT /docker-data
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
/dev/mapper/rl-docker--vol1 xfs 10G 2.8G 7.2G 28% /docker-data