I am a virtualization newbie. I basically have one physical server right now. And I want to create two virtual machines (both will be web servers with small databases and a few scheduled tasks) on it. One for me, one for a friend. Server A should not have access to Server B's stuff, and vice versa. They both will need remote desktop capabilities. Can someone please point me in the right direction and show me how to get started? I really do not even know where to start.
VMware ESXi is a free hypervisor from VMware also worth checking out. But remember to check compatibility for raid controllers and other hardware. Good thing is you dont install this on top of an operating system. So its really good for performance.
If the virtual servers you wanna create are physical server today you can use VMware vCenter Converter (also free of charge) to move them to the VMware server easily.
- Hyper-V Server, it's free and you can download it from Microsoft.
- Install that on the machine.
- Use the Hyper-V Management Console to create two virtual machines (example instructions here).
- Install whatever OS you want on the VMs, you can use Linux, Windows (You need licenses as normal per VM), or most other operating systems. If you use Windows, then install the Integration Services, and more directions here.
- If you use something other than Windows for the Guest VMs then make sure you add a Legacy Network Card, instructions here. If you install Linux, Integration Services can be downloaded from Microsoft.
I know all this sounds very complicated, but once you have the hang of it, it's quite easy.
I've been using Sun's VirtualBox - and I love it. http://www.virtualbox.org/
It's free, easy to setup, and creates VM's that are completely isolated from each other (except for networking, which you can specify). I run it using Vista as my host OS, but it will run on pretty much anything.
If it's a Linux box, you want KVM. The libvirt API is the best way to manage it - see http://www.libvirt.org.
You create an XML file describing a pool of disk space (probably be a local directory in your case.) Then for each server, create an image (volume) the size of the disk you want the server to see.
Lastly create the server XML file (called a domain in libvirt) which specifies things like processor, RAM, CDROM image, devices etc. If you configure it in your domain, KVM can create a VNC server for you to connect to using any VNC client (which covers your remote desktop bit.)
Then you run "virsh" to enter the hypervisor and import your XML files.
# pool-define your-pool-file.xml # pool-start your-pool-name # vol-create your-pool-name your-volume-file.xml # define your-vm-file-.xml
Finally you can then start your server:
# start your-vm-name
It looks complex to begin with, but it took me a couple of days to get up to speed with it, and IMO it's much better than most commercial solutions because you get much finer-grained control over your VMs. Libvirt is the interface to a lot of virtualisation technologies - Xen, KVM, etc.
Of course if you're running Windows on your physical server then you're gonna be using either Microsoft's hypervisor or VMware, in which case the above is useless to you!
We use VMWare ESXi as the Hypervisor. Then you provision a virtual computer and install as you normally would. The two servers will have their own virtual hard drives so no information will be shared between the two.
They will also have their own IP addresses and from the out side will look like totally separate servers. We typically run CentOS 5 in the VMs but we also have a few that run Windows so that is not an issue for you.
For what its worth you should look into Hyper-V and ESXi and see which one you like more. I have no experience with Hyper-V, so I cannot offer any advice on it.