Technology :: Virtualization

in the early afternoon on Thursday, the 3rd of January 2008 by Chad

Lets talk simple here.  Virtualization in computer systems is where one computer can run multiple virtual machines.  A host operating system of some sort runs an application that creates walled off sections of memory, disk, and CPU resources (The virtual machine), presents a fake BIOS, and lets you load an operating system inside that VM.  The entire computer exists only in that virtual section.  When it isn’t running, it’s simply a giant file on the disk.  When it does run, a big chunk of memory and CPU cycles are now not available for things outside that virtual machine.

Virtual machines can be a wonderful thing.  If you understand what you are doing.  If you have a limited hardware budget (but not software budget!) you can get less machines, and assign multiple separate systems to a single piece of hardware.  In my current environment, we have an entire virtual Windows domain consisting of a multiple domain controllers, a SQL server cluster, an Exchange server cluster, multiple Office Communicator Servers, Symantec IM Manager relay servers, workstation clients, a Blackberry server, and other systems.  All this on 6 pieces of hardware.

Works great for one reason: our hardware all have 4 CPUs and 4 GB memory on each box.  And because the domain is for development testing purposes only.  Each virtual machine runs slow because there is only 100% of CPU time to go around.  And the host operating system takes up a few percent of that, lets say 10%.  So now you’re splitting 90% CPU with 4-6 different virtual machines.  If one of the virtual machines is busy, the other virtual machines on that system suffer for it.  So ensuring that each virtual machine plays nice with the other ones is critical.

You don’t magically gain resources you didn’t pay for.  And unless the software license allows you to, you don’t get the software for free.  Just because you paid for the host OS running Windows Server, doesn’t mean that by default you can use 4 copies of Windows Server in virtual machines.  Or the anti-virus installed on each virtual machine (you can’t forget AV!).  But if you have things like an MSDN license for software and have a set of systems that have low horsepower requirements, building them into virtual machines may be a very good idea.

We had a case here where another group was supporting the web application that employees use to sign up for benefits on a yearly basis.  They have this one Java application that processes the business logic that was very slow.  Now, they could run this on multiple computers to get better performance and reliability.  That’s a great idea.  What isn’t a great idea in this case was to simply use the original computer, add virtual machines, and install this app on each virtual machine.  That java application now ran slower than ever.  Performance was absolutely horrible for the employees trying to sign up for benefits.  All because someone thought they would be getting something for nothing.  If you’re already using all your CPU, you’re not going to benefit by adding overhead for the host OS and each of the virtual machine’s OS also!

Lets think about a situation where having a virtual machine in a production environment may be good.  Disaster recovery for a Windows network.  Backing up a domain controller, although better now with Windows 2003 and higher, can still be pretty hit or miss.  Restoring a domain controller in a cold backup site with nothing but blank systems can be a nightmare.  Years ago we had a DR test failure every year with restoring a domain controller when doing a cold site restore, then would take out a laptop we had loaded with the AD domain on it specifically for the test.  For those that think that this is easy, we were using completely different brands of hardware, and could never know what we would be restoring to.  Hardware RAID controllers plus a system state backup to work from made things very very tough with Windows 2k.

But imagine this scenario:  In your home environment, you have a virtual machine running Windows Server that is a domain controller with a copy of the entire domain on it.  Since most virtual machines are scriptable from the host operating system, you can have the virtual DC’s OS shut down every night, copy that virtual hard drive that exists simply as a file to tape, and then restart the virtual DC’s OS.

When a warm/cold site DR situation happens, you simply take whatever hardware is provided for you, load the virtualization software such as VMWare, Microsoft Virtual Server, or even Virtual PC, restore that one single virtual hard drive file, then start it up.  You’re entire Active Directory will be online within 15-20 minutes.  I’d highly recommend this type of solution to any organization that requires this type of scenario

[del.icio.us] [Digg] [Facebook] [MySpace] [Sphere] [StumbleUpon] [Technorati] [Windows Live] [Email]
1 Star2 Stars3 Stars4 Stars5 Stars
(No Ratings Yet)
Loading ... Loading ...

Related Posts

One Response to “Technology :: Virtualization”

  1. Bandit Says:

    So I know the guys you are talking about that implemented load balancing and alledgedly fault tolerance by using 4 VMs on a single server …. that worked out really well! Oh well at least it wasn’t business critical, who needs to sign up for health benefits anyway.

Leave a Reply

My life is a game of strip poker. Want to play?

-- James Whale, Gods and Monsters

Recent Posts

    Poll

    For the Holidays-
    View Results

Search

Captain's Logs

The Sites

Syndication

Stats

  • Comments: 3477
  • Pingbacks: 49
  • Trackbacks: 172
  • Comment Spam: 67448
View blog authority