検索してもなかなか出てこない+ビクビクしながら実施するのは嫌なので
Introduction
掲題通りなんですが、Ubuntuだとここまで面倒ではなくて、手順は広まっている。
けど、CentOS7のファイルシステムにXFSが採用された事で色々変わったのでしょう。
- インストール後、rootまたはhomeが小さくて困った、サイズを変更したい
- 拡大は良いが縮小するために一度パーティションの削除が必要で困った
こういう事例があります。
はい、私です。業務ではまりました。
忘れないように、見返せるようにメモをとります。
How to?
まず直前の状態。
1 | df -h |
ここからリサイズを実施。
まずシャットダウン。
1. Hyper-Vからディスク拡張
これは簡単です。
GUIからどうぞ。
今回は20GBから30GBに拡張しました。
2. ディスクの状態を確認
1 | df -h |
はい、何も変わっていません。
3. partedでディスクを修正
このままだとフリーな領域が見えませんので、partedで修正します。
1 | parted |
対話形式で処理を進めます。
パーティションを修正するので、pを押下すると、バックアップGPTテーブルがディスクの終端にありません。 という警告が出ます。
無論、ディスクを拡張したからです。
修正するかと聞かれますのでs、Fixと入力します。
さらに /dev/sda に利用可能なスペースのすべてが使用されているわけではないようです。 という警告が出ます。
修正するかと聞かれますのでs、Fixと入力します。
1 | (parted) p |
修正が実施され、ディスクの情報が出力されます。
ここで Disk /dev/sda: 32.2GB の部分の数値を記録します。
後から使用します。
この数値がHyper-Vで拡張したディスクサイズになっています。
4. resizepartで実際にリサイズ
同じくpartedのコマンドの一つresizepartでパーティションのサイズを変更します。
修正対象は、3つめのパーティションになります。
そして、パーティションの終端を指定します。つまり、先ほどのディスクサイズを指定します。
1 | (parted) resizepart |
リサイズ後、pコマンドで確認します。
1 | (parted) p |
しっかりと、サイズが増えていることがわかります。
qを押下してpartedを終了しします。
5. pvresizeで物理ボリュームをリサイズ
続いて、物理ボリュームのリサイズ。
修正前はこうなります。
1 | pvs |
修正対象の物理ボリュームを指定して、pvresizeを実行するだけで、最大まで物理ボリュームを拡張します。
1 | pvresize /dev/sda3 |
空き領域が増えたことがわかります。
6. lvextendで論理ボリュームをリサイズ
これで最後です。
先ほど拡張した物理ボリューム内のデバイスマッパーが割り当てたデバイスを拡張します。
つまり、**/dev/sda3** 配下のデバイスになります。
この関係はlsblkで確認できます。
1 | lsblk |
ここでは、
- centos-root
- centos-swap
を拡張できます。
片方に空き領域を全部足してもイイですし、均等に配分しても構いません。
ここでは、10:0でrootに配分します、というかswapにはlvextendで拡張できません。
fsadm: Filesystem “swap” on device “/dev/mapper/centos-swap” is not supported by this tool. って言われて怒られますので。
1 | lvextend -l +100%FREE -r /dev/mapper/centos-root |
指定は、現在の空き領域の何%を指定したデバイスに追加するか、という意味になります。
今回は全部を配分するので100%を指定しました。
7. 確認
こうなりました。
無事に10GB増えていることがわかります。
1 | df -h |