LVM, Logical Volume Manager(論理ボリュームマネージャ)は、UNIX 系 OS で利用できる機能で、複数の外部記憶装置(ストレージ)やその内部のパーティションをまとめ、単一の記憶領域として利用する機能です。
LVM を利用するにはストレージ内に専用のパーティション(区画)を設けます。パーティション内部は数 MB 単位の PE (Physical Extent) と呼ばれる管理単位に分割され、これを必要なだけ結合して単一の論理ボリューム (LV:Logical Volume) を構成します。
小容量ストレージ対策に使える LVM
最近は低価格帯のノート PC でも、ストレージに 64GB の eMMC を搭載しているものを目にするようになりました。しかしちょっと前までは 32GB の eMMC が主流でした。そういった低価格帯のノート PC を買って Linux をインストールするのに、32GB という容量は小さすぎるということはありませんが、サブのノート PC として日常用途で使うのにはやはり容量が少ないという感は否めません。
プレインストールされている Windows の場合、小容量のストレージは C ドライブになるので、Windows Update 毎に空き容量を確保するために四苦八苦することになります。たとえ大容量の SD カードが使えるスロットがあっても、C ドライブにはならないからです。
※ Windows でも、下記のようなパーティションツールを利用すれば C ドライブを拡張できるようですが、未評価です。
Windows を捨てて Linux をインストールするのであれば、LVM を利用することで、大容量の SD カードの領域を有効に利用することができます。
今回は、右の 64GB のストレージを搭載した廉価なノート PC に Linux (Fedora) をインストール後、128GB の SD カードを挿入し、LVM を利用してシステムのストレージ領域を拡張した事例をまとめました。
LVM によるストレージ領域の拡張
本ブログ記事では下記の OS 環境で動作確認をしています。
Fedora 32 (Workstation Edition) | x86_64 |
RHEL/CentOS や Fedora といった RedHat 系 Linux のインストーラは、デフォルトではストレージのパーティションを LVM で設定します。
インストール先のストレージ (eMMC 64GB) を指定して、他の設定はせずにデフォルトのままで Fedora をインストールしました。ストレージの使用状況は下記のようになっています。
[bitwalk@localhost ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 2.9G 0 2.9G 0% /dev tmpfs 2.9G 0 2.9G 0% /dev/shm tmpfs 2.9G 2.1M 2.9G 1% /run /dev/mapper/fedora_localhost--live-root 33G 7.8G 24G 25% / tmpfs 2.9G 104K 2.9G 1% /tmp /dev/mapper/fedora_localhost--live-home 17G 341M 15G 3% /home /dev/mmcblk2p2 976M 203M 707M 23% /boot /dev/mmcblk2p1 599M 21M 579M 4% /boot/efi tmpfs 579M 88K 579M 1% /run/user/1000 [bitwalk@localhost ~]$
33GB の /(ルート)、17GB の /home が論理ボリュームに割り当てられています。
※ ストレージのサイズによって、インストーラが割り当てる論理ボリュームは異なります。ストレージの容量が 32GB の場合、/(ルート)が論理ボリュームに割り当てられるのみです。
インストール後のボリュームグループ確認
vgdisplay でストレージのボリュームグループを確認すると以下のようになっています。
[bitwalk@localhost ~]$ sudo vgdisplay --- Volume group --- VG Name fedora_localhost-live 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 <56.03 GiB PE Size 4.00 MiB Total PE 14343 Alloc PE / Size 14343 / <56.03 GiB Free PE / Size 0 / 0 VG UUID 9CUf0f-w0ep-vmfe-UWGl-gRDq-gGdw-t7mk3B
ボリュームグループは fedora_localhost-live が存在しています。
lvdisplay コマンドで論理ボリュームを確認すると以下のようになっています。
[bitwalk@localhost ~]$ sudo lvdisplay --- Logical volume --- LV Path /dev/fedora_localhost-live/swap LV Name swap VG Name fedora_localhost-live LV UUID 1E1YJe-i0tH-qBAS-1XkU-EN7P-0DfO-C7Q2gK LV Write Access read/write LV Creation host, time localhost-live, 2020-05-02 09:36:34 +0900 LV Status available # open 2 LV Size 5.76 GiB Current LE 1475 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 --- Logical volume --- LV Path /dev/fedora_localhost-live/home LV Name home VG Name fedora_localhost-live LV UUID rpsp7E-S8FA-bBEn-GdCX-t4r5-Gfyf-1gZ8CA LV Write Access read/write LV Creation host, time localhost-live, 2020-05-02 09:36:34 +0900 LV Status available # open 1 LV Size <16.49 GiB Current LE 4221 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2 --- Logical volume --- LV Path /dev/fedora_localhost-live/root LV Name root VG Name fedora_localhost-live LV UUID zlYMCv-G2W2-ndHE-BI1J-Mvvq-ywzc-QEc2Ik LV Write Access read/write LV Creation host, time localhost-live, 2020-05-02 09:36:43 +0900 LV Status available # open 1 LV Size <33.78 GiB Current LE 8647 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
ボリュームグループ fedora_localhost-live に、3つの論理ボリューム swap, home そして root が割り当てられています。
SD カードをボリュームグループに追加
ext4 形式でフォーマットした 128GB の SD カードを挿入します。挿入後、df コマンドで確認します。挿入した SD カードは /dev/mmcblk0p1 です。
[bitwalk@localhost ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 2.9G 0 2.9G 0% /dev tmpfs 2.9G 0 2.9G 0% /dev/shm tmpfs 2.9G 2.1M 2.9G 1% /run /dev/mapper/fedora_localhost--live-root 33G 7.8G 24G 25% / tmpfs 2.9G 104K 2.9G 1% /tmp /dev/mapper/fedora_localhost--live-home 17G 357M 15G 3% /home /dev/mmcblk2p2 976M 203M 707M 23% /boot /dev/mmcblk2p1 599M 21M 579M 4% /boot/efi tmpfs 579M 108K 578M 1% /run/user/1000 /dev/mmcblk0p1 118G 60M 112G 1% /run/media/bitwalk/c6949743-409e-4649-bc3c-5647296e748f [bitwalk@localhost ~]$
vgextend コマンドで、ボリュームグループ fedora_localhost-live に SD カード /dev/mmcblk0p1 を追加して、ボリュームグループの領域を拡張します。
一旦、プライベートでマウントされている /dev/mmcblk0p1 をアンマウントしてから vgextend コマンドを実行します。
[bitwalk@localhost ~]$ umount /dev/mmcblk0p1 [bitwalk@localhost ~]$ sudo vgextend fedora_localhost-live /dev/mmcblk0p1 WARNING: ext4 signature detected on /dev/mmcblk0p1 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/mmcblk0p1. Physical volume "/dev/mmcblk0p1" successfully created. Volume group "fedora_localhost-live" successfully extended [bitwalk@localhost ~]$
vgdisplay コマンドで、ボリュームグループ fedora_localhost-live にフリーな領域が増えていることを確認します。
[bitwalk@localhost ~]$ sudo vgdisplay --- Volume group --- VG Name fedora_localhost-live System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 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.27 GiB PE Size 4.00 MiB Total PE 45126 Alloc PE / Size 14343 / <56.03 GiB Free PE / Size 30783 / <120.25 GiB VG UUID 9CUf0f-w0ep-vmfe-UWGl-gRDq-gGdw-t7mk3B [bitwalk@localhost ~]$
論理ボリュームの拡張
/dev/fedora_localhost-live/home
論理ボリューム /dev/fedora_localhost-live/home に、追加した空エリアの半分 (50%) を割り当てます。
[bitwalk@localhost ~]$ sudo lvextend -l +50%FREE /dev/fedora_localhost-live/home Size of logical volume fedora_localhost-live/home changed from <16.49 GiB (4221 extents) to 76.61 GiB (19613 extents). Logical volume fedora_localhost-live/home successfully resized. [bitwalk@localhost ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 2.9G 0 2.9G 0% /dev tmpfs 2.9G 0 2.9G 0% /dev/shm tmpfs 2.9G 2.1M 2.9G 1% /run /dev/mapper/fedora_localhost--live-root 33G 7.8G 24G 25% / tmpfs 2.9G 104K 2.9G 1% /tmp /dev/mapper/fedora_localhost--live-home 17G 357M 15G 3% /home /dev/mmcblk2p2 976M 203M 707M 23% /boot /dev/mmcblk2p1 599M 21M 579M 4% /boot/efi tmpfs 579M 108K 578M 1% /run/user/1000 [bitwalk@localhost ~]
df で確認すると、まだ /dev/fedora_localhost-live/home の領域は増えていません。
resize2fs コマンドで /dev/fedora_localhost-live/home の領域を拡張します。
[bitwalk@localhost ~]$ sudo resize2fs /dev/fedora_localhost-live/home resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/fedora_localhost-live/home is mounted on /home; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 10 The filesystem on /dev/fedora_localhost-live/home is now 20083712 (4k) blocks long. [bitwalk@localhost ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 2.9G 0 2.9G 0% /dev tmpfs 2.9G 0 2.9G 0% /dev/shm tmpfs 2.9G 2.1M 2.9G 1% /run /dev/mapper/fedora_localhost--live-root 33G 7.8G 24G 25% / tmpfs 2.9G 104K 2.9G 1% /tmp /dev/mapper/fedora_localhost--live-home 76G 364M 72G 1% /home /dev/mmcblk2p2 976M 203M 707M 23% /boot /dev/mmcblk2p1 599M 21M 579M 4% /boot/efi tmpfs 579M 108K 578M 1% /run/user/1000 [bitwalk@localhost ~]$
df コマンドで /dev/fedora_localhost-live/home の領域が増えていることを確認できます。
/dev/fedora_localhost-live/root
残ったフリーの領域を全てルート領域 /dev/fedora_localhost-live/root に割り当てます。
[bitwalk@localhost ~]$ sudo lvextend -l +100%FREE /dev/fedora_localhost-live/root Size of logical volume fedora_localhost-live/root changed from <33.78 GiB (8647 extents) to <93.90 GiB (24038 extents). Logical volume fedora_localhost-live/root successfully resized. [bitwalk@localhost ~]$ sudo resize2fs /dev/fedora_localhost-live/root resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/fedora_localhost-live/root is mounted on /; on-line resizing required old_desc_blocks = 5, new_desc_blocks = 12 The filesystem on /dev/fedora_localhost-live/root is now 24614912 (4k) blocks long. [bitwalk@localhost ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 2.9G 0 2.9G 0% /dev tmpfs 2.9G 0 2.9G 0% /dev/shm tmpfs 2.9G 2.1M 2.9G 1% /run /dev/mapper/fedora_localhost--live-root 93G 7.8G 81G 9% / tmpfs 2.9G 104K 2.9G 1% /tmp /dev/mapper/fedora_localhost--live-home 76G 364M 72G 1% /home /dev/mmcblk2p2 976M 203M 707M 23% /boot /dev/mmcblk2p1 599M 21M 579M 4% /boot/efi tmpfs 579M 108K 578M 1% /run/user/1000 [bitwalk@localhost ~]$
まとめ
エンタープライズ用途のデータベースなどのサーバでストレージの領域が足りなくなった時に、LVM を利用していて、かつストレージを増設するスペースさえあれば、システムを稼動させたままでストレージ領域を拡張できます。その一方、プライベートで使う PC の小容量なストレージ事情にも同じやり方で LVM を応用できます。
最近は、コンテナ技術に関連して Podman/Docker によるサーバーの仮想化や、サンドボックスで実行される Flatpak アプリの利用が増え、いつの間にか /var 領域が肥大化してしまいます。Fedora のインストール時に設定をすれば /var も論理グループとしてルート領域と分離できます。用途に応じて、システムのスケーラビリティを LVM で柔軟にデザインできます。
気になるのは、ストレージに関わる障害発生時にどのような解析ができるかです。引き続き、情報収集を続けます。
参考サイト
- bitWalk's: 【備忘録】Fedoraで論理ボリュームを追加する [2018-12-29]
- 論理ボリュームの設定および管理 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
にほんブログ村
0 件のコメント:
コメントを投稿