Vagrant + Virtualboxの仮想マシンファイルの置き場所を調べてみた

More than 3 years have passed since last update.

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に

ruby:Vagrantifle

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で削除