LVM, Logical Volume Manager(論理ボリュームマネージャ)は、UNIX 系 OS で利用できる機能で、複数の外部記憶装置(ストレージ)やその内部のパーティションをまとめ、単一の記憶領域として利用する機能です。
LVM を利用するにはストレージ内に専用のパーティション(区画)を設けます。パーティション内部は数 MB 単位の PE (Physical Extent) と呼ばれる管理単位に分割され、これを必要なだけ結合して単一の論理ボリューム (LV:Logical Volume) を構成します。
64GB のストレージを搭載した格安ノート PC、HP Stream 11-ak0006TU に Fedora Silverblue をインストール後、128GB の SD カードを挿入し、LVM を利用してシステムのストレージ領域を拡張した事例をまとめました。
本ブログ記事では下記の OS 環境で動作確認をしています。
Fedora Silverblue 32 | x86_64 |
LVM によるストレージ領域の拡張
RHEL/CentOS や Fedora といった RedHat 系 Linux ディストロのインストーラは、デフォルトでストレージのパーティションを LVM で設定します。
インストール先のストレージ (eMMC 64GB) を指定して、地域設定やアカウントの設定以外はデフォルトの設定のままで Fedora Silverblue をインストールしました。ストレージの使用状況は下記のようになっています。
[bitwalk@silverblue ~]$ df -hT ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 9.8M 1.9G 1% /run /dev/mapper/fedora-root ext4 36G 12G 22G 35% /sysroot tmpfs tmpfs 1.9G 100K 1.9G 1% /tmp /dev/mmcblk0p1 ext4 976M 87M 823M 10% /boot /dev/mapper/fedora-home ext4 18G 9.1G 7.3G 56% /var/home tmpfs tmpfs 375M 80K 375M 1% /run/user/1000 /dev/sdb1 exfat 120G 384K 120G 1% /run/media/bitwalk/6261-3733 [bitwalk@silverblue ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 1 119.1G 0 disk └─sdb1 8:17 1 119.1G 0 part /run/media/bitwalk/6261-3733 mmcblk0 179:0 0 58.2G 0 disk ├─mmcblk0p1 179:1 0 1G 0 part /boot └─mmcblk0p2 179:2 0 57.2G 0 part ├─fedora-root 253:0 0 35.9G 0 lvm /sysroot ├─fedora-swap 253:1 0 3.8G 0 lvm [SWAP] └─fedora-home 253:2 0 17.5G 0 lvm /var/home mmcblk0boot0 179:8 0 4M 1 disk mmcblk0boot1 179:16 0 4M 1 disk [bitwalk@silverblue ~]$
35.9GB が /sysroot(ルート)、3.8GB がスワップ領域、17.5GB が /var/home に、LVM 論理ボリュームとして割り当てられています。
なお、/run/media/bitwalk/6261-3733 にマウントされているデバイス sdb1 は 128GB の SD カードです。
ボリュームグループ確認
vgdisplay でストレージのボリュームグループを確認すると以下のようになっています。
[bitwalk@silverblue ~]$ sudo vgdisplay [sudo] bitwalk のパスワード: --- Volume group --- VG Name fedora System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size <57.24 GiB PE Size 4.00 MiB Total PE 14653 Alloc PE / Size 14653 / <57.24 GiB Free PE / Size 0 / 0 VG UUID UzO3BF-rU8R-miSu-K83x-Bboe-e9eA-waJxGG [bitwalk@silverblue ~]$
ボリュームグループ fedora が存在しています。
lvdisplay コマンドで論理ボリュームを確認すると以下のようになっています。
[bitwalk@silverblue ~]$ sudo lvdisplay --- Logical volume --- LV Path /dev/fedora/swap LV Name swap VG Name fedora LV UUID soDMwj-gan5-Oyey-kcXm-AQ58-jvDY-bBvIhJ LV Write Access read/write LV Creation host, time localhost, 2020-07-16 09:11:41 +0900 LV Status available # open 2 LV Size 3.78 GiB Current LE 968 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 --- Logical volume --- LV Path /dev/fedora/home LV Name home VG Name fedora LV UUID OQBoON-FiAw-tMIp-SkXT-bnCl-QBVg-qnFvFn LV Write Access read/write LV Creation host, time localhost, 2020-07-16 09:11:41 +0900 LV Status available # open 1 LV Size <17.54 GiB Current LE 4489 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2 --- Logical volume --- LV Path /dev/fedora/root LV Name root VG Name fedora LV UUID OAc3FJ-wAna-XOJt-HI3r-v5bf-huTT-WvT2NN LV Write Access read/write LV Creation host, time localhost, 2020-07-16 09:11:43 +0900 LV Status available # open 1 LV Size 35.92 GiB Current LE 9196 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 [bitwalk@silverblue ~]$
ボリュームグループ fedora に、3つの論理ボリューム swap, home そして root が割り当てられています。
SD カードをボリュームグループに追加
SD カード /dev/sdb1 をアンマウントして ext4 形式のファイルシステムにフォーマットします。
[bitwalk@silverblue ~]$ umount /dev/sdb1 [bitwalk@silverblue ~]$ sudo mkfs.ext4 /dev/sdb1 mke2fs 1.45.5 (07-Jan-2020) /dev/sdb1 contains a exfat file system Proceed anyway? (y,N) y Creating filesystem with 31216896 4k blocks and 7806976 inodes Filesystem UUID: c304b291-26c4-4fc0-b87f-9944fd0a8a05 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done [bitwalk@silverblue ~]$
vgextend コマンドで、ボリュームグループ fedora に SD カード /dev/sdb1 を追加して、ボリュームグループの領域を拡張します。
[bitwalk@silverblue ~]$ sudo vgextend fedora /dev/sdb1 WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sdb1. Physical volume "/dev/sdb1" successfully created. Volume group "fedora" successfully extended [bitwalk@silverblue ~]$
vgdisplay コマンドで、ボリュームグループ fedora にフリーな領域が増えていることを確認します。
[bitwalk@silverblue ~]$ sudo vgdisplay --- Volume group --- VG Name fedora System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 2 Act PV 2 VG Size 176.32 GiB PE Size 4.00 MiB Total PE 45138 Alloc PE / Size 14653 / <57.24 GiB Free PE / Size 30485 / 119.08 GiB VG UUID UzO3BF-rU8R-miSu-K83x-Bboe-e9eA-waJxGG [bitwalk@silverblue ~]$
論理ボリュームの拡張
論理ボリューム /dev/fedora/home に、ボリュームグループ fedora に追加したフリーな領域を全て割り当てます。
[bitwalk@silverblue ~]$ sudo lvextend -l +100%FREE /dev/fedora/home
Size of logical volume fedora/home changed from <17.54 GiB (4489 extents) to <136.62 GiB (34974 extents).
Logical volume fedora/home successfully resized.
[bitwalk@silverblue ~]$
df で確認すると、まだ /dev/fedora/home の領域は増えていません。
[bitwalk@silverblue ~]$ df -hT ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 9.7M 1.9G 1% /run /dev/mapper/fedora-root ext4 36G 12G 22G 35% /sysroot tmpfs tmpfs 1.9G 88K 1.9G 1% /tmp /dev/mmcblk0p1 ext4 976M 87M 823M 10% /boot /dev/mapper/fedora-home ext4 18G 9.1G 7.3G 56% /var/home tmpfs tmpfs 375M 28K 375M 1% /run/user/42 tmpfs tmpfs 375M 0 375M 0% /run/user/1000 [bitwalk@silverblue ~]$
resize2fs コマンドで /dev/fedora/home の領域を拡張します。
[bitwalk@silverblue ~]$ sudo resize2fs /dev/fedora/home
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/fedora/home is mounted on /var/home; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 18
The filesystem on /dev/fedora/home is now 35813376 (4k) blocks long.
df コマンドで /dev/fedora/home の領域が増えていることを確認できます。
[bitwalk@silverblue ~]$ df -hT ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 9.7M 1.9G 1% /run /dev/mapper/fedora-root ext4 36G 12G 22G 35% /sysroot tmpfs tmpfs 1.9G 88K 1.9G 1% /tmp /dev/mmcblk0p1 ext4 976M 87M 823M 10% /boot /dev/mapper/fedora-home ext4 135G 9.1G 120G 8% /var/home tmpfs tmpfs 375M 28K 375M 1% /run/user/42 tmpfs tmpfs 375M 0 375M 0% /run/user/1000 [bitwalk@silverblue ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 1 119.1G 0 disk └─sdb1 8:17 1 119.1G 0 part └─fedora-home 253:2 0 136.6G 0 lvm /var/home mmcblk0 179:0 0 58.2G 0 disk ├─mmcblk0p1 179:1 0 1G 0 part /boot └─mmcblk0p2 179:2 0 57.2G 0 part ├─fedora-root 253:0 0 35.9G 0 lvm /sysroot ├─fedora-swap 253:1 0 3.8G 0 lvm [SWAP] └─fedora-home 253:2 0 136.6G 0 lvm /var/home mmcblk0boot0 179:8 0 4M 1 disk mmcblk0boot1 179:16 0 4M 1 disk [bitwalk@silverblue ~]$
まとめ
LVM に関連するコマンドの操作を中心に説明しましたが、慣れないと解りにくいかもしれません。
SD カードの領域について、論理ボリュームへ追加する前後を比較すると、下表のようになります。
デバイス | mmcblk0 | sdb(SD カード) | |||
パーティション | mmcblk0p1 | mmcblk0p2 | sdb1 | ||
ボリュームグループ | - | fedora | - | ||
論理ボリューム | - | root | swap | home | - |
マウントポイント | /boot | /sysroot | [SWAP] | /var/home | /run/media/bitwalk/5251-3733 |
デバイス | mmcblk0 | sdb(SD カード) | |||
パーティション | mmcblk0p1 | mmcblk0p2 | sdb1 | ||
ボリュームグループ | - | fedora | |||
論理ボリューム | - | root | swap | home | |
マウントポイント | /boot | /sysroot | [SWAP] | /var/home |
今回扱った例では、格安 PC の僅かなストレージ容量を増やすことが目的でしたが、大きなシステムで、システムを稼働させたままでストレージ容量を増やす際に LVM は威力を発揮します。
参考サイト
- bitWalk's: 小容量ストレージ対策 〜 LVM [2020-05-03]
- bitWalk's: 【備忘録】Fedoraで論理ボリュームを追加する [2018-12-29]
- 論理ボリュームの設定および管理 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
にほんブログ村
0 件のコメント:
コメントを投稿