I have imported a VM into an ESXi server using the VMware "Converter stand alone utility". However, this process is a little tedious. Since I eventually want several copies of this VM (or, to be more accurate, several more-or-less identical instances of this VM) to be running at the same time, is there a way to clone the already imported VM? Or do I have to re-import for each instance I want?
No need to use the converter to clone a VM.
Simply browse to the datastore:
- Click on the host > Configuration tab
- Select Hardware > Storage to display the datastores
- Right-click on the datastore with the VM you want to clone > Browse Datastore
- Create a new folder in the store
- Right click on the VM folder and select Copy (must be done in the right pane of the Datastore Browser)
- Paste the VM to a new sub folder (otherwise the VM will overwrite itself)
- Once copied, rename and move the folder if desired
- Select the .vmx file within the cloned VM and select 'Add to Inventory'
Actually it's easier to just goto the host machine in VIC under summary tab and browse the datastore. Then create a folder for the new vm, copy the vmdk file from your source vm by copy and paste within the datastore browser and then create a custom VM for the new vmdk file. Make sure your VM and folder names match and it takes 1/10th of the time to do.
Example for me was:
- Converter: 13mins
- Direct: 3mins
- Copy via Datastore browser: 1min
I made copies of 17 VM's in Under 20 mins which saved a ton of time from converter.
[Editing my own answer]
- the Converter took me about 15 minutes to run from WS6 to ESXi
- the Converter took about 45 minutes to run from ESXi to itself
- logging in with a command prompt and then copying as per the "unsupported" instructions worked, but took about 20 minutes to copy the VM, and I was unable to correctly start the result
My conclusion: just use the Converter repeatedly.
Thanks all for the ideas.
(Update, much later: here are the details for how to create a copy of a VM without running the converter repeatedly.)
You need console (or SSH) access to the ESXi server, and then you can copy your VMs around using standard UNIX commands (cp).
To get console access:
- go to the server console
- type ALT-F1
- type "unsupported" without quotes (no echo)
- type your password (no echo, again)
Now you are at the server's command prompt; if you want to enable SSH access, edit /etc/inetd.conf and remove che comment symbol ("#") from the SSH line.
There is a "ghetto-esx-linked-clones" script that will make Linked Clones rather than full clones. Linked clones are great for VMs that you intend to use for short-term testing, since the clones only store differences relative to the original VM. Running this script requires enabling SSH access to the ESXi host.
Leon Roy's advice worked for me. But I think there is something to consider: vmdk-files stored directly in the directory of the vm are linked with a relative path to the vmx-file whereas vmdks that are stored outside this directory are linked with an absolute path. So if one of the vmdks used by the VM is not situated in the same directory as the VM itself, you have to change the fileName value for that file in the vmx-file before re-adding it to the inventory. Otherwise, if you add the copied VM, it would use the original not the copy of the vmdk.
Using the converter was the most consistent approach to this solution. Manually copying files in ESX-i was easy, but takes the same amount of time as using the converter, and does not always let you add the .vmx file to the inventory (it can be grayed out). Keep this information list up; it's old, but it helped me :-)