MacのPC上に、Vagrant + VirtualBoxの仮想環境を構築して開発をしています。
Vagrantはboxと呼ばれるイメージから手軽に開発環境を構築できてとても便利なのですが、私が利用しているイメージはディスク容量が小さく、すぐに容量不足になってしまいます。
「空き領域がありません」のエラーが発生しても、ちまちまファイルを消して対応を先延ばしにしてきましたが、重い処理の実行でエラーが頻発。根本的に対応することにしました。
とはいっても、面倒なことはしたくない。
vagrant-disksizeというプラグインを利用すると、簡単に容量を増やすことができたので、これは、その時の作業メモです。
開発環境
プロバイダ: VirtualBox (5.2.10)
ホストOS:MacOS High Sierra (10.13.6)
ゲストOS:CentOS(7.5.1804)
対処前の状況
rootで作業しているため、/dev/mapper/centos-root が直ぐに100%になってしまい、エラーが発生します。
#df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/centos-root 8.3G 5.7G 2.7G 69% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.4M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 497M 198M 300M 40% /boot vagrant 466G 187G 279G 41% /vagrant tmpfs 380M 0 380M 0% /run/user/1000
ディスクの拡張手順
プラグインのインストール
まずは、ホストOSのMacでプラグインをインストール。
> vagrant plugin install vagrant-disksize
Vagrantfileの編集
Vagrantfileにディスクサイズの指定を追加します。
…
config.vm.box = “centos71”
config.disksize.size = ’30GB’ <-この行を追加
…
sshでディスクを確認
vagrantを起動し、sshでログイン。
> vagrant up > vagrant ssh
fdiskの-lオプションで、マウントされているデバイスのディスクサイズとパーティション情報を確認します。
#fdisk -l Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0x000927b6 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 20479999 9726976 8e Linux LVM ...
物理パーティションを作成
fdiskを対話モードで起動し、物理パーティションを作成します。
# fdisk /dev/sda n ← パーティション作成 p ← primaryを選択 3 ← パティーション番号(デフォでいいならEnter) Enter ← パーティション開始位置(デフォでいいならEnter) Enter ← パーティション終了位置(デフォでいいならEnter) t ← タイプ変更 3 ← パティーション番号 8e ← 拡張したいパーティションと同じになるようにfdiskで確認した文字列 w ← 保存して終了
m | 対話モード用コマンドを一覧表示する |
---|---|
p | パーティションテーブルを表示する |
v | パーティションテーブルを検査する |
n | 新しいパーティションを作成する |
a | ブート可能フラグを切り替える |
d | パーティションを削除する |
w | パーティションテーブルの変更を保存して終了する |
q | パーティションテーブルの変更を「保存せずに」終了する |
disk -lでパーテーション情報を表示し、作成したパーティション「/dev/sda3」が追加されていることを確認します。
# fdisk -l ... デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 20479999 9726976 8e Linux LVM /dev/sda3 20480000 62914559 21217280 8e Linux LVM ...
pvcreateコマンドで、パーティションを物理ボリュームとして登録しておきます。
# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created
※2019/12/17追記:コマンド実行で「Device /dev/sda3 not found.」のエラーとなりました。VM再起動後同じコマンド実行で成功!
ボリュームグループに新しいパーティションを追加
“centos” に /dev/sda3 を追加します。
# vgextend centos /dev/sda3 Volume group "centos" successfully extended
ディスクの拡張
root に centos の空き領域をすべて追加します。
# lvextend -l +100%FREE /dev/mapper/centos/root Size of logical volume centos/root changed from 8.26 GiB (2114 extents) to 28.53 GiB (7303 extents). Logical volume root successfully resized
ファイルシステムの領域拡張
LV を拡張するだけでは使用できないので、ファイルシステムサイズを拡張します。
# xfs_growfs /dev/mapper/centos-root
対処後の容量確認
dfコマンドでディスクの容量を再度確認します。「/dev/mapper/centos-root」が8.3Gから29Gに増えています!
やったーーー!!
# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/centos-root 29G 3.0G 26G 11% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.4M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 497M 160M 338M 33% /boot vagrant 466G 181G 286G 39% /vagrant tmpfs 380M 0 380M 0% /run/user/1000
最後に
こちらのサイトを参考にさせていただきました。
Vagrantのディスク容量の増やし方
ホストOSがWindowsでの記事でしたが、Macでも同様の手順で無事にディスクを拡張することができました。
最初は100Gに増やしたのですが、大きすぎたと思い30Gに縮小したところ、vagrantが起動しなくなりました。
ディスク容量は増やす方向にしか変更できないようです。
最近のコメント