掲題のメモ
環境
- VMware Hypervisor (ESXi) 7.0 u1
ESXi へ SSH ログインを実施しますので、事前に SSH と ESXi Shell のサービスを起動しておきましょう。
作成の流れ
ESXi へ SSH 接続
Teratermを起動し対象のesxiのIPアドレスを入力し、SSHでOKを選択します。
TCP port 22, SSH version SSH2, IP version AUTO
ユーザー名(今回はroot)を入力後、”キーボードインタラクティブ認証を使う”のラジオボタンを選択し”OK”を押します。パスワードを入力してログインします。
認証方式:プレインパスワードを使う
ログイン後に対象の仮想マシンがある階層まで移動します。(datastore1内のcenos7を今回は対象にしています)
cd /vmfs/volumes/<データストア名>/<仮想マシン名>
[root@localhost :¯] cd /vmfs//volumes/datastore1/centos7/
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7]
スナップショットを取得(ロックを外す)
仮想マシンのスナップショットを取得するために、仮想マシンのID、vmidを以下のコマンドで取得します。(今回はgrepでcentosのみを表示させています)
vim-cmd vmsvc/getallvms
[root@localhost :/vmfs/volumes/f7654b0e-41d92a65] vim-cmd vmsvc/getallvms |grep cent Skipping invalid VM '14'
16 centos7 [datastore1] centos7/centos7.vmx
[root@localhost :/vmfs/volumes/f7654b0e-41d92a65]
確認したvmidを指定して、スナップショットを作成します。スナップショット名は任意です。(スナップショット名をtest123としています)
vim-cmd vmsvc/snapshot.create <仮想マシン ID (vmid)> <スナップショット名>
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7] vim-cmd vmsvc/snapshot.create 16 test123 ]Create Snapshot:
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7] ]
centos7
L test123
L 現在点
スナップショット作成後、”centos7-000001.vmdk”と”centos7-000001-sesparse.vmdk”が作成されます。仮想マシンはこのディスクで稼働していることになるため、”centos7.vmdk”のロックが外れるためコピーできる状態となります。
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7] ls -l
で確認
仮想ディスク (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
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7] vmkfstools -i /vmfs/volumes/datastore1/centos7/centos7.vmdk -d thin /vmfs/volumes/USB-Datastore/copy/centos7.vmdk
Destination disk format: VMFS thin-provisioned
Cloning disk '/vmfs/volumes/datastore1/centos7/centos7.vmdk' ...
Clone: 25% done.
Clone: 100% done.
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7]
スナップショットを削除
バックアップが完了したらスナップショットは不要になるので、スナップショットを削除し、仮想ディスクを統合します。(スナップショットを削除せずvmxファイルをコピーして起動しようとするとcentos7-000001.vmdkがありませんとエラーが発生します)
スナップショットを削除するためにスナップショット ID を確認します。
vim-cmd vmsvc/snapshot.get <仮想マシン ID (vmid)>
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7] vim-cmd vmsvc/snapshot.get 16
Get Snapshot:
--Snapshot None : test123
--Snapshot Id : 1
--Snapshot Descrption :
確認したスナップショット ID を指定し、スナップショットを削除します。
vim-cmd vmsvc/snapshot.remove <仮想マシン ID (vmid)> <スナップショット ID>
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7] vid-cmd vmsvc/snapshot.remove 16 1
Remove Snapshot:
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7]
仮想ディスク(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/ \;
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7] find /vmfs/volumes/datastore1/centos7/* -not -name "*vmdk" -exec cp {} /vmfs/volumes/USB-Datastore/copy/ \:
cp: can't open '/vmfs/volumes/datastore1/centos7/centos7.vmdk.lck' : Device or resourve busy
[root@localhost :/vmfs/volumes/60952c01-ca0484f2-1176-90b11c807be2/centos7]
最後に
copy以下にコピーされたvmxファイルを登録後に起動すれば問題なく立ち上がると思います。(以下出てきてもコピーしましたで大丈夫です)
質問への回答: centos7
コピーしました