2020-07-27

LVMによるストレージ領域の拡張

LVM, Logical Volume Manager(論理ボリュームマネージャ)は、UNIX 系 OS で利用できる機能で、複数の外部記憶装置(ストレージ)やその内部のパーティションをまとめ、単一の記憶領域として利用する機能です。

LVM を利用するにはストレージ内に専用のパーティション(区画)を設けます。パーティション内部は数 MB 単位の PE (Physical Extent) と呼ばれる管理単位に分割され、これを必要なだけ結合して単一の論理ボリューム (LV:Logical Volume) を構成します。

IT用語辞典 e-Words より引用、編集

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 カードの領域について、論理ボリュームへ追加する前後を比較すると、下表のようになります。

SD カード (sdb1) を論地ボリュームに追加する前
デバイス mmcblk0 sdb(SD カード)
パーティション mmcblk0p1 mmcblk0p2 sdb1
ボリュームグループ - fedora -
論理ボリューム - root swap home -
マウントポイント /boot /sysroot [SWAP] /var/home /run/media/bitwalk/5251-3733
SD カード (sdb1) を論地ボリュームに追加した後
デバイス mmcblk0 sdb(SD カード)
パーティション mmcblk0p1 mmcblk0p2 sdb1
ボリュームグループ - fedora
論理ボリューム - root swap home
マウントポイント /boot /sysroot [SWAP] /var/home

今回扱った例では、格安 PC の僅かなストレージ容量を増やすことが目的でしたが、大きなシステムで、システムを稼働させたままでストレージ容量を増やす際に LVM は威力を発揮します。

参考サイト

  1. bitWalk's: 小容量ストレージ対策 〜 LVM [2020-05-03]
  2. bitWalk's: 【備忘録】Fedoraで論理ボリュームを追加する [2018-12-29]
  3. 論理ボリュームの設定および管理 Red Hat Enterprise Linux 8 | Red Hat Customer Portal

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: