豚吐露@wiki

backupしたい

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

backup方法

環境
ESXi 4.1.0

ESXiは無料ですが、そのバックアップツールは有料らしい。
無料でバックアップするための方法を検討したのでφ(..*)メモメモ...
バックアップの方法はいくつかあるが、今回は外部のHDD、光学メディアに退避する方法。

VMを稼働させながらのバックアップ(ホットバックアップ)は、検討中。(´・ω・`)


■BackUp手順
とりあえず、VMを停止してのバックアップの手順。

① 必要なVMのリストアップ
VMがどこに格納されているかも確認する。

vSphere Clientを起動してESXiに接続する。
インベントリからバックアップしたいVMを[右クリック]-[設定の編集]を選択。

開いたウィンドウのオプションタブを選択すると、『仮想マシンの動作場所』って項目がある。
下図の例だと『[datastore1] CentOS_5.6』ね。コレをメモっとくこと。


② vSphere Client等を用いてVMの停止を行う。
一時停止でも良いと思うけど、止めた方が良い。
とにかく、ESXiによるファイルロックを解除させたいってトコが目的。

③ VMイメージを圧縮する。
SSH接続を行い、ターミナルから圧縮を行う。
VMはdatastore内に格納されており、datastoreは『/vmfs/volumes/』にある。
例えば『datastore1』にある『HogeVM』の場合。
e.g.)
cd /vmfs/volumes/datastore1/
tar zcvf HogeVM.tar.gz HogeVM/

file sizeがでかすぎてか知らんがtarで直接*.tar.gz fileを作れない場合があるみたい。ちなみにダメだった時のfile sizeは107GB。
仕方がないので、先にgzipしてからtarしてみる。
※ちなみに、gzipコマンドで実行すると元ファイルは消えるので注意!! 消したくない場合は、 gzip -c hoge > hoge.gz って圧縮結果を標準出力してリダイレクトする方法を取るしかないみたい?
e.g.)
cd /vmfs/volumes/datastore1/
gzip -r HogeVM/
tar cvf HogeVM.tar HogeVM/
一応回避できたっぽぃ。つまりgzipの限界じゃなくて、tarの方の限界って事か...
けど...多分gzipにも限界あるんじゃろうな。VMのHDDサイズには気を付けたほうが良さそう。

④ datastoreからローカルに取得
まず、データストアブラウザを起動する。
インベントリからサーバ名押下。右側の画面の『構成』タブを選択。表示内容に『ハードウェア』ってくくりの中に『ストレージ』ってのがあるので押下。
右側に現在存在するdatastoreが表示されるので、任意のdatastoreを右クリックし、『データストアの参照』を選択。データストアブラウザが起動する。

データストアブラウザを使い、③で作成した *.tar.gz ファイルを右クリック、ダウンロードを選択する。

これで *.tar.gz ファイルがローカルに取得できる。このファイルを任意の媒体に移動させることでbackupを行う。


■Restore手順

① datastoreにbackupをアップロード。
データストアブラウザを用いてbackupした *.tar.gz ファイルをアップロード。
データストアブラウザのメニューアイコンからアップロードを選択。

ファイル選択ダイアログが開くので、対象のファイルを指定。

※警告が表示されるけど、続行。

② 解凍
①でuploadしたファイルをデータストア内の任意の位置に解凍する。解凍はSSH接続したターミナルから実施する。
e.g.)tarで圧縮もいっぺんにやったfileの解凍
tar zxvf HogeVM.tar.gz

e.g.)tarでいっぺんに圧縮できんかったfileの解凍
圧縮してからアーカイブした場合は以下の手順で解凍する。
tar xvf HogeVM.tar
cd HogeVM/
gzip -d *
こんなShellScript走らせて放置しとくとか。
  1. #!/bin/sh
  2.  
  3. tar xvf $1.tar
  4. cd $1
  5. gzip -d *

③ インベントリへ登録
解凍したdirの中にある *.vmx ファイルを右クリック、『インベントリへの追加』を選択。

ウィザードが起動するので、追加する任意のVM名を入力。既存の物とかぶらないように。



『終了』押下後、vSphere Clientでインベントリを表示し、指定した名前で追加されている事を確認する。

④ RestoreしたVMの起動
リストア後、初回起動時に以下のような警告が表示される。

backup元のVMが無ければ『I moved it』を、有るのであれば『I copied it』を選択して『OK』押下。
多分、NIC絡み(Mac Addr)に影響するハズ。
LinuxだとMac Addrが変わるとnetworkの設定も初期化されてDHCP接続になると思う。固定IPを振ってたりすると振りなおさんといけんのんで注意。
Windowsもnetworkの設定に影響あるはず。よく調べてませんが...(ノ∀`)

以上の手順を行えば、正常に起動するハズ。


【検討中のメモ】
■backup対象fileの確認

SSHで/vmfs/volumes/に移動。
# cd /vmfs/volumes/
この下にVMが格納された『datastore1』ってシンボリックリンクがきってあるハズ。で、その下にVM名と同じdirがある。
# ls -lA datastore1/
drwxr-xr-x 1 root root 2240 Jan 4 18:09 CentOS_5.6
このdirの下にはVMのハードウェア情報からスナップショットの情報まで格納されてる。
バックアップ時には、scpかなんかで仮想HDDファイル(*.vmdk)だけまるっとコピーする。
※VM稼働中はファイルロックがかかってるので、そのままではコピー出来ないので注意。


  • 方法① 別のデータストアへのコピー
■バックアップ
どうも通常のcpコマンドでは時間がかかるらしく、VMWareが用意してくれてる『vmkfstools』ってツールを使用する。
コレを使わないでcpとか使うと、IOがやたらと遅くなってすっごい時間がかかるらしい。
ただし、このコマンドでcopyできるのはdatastore内だけみたい。(´・ω・`)
なので、任意のストレージにcopyしたい場合は、ストレージをデータストアとして認識させないとダメ。
USB HDDとかをつないでもESXiは認識してくれないので、やるとするとnfsで共有されたdirをデータストアとして登録して、そこにコピーする手がある。
nfsをデータストアとして登録したい参照。

ちなみに、データストア以外を指定するとこんな感じで怒られる。
# vmkfstools -i /vmfs/volumes/datastore1/CentOS_5.6/CentOS_5.6.vmdk /wk/backup/CentOS_5.6.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk 'CentOS_5.6.vmdk'...
DISKLIB-LIB : Unable to get file system ID for filename "/wk/backup/CentOS_5.6.vmdk"
DISKLIB-LIB : Unable to get file system ID for filename "/wk/backup/CentOS_5.6-flat.vmdk"
Failed to clone disk : File too large (1769481).

データストア内のpathをbackup先に指定してバックアップしてみる。
# vmkfstools -i /vmfs/volumes/datastore1/CentOS_5.6/CentOS_5.6.vmdk /vmfs/volumes/backup/CentOS_5.6.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk 'CentOS_5.6/CentOS_5.6.vmdk'...
Clone: 100% done.
これで仮想HDDのcloneが作られるが...コレってスナップショットは破棄されるんじゃろうなぁ...スナップショットも含めたバックアップって丸っとコピーしかないんかなぁ?

■リストア
検討中。


  • 方法② ネットワーク経由で取得
データストアの内容丸っとdownloadしてバックアップ、丸っとuploadしてリストア。ってのができないか検討中。

■バックアップ
データストアの参照からローカルHDDへdownload。

■リストア
試してるトコ。まだ上手くいってない。


  • 方法③ 『VMware vCenter Converter Standalone Client』を使う
VMWareが無償で提供しているツールを使う。ただし、これもスナップショットが破棄される。あくまで現状の仮想HDDが変換してコピーされるだけ。

■バックアップ
『vCenter Converter』を用いてESXi上のVMイメージをローカルへ変換してコピー。
この時、変換後の形式をServer用にしようが、Workstation用にしようが、スナップショットは取得されない。

入力選択
  • VMware Infrastructure 仮想マシン
  • VMware Workstation またはその他の VMware 仮想マシン
  • バックアップ イメージまたはサードパーティ仮想マシン
  • Hyper-V Server

出力選択
  • VMware Infrastructure 仮想マシン
ESX/ESXi形式でESX/ESXiサーバへ直接出力する。ローカルからのリストア、ESX/ESXiサーバ間でのVMのcopyに使える。
  • VMware Workstation またはその他の VMware 仮想マシン
VMware Workstation、Player、Fusion、Server形式でローカルHDDへ出力できる。当該ツールを利用したローカルHDDへのバックアップに利用。

■リストア
ローカルへ変換して取得したものを再度ESXiへUpload。
この方法はuploadした段階でインベントリに追加される。



更新日: 2013年07月08日 (月) 11時00分36秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
ウィキ募集バナー