デフォルトでは、CentOS/RHEL OS をインストールすると、/boot パーティションとスワップ論理ボリュームで構成されるデフォルト レイアウトが作成され、ルート ファイル システムに使用される 1 つの論理ボリュームに残りのすべてのスペースが割り当てられます。すべてのデータ ファイルとシステム ファイルを 1 つのファイル システムに配置することは、大規模なシステムや運用システムにとって常に最適な方法とは限りません。
ルート ファイル システムとそれが存在する論理ボリュームのサイズを縮小して、システムを再インストールせずにスペースを補助ボリュームに割り当てることができます。 レスキューでルート ファイルシステムを削減できます モード。この例では、ルート ファイルシステムとして /dev/VolGroup00/LogVol00 を使用します。
注意 :ボリューム グループと論理ボリュームの名前がデフォルトの VolGroup00 と LogVol00 と異なる場合は、この記事に記載されているコマンドで適切な名前とパスに置き換える必要があることに注意してください。ルート ファイルシステムのサイズを小さくする
1. まず、システムをレスキュー モードで起動します。
2. 縮小する論理ボリュームを有効化します。この例では、次のコマンドで /dev/VolGroup00/LogVol00 が利用可能になりました:
# lvm lvchange -ay /dev/VolGroup00/LogVol00
3. /dev/VolGroup00/LogVol00 のファイル システムと論理ボリュームのサイズを縮小します。ルート ファイル システムに十分なスペースが残っていること、および論理ボリュームが以前に存在していたすべてのデータを格納するのに十分な大きさであることを確認してください。現在の使用率を超えてファイル システムのサイズを縮小しようとすると失敗し、容量が不足していることを示すエラー メッセージが表示されます。ファイル システムのサイズを変更する前に、e2fsck コマンドを実行してファイル システム チェックを実行します。
# e2fsck -f /dev/VolGroup00/LogVol00 # resize2fs /dev/VolGroup00/LogVol00 3000M
4. 最後に、ルート ファイル システムを含む論理ボリュームのサイズを縮小します。
# lvm lvreduce -L 3000M /dev/VolGroup00/LogVol00
これらの例で使用されているコマンドは、削減する必要があるスペースの量ではなく、ファイル システムの最終的なサイズを指定します。
lvreduce の代替コマンド – lvresize
LVM2 コマンドは、より便利な相対サイズを受け入れる代替 lvresize コマンドをサポートしています。例:
# lvresize -L -2000G VolGroup00/LogVol00
5. 最後に、変更を確認し、レスキュー シェルを終了してシステムを再起動します。
# lvm vgdisplay VolGroup00
レスキュー シェルを終了するには:
# exit警告 注:マウント済みまたは使用中の論理ボリュームのサイズを変更すると、重大なデータ損失が発生する可能性があります。それに応じて計画および行動し、最新の検証済みバックアップが配置されていることを常に確認してください。
XFS ファイルシステムに関する注意
CentOS/RHEL 7 には、サイズを縮小できない XFS のデフォルト ファイルシステムがあります。代わりに EXT ファイルシステムを使用するカスタム セットアップがインストール中に作成された場合、上記の手順も適用する必要があります。
回避策
XFS ファイル システムはマウント中に拡張できますが、機能が複雑で危険であると見なされ、限られた重要なユース ケースが存在すると考えられるため、サイズを縮小することはできません。場合によっては、次の回避策が受け入れられることがあります:
- XFS ファイルシステムの下でシン プロビジョニングされた LVM ボリュームを使用します。
- xfsdump/xfsrestore などのバックアップ/復元ソリューションを使用します。これは、ファイルシステムがほとんど空である場合に特に便利です。