追加ディスクをくっつけて容量拡張

朝起きるとPostfixでエラー発生の通知が多数届いていて、

“Insufficient system storage”ってなんだ? と思ったらディスク容量が足りないらしい。

調べてみると確かに / の容量を100%まで食い潰していた。


取り急ぎなんとかする必要があるとフォルダ容量を調べて下記3つの対策をした。

  1. 個人用のデータ保管庫のうちほぼ使っていなくて復元可能なデータを削除
  2. メールボックスの迷惑メールフォルダの中身を削除
  3. MySQLのログファイルの容量を削減 (innodb_log_file_sizeの設定変更)

2.はあんまり効かなかったね。でも、これで10%以上の余裕は確保できた。


おそらくトドメを刺したのはメールかMySQLだと思うのだが、

容量を圧迫する要因が個人用のデータ保管庫ですね。

今回、ほぼ使っていないデータは消したのだが、今後追加の予定もあった。

でも、このVPSで使える容量に対してはだいぶ余裕があったような。

調べてみると、VPSで使えるストレージ容量は100GBなのだが、

実際にシステムで使える容量は17GBほどとだいぶ少ない。


この原因はお名前.com VPSのストレージが「基本ディスク」と「追加ディスク」に分かれていることだった。

あらかじめ設定しておけば契約容量を自由に割り振ることができるのだが、

初期設定では基本ディスクが20GB、残り(本契約では80GB)が追加ディスクという扱いになる。

これをあらかじめ基本ディスク100GBにしておけばこんな問題はなかったのだが。

サイズ変更はできるのだが、サイズを縮小する方のディスクが吹き飛ぶなど、

操作ミスに対するリスクが高いのでやりたくないなぁと。


確認したところ、基本ディスクは /dev/vda 、追加ディスクは /dev/vdb で、

ディスクは分かれているが、現在のままでもちゃんと100GB使えるようだ。

追加ディスクに新しくパーティションを切ってマウントすれば……

とも思ったが、LVMでは複数ディスクを合算して使うことができたよねと。

調べたらちゃんとできそうなのでやってみることにした。


まずLVMの用語を確認する。

物理的なディスクにパーティションを切ったものをPhysical Volume(PV)と呼ぶ。

次にPVを1個以上組み合わせたVolume Group(VG)を作る。

現在は1つのPVから構成されるVGがある状態になっている。

VGを適宜分けてLogical Volume(LV)を作成する。

このLVには物理ディスクに切られたパーティションのようにファイルシステムを作ることができる。

現状は2つのLVがあって、1つがスワップ領域、もう1つがXFSのファイルシステムで、ルートディレクトリに割りあてられている。


というわけで、まずは追加ディスクにPVを作成する。

そして、このPVを既存のVGに追加して、VGを拡張する。

VGを拡張した分、LVを拡張して、ファイルシステムを拡張すると、

基本ディスク・追加ディスクの構成を変えずにメインで使っているファイルシステムを拡張できるというわけである。


まず、追加ディスクにパーティションを作成する。

# fdisk /dev/vdb

Hex codeで”8e”とするとLVMになる。全領域をLVMにしてしまう。

次にこのパーティションをPVにする。

# pvcreate /dev/vdb1

pvdisplayコマンドでPVの状況を確認出来る。

基本ディスクのPVがあって、追加ディスクのPVが”NEW Physical volume”と表示されている。

VGの状況はvgdisplayコマンドで確認出来る。

これを見ると基本ディスクのPVで構成される”cs_gmo2”というVGがあるので、

# vgextend cs_gmo2 /dev/vdb1

で、新しく作成したPVを既存のVGに加える。

LVの状況もlvdisplayコマンドで確認出来る。

ファイルシステムの方は /dev/cs_gmo2/root という名前で、これを拡張したいので、

# lvextend -l +100%FREE /dev/cs_gmo2/root

で、当該VGの未使用領域全部をこのLVの領域拡張に充てる。

最後にファイルシステムの容量も拡張する。

# xfs_growfs /

マウント先が/のXFSを拡張する場合はこう書くらしい。


これでVPSのストレージ容量がフルに使えるようになった。

最初から基本ディスクに割りあてておけばこんなことにはならなかったが、

後から気づいてもほぼ同じ状態にすることができたのでよいということで。

これらの作業は動作中にすることもできるので安心である。


それにしてもなんでこんな仕様なんだろうね?

なにか歴史的な経緯でもあるんだろうか?

他社を見ると、ストレージを追加購入できるような場合はともかく、

標準装備のストレージを基本・追加と分ける構成は独特に見える。

新規申込みの人は基本ディスクに100%からスタートにしておけばいいのにとか思いますけどね。