ESXi 4.1 で 仮想サーバを NAS へホットバックアップ?


※ このページは最低限 Linux/Unix/vmware に関する知識があり、コマンド入力やターミナルを普通に使える方が対象です。また、このスクリプトを使用して起こったトラブル等、当方は一切関知しません。全て自己責任で利用し当方は一切の責任を負わないものとします。動作確認テストは当方のサーバ( ESXi 4.1 update1 build 348481 )で行っています。

最初に出典元・参考ページです。

仮想ゲストOSバックアップ~スクリプト編~
http://www.witkitty.com/wordpress/2009/07/05/esxi-backup-part2/

無償のVMware ESXiでホットバックアップを自動で実行する方法(のヒント)
http://blog.xe.bz/archives/51126645.html

先人達の知恵というのは素晴らしいものです。 vmware ESXi でホットバックアップ(仮想サーバを起動状態でバックアップ)したいと思っていたのですが、どうにもロックが掛かっていて読み出せませんでした。ぐぐってみると、やはり同様の思いを持っていた先人達が見事にそれをクリアして、ホットバックアップを可能にしました。ぶっちゃけ、VMware vSphere Standard あたりを買えばいいのですが、そこはそれ。

Whimsical Kitteeeeen 様「仮想ゲストOSバックアップ~スクリプト編~」 は非常に参考にさせて頂きました。このスクリプトが無ければ挫折していたと思います。たた、このスクリプトでは対応しきれない部分がありました。

test01
test01-01

のように同じ名前が入るような名前のつけ方をした場合、最初にヒットしたものの vmid が取得されてしまう為、正常にバックアップができなかった点。

仮想HDDを複数マウントしているような場合(vCenter Converter Standalone Client で P2V するとたまにあるんですわ)、全てのHDDがバックアップをされない。

という事がありました。
ぶっちゃけ、そんな名前つけた自分が悪いんですけどね
他にも、できればイメージは別のハードに保存したいという事も考えて、バックアップ先の指定もできたらいいな…と考えました。

元のスクリプト製作者様に敬意を払いつつ、自分なりに機能追加させて頂いたスクリプトを公開致します。

backup.tar.gz

使い方は、ESXi のホストサーバに ssh で入り、スクリプトを任意の場所に設置。chmod a+x ./backup.sh という感じで実行権限与えてください。後は、

./bachup.sh **仮想サーバ名**


./bachup.sh web01

仮想サーバ名は、
vim-cmd vmsvc/getallvms
というコマンドで取得できる Name の値を入れてください。

元スクリプトと違う点は以下の通り。

1. 進行状況を表示するようにした
2. 保存先を任意に指定できるようにした
3. vmid の取得方法を厳密化にした(つもり)
4. バックアップ対象ファイルの指定方法を厳密化にした(つもり)
5. 複数の仮想HDDをマウントしていた場合、全て取得するようにした(つもり)

1. は省略。個人的に知りたかっただけなので(笑)
2. これ、すっごく重要です。iSCSIがあればいいんですが、そうそうそんなもん用意できません。最近は iSCSIイニシエータ もフリーで出回りだしましたが、やっぱり簡単に利用したいなら NAS。というか、NFS。これを ESXi でマウントして、そこに保存できればいいなと思います。ESXi で NFS をマウントする方法は、以下のサイトをご参考に。ちなみにマウントポイントは /vmfs/volumes/**任意の名前**/ 以下になります。

ReadyNAS を VMware ESX のデータストアとして使う
http://www.readynas.com/ja/?p=2918

3.4.5. が(つもり)とついているのは色々な運用の結果、この基準に当てはまらない事がかなりある事が判明したからです。vmdk ファイルが仮想サーバ名と異なっていたりする事もかなりありました。更に、スナップショットを取ってもロックが掛かったままの仮想サーバもありました。これ、理由が全く判らないのですが、そういう事もあります。

ちなみにバックアップは都度上書きされます。別のスクリプトを書いて世代管理してもいいですね。cronへの登録等はググってください。

コメントを残す

メールアドレスが公開されることはありません。