Thin Client and Virtual Machines Thread, Virtualization explained in Technical; Could anyone please tell me how virtualization works. I have been reading how easy it is to manage and how ...
11th July 2008, 02:38 PM #1
Could anyone please tell me how virtualization works. I have been reading how easy it is to manage and how cost effective it is. But I would like to know how it all hangs together and what kind of hardware you would need to run it.
11th July 2008, 03:15 PM #2
Virtualisation (or platform virtualisation in your meaning, I'm assuming) is where you can run multiple virtual systems on one physical system. For example, on one physical server you could have your file server, print server, dns and dhcp servers all operating concurrently.
The advantage are a reduction in hardware and power costs. Plus, once the virtual systems are configured they're basically just virtual hard drive and configuration files. This means that you could store a copy and if one physical server went down, it's easy enough to transfer them to another.
11th July 2008, 03:19 PM #3
In what context, exactly? I assume you mean from the point of view of a systems administrator looking after a bunch of servers in a school, but the term "virtual" has to be one of the most over-used words of the twenty-first century and can mean a number of different things.
Originally Posted by KWestos
Basic principle: a virtual machine is a "fake" computer - programs running on that computer act as though they are running on a normal computer, but are in fact running on a software simulation of a computer. A standard 1st year computer science exercise is to get students to create a basic virtual machine system to run some basic machine code of some sort.
Running software on a virtual machine can let you abstract away the differences in hardware between physical machines. Each physical machine runs the same VM system, and simulates the same abstract virtual computer, so you can move VM images between physical machines and the software running on them won't even notice it's been moved. This is great from a sysadmin point of view - if a machine conks out you can just switch to another one, automatically and within a second if you set it up right.
Look up "virtulisation" on Wikipedia, I'm sure they have a full explanation.
So, you can create a virtual machine system that basically simulates the entire processor of an abstract machine, or indeed a real computer - think of all the C64, Atari, etc emulators out there, those are virtual machines. This, however, is slow - on modern processors, simulating a C64 might be doable, but simulating a modern, fast processor isn't. There are a number of optimisations available to VM writers that can be implemented in hardware, so your physical processor can have some built-in support for simulating other chips. The x86 chips are just getting around to doing this, with the Intel and AMD hardware support for virtualisation - you should make sure you buy a chip with virtulisation support. Again, check Wikipedia for a full explanation.
But I would like to know how it all hangs together and what kind of hardware you would need to run it.
One of the nice things about modern, multi-core processors is that you can assign each processor core as a seperate processor for a virtual machine. So, a good system for virtulisation is probably multi-core, hardware support for virtualisation and a decent amount of RAM. Bear in mind that, with the speed of modern processors, the performance of most applications is going to be limited by the bandwidth availabel to your network, harddrive or RAM rather than raw processor speed - throwing GHz at your system won't necessarily make it run any faster.
From a sysadmin point of view, now you have to pick a virtualisation system. Again, there's a list of such systems on Wikipedia. Lots of people on here use VMWare, which you have to pay for at some point. Personally, I use Xen, and Xen is used by Amazon's EC2 service and several other really large-scale deployments of servers. There's an interesting podcast over on IT Conversations about Puppet, a programming-based system for setting up and controlling massive deployments of virtual machines. It makes for interesting listening, but is probably not the kind of thing a school is going to need.
2 Thanks to dhicks:
djones (11th July 2008), stariq (2nd March 2009)
13th July 2008, 12:38 AM #4
I recently tried to use Xen under Suse linux to run XP, but received a message saying I needed Intel VT support (which my chip doesn't have).
Does anyone know if I can run XP on VMWare without this support?
13th July 2008, 12:44 AM #5
VMWare Server doesn't require Intel VT support unless you are running 32bit and 64bit guests.
Originally Posted by sparkeh
13th July 2008, 01:39 AM #6
Great thanks! - I was a bit confused as to why Xen wouldn't work as I thought it wouldn't need the Intel VT support but I'll have a crack with VMWare Server now
Originally Posted by localzuk
Last edited by sparkeh; 13th July 2008 at 10:46 AM.
13th July 2008, 10:46 AM #7
Late when I posted that, wasn't thinking - so, does this mean I can use VMWare in linux to run XP without Intel VT?
I guess not?!
13th July 2008, 11:16 AM #8
Yes XP will run fine on VMWare Server without Intel VT
14th July 2008, 09:04 AM #9
Okay, so I know I shouldn't nit pick, but...
So, you can create a virtual machine system that basically simulates the entire processor of an abstract machine, or indeed a real computer - think of all the C64, Atari, etc emulators out there, those are virtual machines. This, however, is slow - on modern processors, simulating a C64 might be doable, but simulating a modern, fast processor isn't.
This is wrong (sorry). The process your are describing is emulation not virtualisation. With virtualisation, preferably, no hardware is emulated. The idea is that all installed operating systems share and physically use the same hardware. The job of the virtualisation software (VMWare, VirtualPC, Xen, etc) is to manage the timesharing/access of these physical resources with all the operating systems so the operating systems can run at the same time. From a practical point of view some things like the graphics card are still emulated but as much physical hardware as possible is used from the host machine rather than relying on slower emulation techniques.
14th July 2008, 11:33 AM #10
Sorry, my crummy explanation - I was trying to get the idea across of how one processor can pretend to be another, but of course modern processors have particular features especially for this without having to resort to opcode-by-opcode emulation. Did get about half-way through and figure "Heck, I bet Wikipedia explains this really well..." :-)
Originally Posted by tmcd35
I understood that Xen and so on will fall back on (slow) QEMU-based emulation code if a chip lacks VT/AMD-V support, though?
By JamesC in forum Comments and Suggestions
Last Post: 20th February 2008, 04:10 PM
By dan400007 in forum Thin Client and Virtual Machines
Last Post: 18th January 2008, 01:34 PM
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)