Vagrantで「空き領域がありません」のエラーが発生!ディスク容量の増やし方

MacのPC上に、Vagrant + VirtualBoxの仮想環境を構築して開発をしています。

Vagrantはboxと呼ばれるイメージから手軽に開発環境を構築できてとても便利なのですが、私が利用しているイメージはディスク容量が小さく、すぐに容量不足になってしまいます。

空き領域がありません」のエラーが発生しても、ちまちまファイルを消して対応を先延ばしにしてきましたが、重い処理の実行でエラーが頻発。根本的に対応することにしました。

とはいっても、面倒なことはしたくない。
vagrant-disksizeというプラグインを利用すると、簡単に容量を増やすことができたので、これは、その時の作業メモです。

開発環境

Vagrant: 2.0.4
プロバイダ: VirtualBox (5.2.10)
ホストOS:MacOS High Sierra (10.13.6)
ゲストOS:CentOS(7.5.1804)

対処前の状況

rootで作業しているため、/dev/mapper/centos-root が直ぐに100%になってしまい、エラーが発生します。

ディスクの拡張手順

プラグインのインストール

まずは、ホストOSのMacでプラグインをインストール。

Vagrantfileの編集

Vagrantfileにディスクサイズの指定を追加します。

config.vm.box = “centos71”
config.disksize.size = ’30GB’ <-この行を追加

sshでディスクを確認

vagrantを起動し、sshでログイン。

fdiskの-lオプションで、マウントされているデバイスのディスクサイズとパーティション情報を確認します。

物理パーティションを作成

fdiskを対話モードで起動し、物理パーティションを作成します。

対話モードの主なコマンド

m 対話モード用コマンドを一覧表示する
p パーティションテーブルを表示する
v パーティションテーブルを検査する
n 新しいパーティションを作成する
a ブート可能フラグを切り替える
d パーティションを削除する
w パーティションテーブルの変更を保存して終了する
q パーティションテーブルの変更を「保存せずに」終了する

disk -lでパーテーション情報を表示し、作成したパーティション「/dev/sda3」が追加されていることを確認します。

pvcreateコマンドで、パーティションを物理ボリュームとして登録しておきます。

※2019/12/17追記:コマンド実行で「Device /dev/sda3 not found.」のエラーとなりました。VM再起動後同じコマンド実行で成功!

ボリュームグループに新しいパーティションを追加

“centos” に /dev/sda3 を追加します。

ディスクの拡張

root に centos の空き領域をすべて追加します。

ファイルシステムの領域拡張

LV を拡張するだけでは使用できないので、ファイルシステムサイズを拡張します。

対処後の容量確認

dfコマンドでディスクの容量を再度確認します。「/dev/mapper/centos-root」が8.3Gから29Gに増えています!
やったーーー!!

最後に

こちらのサイトを参考にさせていただきました。
Vagrantのディスク容量の増やし方
ホストOSがWindowsでの記事でしたが、Macでも同様の手順で無事にディスクを拡張することができました。

最初は100Gに増やしたのですが、大きすぎたと思い30Gに縮小したところ、vagrantが起動しなくなりました。
ディスク容量は増やす方向にしか変更できないようです。