2009年1月22日木曜日

ESXi 3.5の仮想マシンを別マシンのESXiに引越し

ESXi3.5を動かしているマシンが非力になったのと、別の用途で利用したく
なったので、仮想マシンを移行する手順を整理する。
(仮想マシンのバックアップにもなる)

経緯:
 ・VMware Infrastructure ClientのDataStoreのDatastore Browserの
  download,uploadでの作業が途中で失敗するので検討した。
 ・ESXiがUSB HDDを認識してくれない
前提:
 移行先にESXiのインストールを済ませておく。30分程度で完了する筈
 VMware Infrastructure ClientもWindows機にインストールする
 (絶対必須と言うわけではない)
 仮想マシンは停止しておく
 (可動しながらなら、スナップショット等を利用を考える)

手順:
 1)移行先、移行元のESXiとものssh接続ができる様にする。
  (CLIをインストールしていれば代用可能かもしれない)
  ホストマシンでAlt+F1を押す
  コンソールが現われる。
  起動時のメッセージがあるが、気にせずに”unsupported”
と入力し、Enter
  このとき、入力しても何も表示されない。
  これでログイン完了。

vi /etc/inetd.conf
  ”#ssh stream tcp…”の行があるので”#”を削除し、保存。

  exitし、念のためホストを再起動
(再起動が嫌ならばkill -HUP プロセスID する)

 2)移行元、移行先のための共有ストレージNFSの用意
  ※NFSをしてくれるマシンがあれば、それの利用が良い
   (追記)NFSでコピーが失敗したので、直接コピーする
       様にした。この作業は不要だが、NFSのボリュームを
       ESXiのストレージとして使う場合には参考になる。
  ・近場のマシンをubuntu化する。これも30分程度
  ・ubuntuでNFSが使える様にする為にSynapticでNFSと
   検索しKernel版のNFSを入れる。

  以降しばらくubuntuでの作業
  ・適当なディレクトリを共有用と決め、適当に
   パーミッションを設定しておく、そうしないと、
   これを使う側が見ることは出来ても書き込めなくなる。
  ・/etc/exportsに上記ディレクトリを記入する。
   書く内容は上記ディレクトリ、これを使う側のマシンの
   IPアドレス、(rw,sync)等
   複数マシンに許可はマシン数分スペースで区切って記入
  ・/etc/hosts.allow,/etc/hosts.denyの記入
  ・設定の反映 exportfs -a
  ・設定の確認 showmount -e localhost
    これでubuntu(自分自身)が他のマシンに対して
    公開しているNFSの情報がみれる。
    この公開ディレクトリはメモっておく

 ・VMware Infrastructure Clientで上記NFSをマウント
   ※sshでESXiにログインしVMware Infrastructure Client
    同様のコマンドを手打ちすれば、それでも良い。
   ・VMware Infrastructure ClientでESXiにログイン
   ・[configuration]タブ
     -Hardwareペイン[Storage]-[Add Storage]リンク
     -[Network File System]
Server:先のNFSを設定したubuntuのIPアドレス
     Folder:先のNFSでの公開ディレクトリ
        (showmountで見れるもの)
     Datastore Name:ESXi上での名前を適当につける
            (後で使うのでメモる)
   後はNextで進んで行き、ConfigurationのStorageに
   新たに追加されればOK

 3)仮想環境のバックアップ
   ・ubuntuからsshでESXiに接続(windowsからならputtyや
     teratermを利用)
   ・ssh (ESXiのユーザー)@(ESXiのIP)
   ・cd /vmfs/volumes
     VMware Infrastructure ClientのStorageで表示される
     ディレクトリに行く
   ・cd datastore1
インストールデフォルトのストレージなので、特に指定
     しなければここに仮想マシン毎にディレクトリが出来る。
   ・cp -r ./(バックアップしたい仮想マシンのディレクトリ) ../(NFSのDataStore Name)
    
 (追記)
  NFSにバックアップした物を移行先のマシンで取り込もうとしたら
  エラーになった。移行元からのNFSへのコピーが失敗したのか?
  それともNFSからのコピーが失敗したのかは分からない。
  NFSからのコピーは数回行ってみたら、15GByte辺りになると失敗する。
  バイト数は毎回違う様に思われる。
  いずれにしてもバックアップがコマンド的には成功しても、
  それが取りこめる物か一度確認する手順は必要と感じた。

  今回は環境の移行が主眼なので、scpで移行元から移行先に
  送りつける事にしてみたら、問題なく成功した。
  実効するコマンドは以下
scp -r /vmfs/volumes/datastore1/(仮想マシンdir) (user)@(ip):(コピー先のパス)
  

0 件のコメント: