VMWare ESXiのオフラインでのマイグレーション手順について

概要

VMWare ESXi上に構築した仮想サーバをマイグレーションする場合、VMWare Converterを使った移行が一般的であるが、サービス停止が可能であれば、ESXiのSSHサーバを有効にし、SCPで仮想サーバのVMDKファイルをESXi間でコピーし、インスタンスを起動することも可能である。以下にその手順を述べる。

手順概要

VSphere Clientを利用してSSHサーバを起動する。

SSHの設定は、SSHホストOSの[構成]-[セキュリティプロファイル]から設定することができる。デフォルトではrootユーザでSSHを行うことになるため、SSHサーバ、SSHクライアントに対し、ファイアウォールの設定も行うのが望ましい。

 

SSHでホストOSにログインする

Teratermなどを利用してrootユーザでホストOSにSSHログインする。なお、新しめのホストOSの場合、パスワードはパスフレーズでなく、チャレンジレスポンス認証でログインする必要がある。

SSHDでarcfour暗号化をサポートする。

デフォルトのSSHD設定では、コピーの転送速度が遅いため、暗号強度の弱いarcfour(RC4暗号化)をサポートするようにSSHDを設定する。

/etc/ssh/sshd_configのCiphersのパラメータにarcfourを追加する。

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc

Ciphers arcfour,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc

設定変更後、特にサービス再起動などは不要である。ESXi4.0など古いホストOSでは/etc/ssh/sshd_configがなく、残念であるが、この高速化作業はできないが、SCP自体はサポートされている。

(参考)vmdkファイルの場所

VMWareで使われている仮想マシンの実体ファイルであるVMDKファイルは、一般的には/vmfs/volumes/datastore1配下に置かれている。その下のパスは、仮想ディスクの設定に書かれているのでcdコマンドで対象ファイルを探す。

VMDKファイルのコピー

移行先のVMで/vmfs/volumes/datastore1に移動し、移行元と同じ名前でディレクトリを作成し、移行元のサーバにSCPを行う。この場合、移行元のSSHサーバでarcfour設定を導入しておく。


# cd /vmfs/volumes/datastore1
# mkdir testvm
# scp -c arcfour 移行元IP:/vmfs/volumes/datastore1/testvm/*.vmdk .

移行元で作業を行う場合は以下のようになる


# cd /vmfs/volumes/datastore1/testvm
# scp -c arcfour *.vmdk 移行先IP:P:/vmfs/volumes/datastore1/testvm/

 

筆者の環境では、1GbpsのLANで90MB/sの速度でファイル転送を行うことができたため、100GBのファイルを20分弱でコピーすることができた。このスピード感があれば、サービス停止をしてのマイグレーションも現実的だと思われる。

仮想サーバの作成

vmdkファイルをコピーしただけでは、仮想サーバとしては認識されていないたため、既存のvmdkファイルを利用して、仮想マシンを作成する。カスタムを選ぶことで、その設定ができる。パラメータは無用なトラブルに巻き込まれぬよう、極力既存のものに合わせた方がよい。

 

あとは、仮想サーバの電源を入れるだけである。

参考情報・サイト

winSCPを使って高速にデータ転送する技』(Qiita e33119さん投稿、2016.03.22)

大容量ファイルのSCP転送を高速にする方法 from はてなブログ『元RX-7乗りの適当な日々』』(rx7さん投稿、2010.10.25)