VMWareにはスナップショットと呼ばれる仮想マシンの状態を保存する機能があります。スナップショットは簡単に仮想マシンの変更点のみを保存できます。しかしスナップショットが存在することにより他のソフトの動作に影響を与えることもあります。今回この仮想マシンのスナップショットを削除するスクリプトを作成してbatファイルから起動させる方法を紹介します。
【前提条件】
batファイルを実行するマシンには下記のソフトがインストールされている必要があります。
1)VMware CLI
※VMwareから無料でダウンロード可能です。
2)Windows Power shell
Windows マシンにデフォルトでインストールされています。
※マイクロソフトから無料でダウンロードも可能です。
3)vSphere Client
※使用しているvSphere、ESXiにブラウザからアクセスすることでダウンロード可能です。
例)http://【vSphere、ESXiのIPアドレス】
■設定手順
1)VMware CLIのスクリプトの作成
※コードサンプル
1)削除対象のスナップショットを保持している仮想マシンを管理しているvCenterServerに接続します。
Connect-VIServer -Server 【vCenterServerのIPアドレス】 -User 【vCenterServerのユーザー名】 -Password 【vCenterServerのパスワード】
2)指定した”仮想マシン名”のスナップショットを削除します。
※通常はコマンド実行時にユーザーにスナップショットの削除を行うか確認を行いますが、オプション(-confirm:$confirm)を設定して自動で削除を開始するようします。
$confirm=$false
Get-Snapshot -VM “仮想マシン名” | Remove-Snapshot -confirm:$confirm
2)作成したVMware CLIのスクリプトを呼び出すbatファイルの作成
※コードサンプル
1)Windows powershellの「powershell.exe 」のパスを入力します。
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -psc
2)VMware CLIの「vim.psc1」のパスを入力します。
“C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1” -c
3)実行するVMware CLIのスクリプトを指定します。
C:\Remove_snopshot.ps1
3)作成したbatファイルを実行することでVMware CLIのスクリプトが起動します。
※PowerShellはセキュリティ上、デフォルトでスクリプトの実行が無効に設定されています。
スクリプトを実行するためには、スクリプトの実行を許可する「Set-ExecutionPolicy RemoteSigned」コマンドを実行しておく必要があります。
【指定した時間で処理の実行】
上記説明で作成したbatファイルをWindows Serverの「タスクスケジューラ」の機能と連携することで指定した時間に仮想マシン内のスナップショットの削除が可能です。
1)Windows Server 2003R2の場合
「スタート」→「コントロールパネル」→「タスク」からスケジュールの設定が可能です。
2)Windows Server 2008R2の場合
「スタート」→「管理ツール」→「タスク」からスケジュールの設定が可能です。
【batファイル実行時の動作】
※仮想マシン内にスナップショットが存在することを確認します。
「タスクスケジューラ」でbatファイルを起動させます。
※設定画面サンプル
関連トピックス:
- VMwareのスナップショット機能について【仮想化プラットホーム VMware vSphere】
- vSphere CLI コマンド(vmware-cmd)【仮想化プラットホーム VMware vSphere】
- VMwareスナップショット・ファイル・タイプの違いについて:
- VMwareのスナップショット作成・削除処理の仕組み
- スローなVMwareスナップショットの回避と修正手法
- XFSファイルシステムとEBSスナップショットによる一貫性のあるバックアップ (AWS)
- ESXi仮想マシンのスナップショットのチェーンはどのように維持されている?
- VMware仮想環境の平衡状態を保つためのスナップショットの管理