rootの空きが無いのに気が付いた!!!
別件でWebサーバのコンソールに入って作業中、偶然 / の空きが無いのに気が付きました!
[root@www ~]# df ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置 devtmpfs 1012664 0 1012664 0% /dev tmpfs 1023332 0 1023332 0% /dev/shm tmpfs 1023332 107652 915680 11% /run tmpfs 1023332 0 1023332 0% /sys/fs/cgroup /dev/vda4 47710188 43981096 3729092 93% / /dev/vda2 508588 226176 282412 45% /boot tmpfs 204668 0 204668 0% /run/user/1002 tmpfs 204668 0 204668 0% /run/user/0
何と言うことでしょう。このままだと、近い将来落ちてしまう事が考えられます。
このサーバはさくらのVPSで、以前ディスク容量が100GBに増量されたとの通知があったので安心していたのですが、自動で拡張はされていないようです(当たり前)。
ので、オンライン状態のまま、手動で拡張してみます(飛んでしまっても良いように、フルバックアップは取得しておいて下さい)。
それでは拡張してみる
まずはOSのバージョンを確認します。
[root@www ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
そう言えばCentOS7だったような気がします(適当)。
作業に必要な gdisk をインストールします。
[root@www ~]# rpm -q gdisk パッケージ gdisk はインストールされていません。 [root@www ~]# yum -y install gdisk 読み込んだプラグイン:fastestmirror, langpacks : : インストール: gdisk.x86_64 0:0.8.10-3.el7 完了しました!
gdiskコマンドでデバイス番号と空きディスク容量を確認してみます。
[root@www ~]# gdisk -l /dev/vda GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/vda: 209715200 sectors, 100.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): ********-****-****-****-************ Partition table holds up to 128 entries First usable sector is 34, last usable sector is 104857566 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 4095 1024.0 KiB EF02 BIOS boot partition 2 4096 1028095 500.0 MiB 0700 Microsoft basic data 3 1028096 9416703 4.0 GiB 8200 Linux swap 4 9416704 104857566 45.5 GiB 0700 Microsoft basic data
認識している空き容量(Total free space)が変ですね…。
gdisk コマンドで、パーティションテーブルを再構成します。
[root@www ~]# gdisk -s /dev/vda Warning: The kernel is still using the old partition table. The new table will be used at the next reboot. The operation has completed successfully.
空き容量を再確認します。
[root@www ~]# gdisk -l /dev/vda GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/vda: 209715200 sectors, 100.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): ********-****-****-****-************ Partition table holds up to 128 entries First usable sector is 34, last usable sector is 209715166 Partitions will be aligned on 2048-sector boundaries Total free space is 104859614 sectors (50.0 GiB) Number Start (sector) End (sector) Size Code Name 1 2048 4095 1024.0 KiB EF02 BIOS boot partition 2 4096 1028095 500.0 MiB 0700 Microsoft basic data 3 1028096 9416703 4.0 GiB 8200 Linux swap 4 9416704 104857566 45.5 GiB 0700 Microsoft basic data
ちゃんと50GB程度の空きが認識されました。
growpart コマンドで、パーティションを空き目一杯拡張します。
[root@www ~]# growpart -bash: growpart: コマンドが見つかりません [root@www ~]# yum -y install cloud-utils-growpart 読み込んだプラグイン:fastestmirror, langpacks : : インストール: cloud-utils-growpart.noarch 0:0.29-5.el7 完了しました!
vda4 を拡張します。
[root@www ~]# growpart /dev/vda 4 CHANGED: partition=4 start=9416704 old: size=95440863 end=104857567 new: size=200298462 end=209715166
ファイルシステムを拡張します。
[root@www ~]# resize2fs /dev/vda4 resize2fs 1.42.9 (28-Dec-2013) resize2fs: Bad magic number in super-block while trying to open /dev/vda4 Couldn't find valid filesystem superblock.
怒られてしまいました。
Google先生によると、CentOS7では xfs_growfs を使うようです。
[root@www ~]# xfs_growfs /dev/vda4 meta-data=/dev/vda4 isize=256 agcount=52, agsize=230015 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 spinodes=0 data = bsize=4096 blocks=11930107, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 11930107 to 25037307
エラー無く完了したようです。
状態を確認してみます。
[root@www ~]# df ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置 devtmpfs 1012664 0 1012664 0% /dev tmpfs 1023332 0 1023332 0% /dev/shm tmpfs 1023332 107684 915648 11% /run tmpfs 1023332 0 1023332 0% /sys/fs/cgroup /dev/vda4 100138988 45760564 54378424 46% / /dev/vda2 508588 226176 282412 45% /boot tmpfs 204668 0 204668 0% /run/user/1002 tmpfs 204668 0 204668 0% /run/user/0
無事に / が拡張されたようです。
再起動して動作確認をざっと行い、完了です。