Vagrantを使ってローカル開発をしてるときに、仮想マシンのファイル(.vmdk)がどこにどう配置されているのかを調べてみました。
環境
- Mac OSX Yosemite
- Vagrant 1.7.2
- VirtualBox 4.3.20
配置場所には2種類ある
- ~/.vagrant.d/boxes/ ... 種仮想マシンの置き場所
- ~/VirtualBox\ VMs/ ... 起動したインスタンスの実体
$HOME/.vagrant.d/boxes/
ここには、vagrant addなどしたときにインターネットからダウンロードされてきた仮想マシンが保存されます。
ここにある仮想マシンは基本的に読み取り専用として使われます。
AWSにおけるAMIのようなものと考えればよいでしょう。
Vagrantfileに
config.vm.box = "chef/centos-6.6"
と書いてvagrant upした場合(またはvagrant add chef/centos-6.6
した場合)、初回時にはatlas(旧名vagrant cloud
)のサイトからchef/centos-6.6
のイメージがダウンロードされて~/.vagrant.d/boxes/chef-VAGRANTSLASH-centos-6.6/
というディレクトリの下に保存されます。
ここにあるイメージファイルのサイズはだいたい1ファイル200MBから400MBで、読み取り専用なので肥大化とかは起こりません。
ですが使わなくなった古いマシンイメージはときどき消しておくとよいでしょう。
vagrant box list
で一覧表示
vagrant box remove foo/bar
で削除
"$HOME/VirtualBox VMs/"
vagrant upした後のインスタンスの仮想マシンイメージが保存される場所です。
AWSにおけるEBS Root Deviceのようなものと考えればよいでしょう。
仮想マシンインスタンスの中にいろいろなファイルを作ったりインストールしていくと、この下にあるここにある仮想マシンファイルがどんどん肥大化していきます。
私の環境では、半年間使い込んだ1個の仮想マシンの容量が13GBにも肥大化してしまっていました。
この仮想マシンの容量を削る方法は一応あるようですが、Immutable Infrastructureな観点からは、削除して新しく作り直すのがいいのではないでしょうか。
Orace VM Virtualboxマネジャー
で一覧表示
vagrant destroy
で削除