Table of Contents
1 はじめに
VMware ESXi上にあるCent OS VMのルートファイルシステムがほぼ満杯になりました。 VMのいいところは、ストレージなどのリソースが不足したら比較的簡単に追加できるところです。 しかしVMにストレージ容量を追加しただけではOSが認識してくれません。今回は、ルートファイルシステムの中身を壊さずにストレージ容量を追加する手順を説明します。
説明はESXi上のCent OS 7での手順ですが、VirtualBox等のハイパーバイザーや別のLinux OSでも似たような手順で行けると思います。使用するコマンドが変わってきますが。。また、lvmを使っている場合には、もう少しリスクの低そうなやり方で拡張ができるようです。
2 手順
2.1 概要
以下のステップを行います。
- ESXi上でVMのHard disk <番号>を容量拡張する
- VMのLinux上で
growpart
をインストールする - Linuxでルートパーティションを拡張する
- Linuxでルートファイルシステムを拡張する
2.2 ESXiでストレージ容量追加する
- ESXi GUIにログインする
- ブラウザーで
https://<host_name>/ui
を開き、ユーザー名とパスワードを入れます。
- ブラウザーで
- VMを選択する
- 左端に縦に並んでいるアイコンの下から3つ目くらいをクリックし、VM一覧を表示します
- VM名をクリックします
- ストレージ容量を増やす
- 右上のActionsアイコン > Edit settingsを選択します
- ルートファイルシステムのあるHard disk <番号>の容量を増やし、Saveをクリックします
- 容量から大体想像がつくと思いますが、同じ容量のデバイスがいくつかある場合には、、、/dev/sdaならHard disk 1、/dev/sdbならHard disk 2というように推測するのでしょうか。
これで、ESXi上ではストレージ容量が増えました。
2.3 growpartをインストール、ルートパーティションを拡張する
- Linux VMにsshで入り、リブートします。
- この時点ではまだパーティションサイズは増えていません
# ssh <Linux_VM> # df -H / # ルートファイルシステムの入っているデバイスを確認する # 私の環境では /dev/sdc1 がルートパーティションでした # lsblk # パーティションサイズが増えていないことを確認する # reboot
growpart
をインストールして実行する- 手元のFedora 35の
parted
コマンドにはresizepart
オプションがありますが、Cent OS 7のものには無かったので、growpart
を入れます。 - リブート後に
lsblk
するとデバイス容量が増えていることがわかります
- 手元のFedora 35の
# lsblk <snip> sdc 8:32 0 160G 0 disk # 増えています! └─sdc1 8:33 0 80G 0 part / # まだ増えていません # yum install cloud-utils-growpart -y # growpart /dev/sdc 1 # lsblk sdc 8:32 0 160G 0 disk └─sdc1 8:33 0 160G 0 part / # 増えました! # reboot # 念の為
2.4 ルートファイルシステムを拡張する
- 最初にファイルシステム容量を確認する
まだ増えていません。
# df -H . Filesystem Size Used Avail Use% Mounted on /dev/sdc1 86G 73G 14G 84% /
- ルートファイルシステムを拡張する
ファイルシステムタイプは
xfs
なのでxfs_growfs
を使います。ext4
ならresize2fs
でしょうか。# xfs_growfs / meta-data=/dev/sdc1 isize=512 agcount=4, agsize=5242816 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=20971264, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=10239, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 20971264 to 41942779 # df -H . Filesystem Size Used Avail Use% Mounted on /dev/sdc1 172G 72G 100G 42% / # 増えました! # reboot # 念の為
3 終わりに
現在使用中のルートファイルシステムを容量拡張するということで、動かなくなったらどうしようと思いましたが、意外にもすんなり拡張できてしまいました。VMはつくづく便利だと思います。Linux管理者の方々には常識的な内容かもしれません。