[備忘録]さくらのVPSをスケールアップした際にストレージを拡張する方法（CentOS 7）

# はじめに

現在さくらのVPSでは、<a href="https://www.sakura.ad.jp/information/announcements/2021/01/12/1968205886/">さくらのVPS 10万件突破記念「ストレージ変更オプション無料」キャンペーン</a>を開催中（～2021年8月31日）。
スケールアップと同時申し込みで、ストレージ容量が2倍になる「ストレージ変更オプション」。通常は別途費用がかかるのですが、これが期間限定で無料になる太っ腹企画！
ということで、当方で契約しているさくらのVPS全4台を調べたところ、1台だけストレージをたっぷりと使い切ってしまっているものがありましたので、それにこの「ストレージ変更オプション」を適用してみました。
そのときの顛末をここに備忘録として記載します。

# サーバ情報

スケールアップおよびストレージ変更オプション適用前のサーバ情報です。

| 項目名                |    値    |
|-----------------------|:--------:|
| さくらのVPSバージョン |    v4    |
| プラン                |   512MB  |
| ストレージ            | SSD 25GB |

このサーバは、自宅ネットワークに宅外から接続するために用いているVPNサーバです。調べたところ、ログファイルが非常に多く＆大きくなっていて、ストレージを圧迫していたようです。
後述しますが、残り135MBという数値を見てびっくりしてしまいました。

# スケールアップした

いったんサーバを止めて、スケールアップしました。
スケールアップ後のサーバ情報は下記の通りとなります。

| 項目名                |       値       |
|-----------------------|:--------------:|
| さくらのVPSバージョン |       v5       |
| プラン                |       1GB      |
| ストレージ            | SSD 50GB→100GB |

バージョンがv4からv5にあがりました。
また、メモリ容量は2倍に。
ストレージは2倍に、さらにストレージ変更オプションで2倍に、トータル4倍になりました。

# ストレージが認識されない

ちょっとスケールアップ後のサーバの情報を覗いてみましょう。

```shell-session
[root@vpn01 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@vpn01 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           991M        220M        293M        6.7M        476M        604M
Swap:          4.0G          0B        4.0G
[root@vpn01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda4        16G   16G  135M 100% /
devtmpfs        486M     0  486M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M  6.7M  489M   2% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda2       497M  271M  226M  55% /boot
tmpfs           100M     0  100M   0% /run/user/1000
```

メモリはちゃんと約1GB（正確には991MB？）認識されています。
ただストレージが16GBくらいしか認識されていません。
先述の通り最大100GBまで増やしたのですが…。

# 先人の知恵を借りましょう

[さくらのVPSでディスク容量拡張(CentOS7) - Qiita](https://qiita.com/mighty-n/items/6571fe3921713f6cc0ea)　@mighty-nさん

※先に `sudo su -` を実行して権限を昇格した上で作業を行っています。

```shell-session
[root@vpn01 ~]# fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/vda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1               1    41943039    20971519+  ee  GPT

Command (m for help): q

[root@vpn01 ~]# yum -y install cloud-utils-growpart gdisk
（中略）
Installed:
  cloud-utils-growpart.noarch 0:0.29-5.el7      gdisk.x86_64 0:0.8.10-3.el7

Complete!
[root@vpn01 ~]# growpart /dev/vda 4
CHANGED: partition=4 start=9416704 old: size=32526303 end=41943007 new: size=200298462 end=209715166
[root@vpn01 ~]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/vda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: 24E50A8F-EB81-4573-9F30-1084D97EBBC2


#         Start          End    Size  Type            Name
 1         2048         4095      1M  BIOS boot       BIOS boot partition
 2         4096      1028095    500M  Microsoft basic Microsoft basic data
 3      1028096      9416703      4G  Linux swap      Linux swap
 4      9416704    209715165   95.5G  Microsoft basic Microsoft basic data
```

# `resize2fs`が使えない？

ということで、 `/dev/sda4` は95.5GBまで大きくすることができたかに見えましたが、実際はまだです。

```shell-session
[root@vpn01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda4        16G   16G  135M 100% /
devtmpfs        486M     0  486M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M  6.7M  489M   2% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda2       497M  271M  226M  55% /boot
tmpfs           100M     0  100M   0% /run/user/1000
```
ファイルシステム上はまだ変わっていません。
ということで先ほどのコマンドの続きを入れていきます。

```shell-session
[root@vpn01 ~]# 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.
```

`Bad magic number` …
`Couldn't find valid filesystem superblock` …

これにははな[^1]も「めちょっく！」[^2]と言わざるを得ません。

[^1]: HUGっと！プリキュアの主人公、野乃はなのこと
[^2]: 「めっちゃショック」の略。はな自身が、第4話で説明している

# 救世主`xfs_growfs`現る

そこでもう1人の先人の知恵をお借りします。

[CentOS 7(XFS)でLVMディスク拡張でハマったこと - Qiita](https://qiita.com/fetaro/items/d7dc74262633ba474bc8)　@fetaroさん

```shell-session
[root@vpn01 ~]# xfs_growfs /dev/vda4
meta-data=/dev/vda4              isize=256    agcount=18, agsize=230015 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4065787, 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 4065787 to 25037307
[root@vpn01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda4        96G   16G   81G  17% /
devtmpfs        486M     0  486M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M  6.7M  489M   2% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda2       497M  271M  226M  55% /boot
tmpfs           100M     0  100M   0% /run/user/1000
```

これで `/dev/vda4` が16GBから81GBまで大きくなり、使用割合も100%から17%にへりました。
ひかる[^3]はこれを見て、きっと「キラやば～っ☆」と言うでしょう。

[^3]: スター☆トゥインクルプリキュアの主人公、星奈ひかるのこと

# その他の参考リンク

* [料金・仕様一覧｜VPS（仮想専用サーバー）はさくらインターネット](https://vps.sakura.ad.jp/specification/)
* [CentOS - バージョンの確認 - Linux入門 - Webkaru](https://webkaru.net/linux/centos-version/)
* [Linux（Cent OS / Scientufic Linux）のメモリ容量・CPUコア数・ディスク容量を調べる - 猫でもわかるWebプログラミング](https://www.utakata.work/entry/20180309/1520557200)