vSphere 環境で既存のディスクを LVM で拡張する
vSphere 上に作成した Linux 仮想マシンで LVM を構成している際に、既存のディスクサイズを LVM で拡張する手順をメモしておきます。
仮想マシンのスナップショットを削除し、ディスクサイズを拡張する¶
仮想マシン上に vSphere のスナップショットが残っているとディスクサイズを変更することが出来ません。 スナップショットが残っている場合は削除します。 削除後は vSphere の管理画面からディスクサイズを変更します。 今回は 50GB → 100GB へ変更しました。
作業前のパーティション情報確認¶
事前に parted -l
を実行してパーティション情報を確認します。 LVM が設定されていることが分かります。
$ parted -l
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 2150MB 2147MB ext4
3 2150MB 53.7GB 51.5GB
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 51.5GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 51.5GB 51.5GB ext4
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0
has been opened read-only.
Error: /dev/sr0: unrecognised disk label
Model: NECVMWar VMware SATA CD00 (scsi)
Disk /dev/sr0: 1475MB
Sector size (logical/physical): 2048B/2048B
Partition Table: unknown
Disk Flags:
ゲスト OS 側で設定反映¶
rescan
にフラグを立て、「ディスクサイズを変更したこと」を OS に通知します。 今回は最初のディスク (/dev/sda
) のサイズを変更した為、以下のように実行します。
echo 1 > /sys/class/block/sda/device/rescan
パーティション情報を変更する¶
parted /dev/sda
を実行してサイズ拡張した部分をパーティションとして認識させます。
$ parted /dev/sda
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
print free
を実行してパーティション情報を確認します。 すると vSphere 上で追加したディスクが空き領域 (Free Space
) として認識されていることが分かります。
(parted) print free
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 2150MB 2147MB ext4
3 2150MB 53.7GB 51.5GB
53.7GB 107GB 53.7GB Free Space
resizepart 3
を実行して既存のパーティション 3 番を拡張します。
(parted) resizepart 3
End? [53.7GB]? 100%
これで 3 番目のパーティションが拡張されました。
(parted) print free
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 2150MB 2147MB ext4
3 2150MB 107GB 105GB
LVM で物理ボリュームを拡張する¶
実際に LVM で物理ボリュームを拡張する前に pvdisplay
を実行して事前の状態を確認しておきます。
$ pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name ubuntu-vg
PV Size <48.00 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 12287
Free PE 0
Allocated PE 12287
PV UUID 3ztRYL-Ggxk-4oyQ-a2eo-0HQB-WELb-zqXMQY
pvresize /dev/sda3
を実行して物理ボリュームを拡張します。
$ pvresize /dev/sda3
Physical volume "/dev/sda3" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
再度、pvdisplay
を実行すると物理ボリュームが拡張されていることが分かります。
$ pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name ubuntu-vg
PV Size <98.00 GiB / not usable 16.50 KiB
Allocatable yes
PE Size 4.00 MiB
Total PE 25087
Free PE 12800
Allocated PE 12287
PV UUID 3ztRYL-Ggxk-4oyQ-a2eo-0HQB-WELb-zqXMQY
LVM で論理ボリュームを拡張する¶
実際に LVM で論理ボリュームを拡張する前に lvdisplay
を実行して事前の状態を確認しておきます。
$ lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID bc3OSr-cKD7-hhRB-3gAW-pB05-datM-cdPSXF
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-01-18 13:56:50 +0900
LV Status available
# open 1
LV Size <48.00 GiB
Current LE 12287
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
lvextend
を実行して論理ボリュームのサイズを拡張します。
$ lvextend --resizefs -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <48.00 GiB (12287 extents) to <98.00 GiB (25087 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 6, new_desc_blocks = 13
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 25689088 (4k) blocks long.
再度、lvdisplay
を実行すると物理ボリュームが拡張されていることが分かります。
$ lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID bc3OSr-cKD7-hhRB-3gAW-pB05-datM-cdPSXF
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-01-18 13:56:50 +0900
LV Status available
# open 1
LV Size <98.00 GiB
Current LE 25087
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
ディスクの空き容量が増えたことを確認する¶
df
を実行して空き容量が増えていることを確認します。
$ df -h /dev/mapper/ubuntu--vg-ubuntu--lv
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 97G 45G 48G 49% /