Windows VM on ESX, diskless booting

Posted on 2012-08-20
Medium Priority
Last Modified: 2016-11-23
What I am trying to do is pretty much what is described in this  article but in ESX:
To be a bit more specific to my exact environment:  My users are on Terminal Servers (not citrix) which are currently all configured as separate VM's - this however is using up a lot of unncessary disk space.  I want to be able to setup one "golden" image, have the VM's target that image for their main files but have their own differential files.
Hardware: Dell R805 Servers, Dell Equallogic SAN, ESX 4 Advanced (we are testing ESX 5 now but do not have a timeframe for going live).
I am assuming I'm not the first to want to do this, but I appear to be having issues finding documentation on it - to which I assuming I am searching for the wrong terms but I can't seem to find the right ones.
Thank you for your assistance.
Question by:americaneldercare
  • 3
  • 2
  • 2
LVL 124
ID: 38313443
How about "Server Linked Clones" to the Parent Server Golden Image, as VMware View VDI does it.

e.g. a single VDI Golden Image ---> Linked Clone to many desktops, but in this case Servers!

The Storage API exists in VMware for this for Desktops and Servers, but is not supported for servers as yet....

We use this function for Research and Developement, and some of our Production Systems.

let me know, and I'll dig out the Power CLI scripts to create Linked Clones of Servers!

Author Comment

ID: 38313488
I did briefly look into Linked Clones however the documentation I found indicated it was only part of the Lab Manager and not part of the vSphere 4 Advanced (or vSphere 5 Enterprise).

I don't see why the VDI methodology wouldn't work for Servers - but for vSphere most of the documentation I can find regarding that uses VMWare View which I don't have licenses for.

I would prefer a GUI - but if nothing like that exists if you can send over the CLI Scripts you use that would appreciated.  Do you customize the PC's and join them to the domain each time?  Or do you have a script that runs that portion for you?
LVL 17

Expert Comment

ID: 38318540
Linked clones have a major drawback: You need to rebuild the clones whenever you change the "golden image". This involves at least one reboot (to run sysprep or any similar customizing tool that will give a unique name, SIDs etc. to each member of the pool.
The true diskless approach that you describe is actually doable. With this approach, the uniqueness of each node is dynamic (the customizations are done one the fly when the client boots up)
You can use Citrix PVS (Provisioning server) if you have XenDesktop Enterprise or better. Not sure if PVS is included with XenServer.
Wyse Streaming manager is another option, very similar. Not sure it is made to operate server nodes though, it is mostly used for workstation nodes.
The iSCSI based solution is doable too. If you don't have the "dynamic customization layer", you will certainly end up in having several iSCSI targets for each node.
Double Take Flex (Vision Solution company now. Not sure exactly if it's Vision, Visions, Solution, Technology... Something like that) does the iSCSI way with the dynamic customization layer, but they don't seem to actively develop the "Flex solution".It seems it is still available on their list price.
HP used to provide Image Manager for the diskless approach but it has been discontinued as far as I can tell.
I have heard of some Chinese or Malaysian products too: ccBoot and MichaelSoft. Anyway, what I know of these products wouldn't make me comfortable using them to operate servers. I think they are mostly used for online game shops and that rebooting-in-case-of-problem is the main solution they offer to their users!

All these solutions are paying solutions. The free solutions, as far as I can tell, will miss the "dynamic customization layer".
Anyway, you can try to see if using gPXE (or iPXE) as the PXE (and then iSCSI) boot loader, and use an iSCSI disk driver (iSCSI Initiator) can work for you (on the client side. Then, having some iSCSI target server that can do copy-on-write to create the write-cache for each client). Maybe with some kind of automation (that I am afraid you would have to create by yourself).

I am sorry, being away from my desk, I do not have an easy way to find and include the links to all the references above. But there are some useful search terms or product leads
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 38326661
vivigatt - you listed a number of options but I notice none of them are offered by VMWare.  It sounds like most of the options you listed are either with other Virtualization vendors (Citrix) or not fully supported applications.  I was hoping VMWare would have something since they are what we use currently.

hanccocka - any update on those scripts?  

Thank you both for your help.
LVL 124
ID: 38326783
The function is built into the vSphere API, all you need is the Powershell scripts

Ill dig them out.

we use the scripts against servers, that are workgroup, join domain afterwards, there is no GUI.

This is not supported!
LVL 17

Accepted Solution

vivigatt earned 1500 total points
ID: 38332685
No VMWare solution that I know.
You MAY be able to share a single independant/read-only virtual disk among several VMs, but you will have "collisions", especially with the computer names and various (S)IDs,
I am not aware of any API that would allow you to dynamically change the computer name for instance.
So, yes, as far as I can tell, you would need a 3rd party product to operate several VMs from a single virtual disk and to avoid "linked clones"...
LVL 124
ID: 38438304
Linked CLONE2 from MasterOkay, here's the powershell script which will create linked clones of virtual machines and servers, which can be performed within the VMware API

param (
$vm = Get-VM $SourceName

# Create new snapshot for clone
$cloneSnap = $vm | New-Snapshot -Name "Clone Snapshot"

# Get managed object view
$vmView = $vm | Get-View

# Get folder managed object reference
$cloneFolder = $vmView.parent

# Build clone specification
$cloneSpec = new-object Vmware.Vim.VirtualMachineCloneSpec
$cloneSpec.Snapshot = $vmView.Snapshot.CurrentSnapshot

# Make linked disk specification
$cloneSpec.Location = new-object Vmware.Vim.VirtualMachineRelocateSpec
$cloneSpec.Location.DiskMoveType = [Vmware.Vim.VirtualMachineRelocateDiskMoveOptions]::createNewChildDiskBacking

# Create clone
$vmView.CloneVM( $cloneFolder, $cloneName, $cloneSpec )

# Write newly created VM to stdout as confirmation
Get-VM $cloneName

Open in new window

Quite simply, it asks for a Source Virtual Machine Name [SourceName[, which could be your Golden Master, and a CloneName, new Virtual Machine.[CloneName]

Script works with vCenter 4.x and 5.0, not had the chance to test on 5.1. (ESXi 4.x and ESXi 5.0)

VMFS Datastore View:- Windows 2003 TS Server Master Image which Linked Clones will be from
our Win2k3 Master TS server has a 30GB virtual disk.

Also the benefit of a linked clone, is how fast the deployment is based on the snapshot creation, which is almost instaneous.

Two additional linked clones from the master, view of the datastore, and you will see there is no 30GB vmdk, because it's linked from the master. These are totally indepdant copies, with their own computer names, SIDS, applications.

Linked CLONE1 from MasterLinked CLONE2 from Master
So two additional servers, not taking up 60GB!

The master is a golden image, which is not altered, only the linked clones are altered data written to their virtual disk, which is linked to the parent (golden master).

Featured Post

Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Ransomware is a malware that is again in the list of security  concerns. Not only for companies, but also for Government security and  even at personal use. IT departments should be aware and have the right  knowledge to how to fight it.
In this article will go through how to backup a vPostgres DB from a broken vCenter Appliance and restore to a new vCenter Appliance.
This tutorial will walk an individual through the steps necessary to enable the VMware\Hyper-V licensed feature of Backup Exec 2012. In addition, how to add a VMware server and configure a backup job. The first step is to acquire the necessary licen…
How to install and configure Citrix XenApp 6.5 - Part 1. In this video tutorial we have explained step by step installation of Citrix XenApp 6.5 Server on Windows Server 2008 R2 is explained in this video. We have explained the difference between…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question