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におけるこのポインティング問題の詳細な説明

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

推薦する

Vue は Tencent Map を統合して API を実装します (デモ付き)

目次執筆の背景プロジェクトの説明事前準備注記執筆の背景以前のプロジェクトではTencent Maps...

JavaScript の差異を利用して比較ツールを実装する

序文仕事では、毎週従業員が提出した資料を数える必要がありますが、それを一つずつコピーして貼り付けるの...

MySQL 8.0.18 のさまざまなバージョンのインストールとインストール中に発生した問題 (要点の要約)

概要: MYSQLの問題解決記録:どのようなインストール方法 (rpm、gz、gz.xz) を使用す...

WeChatアプレットのスクロールビューが左右にスライドできない問題を解決する方法

私は現在、自分自身の小さなプログラム プロジェクトに取り組んでいます。プロフェッショナルなフロントエ...

iframeノードの初期化の問題に関する議論

今日、ふとリッチテキストエディタの制作原理を見直してみようと思いました。それで、彼は何も言わずにそれ...

CSS3アニメーションを使用した簡単な指クリックアニメーションの実装例

この記事では主に、CSS3 アニメーションで簡単な指クリックアニメーションを実装する例を紹介し、皆さ...

HTML テーブルタグチュートリアル (20): 行の背景色属性 BGCOLOR

BGCOLOR 属性を使用して、行の背景色を設定できます。基本的な構文<TR BGcolor...

Node.js の TCP 接続処理のコア プロセス

数日前、友人と Node.js の epoll とリクエスト処理に関する知識を交換しました。今日は、...

dockerがredisを再起動するとmysqlデータが失われる問題を解決する

公式ドキュメント:したがって、mysql は次のように起動する必要があります。 docker run...

Linux ifconfig コマンドの使用

1. コマンドの紹介ifconfig (ネットワーク インターフェイスを構成する) コマンドは、ネッ...

HTML チュートリアル: HTML 水平線分

<br />このタグを使用すると、画面上に水平線を表示して、ページのさまざまな部分を区切...

Windows Server 2012 でファイル サーバーを構築するための詳細な手順

ファイル サーバーは、企業内で最も一般的に使用されるサーバーの一つであり、主にファイル共有を提供する...

bash を使って日付をカウントダウンする方法

重要なイベントまであと何日あるか知りたいですか? Linux bash と date コマンドが役に...

React+Amapは緯度と経度をリアルタイムで取得し、住所を特定します

目次1. マップを初期化する2. マップポイント3. 位置決めを有効にする4. マップの変更を監視す...

CSS属性のマージンの理解について話す

1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...