a stray sheep

お仕事周りの雑記帳

CentOS7の自動ディスクパーティションで作られたLVMを縮小/拡張する

CentOS7のインストール時に、ディスクの構成でデフォルトの「自動ディスクパーティション」を選択すると、パーティションサイズが「/」が50GBで、「/home」が150GBといった状態になってしまう。

この状態を解消するために、「/home」を縮小し、「/」を拡張する手順をメモする。

 2020.04.22 追記
縮小と書いていたが、正確には削除して小さく再作成する、ということです。
なので、もともとデータが入っている場合はバックアップ等で退避しておく必要があります。


以下のサイトを参考にさせていただきました。こちらを読めば大丈夫です^^
qiita.com

確認した環境

仮想化ソフト: VirtualBox 5.1.28
ゲストOS: CentOS 7.4
仮想ディスクサイズ: 80GB

手順

以下、手順を記述するが、コマンドの出力結果は省略している場合があります。

ディスクの状態を確認

//ディスクドライブの使用状況を確認する
# df -Th
/Filesystem               Type   Size   Mounted on
/dev/mapper/centos-root   xfs     50G   /
/dev/sda1                 xfs   1014M   /boot
/dev/mapper/centos-home   xfs     27G   /home

//論理ボリュームを確認する
# lvdisplay
...
LV Path     /dev/centos/home
LV Name     home
VG Name     centos
LV Status   available
LV Size     26.99GiB

...
LV Path     /dev/centos/root
LV Name     root
VG Name     centos
LV Status   available
LV Size     50.00GiB

//ボリュームグループを確認する
# vgdisplay
VG Name        centos
VG Size        <79.00GiB
PE Size        4.00MiB
Total PE       20223
Alloc PE/Size  20222 / 78.99 GiB ※80GBは割り当て済み
Free  PE/Size  1 / 4.00 MiB
...

LVMディスクの開放

//アンマウント
# umount /dev/mapper/centos-home

//ボリュームの利用を停止する
# lvchange -a n /dev/centos/home

//論理ボリュームを確認する
# lvdisplay
...
LV Path     /dev/centos/home
LV Name     home
VG Name     centos
LV Status   NOT available ※利用不可となった
LV Size     26.99GiB

//論理ボリュームを削除する ※データも消えてしまうので注意
# lvremove /dev/centos/home
  Logical volume "home" successfully removed

//ボリュームグループを確認する
# vgdisplay
VG Name        centos
VG Size        <79.00GiB
PE Size        4.00MiB
Total PE       20223
Alloc PE/Size  13312 / 52.00 GiB ※割り当て済みは80GB→52GBに減少
Free  PE/Size  6911 / 27.08 GiB ※空き領域ができた
...

論理ボリューム「home」を作成

削除した論理ボリューム「/home」をサイズ指定で再作成する。

//論理ボリュームを作成
# lvcreate -L 10G -n home centos
WARNING: xfs signature detected on /dev/centos/home at offset 0. Wipe it? [y/n]:
y ※とりあえず「y」を入力
   Wiping xfs signature on /dev/centos/home.
   Logical volume "home" created.

//ファイルシステムを作成
# mkfs.xfs /dev/centos/home
...

//マウントする
# mount /dev/centos/home

//ボリュームグループを確認する
# vgdisplay
VG Name        centos
VG Size        <79.00GiB
PE Size        4.00MiB
Total PE       20223
Alloc PE/Size  15872 / 62.00 GiB ※/homeに10G割り当てた分増加
Free  PE/Size  4351 / 17.08 GiB ※残った17GBをこのあと「/」に割り当てる
...

空き領域を割り当てる

/dev/centos/rootに残りの空き領域を割り当てる

//空き領域を割り当てる
# lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from 50.00 GiB (12800 extends) to <67.00 GiB (17151 extents).
  Logical volume centos/root successfully resized.

//XFSファイルシステムの拡大(これをしないとサイズは増えない)
# xfs_growfs /dev/mapper/centos-root
...

//ディスクドライブの使用状況を確認する
# df -Th
/Filesystem               Type   Size   Mounted on
/dev/mapper/centos-root   xfs     67G   /   ※「/」は50G→67Gに拡張された
/dev/sda1                 xfs   1014M   /boot
/dev/mapper/centos-home   xfs     10G   /home ※「/home」は27G→10Gに縮小された


以上