これでvSphere入らず!コマンドでESXi のスナップショットを取る方法
2017/05/16
今回はESXi CLI(ESXi のコマンドライン)上で仮想マシンのスナップショットと丸ごとバックアップを取る方法のメモ。
ESXiはひとつのサーバで複数のOSを実行できるのがウリなんだけど、ひとつのサーバになるってことは機器障害に弱くなるってこと。HDDとか電源とか。大規模な機器構成なら冗長化すれば問題ないけど、個人所有であればそうはいかない。
自分が寝ててもちゃんとバックアップを作ってくれる環境を作り上げるのが今回の目的です。
目次
ESXi CLIでスナップショットを取得する
まず最初にスナップショットから取得します。
これを実行しないと、起動中の仮想マシン(ゲストOS)のvmdkのコピーが取れない。
■スナップショットの取得
# vim-cmd vmsvc/snapshot.create 仮想マシンID(vmidと呼ばれる数字)
■スナップショットの削除
# vim-cmd vmsvc/snapshot.removeall 仮想マシンID(vmidと呼ばれる数字)
仮想マシンを指定するにはvmidという番号が必要です。仮想マシン名やホスト名は使えません。
vmidは仮想マシン(ゲストOS)を再起動する度に変化するIDなので数値固定だと上手く動作しない時があります。なので動的にvmidを取得しないといけません。
以下のコマンドで動的にvmidを取得できます。
# vim-cmd vmsvc/getallvms | awk '/仮想マシン名とか抽出キーワード/ {print $1;}'
組み合わせて使うこともできます。
# vim-cmd vmsvc/snapshot.create vim-cmd `vmsvc/getallvms | awk '/仮想マシン名とか抽出キーワード/ {print $1;}'`
※ Gumroad で無料配布中です。
他にできること
vim-cmdでできることは他にもたくさんあります。
自分はこれくらいしか使ったことがないのですが、他に便利な使い方があれば知りたいですね。
~ # vim-cmd vmsvc Commands available under vmsvc/: acquiremksticket get.snapshotinfo acquireticket get.spaceNeededForConsolidation connect get.summary convert.toTemplate get.tasklist convert.toVm getallvms createdummyvm gethostconstraints destroy login device.connection logout device.connusbdev message device.disconnusbdev power.getstate device.diskadd power.hibernate device.diskaddexisting power.off device.diskremove power.on device.getdevices power.reboot device.toolsSyncSet power.reset device.vmiadd power.shutdown device.vmiremove power.suspend devices.createnic power.suspendResume disconnect queryftcompat get.capability reload get.config setscreenres get.config.cpuidmask snapshot.create get.configoption snapshot.dumpoption get.datastores snapshot.get get.disabledmethods snapshot.remove get.environment snapshot.removeall get.filelayout snapshot.revert get.filelayoutex snapshot.setoption get.guest tools.cancelinstall get.guestheartbeatStatus tools.install get.managedentitystatus tools.upgrade get.networks unregister get.runtime upgrade