Hi I have some VMs running on an older ESXi4 host and want to migrate them to a newer ESXi6 host. Given I am running the free ESXi versions I can only use cold migration. However the ESXi6 documentation only describe using vCenter Server to manage a cold migration and there isn't any explanation on how to do this without using vCenter Server. So is it as simple as simply doing the following steps?
But what do I do after I have copied over the files? I can't find any import function on the vSphere client, and the wizard for creating a new VM also doesn't appear to allow us to specify to use existing files. I checked vCenter Converter but it appears to be a bit over killed because it requires a server and a client to use it. Veeam's Backup Free Edition also doesn't support ESXi6.
Once they are copied over, browse the datastore, right click the Virtual Machine file and select add to inventory.
You will likely get a prompt asking if you moved or copied the VM when you power it on, select copied. Upgrade the vmtools and the virtual machine hardware version and you should be good.
Recommend keeping the original files just in case you run into issues.
Rich
Thanks. Is this documented anywhere? If yes can you point me to the reference? Am also wondering whether I actually need to shut down the VMs first before doing the copy, or I can actually take a snapshot and copy the snapshot. Caveat I think is if I start taking snapshot it'd create delta files which will get bigger and bigger until I run out of storage.
Not sure I ve seen it documented anywhere, it's just a method used by the numerous.
Personally I'd shut them down, you could use VMware converter to do this, which would allow you to keep the machine online and then do a kind of catch up on any change, but that will only work should you have a vcenter server.
Not sure on your storage, but another way would be to present the storage to the esxi 6 host, shut them down on the 4 host and add to inventory on the 6, you could then use storage vmotion place them on the correct storage. Assuming you have shared storage.
rich
Hi there I actually have done some further research and found the following:
VMware KB: Moving or copying a virtual machine within a VMware environment
This KB appears to describe what you are suggesting but only provides high level steps. It suggests either one of the following can be done.
Copying or moving the virtual machine and virtual disks
- This is similar to what you described in the sense that we need to register, upgrade virtual hardware, etc.
Creating a new virtual machine and copying or moving the virtual disks
- This appears to be an easier version but achieves the same thing. However step 6 doesn't make sense to me. Is it suggesting to move the virtual disks for the source VM to a different location? Why would I have to do this if I'm keeping the source VM powered off? And when you said "Once they are copied over, browse the datastore, right click the Virtual Machine file and select add to inventory." this is what is meant by step 9?
Another question is, the same KB suggests there are two converter tools. One is named "VMware Converter" and another one is named "VMware vCenter Converter". I recall having seen a blog online somewhere describing "VMware Converter" and it doesn't appear to require vCenter Server whereas "VMware vCenter Converter" does require vCenter Server. The problem is I can only find download links available for "VMware vCenter Converter" but not "VMware Converter". Any idea if "VMware Converter" is still available? The KB was only written less than a year ago!
Digging further it appears there are 2 VMware vCenter Converter:
- VMware vCenter Converter: P2V Virtual Machine Converter | United States
- Download VMware vCenter Converter Standalone for P2V Conversion
It appears the VMware vCenter Converter Standalone doesn't require a vCenter Server and can run entirely on my desktop? Am reading the manual now but there are quite a number of pages.
Okay just checked out both vCenter Converter and vCenter Converter Standalone and here is a summary. Because all my VMs are running Centos 5.5, so it appears vCenter Converter is not a tool I can use to do the migration from the ESXi4 host to the ESXi6 host!
vCenter Converter
- Latest version is 5.0.1 per VMware vCenter Converter: P2V Virtual Machine Converter | United States
- Supports neither ESXi6 and Centos OS per VMware vCenter Converter Standalone Release Notes
- Requires vCenter Server for ESXi related destination.
vCenter Converter Standalone
- Latest version is 6.0 per VMware vCenter Converter Standalone Documentation
- Version 6.0 supports ESXi6 but CentOS 6.x and 7.x only per VMware vCenter Converter Standalone Release Notes. It does say RHEL 5.x is supported but the fact that CentOS is only listed for 6.x and 7.x makes me nervous.
- Previous version (ie 5.5.2) supports neither CentOS and ESXi6 per VMware vCenter Converter Standalone Release Notes
- Remove virtual disks.
Warning: Do not delete the virtual disk.
this step is trying to tell you that when you remove disk from VM, you will see two options. like following screenshot
out of two options, select first one, please don't go with second option.
Creating a new virtual machine and copying or moving the virtual disks
- This appears to be an easier version but achieves the same thing. However step 6 doesn't make sense to me. Is it suggesting to move the virtual disks for the source VM to a different location? Why would I have to do this if I'm keeping the source VM powered off? And when you said "Once they are copied over, browse the datastore, right click the Virtual Machine file and select add to inventory." this is what is meant by step 9?
in this procedure, all that KB is asking you to do is, create a brand new VM (with latest Hardware version if you wish) in your new ESXi host without any vDisk. Rest of the virtual hardware settings like no of vCPUs, amount of RAM and vNICs let those to be same as your old VM. then detach the vDisk from old VM, copy it and paste it into folder of new VM. then attach it (add existing virtual disk) to your new VM (step-9).
but then I think in your case, if you go with following process which you listed from KB (and RichardBush as also explained same), that should work well.
Copying or moving the virtual machine and virtual disks
as your hardware version of VM from old esxi is fully compatible with new ESXi and you can then upgrade it also if you wish.
Narendra, thanks! That really clears up the confusion for how we can remove disks without deleting them. I can now see the difference between the two options are as follow.
Copying or moving the virtual machine and virtual disks
- Relies on .vmx file which describes VMware hardware version.
- Need to upgrade VMware hardware version if wanted.
Creating a new virtual machine and copying or moving the virtual disks
- Does not require to copy .vmx file so need to recreate the network / memory / CPU configurations.
- No need to upgrade VMware hadware version because the VM is re-created.
Question is given the source VM is already powered down, why would I want to remove the virtual disks from it? Can I not just copy it over to the new destination VM's folder?
Question is given the source VM is already powered down, why would I want to remove the virtual disks from it? Can I not just copy it over to the new destination VM's folder?
well, It should work as it is, since your VM is powered off already.
listed step to detach vDisk is to prevent following situation,
let's say you have this VMDK which is quite big in size and you are going through copy/paste process. What if one of the other administrator try to power on VM, that will trouble since system will try to lock that VMDK during this power on operation.
Hi that makes sense. But I guess if I'm the only one doing then it's fine without removing the disk from the old VM.
Just tried following the "Copying or moving the virtual machine and virtual disks" method, and in brief here are the steps:
1) Create new directory for new VM.
2) Shut down old VM.
3) Copy all files from old VM's folder to new VM's folder.
4) Browse on vSphere client datastore to the new VM's folder, right click on the .vmx file just copied, and select "Add to Inventory". The thing however is I didn't have to do Step 10 which is "Add the virtual disk copies to the virtual machine copy." because I already have copied both .vmdk file over in Step 8. Any idea how Step 10 is different from Step 8?
5) When powering up the new VM I see the following, asking if the VM was copied or moved. Not really sure what the difference it'd make. Can you elaborate on what happens when either options are selected?
3) Copy all files from old VM's folder to new VM's folder.
4) Browse on vSphere client datastore to the new VM's folder, right click on the .vmx file just copied, and select "Add to Inventory". The thing however is I didn't have to do Step 10 which is "Add the virtual disk copies to the virtual machine copy." because I already have copied both .vmdk file over in Step 8. Any idea how Step 10 is different from Step 8?
in this case, you have copied all the files from old VM folder to new, so there's no need to attach virtual disks, they are already attached.
I copied it or I moved it? answer to that is there in following KB
VMware KB: Changing or keeping a UUID for a moved virtual machine
i am under the impression that it updates the paths to all relevant files on move, I assume copied is something to do with the vm Id, but I can't say that with complete confidence.
edit, was beaten to this, above post is the kb that explains it all.
rich
step - 8 and step 10
As Richard is mentioning Path, now that is something worth checking. when you successfully power on VM, is it booting OK?
if you go to Edit Settings of the VM -> VM Options Tab
what's the path of the VM virtual disk, if that's still posting to old location, then you got to do re-attach virtual disks.
Hi, thanks for the replies.
I copied it or I moved it? answer to that is there in following KB
VMware KB: Changing or keeping a UUID for a moved virtual machine
This is helpful. My goal is to move the VMs currently running on the ESXi4.x host to the new ESXi6.0 host. So I'll be powering off them on the old host, copying them to the new host, and starting them there to see if it works. If it works, great and I can leave the original VMs on the ESXi4.x host powered off. If it doesn't work, then I'll switch off the new VMs on the ESXi6 host and start the old VMs on the ESXi4 host again.
Given that, I guess it doesn't matter whether I select "I copied it" or "I moved it". I guess it's cleaner to select "I copied it" to generate a new UUID but it's safer to select "I moved it" to keep the UUID same just in case anything on the OS reference or refers to the UUID.
step - 8 and step 10
As Richard is mentioning Path, now that is something worth checking. when you successfully power on VM, is it booting OK?
if you go to Edit Settings of the VM -> VM Options Tab
what's the path of the VM virtual disk, if that's still posting to old location, then you got to do re-attach virtual disks.
Kind of. The VM I used for the test definitely have started okay but aren't working properly due to some other issues which I think is not related to what we're doing here. I don't have the full path available now as I just deleted the VM from disk. I will have a check later on this as it's a good sanity check. As for re-attach virtual disk as described on step 10, I'm not sure how to do this. Can you paste a screen shot?
they are just asking you to add new hardware device in your VM, select Hard disk from the list of hardware devices and go on...
like following
1) Edit settings of the VM, click on Add Button
Select Hard Disk as per following screen
go with 'User existing vDisk'
Browse vDisk from VM folder, and let that be attached.
see if this helps.
Okay I see. The test I did was on the same ESXi6 host so I guess even if the new target VM folder to which I copied the source VM files to some how when started is still pointing to the source folder's virtual disk, the new VM can still start up. Unfortunately I ran out of time so can't do further testing but when I do the actual migration from one host to another I guess we can tell, and will know if step 10 of re-adding the virtual disk file is necessary.
I have done a test already now.
Results:
if your VM's vmx file and vmdk files are in same folder, just copy and paste would be a perfectly OK, because in that case VM's vmx file is holding references to VMDK files.
So no need for STEP - 10 to be performed.
But
if your VM's vmx file and VMDK files are located at different locations, like your VM is stored in Datastore1 and associated VMDKs are stored in Datastore2, in that case when you copy that VM's files to a different datastore, you will have to perform Step-10 activities, otherwise your VM will keep pointing to old location.
I guess in your case, your VM vmx + vmdks are stored in same folder so when you did your test, it happened from VMDKs copied, not from the old location.
Thanks!
Hi, btw, according to VMware KB: Moving or copying virtual disks in a VMware environment, I see it says the following.
Unlike ESX, ESXi does not have a service console. To copy files, use the vifs
utility that comes with the vSphere Command Line Interface. The vifs
command performs common operations such as copy, remove, get (download), and put (upload) files. The command is supported against ESXi/ESX hosts but not against vCenter Server systems. Use the vifs
command to perform the file operation on the virtual machine files. For information on syntax and usage examples, see the vSphere Command-Line Interface Installation and Reference Guide.
Question is how is this vifs command different than me doing something like scp if I'm transferring the VM's associated files such as vmdk, vmx, vmsd, vmxf, nvram, etc to a new host?
You can use OVFTool (free download from VMware) to get this done in one step. William Lam (@lamw) who works for VMware has a good overview write-up on this
How to Copy VMs Directly Between ESXi Hosts Without Shared Storage | virtuallyGhetto
Far easier than using SCP, VMware Converter, adding files to inventory with the VI Client, etc., etc., etc. You can handle all the assign to datastore, vSwitch,etc. as part of the move command line. All that's left after the move is upgrade VMware tools (tick the box to "upgrade on reboot") then upgrade the virtual hardware and you're done...