Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have many machines which require the same configurations. My goal is to boot them all from the network and load a virtual machine. It would be wonderful to have one image for all of our customer service machines. That way, I could load the virtual image, perform updates, and know the next time they boot up they will have all the changes. Ideally, the machines would store the image locally and only download a new image if there has been a change.

With all the information out there on "desktop virtualization", "PXE booting", and "virtual machines", I feel lost. I have been reading for hours and feel like I have only just scratched the surface.

I would like to do this using open source or free software. Any suggestions?

share|improve this question
    
After more research, I am going the route of trying to install a basic Linux OS that will first check to see if the local VM image is the same as the one on the server. If not, it will download the image. Once the system knows it has the latest VM image, it will auto-load that image into full-screen mode. Now I get to go figure out how to do it. :) –  Haabda May 18 '10 at 19:35
add comment

5 Answers

You are combining two things: (1) diskless booting which is common in HiPC clusters, where tools like compilers, libraries, etc, are stored on a clustered file system like Lustre or NFS; (2) virtual disk images (vmdk or vdi, or whatever else).

In case (1), you need a tftp server and a dhcp server, along with a modified initrd image for customized drivers, scripts, etc.

http://www.pixelchaos.net/2009/02/15/diskless-booting-with-pxe-and-nfs/

In case (2), given all machines are same, including configurations, you can nfs mount the virtual disk image. Write a script that checks for any changes like whether the existing image is same as nfs mounted; if they are not same, copy this image to boot partition and reboot it. You need to add this script in initrd. You can play with that.

http://www-conf.slac.stanford.edu/afsbestpractices/Slides/afsboot.pdf

The paper above gives you some clues. You better focus on how the whole boot process works, etc.

If you are using ESXi, there is a better way to achieve what you want: export nfs to esxi hosts. Keep the vmdk and -flat.vmdk files on the nfs server, and change vmdk location in .vmx file. During the next boot, it picks up your new image.

share|improve this answer
add comment

First let define some terms you are messed up.

PXE Booting:

It's an utility that replace the BIOS and it's capable of networking. Such as a diskless computer that download a kernel image from a server and execute it. After the kernel mount a distant partition as the root filesystem.

Virtual machine:

A virtual machine is a machine run by software. If I work on a particular OS then I can run the a VM to boot another OS without rebooting. There is some OSes that are dedicated to virtualisation. The virtual machine is not an answer for your problem.

Ok now I'll explain what I suggest, I did not work with it and I think it's not free software, but you should try to find a replacement. Northon Ghost is a PXE that boot up before the principal OS to check if the disk image is the same of what is on the server. If I come to a computer like that and clear out the OS, and reboot...the OS will be recovered by the server, but not the data.

share|improve this answer
    
PXE Booting does not replace the BIOS, PXE Booting is only possible if there were some abstraction between the hardware and the network to provide the capability, i.e., BIOS. –  BigHomie Feb 4 at 17:57
add comment

I don't think you can do this with Free software and avoid hours and hours of reading. In fact I don't think you can do it with the "shiny pay for" software easily either. It's difficult & time consuming to understand all the ins and outs because its difficult & time consuming to configure all the ins and outs.

You're looking for something like netboot.me I think. Making things like this work on a couple of machines in the lab isn't difficult. You'll find making it work all across a complex routed LAN somewhat more complex - we use Apple's variation of this to run an installer to install our standard OSX desktop image on to mac workstations.

Desktop Virtualisation, by the way, is something totally different from what you actually describe yourself as wanting to do. It might well be a valid method of solving the problem you are looking at, but I'd try not to consider it at the same time as you consider this way of going about things - you'll only make the problem more difficult to understand than it needs to be.

share|improve this answer
    
I'm not afraid of the hours of reading. I just need a pointer in the right direction. I keep seeing VMWare as a possible solution and I keep reading that there is a free version but I'm not seeing any reference to a free version on their website. –  Haabda May 18 '10 at 18:18
2  
You've confused desktop virtualisation (VMWare) with thin clients or terminal servers (both are closer to what you describe yourself as actually wanting to do). I've given you an answer based on what you describe as your needs. So the question is: What exactly are you trying to do? Don't think about VMWare, think about what you're trying to do in broader terms. If it's desktop virtualisation, I'm not aware of a totally free solution though they must exist. Plenty of free virtual servers and free OS to use as the guest, but getting the clients signed into their virtual guest OS may be tricky. –  RobM May 18 '10 at 18:35
    
The virtual disk booting isn;t going to be too much of a challenge but without med-v (and I'm not sure if there is a free equivalent) I'm not sure how you to do version checking. Vmware has some similar features but not in the free versions. –  Jim B May 18 '10 at 21:22
add comment

I had the same problem some time ago and I used pxe successfully.

What You are looking for is gPXE (free). It is a bit of a hassle to set up, but You boot from an ftp server or iSCSI for example. If you boot from local lan, You can also use ata over ethernet (AOE). PXE can be started from any bootable drive about the size of a floppy or from boot rom if applied to the NICs.

You would start from the image or load the image into ramdisk via tftp or ISCSI or whatever and run the image from there. Or You give each VM it's own target and leave it that way.

share|improve this answer
add comment

Microsoft has a product for doing exactly this, it's called Microsoft Enterprise Desktop Virtualization (aka MED-V):

http://www.microsoft.com/windows/enterprise/products/mdop/med-v.aspx

share|improve this answer
    
While I appreciate the link, I have to do this with free software. –  Haabda May 18 '10 at 17:55
    
-1, MED-V is essentially a centrally managed version of XP mode, would have done little to help the OP. –  BigHomie Feb 4 at 18:00
    
"It would be wonderful to have one image for all of our customer service machines." [...] "Ideally, the machines would store the image locally and only download a new image if there has been a change.". The VMs are going to be run on the client workstations, not on some server cluster. But they need to be centrally managed and distributed. This is exactly what MED-V was created for. –  Massimo Feb 4 at 18:19
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.