VMware Esxi7 仮想マシンが起動中でもコピーする方法

VMware Esxi7 仮想マシンが起動中でもコピーする方法

Esxiで仮想マシンのコピーを作成することはよくあることかと思います。しかし仮想マシンが起動中でvmdkファイルにロックがかかりコピーできません。今回は仮想マシンが起動中でもコピーする方法を記載したいと思います。

環境

  • VMware Hypervisor (ESXi) 7.0 u1

ESXi へ SSH ログインを実施しますので、事前に SSH と ESXi Shell のサービスを起動しておきましょう。

作成の流れ

ESXi へ SSH 接続

Teratermを起動し対象のesxiのIPアドレスを入力し、SSHでOKを選択します。

ユーザー名(今回はroot)を入力後、”キーボードインタラクティブ認証を使う”のラジオボタンを選択し”OK”を押します。パスワードを入力してログインします。

ログイン後に対象の仮想マシンがある階層まで移動します。(datastore1内のcenos7を今回は対象にしています)

cd /vmfs/volumes/<データストア名>/<仮想マシン名>

スナップショットを取得(ロックを外す)

仮想マシンのスナップショットを取得するために、仮想マシンのID、vmidを以下のコマンドで取得します。(今回はgrepでcentosのみを表示させています)

vim-cmd vmsvc/getallvms

確認したvmidを指定して、スナップショットを作成します。スナップショット名は任意です。(スナップショット名をtest123としています)

vim-cmd vmsvc/snapshot.create <仮想マシン ID (vmid)> <スナップショット名>

スナップショット作成後、”centos7-000001.vmdk”と”centos7-000001-sesparse.vmdk”が作成されます。仮想マシンはこのディスクで稼働していることになるため、”centos7.vmdk”のロックが外れるためコピーできる状態となります。

仮想ディスク (vmdk)のコピー

以下のコマンドで仮想ディスク (vmdk) をバックアップします。-d thin でシンプロビジョニングままコピーします。

vmkfstools -i コピー元.vmdk -d thin コピー先.vmdk

実際に使用したコマンド

vmkfstools -i /vmfs/volumes/datastore1/centos7/centos7.vmdk -d thin /v
mfs/volumes/USB-Datastore/copy/centos7.vmdk

スナップショットを削除

バックアップが完了したらスナップショットは不要になるので、スナップショットを削除し、仮想ディスクを統合します。(スナップショットを削除せずvmxファイルをコピーして起動しようとするとcentos7-000001.vmdkがありませんとエラーが発生します)

スナップショットを削除するためにスナップショット ID を確認します。

vim-cmd vmsvc/snapshot.get <仮想マシン ID (vmid)>

確認したスナップショット ID を指定し、スナップショットを削除します。

vim-cmd vmsvc/snapshot.remove <仮想マシン ID (vmid)> <スナップショット ID>

仮想ディスク(vmdk)以外のファイルのバックアップ

find コピー元ディレクトリ -not -name “*.vmdk” -exec cp {} コピー先ディレクトリ \;

今回使用したコマンド
centos7以下のvmdkファイル以外のものをcopy以下にコピーしています。(スワップファイル (vswp) やロックファイル (vmx.lck) などがコピーされませんが問題ありません)

find /vmfs/volumes/datastore1/centos7/* -not -name “*.vmdk” -exec cp {
} /vmfs/volumes/USB-Datastore/copy/ \;

最後に

copy以下にコピーされたvmxファイルを登録後に起動すれば問題なく立ち上がると思います。(以下出てきてもコピーしましたで大丈夫です)