Linux で lvm 論理ボリューム パーティションのサイズを調整するチュートリアル (xfs や ext4 などのさまざまなファイル システム用)

Linux で lvm 論理ボリューム パーティションのサイズを調整するチュートリアル (xfs や ext4 などのさまざまなファイル システム用)

序文

システムをインストールしたときに、パーティション領域を適切に割り当てませんでした。その後のメンテナンス プロセス中に、一部のパーティションには領域が不足している一方で、一部のパーティションには多くの領域が残っていることがわかりました。システムのインストール時にこれらのパーティションが lvm を使用する場合 (これらのパーティションが lvm 論理ボリューム パーティションである場合)、簡単に拡張または縮小できます。ファイルシステムの種類によって、作成、チェック、調整のコマンドが異なります。以下は、xfs および ext2/3/4 ファイルシステムの lvm パーティション領域の拡張および縮小操作の記録です。

------------------------------------------------------------------------------------------

特に注目すべき点:

  • resize2fs コマンドは、ext2、ext3、および ext4 ファイル システム用です。
  • xfs_growfsコマンドはxfsファイルシステム用です

------------------------------------------------------------------------------------------

1) ext2/ext3/ext4 ファイルシステムのサイズ変更コマンドは resize2fs です (増加と減少の両方がサポートされています)

lvextend -L 120G /dev/mapper/centos-home // 120G に増加
lvextend -L +20G /dev/mapper/centos-home // 20G 増加
lvreduce -L 50G /dev/mapper/centos-home //50Gに削減
lvreduce -L -8G /dev/mapper/centos-home //8G 削減
resize2fs /dev/mapper/centos-home //調整を実行

2) xfsファイルシステム調整コマンドはxfs_growfsです(増加のみサポート)

lvextend -L 120G /dev/mapper/centos-home // 120G に増加
lvextend -L +20G /dev/mapper/centos-home // 20G 増加
xfs_growfs /dev/mapper/centos-home //調整を実行

つまり、xfs ファイル システムはパーティション領域の増加のみをサポートし、削減はサポートしていません (この点に注意してください)。

どうしても縮小したい場合は、縮小後にマウントする前に、mkfs.xfs コマンドを使用して論理パーティションを再フォーマットすることしかできません。この場合、論理パーティション上の元のデータは失われます。重要な書類がある場合は休憩を取ってください。

例1(システムに空き容量がある場合)

1) パーティションスペースを確認します。下記の通り、xfs ファイルシステムです(df の -T パラメータでファイル形式を表示できます)。

[root@localhost ~]# df -hT
ファイルシステムの種類 容量 使用済み 使用可能 使用済み% マウントポイント /dev/mapper/centos-root xfs 200G 2.2G 198G 2% /
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 49M 32G 1% /実行
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 139M 59M 71% /boot
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home xfs 628G 33M 718G 1% /home

2) vgdisplayコマンドを使用してシステムの空き容量を表示します。

root@localhost ~]# vgdisplay
 --- ボリュームグループ ---
 VG名 centos
 システムID   
 lvm2をフォーマットする
 メタデータ領域 1
 メタデータシーケンス番号 6
 VGアクセス読み取り/書き込み
 VGステータスサイズ変更可能
 最大レベル0
 カー LV 3
 オープンLV3
 最大PV 0
 現在のPV 1
 第1幕
 VG サイズ 930.80 GiB
 PE サイズ 4.00 MiB
 総PE 238285
 割り当て PE / サイズ 212736 / 831.00 GiB
 空き PE / サイズ 25549 / 99.80 GiB //この項目は、システムに 99.80G の空き領域があることを示します (25549)
 VG UUID a5hiAh-LB8M-9lRv-Ps1a-z35L-J4fk-sP3KrF

3) 上記の90GBの空き容量を/homeパーティションに追加または削除します。

[root@localhost ~]# lvextend -L +90G /dev/mapper/centos-home //または、-l パラメータ(PE の数)を使用します。つまり、lvextend -l +25500 /dev/mapper/centos-home です。
 論理ボリューム centos/home のサイズが 628.00 GiB (160768 エクステント) から 718.00 GiB (183808 エクステント) に変更されました。
 論理ボリューム centos/home のサイズが正常に変更されました。
 
[root@localhost ~]# xfs_growfs /dev/mapper/centos-home
メタデータ=/dev/mapper/centos-home isize=512 agcount=4、agsize=41156608 blks
   = sectsz=512 属性=2、projid32bit=1
   = crc=1 finobt=0 スピノード=0
データ = bsize=4096 ブロック=164626432、imaxpct=25
   = 単位=0 幅=0 ブロック
命名 =バージョン 2 bsize=4096 ascii-ci=0 ftype=1
ログ = 内部 bsize=4096 ブロック = 80384、バージョン = 2
   = sectsz=512 sunit=0 blks、lazy-count=1
リアルタイム =なし extsz=4096 ブロック=0、rtextents=0
データブロックが 164626432 から 188219392 に変更されました

4) システムパーティションを再度確認すると、ホームパーティションが 90G 増加していることがわかりました (この増加方法では、ホームパーティション内の以前のデータは失われません)

[root@localhost ~]# df -h
ファイルシステムの使用容量 使用可能使用率% マウントポイント /dev/mapper/centos-root 200G 2.2G 198G 2% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 49M 32G 1% /実行
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 197M 139M 59M 71% /ブート
tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home 718G 33M 718G 1% /home

xfs ファイル システムは増加のみをサポートし、減少はサポートしません。しかし、これは xfs システム ファイルの下でファイルを縮小できないという意味ではなく、縮小した後、マウントする前に再フォーマットする必要があることを意味します。こうすると元のデータが失われます!

例 2: この状況は、システムをインストールしたばかりで、論理パーティションにデータがないか、データが小さく重要でないため削除またはコピーできる場合にのみ適用されます。

システムをインストールした後、ホームパーティションが大きすぎることに気づき、ホームパーティションから100Gを/パーティションに取り出したい

[root@localhost ~]# df -hT
ファイルシステムの種類 容量 使用済み 使用可能 使用済み% マウントポイント /dev/mapper/centos-root xfs 205G 2.2G 203G 2% /
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 49M 32G 1% /実行
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 139M 59M 71% /boot
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home xfs 718G 33M 718G 1% /home
 
[root@localhost ~]# /home/ をアンマウントする
 
[root@localhost ~]# lvreduce -L -100G /dev/mapper/centos-home
 警告: アクティブな論理ボリュームを 618.00 GiB に削減しています。
 これにより、データ(ファイルシステムなど)が破壊される可能性があります。
本当に centos/home を減らしますか? [y/n]: y
 論理ボリューム centos/home のサイズが 718.00 GiB (183808 エクステント) から 618.00 GiB (158208 エクステント) に変更されました。
 論理ボリューム centos/home のサイズが正常に変更されました。

以下に示すように、xfs ファイル システムではパーティション削減調整を実行できないことは明らかです。

[root@localhost ~]# xfs_growfs /dev/mapper/centos-home
xfs_growfs: /dev/mapper/centos-home はマウントされた XFS ファイルシステムではありません
[root@localhost ~]# /dev/mapper/centos-home /home/ をマウントします
マウント: /dev/mapper/centos-home: スーパーブロックを読み取れません

この場合、パーティションを再フォーマットしてから、再度ホームの下にマウントすることしかできません。

[root@localhost ~]# mkfs.xfs /dev/mapper/centos-home -f
メタデータ=/dev/mapper/centos-home isize=512 agcount=4、agsize=41156608 blks
   = sectsz=512 属性=2、projid32bit=1
   = crc=1 finobt=0、スパース=0
データ = bsize=4096 ブロック=164626432、imaxpct=25
   = 単位=0 幅=0 ブロック
命名 =バージョン 2 bsize=4096 ascii-ci=0 ftype=1
ログ =内部ログ bsize=4096 ブロック=80384、バージョン=2
   = sectsz=512 sunit=0 blks、lazy-count=1
リアルタイム =なし extsz=4096 ブロック=0、rtextents=0
 
[root@localhost ~]# /dev/mapper/centos-home /home/ をマウントします

パーティションを再度確認すると、ホーム パーティションが 100G 削減されていましたが、このパーティション内の以前のデータはすべて消えていました。

[root@localhost ~]# df -hT  
ファイルシステムの種類 容量 使用済み 使用可能 使用済み% マウントポイント /dev/mapper/centos-root xfs 205G 2.2G 203G 2% /
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 49M 32G 1% /実行
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 139M 59M 71% /boot
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home xfs 618G 73M 578G 1% /home

---------------------------------------------------------------------------

上記を再フォーマットするときに、これを ext4 としてフォーマットすることもできます。

[root@localhost ~]# mkfs.ext4 /dev/mapper/centos-home
[root@localhost ~]# cat /etc/fstab //ホームパーティションのブートマウント設定のxfsをext4に変更します

---------------------------------------------------------------------------

次に、ホームパーティションから取り出した100Gを/パーティションに入れます。

[root@localhost ~]# vgdisplay
 --- ボリュームグループ ---
 VG名 centos
 システムID   
 lvm2をフォーマットする
 メタデータ領域 1
 メタデータシーケンス番号 9
 VGアクセス読み取り/書き込み
 VGステータスサイズ変更可能
 最大レベル0
 カー LV 3
 オープンLV3
 最大PV 0
 現在のPV 1
 第1幕
 VG サイズ 930.80 GiB
 PE サイズ 4.00 MiB
 総PE 238285
 割り当て PE / サイズ 211456 / 826.00 GiB
 フリー PE / サイズ 26829 / 104.80 GiB
 VG UUID a5hiAh-LB8M-9lRv-Ps1a-z35L-J4fk-sP3KrF
  
[root@localhost ~]# lvextend -L +100G /dev/mapper/centos-root
 論理ボリューム centos/root のサイズが 205.00 GiB (52480 エクステント) から 305.00 GiB (78080 エクステント) に変更されました。
 論理ボリューム centos/root のサイズが正常に変更されました。
 
[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
メタデータ=/dev/mapper/centos-root isize=256 agcount=5、agsize=13107200 blks
   = sectsz=512 属性=2、projid32bit=1
   = crc=0 finobt=0 スピノード=0
データ = bsize=4096 ブロック=53739520、imaxpct=25
   = 単位=0 幅=0 ブロック
命名 =バージョン 2 bsize=4096 ascii-ci=0 ftype=0
ログ = 内部 bsize=4096 ブロック = 25600、バージョン = 2
   = sectsz=512 sunit=0 blks、lazy-count=1
リアルタイム =なし extsz=4096 ブロック=0、rtextents=0
データブロックが53739520から79953920に変更されました
 
[root@localhost ~]# df -hT  
ファイルシステムの種類 容量 使用済み 使用可能 使用済み% マウントポイント /dev/mapper/centos-root xfs 305G 2.2G 203G 2% /
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 49M 32G 1% /実行
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 139M 59M 71% /boot
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos-home xfs 618G 73M 578G 1% /home

----------------------------------------親切なヒント------------------------------------------

パーティションのスペースを縮小したい場合は、縮小する前にまずパーティションをアンマウントする必要があります。アンインストールに問題がある場合、解決策は次のとおりです。

[root@localhost ~]# /home/ をアンマウントする
umount: /home: デバイスはビジーです。
(場合によっては、
デバイスはlsof(8)またはfuser(1)によって発見される)

アンインストールを実行できないというメッセージが表示される場合は、プロセスが /home を占有していることを意味します。次のコマンドを使用して、占有しているプロセスを終了します。

[root@localhost ~]# fuser -m -k /home
/ホーム: 1409 1519ce 1531e 1532e 1533e 1534e 1535e 1536e 1537e 1538e 1539e 1541e 1543e 1544e 1545e 1546e 1547e 1548e 1549e 1550e 1601m

ホーム パーティションのアンマウントが再度成功しました。

[root@localhost ~]# /home/ をアンマウントする

-k は、ホーム パーティションを占有しているプロセスを自動的に終了することを意味します。

デバイスを占有しているすべてのプログラムを強制終了するかどうかわからない場合は、-i パラメータを追加して、各プログラムを強制終了する前に確認するようにすることができます。 (例: fuser -m -v -i -k /home)

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Linux ディスク管理 LVM の使用
  • Linux ディスクデバイスと LVM 管理コマンドの詳細な例
  • Linux の Centos7 における LVM ディスク拡張の問題
  • Linuxシステムでlvmを作成し、指定されたディレクトリにマウントする手順
  • Linux LVM スナップショットを作成するための詳細な手順 (PE を使用して完了)
  • Linux 論理ボリューム管理 (LVM) の使用法の概要

<<:  JavaScriptにおけるこのポインティング問題の詳細な説明

>>:  要素のフォームコンポーネントに関する注意事項

推薦する

JS 手ぶれ補正機能の実装と使用シナリオ

目次1. 手ぶれ補正機能とは何ですか? 1. なぜ手ぶれ補正機能が必要なのでしょうか? 2. 手ぶれ...

W3C チュートリアル (7): W3C XSL アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。XSL 言語は、X...

入力タイプ=テキスト値=str を使用するための不完全なソリューション

今日、非常に奇妙な問題に遭遇しました。次のコードを見てください。 SimpleDateFormat ...

nginxアクセス制御の実装例

高性能で軽量なウェブサービスソフトウェアであるNginxについて高い安定性 システムリソースの消費量...

Nodejs でタイムドクローラーを実装する完全な例

目次事件の原因Node Scheduleを使用してスケジュールされたタスクを実装する1. node-...

MySQL 5.7.24 のインストールと設定方法のグラフィックチュートリアル

MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーションに...

MySQL で指定エンコーディングを実装する際の落とし穴について

前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...

この記事では、Viteがブラウザのリクエストに対して何を行うかを説明します。

目次動作原理:ブラウザは何をするのですか?ホストファイル index.htmlメイン.jsその他のベ...

uniapp プロジェクトをデスクトップ アプリケーションとしてパッケージ化する方法

Electronのインストール cnpm 電子をインストール -g electron-package...

CSSアニメーションを使用して背景のシームレスな無限ループを実装する例

1. 需要絵が左から右へ無限ループで動く2. コードモバイルデバイスに適用されているため、rem 単...

mysql 結合クエリ (左結合、右結合、内部結合)

1. MySQLの一般的な接続INNER JOIN (内部結合、または等価結合): 2 つのテーブ...

MySQLはデフォルトのエンジンと文字セットの詳細を変更します

目次1. データベースエンジン1.1 ビューデータベースエンジン1.2 デフォルトのデータベースエン...

WeChatアプレットトラック再生の実装と遭遇した落とし穴の詳細な説明

WeChat アプレットの軌跡再生では、主に線描画操作にポリラインを使用し、車の移動操作にマーカーを...

JavaScriptの知識ポイントの詳しい説明

目次1. JavaScriptの基礎2. 基本的なJavaScript構文3. JavaScript...

JavaScript エラー処理 try..catch...finally + は throw+TypeError+RangeError をカバーします

目次1. 目的2. 文法3. 練習する1. 目的通常、エラーが発生すると、スクリプトは直ちに停止し、...