Windows VM on ESX, diskless booting

Posted on 2012-08-20
Last Modified: 2012-09-26
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
    LVL 116

    Expert Comment

    by:Andrew Hancock (VMware vExpert / EE MVE)
    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

    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 16

    Expert Comment

    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

    Author Comment

    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 116

    Expert Comment

    by:Andrew Hancock (VMware vExpert / EE MVE)
    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 16

    Accepted Solution

    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 116

    Expert Comment

    by:Andrew Hancock (VMware vExpert / EE MVE)
    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).

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    How to run any project with ease

    Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
    - Combine task lists, docs, spreadsheets, and chat in one
    - View and edit from mobile/offline
    - Cut down on emails

    #Citrix #Citrix Netscaler #HTTP Compression #Load Balance
    Citrix XenDesktop 7.6 Citrix Policies Graphics
    This tutorial will walk an individual through the steps necessary to install and configure the Windows Server Backup Utility. Directly connect an external storage device such as a USB drive, or CD\DVD burner: If the device is a USB drive, ensure i…
    This tutorial will show how to configure a new Backup Exec 2012 server and move an existing database to that server with the use of the BEUtility. Install Backup Exec 2012 on the new server and apply all of the latest hotfixes and service packs. The…

    761 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

    Need Help in Real-Time?

    Connect with top rated Experts

    8 Experts available now in Live!

    Get 1:1 Help Now