同じBoxで複数の仮想マシンを立ち上げる場合は Linked Clone は有効に、1台しか立ち上げない場合は無効にすると効率的
メモ
- 設定:site.yml の
linked_clone:
の値を true/false で切替え
Linked Clone とは
BoxごとにマスターVMを持つことになるので、BoxのクローンVMを初めて起動するときにマスターVMの作成が自動で行われます。そのため、初回はLinked CloneなしのVM作成の時間とほとんど変わりません。
Linked Cloneはデータセンター仮想化製品ではメジャーな、一つのマスターVMを元にして複数のクローンVMを作り出す機能です。普通にVMをコピーするのではなく、クローンVMはマスターVMの差分データのみを持つことから'Linked'という冠が付いています。VMの初回作成(vagrant up)時の時間が短縮されるのと、仮想ディスクのサイズが差分のみで済むメリットがあります。
参照元:Linked CloneとSnapshotを試してみた | Developers.IO
Linked Clone 有効/無効 で容量を比較
VCCWデフォルト設定での例
Linked Clone 無効の場合
VirtualBox VMs/ に生成される容量が約2GBもあるディスクイメージが、仮想マシンを立ち上げるごとに作成される
- 1台目:2GB
- 2台目:2GB (累計4GB)
- 2台目:2GB (累計6GB)
- 2台目:2GB (累計8GB)
Linked Clone 有効の場合
増えるのはマスターとの差分のみなので、かなりのディスク使用量が節約できる。
サーバーの構成要素のアップデート等を行った際、マスターをアップデートすれば全ての仮想マシンに反映されるのも効率的
- 1台目:2GB (マスター) + 300MB
- 2台目:300MB (累計2.3GB)
- 2台目:300MB (累計2.6GB)
- 2台目:300MB (累計2.9GB)
Linked Clone 有効/無効 でファイル構成を比較
仮想マシンイメージの保存場所は、
ユーザーディレクトリ/VirtualBox VMs/projectname1.localhost/
(サンプルでは、仮想マシン名を "projectname1.localhost" とした)
Linked Clone 無効の場合
projectname1.dev
|- box-disk1.vmdk
|- kunai.dev.vbox
|- kunai.dev.vbox-prev
|- Logs
Linked Clone 有効の場合
vccw-xenial64_default_1477168387480_42113_1480041556524_84136
|- box-disk1.vmdk
|- vccw-xenial64_default_1477168387480_42113_1480041556524_84136.vbox
|- vccw-xenial64_default_1477168387480_42113_1480041556524_84136.vbox-prev
|- Snapshots
|- {2e99947e-b229-48f2-a5ea-acbdc32db2d8}.vmdk
projectname1.dev
|- projectname1.dev.vbox
|- projectname1.dev.vbox-prev
|- Snapshots
| |- {3fcb178a-79a8-417c-990a-d8d392b6dad1}.vmdk
|- Logs
注意
Vagrantで Linked Clone を有効にして構築している仮想マシンを全て削除(destroy)しても、マスターは削除されずに残る。以降使う予定がなければ容量を食うだけのゴミになるので、Virtualbox で削除する。~/VirtualBox VMs/ 内の該当ディレクトリも消えてるか確認すること