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

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

推薦する

Windows で MySQL 5.6 を 5.7 にアップグレードする方法

前面に書かれたMySQL をアップグレードする方法には、インプレース アップグレードと論理アップグレ...

MySQL 演算子の具体的な使用法 (and、or、in、not)

目次1. はじめに2. 本文2.1 および演算子2.2 または演算子2.3 オペレーター2.4 no...

ZabbixはPSK共有キーを使用してサーバーとエージェント間の通信を暗号化します。

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbi...

画像をクリックして切り替えるJavaScript

クリックして画像を切り替えることは、日常生活で非常によく行われることです。今日の練習は、画像を切り替...

Vueのフロントエンドとバックエンドのデータのやり取りと表示を理解する方法

目次1. 技術概要2. 技術的な詳細1. インターフェースからバックエンドデータを取得する2. フロ...

MySQL 正規表現 (regexp と rlike) の検索機能の例分析

この記事では、例を使用して MySQL 正規表現 (regexp および rlike) の検索機能を...

MySQL における int の最大値の詳細な説明

導入2日前に見た問題について詳細に書きます。バイトコンピューターがバイナリに基づいていることは誰もが...

WeChatアプレットbindtapとcatchtapの違いの詳細な説明

目次1. イベントとは何ですか? 2. イベントの使い方3. バインドタップとキャッチタップの違い4...

HTML テーブルタグチュートリアル (32): セルの水平方向の配置属性 ALIGN

水平方向では、セルの配置を左、中央、右に設定できます。基本的な構文<TD ALIGN=&quo...

Centos7 で ZooKeeper3.4 ミドルウェアを構築するための一般的なコマンドの概要

1.ダウンロードして解凍する1. Zookeeperの紹介分散サービス フレームワークとして、Zoo...

CentOS7 に ElasticSearch 6.4.1 をインストールするための詳細なチュートリアル

1. ElasticSearch 6.4.1 インストール パッケージを次の場所からダウンロードしま...

Linux の wget コマンドの詳細な紹介

目次まずwgetをインストールするヘルプマニュアルを見る1. wgetを使用して単一のファイルをダウ...

要素 el-button ボタンコンポーネントの使用の詳細な説明

1. 背景ボタンは非常によく使われており、Element のボタン機能は非常に包括的です。この記事で...

Ajax は CORS レスポンス ヘッダーを設定してクロスドメインの問題を解決し、クロスドメインのケース スタディを実現します。

1. クロスドメインを実現するためにCORSレスポンスヘッダーを設定するクロスオリジンリソース共有...

Tomcat イメージをインストールして Docker に Web プロジェクトをデプロイする方法を簡単に説明します。

1. Tomcatをインストールする1. Docker HubでTomcatイメージを見つける d...