コメントをどうぞ以前、仮想ゲストOSのバックアップについて、簡単に書きましたが、当方の環境もここまでESXi密度が高いと、「もしも・・・」の時に涙ちょちょ切れ~ってことになるので、スナップショットとクローン作成を利用したバックアップ作成スクリプトを作ってみました。当方の環境は、バックアップ用ボリュームがESXi上にnfsマウントされており、以下のスクリプトはそこに作成されるような仕組みになっていますので、環境に合わせて変数内容を変えてください。このスクリプトを作成するにあたり、「AKIONWEB」さんのところを参考に作ってみましたが、動作結果については自己責任と言うことで。環境条件から・・・といっても上に書いたように、ESXiからバックアップボリュームが見えていること引数としてはゲスト名だけを使用するバックアップは上書きでも良しとすることだけです。続きと簡単な解説は、続きでどうぞ。0####-----まず、23~30行目の関数についてここは、このスクリプトを何度も叩くと、スナップショット(や解放)がその回数分叩かれることになり、あまりESXiに優しくないので、もし前の処理が残っていたのならば、まだ終わっていない事を関知し、通知する関数です。41行目の変数についてこの変数は、バックアップが保存される親のディレクトリを指します。このディレクトリの後に、ゲスト名がついたディレクトリが実際のバックアップ先(59行目)になります。47~52行目ここでは、引数で渡されたゲスト名を保存し、またこのゲスト名を利用してIDリストから該当のID番号を取得しています。vmsvc/getallvms」を叩くと、登録されているゲストの一覧が出力されます。vmx-04この中に該当するゲストのIDが先頭にありますので、ゲスト名でgrepし、IDをawkコマンドで引っぱがします。(次の項でに3番目にあるFile項の中のdatastore?も引っぱがすことになります)ここで、該当ゲスト名が無ければエラーでスクリプトが終了します。55~57行目ここでは、ゲストファイルの配置情報を取得します。当方のESXiは、ディスクドライブが複数あり、そのうちのいくつかがdatastoreとして登録されています。よって、ゲストによっては同一ESXi上であっても配置されているdatastoreが異なります。1つしかない環境の場合は、後で示すバックアップ元ディレクトリ変数の中で固定していいと思います。59~65行目ここで、バックアップ先ロケーションを決定しています。決定されたディレクトリがあるかチェックしていますが、必要無いような気もしますが、後でバックアップの世代管理もやってみようと画策しているので、その時のためのものです。72~74行目ここから実際のバックアップ処理(クローン作成)が始まります。ゲストの管理ファイルをコピーします。AKIONWEBが仰るには、これを先にしておかないと、後でファイルを編集する必要があるとのことでしたので、そのまま掲載させてもらいました。78~83行目ここでスナップショットを取得します。この処理で後述の仮想実体ファイルへのアクセスが可能になります。ここで指定のスナップショットが行われたかどうかを冒頭の関数でチェックし、スナップショットが始まったら、実体ファイルの処理に移ります。87~91行目ここで、vmkfstoolsコマンドを利用して実体ファイルをクローニングします。当方はmonosparseオプションを利用してバックアップ先のファイルを小さくしていますが、ボリュームサイズが潤沢の方は素のままでもいいのではないかと思います。これはリストアの時に関係していて、小さくした場合、ESXiはその小さいままのファイルを扱うことが出来ず、元の大きなファイルに戻してあげる作業が必要になります。95行目さて、そろそろ終わりですね。クローニングが完了したら、スナップショットを解放してあげます。これで、晴れて半自動でのゲストOSのバックアップが可能になりました。あとは、cronに任せることと、バックアップの世代管理機能、リストアスクリプトを組み込めれば安心して眠れます。この辺はまた後で書ければいいかなと・・・(何かいつも最後に自分で宿題作っているような・・・)試しにこのスクリプトでバックアップし、手動でリストアを行ってみましたが、無事ゲストOSがバックアップ前の状態で稼働しました。(何度も言いますが自己責任で・・・しつこいって)ではでは。HostingWordPressログイン。