ESX6.5で仮想マシンをコピーする

ESXi6.5上の仮想マシンをクローンしようと思ったらクローンという機能がありませんでした。

どうやらvCSAがないと使えないみたいですね。

うーん、もったいない。

普段、Oracle Virtual Boxで検証していますが、クローンは便利だったので重宝しておりました。

今回はIntel NUCにSSDを装着しているので尚更。。

という事で今回はコピーを手動で実施します。
やり方は、ESXホストにSSHで接続して直接設定を書き換えていきます。

但し、本番環境で実施する場合は自己責任でお願い致します。

仮想マシンのコピー手順

ESXホストへSSH接続しディレクトリを移動します。

そして、mkdirコマンドでnode02ディレクトリを作成します。

[root@nuc:~] cd /vmfs/volumes/datastore1/
[root@nuc:/vmfs/volumes/59747db8-37156abe-20d5-94c69111766e] mkdir node02
[root@nuc:/vmfs/volumes/59747db8-37156abe-20d5-94c69111766e] ls
DNS media node01 node02 rac_share_disk

各仮想マシンのディレクトリが見えています。
まずは、node01のvmdkファイルをクローンします。

間違ってもcpやmvでコピー・変更しないように。

[root@nuc:/vmfs/volumes/59747db8-37156abe-20d5-94c69111766e] vmkfstools -i ./node01/node01.vmdk ./node02/node02.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk './node01/node01.vmdk'...
Clone: 100% done.

このまま待ちます。
3分程度で完了しました。
次に、vmxファイルを新しいnode02.vmxという名前でコピーしてviで編集します。

[root@nuc:/vmfs/volumes/59747db8-37156abe-20d5-94c69111766e/node02] cp ../node01/node01.vmx ./node02.vmx
[root@nuc:/vmfs/volumes/59747db8-37156abe-20d5-94c69111766e/node02] vi node02.vmx

node01になっているファイル名をすべてnode02へ変更していきます。

.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "13"
vmci0.present = "TRUE"
floppy0.present = "FALSE"
numvcpus = "2"
memSize = "8192"
bios.bootRetry.delay = "10"
sched.cpu.units = "mhz"
sched.cpu.affinity = "all"
powerType.suspend = "soft"
tools.upgrade.policy = "manual"
scsi0.virtualDev = "pvscsi"
scsi0.present = "TRUE"
sata0.present = "TRUE"
usb.present = "TRUE"
ehci.present = "TRUE"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "node02.vmdk"
sched.scsi0:0.shares = "normal"
sched.scsi0:0.throughputCap = "off"
scsi0:0.present = "TRUE"
ethernet0.virtualDev = "vmxnet3"
ethernet0.networkName = "VM Network"
ethernet0.addressType = "generated"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.uptCompatibility = "TRUE"
ethernet0.present = "TRUE"
sata0:0.deviceType = "atapi-cdrom"
sata0:0.fileName = "emptyBackingString"
sata0:0.present = "TRUE"
displayName = "node02"
guestOS = "oraclelinux7-64"
toolScripts.afterPowerOn = "TRUE"
toolScripts.afterResume = "TRUE"
toolScripts.beforeSuspend = "TRUE"
toolScripts.beforePowerOff = "TRUE"
tools.syncTime = "FALSE"
uuid.bios = "56 4d c4 80 a0 4b 55 82-bd 87 af 4a c3 07 66 e2"
uuid.location = "56 4d c4 80 a0 4b 55 82-bd 87 af 4a c3 07 66 e2"
vc.uuid = "52 1f 6c 8a 6e 0f 93 1d-4d 23 00 50 2b 26 4b c4"
sched.cpu.min = "0"
sched.cpu.shares = "normal"
sched.mem.min = "0"
sched.mem.minSize = "0"
sched.mem.shares = "normal"
ethernet0.generatedAddress = "00:0c:29:07:66:e2"
vmci0.id = "-1022925086"
cleanShutdown = "TRUE"
extendedConfigFile = "node02.vmxf"
ethernet1.virtualDev = "vmxnet3"
ethernet1.networkName = "interconnect1"
ethernet1.addressType = "generated"
ethernet1.wakeOnPcktRcv = "FALSE"
ethernet1.uptCompatibility = "TRUE"
ethernet1.present = "TRUE"
ethernet2.virtualDev = "vmxnet3"
ethernet2.networkName = "interconnect2"
ethernet2.addressType = "generated"
ethernet2.wakeOnPcktRcv = "FALSE"
ethernet2.uptCompatibility = "TRUE"
ethernet2.present = "TRUE"
ethernet1.generatedAddress = "00:0c:29:07:66:ec"
ethernet2.generatedAddress = "00:0c:29:07:66:f6"
sata0:0.startConnected = "FALSE"
sata0:0.allowGuestConnectionControl = "FALSE"
sata0:0.clientDevice = "TRUE"
tools.guest.desktop.autolock = "FALSE"
nvram = "node02.nvram"
pciBridge0.present = "TRUE"
svga.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
hpet0.present = "TRUE"
sched.cpu.latencySensitivity = "normal"
numa.autosize.vcpu.maxPerVirtualNode = "2"
numa.autosize.cookie = "20001"
sched.swap.derivedName = "/vmfs/volumes/59747db8-37156abe-20d5-94c69111766e/node02/node02-c5044047.vswp"
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "160"
usb.pciSlotNumber = "32"
ethernet0.pciSlotNumber = "192"
ehci.pciSlotNumber = "33"
vmci0.pciSlotNumber = "34"
sata0.pciSlotNumber = "35"
scsi0.sasWWID = "50 05 05 60 a0 4b 55 80"
ethernet0.generatedAddressOffset = "0"
monitor.phys_bits_used = "43"
vmotion.checkpointFBSize = "4194304"
vmotion.checkpointSVGAPrimarySize = "4194304"
softPowerOff = "TRUE"
usb:1.speed = "2"
usb:1.present = "TRUE"
usb:1.deviceType = "hub"
usb:1.port = "1"
usb:1.parent = "-1"
tools.remindInstall = "FALSE"
toolsInstallManager.lastInstallError = "21004"
toolsInstallManager.updateCounter = "4"
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
ethernet1.pciSlotNumber = "224"
ethernet2.pciSlotNumber = "256"
ethernet1.generatedAddressOffset = "10"
ethernet2.generatedAddressOffset = "20"
svga.guestBackedPrimaryAware = "TRUE"
usb:0.present = "TRUE"
usb:0.deviceType = "hid"
usb:0.port = "0"
usb:0.parent = "-1"
migrate.hostLog = "./node01-c5044047.hlog"

最後に、logファイル以外をすべてnode02ディレクトリへコピーします。
コピー後にファイル名を編集します。

[root@nuc:/vmfs/volumes/59747db8-37156abe-20d5-94c69111766e/node02] cp -rp ../node01/node01.nvram ../node01/node01.vmsd ../node01/node01.vmxf ./

全て完了したら仮想マシンとして登録します。

[root@nuc:/vmfs/volumes/59747db8-37156abe-20d5-94c69111766e/node02] vim-cmd solo/registervm /vmfs/volumes/datastore1/node02/node02.vmx
7

戻り値で”7″が返って来れば正常に登録が完了です。
それ以外が返ってきた場合はvmdkを読み込めず仮想マシンのサイズが0GBになっているので、ディレクトリを削除してやり直しましょう。

スポンサーリンク

フォローする

合わせて読んでみる

良ければ他の記事もどうぞ!



スポンサーリンク
コメントの入力は終了しました。