はじめに
一般的にresize2fsコマンドで行うファイルシステムの拡張/縮小ですが、Red Hat Enterprise Linux Server 7からファイルシステムに標準採用されているxfs*1は、縮小に対しては削除してから作り直すというステップを行います。
本記事では確認コマンドを随時取りながら縮小のステップを解説しています。
コマンド確認環境 |
---|
Red HaT EnterPrise Linux Server release 7.5 |
ファイルシステムを縮小させる
そもそもファイルシステムを縮小させる目的は、物理ボリュームの空き容量の確保にあります。
以下にあるように、ファイルシステムを縮小させるということはそれに対応する論理ボリューム(LV)を縮小させることに繋がり、結果的にボリュームグループ(VG)、物理ボリューム(PV)の空き容量が大きくなります。
https://networklessons.com/uncategorized/extend-lvm-partition より画像を抜粋
xfsファイルシステムの縮小のステップは以下になります
- 対応するファイルシステムをアンマウントする
- 対応する論理ボリュームを削除する
- 新たに対応する論理ボリュームを作成する
- 対応するファイルシステムを作成する
以下、実際の手順です。
xfsの縮小手順
事前確認作業
まずは物理ボリューム、論理ボリュームの空き容量を確認します。
pvscanコマンドで物理ボリュームの空き容量を
# pvscan PV /dev/sda2 VG rhel lvm2 [<100.00 GiB / 5.00 GiB free] Total ...
vgsコマンドで論理ボリュームの空き容量を
# vgs VG #PV #LV #SN Attr VGSize VFree rhel X X X X <100.00g 5.00g
表示できます。
また、ボリュームグループ名がrhelであることもあわせて確認できました。
次に、ボリュームグループにある論理ボリューム名をlvscanコマンドで確認します。
# lvscan ACTIVE '/dev/rhel/root' [XX GiB] inherit ACTIVE '/dev/rhel/home' [XX GiB] inherit ACTIVE '/dev/rhel/swap' [XX GiB] inherit ACTIVE '/dev/rhel/var' [XX GiB] inherit ACTIVE '/dev/rhel/opt' [40 GiB] inherit
今回はoptを対象にします。
特定の論理ボリュームについて詳細情報を確認する場合はlvdisplayコマンドで上で確認したパスを引数にします。
# lvdisplay /dev/rhel/opt --- Logical volume --- LV Path /dev/rhel/opt LV Name opt VG Name rhel ...
対象のファイルシステムがxfsであることを念のためdfコマンドで確認してください。
# df -T ... /dev/mapper/rhel-opt xfs XX XX XX X% /opt ...
ここまでが事前の確認作業です。
ここから削除、再作成を行います。
データのバックアップが必要な場合はxfsdumpというツールまたはcpコマンドにて別ファイルシステムにコピーしてください。
今回はopt配下の初期構築を想定し、特にバックアップファイルはないとして話を進めます。
本作業
まずは対象ファイルシステムをumountコマンドでアンマウントします。
# umount /opt
この作業を行うとdfコマンドでファイルシステムが見えなくなっているはずです。
# df -T ...
次に、論理ボリュームをlvchangeコマンドで非アクティブ化させます。
# lvchange -an /dev/rhel/opt
anはavailableをnoにするという意味です。
再度lvscanコマンドでACTIVEがinactiveに変更されていることを確認します。
# lvscan ... inactive '/dev/rhel/opt' [40 GiB] inherit
これが確認できれば論理ボリュームをlvremoveコマンドで削除します。
# lvremove /dev/rhel/opt Logical volume "opt" successfully removed
削除されればlvscanコマンドで該当の論理ボリュームは確認できなくなります。
この段階でpvscan、vgsコマンドで空き容量を表示すれば削除した分増加していることを確認できます。
# pvscan PV /dev/sda2 VG rhel lvm2 [<100.00 GiB / 45.00 GiB free] Total ...
削除した論理ボリュームを再度同名で作成します。
lvcreateコマンドを用い、オプションLでサイズをオプションnで論理ボリューム名とボリュームグループ名を指定します。
# lvcreate -L 10G -n opt rhel Logical volume "opt" created
このコマンド実行後にlvscanを行うと作成した論理ボリュームがACTIVE状態で表示され、pvscanを行うと作成した分だけ空き容量が減っています。
最後に、作成した論理ボリュームに対してmkfs.xfsコマンドでファイルシステムをxfs形式で作成します。
# mkfs.xfs /dev/rhel/opt
作成後、dfコマンドで表示されることが確認できれば作業終了です。
# df -T ... /dev/mapper/rhel-opt XX XX XX X% /opt
終わりに
実際、ディスクの大容量化に伴い拡張することはあれ縮小するケースは珍しくなってきました。
xfsとしても大容量化に対応すべく従来のex系のファイルシステムの上限である16TBを大きく上回る500TBまでをサポートしています。
そうはいっても、ケースによっては必要な作業かつ失敗すれば面倒な分野なので確認コマンド多めに整理しました。
参考になれば幸いです。
*1:xfs : eXtents File System