あいしんくいっとオススメ商品レビュー

【VMware】仮想マシンのスナップショット有無をコマンドで確認する方法

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

本記事対象者
仮想マシンのスナップショット有無をコマンドで確認する方法が知りたい方

ども。あいしんくいっと(@ithinkitnet)です。

ithinkit

スナップショット有無をコマンドで確認したいな。

スナップショットの持ちすぎは仮想マシン、仮想基盤全体のパフォーマンス劣化に繋がります。
どの仮想マシンがスナップショットを持っているか。
vSpherePowerCLIが使えると、仮想マシンが保持するスナップショットの一覧が取得出来て大変便利なのですが、PowerCLIを別途導入してないと使えません。
ただ残念ながら、PowerCLIが導入されていないことが意外と多い。。。

WebClientやHostClientを利用して、GUIでポチポチ確認してもいいのですが、結構面倒くさい!
なので、「仮想マシンがスナップショット保持しているかどうか」をESXi標準コマンド「vim-cmd」で確認する方法について書いておきたいと思います。
1コマンドとは行かないまでも、2コマンドで確認出来ます。

仮想マシンのスナップショット有無をコマンドで確認する方法

ちなみに今回の確認方法はESXiホスト単位でしか確認出来ません。
ひと手間かかりますが、WebClientやHostClientでひとつひとつ確認するよりはたぶん楽・・・。

注意
ESXiにSSH接続する必要がありますので予め設定しておいてください。

スナップショット取得有無確認の流れ

STEP.1
仮想マシンのID(Vmid)取得
vim-cmd vmsvc/getallvms
STEP.2
スナップショット取得の確認
vim-cmd vmsvc/get.snapshot <仮想マシンのVmid>

仮想マシンIDの取得

ESXiにSSH接続し、以下のコマンドで仮想マシンごとのIDを取得します。

コマンド
vim-cmd vmsvc/getallvms

ID列だけ抽出する場合は以下でもよいでしょう。

コマンド
vim-cmd vmsvc/getallvms | awk '{print $1}'
vim-cmdコマンド実行例

[root@ithinkitnet:~] vim-cmd vmsvc/getallvm
Vmid Name File Guest OS Version Annotation
1 Win2016 [SSD-DataStore] Win2016/Win2016.vmx windows9Server64Guest vmx-13 192.168.11.250
2 Win2012r2 [SSD-DataStore] Win2012r2/Win2012r2.vmx windows8Server64Guest vmx-11 192.168.11.200
4 Win2016-2 [SSD-DataStore] Win2016-2/Win2016-2.vmx windows9Server64Guest vmx-13 192.168.11.251
5 cent75-wordpress [SSD-DataStore] cent75-wordpress/cent75-wordpress.vmx centos7_64Guest vmx-14 192.168.11.155
6 esxi67 [SSD-DataStore] esxi67/esxi67.vmx vmkernel65Guest vmx-14

上記、それぞれ先頭の番号が仮想マシンIDになります。
(例:1 Win2016 )

スナップショットの保持確認

前項で取得した仮想マシンIDを引数にして以下のコマンドを実行します。

コマンド
vim-cmd vmsvc/get.snapshot <仮想マシンのVmid>

スナップショットが存在する場合、以下のように表示されます。
下だと「OSインストール直後」という名前のスナップショットがあリます。

コマンド実行例

[root@ithinkitnet:~] vim-cmd vmsvc/get.snapshot 1
(vim.vm.SnapshotInfo) {
   currentSnapshot = 'vim.vm.Snapshot:1-snapshot-1', 
   rootSnapshotList = (vim.vm.SnapshotTree) [
      (vim.vm.SnapshotTree) {
         snapshot = 'vim.vm.Snapshot:1-snapshot-1', 
         vm = 'vim.VirtualMachine:1', 
         name = "OSインストール直後", 
         description = "", 
         id = 1, 
         createTime = "2018-07-14T13:26:52.985542Z", 
         state = "poweredOff", 
         quiesced = false, 
         backupManifest = , 
         childSnapshotList = , 
         replaySupported = false
      }
   ]
}

全仮想マシンのスナップショット有無を確認したい場合はこんな感じで。

コマンド

for i in $(vim-cmd vmsvc/getallvms | awk '{print $1}'|sed '1d') ; do vim-cmd vmsvc/get.snapshot $i ;done

ちなみにHostClient上から確認すると以下の通り。
HostClient上から確認

コマンド実行例)スナップショットが存在しない場合

[root@ithinkitnet:~] vim-cmd vmsvc/get.snapshot 4

[root@ithinkitnet:~]

vim-cmdコマンドで仮想マシンIDを取得、IDを引数にしてコマンド実行することによってスナップショットの有無を確認することが出来ます。
vCenter経由かつワンコマンドで一覧が取得出来るPowerCLIには劣りますが、それでもWebClientやHostClientで一つ一つ確認するよりは楽かなーと思います。

ithinkit

vim-cmdコマンドでスナップショット確認する方法覚えておきましょう!

以上、あいしんくいっとでした( ..)φメモメモ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)