BLOGTIMES
2022/07/25

LVM + ext4 のディスクをオンラインのまま拡張する

  lvm 
このエントリーをはてなブックマークに追加

LVM + ext4 でできている VM のディスク拡張をオンライン(電源を切らずに)のままでやってみました。
たまにやる作業ですが、いつも手順があやふやになるのでメモを残しておきます。

パーティションの拡張

まずは lsblkfdisk を使って対象となるディスク(今回は /dev/sda)を確認。
ディスクは 120GB で、パーティションが lvm であることが分かります。

[root@host /]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 120G 0 disk ├sda1 8:1 0 1G 0 part /boot └sda2 8:2 0 119G 0 part ├centos-root 253:0 0 111.1G 0 lvm / └centos-swap 253:1 0 7.9G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom [root@host /]# fdisk -l /dev/sda Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0x000a5cf4 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 251658239 124779520 8e Linux LVM Disk /dev/mapper/centos-root: 119.3 GB, 119311171584 bytes, 233029632 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

次にディスクのサイズを拡張 120GB → 250GB します。
今回は VMWare なので、管理画面からディスクのサイズを拡張するだけです。

そのままではディスクサイズが拡張されたことを OS が認識できないため、OS にデバイス(sda)を再スキャンさせます。
再スキャン後、fdisk でディスクが拡張されていることを確認します。

[root@host /]# echo 1 > /sys/class/block/sda/device/rescan [root@host /]# fdisk -l /dev/sda Disk /dev/sda: 268.4 GB, 268435456000 bytes, 524288000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0x000a5cf4 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 251658239 124779520 8e Linux LVM

ディスクが拡張されていることを確認できたらgrowpart を使ってパーティションを拡張します。
growpart については以前、btrfs のパーティションの拡張にも使いましたが、今回もこれで /dev/sda2 を拡張しています。

[root@host /]# growpart /dev/sda 2 CHANGED: partition=2 start=2099200 old: size=249559040 end=251658240 new: size=522188767 end=524287967 [root@host /]# fdisk -l /dev/sda Disk /dev/sda: 268.4 GB, 268435456000 bytes, 524288000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0x000a5cf4 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 524287966 261094383+ 8e Linux LVM

LVM による Physical volume (PV), Logical volume (LV) の拡張

今回は LVM なので、pvresize で PV を拡張して、その後 lvextend で LV を拡張するという流れになります。

まずは、PV の拡張から実施していきます。
ちなみに PV を拡張すると、VG の Free PE が増えているのが分かります。

[root@host /]# pvdisplay /dev/sda2 --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <119.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 30463 Free PE 1 Allocated PE 30462 PV UUID 4SsX9l-ndF3-uQCB-FP1J-AlZ5-qNgl-3VZMCV [root@host /]# pvresize /dev/sda2 Physical volume "/dev/sda2" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized [root@host /]# pvdisplay /dev/sda2 --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <249.00 GiB / not usable 1.98 MiB Allocatable yes PE Size 4.00 MiB Total PE 63743 Free PE 33281 Allocated PE 30462 PV UUID 4SsX9l-ndF3-uQCB-FP1J-AlZ5-qNgl-3VZMCV [root@host /]# vgdisplay centos --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size <249.00 GiB PE Size 4.00 MiB Total PE 63743 Alloc PE / Size 30462 / 118.99 GiB Free PE / Size 33281 / 130.00 GiB VG UUID 15g2No-rxm0-AX6z-K7Q4-elyI-Kng7-hTO2lu

続いて、LV の拡張を行います。

[root@host /]# lvdisplay /dev/mapper/centos-root --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID tuI9Fw-bTn4-wQwf-de9K-gT1V-xovm-lu3MDR LV Write Access read/write LV Creation host, time host.example.jp, 2019-01-18 21:30:07 +0900 LV Status available # open 1 LV Size <111.12 GiB Current LE 28446 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [root@host /]# lvextend -l +100%FREE /dev/mapper/centos-root Size of logical volume centos/root changed from <111.12 GiB (28446 extents) to 241.12 GiB (61727 extents). Logical volume centos/root successfully resized. [root@host /]# lvdisplay /dev/mapper/centos-root --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID tuI9Fw-bTn4-wQwf-de9K-gT1V-xovm-lu3MDR LV Write Access read/write LV Creation host, time host.example.jp, 2019-01-18 21:30:07 +0900 LV Status available # open 1 LV Size 241.12 GiB Current LE 61727 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0

ファイルシステム (FS) の拡張

最後に FS にパーティションが広がったことを認識させます。
今回の FS は ext4 なので、resize2fs を使います。

[root@host /]# resize2fs /dev/mapper/centos-root resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mapper/centos-root is mounted on /; on-line resizing required old_desc_blocks = 14, new_desc_blocks = 31 The filesystem on /dev/mapper/centos-root is now 63208448 blocks long.

ちょっと煩雑ですが、落ち着いてやれば特に問題なくできるはずです。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/13377
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン