VMware

This Question is Not Answered

1 "correct" answer available (10 pts)
4 Replies Last post: Nov 22, 2009 3:13 PM by omnicow  

Interested in virtualization, lots of questions. posted: Nov 22, 2009 3:43 AM

Click to view omnicow's profile Novice 3 posts since
Nov 22, 2009

Hello! I've heard about the trend of virtualization for a while from my friend in the IT field, but I've only now begun considering ways that I could implement it to benefit my situation. One of the great features, to my understanding, of virtualization, is a fuller utlization of resources. Computers have always had a difficult time of parsing their jobs to different cores, or different processors, so, if you were to divide up the processors of your computer between different tasks, you could make much more effecient use of your processing power. Well, that's how it seems that it would work in my head. So, here's my first question:

Okay, when shopping for a computer, spending extra on a faster single processor will net greater end result that spending extra on two slower processors. But in this scenario, let's say someone decided to splurge and get the extra speed and extra processors, and ended up with a top of the line 2.93Ghz 8 Core Nehalem. That computer will be faster than a quad core 2.93Ghz, but definitely not faster than two quad core 2.93s running side by side. So, if one was to divide that 8-core computer up into two OS X Server virtual machines, and run fully processor intensive tasks on each of those VMs, would it equal the power of the two separate quad core machines? (minus of course a hopefully reasonable performance drop from the processing used by the original operating system and vmware application) Furthermore, would making four VMs give even greater productivity increases due to further spreading of processing? It makes a lot of sense to me that it would. Am I crazy, or am I just starting to realize the possibilities of virtual machines?

Okay, if that's true, then that opens up a lot of doors. One very powerful computer and four old computers could become four pretty powerful computers with a cumulative processing power much greater than that of the host machine. Expendature on multiple machines could be greatly lowered, and upgrade costs would be consolidated. So, if that works, my next question would be how remote client machines could access these virtual machines so users can give commands to them. The obvious answer would be VNC, and I have been experimenting with this a bit. So far though, I'm unable to find a zero-latency solution. I have a 4Gb fibre network, so I'm not worried about bandwidth saturation. As of yet, no VNC applications that I've found send more than 1 MBps. JollysFastVNC works pretty well, and is the best I've found, but still not whating I'm hoping for in a sitatuion with no bandwidth limitations. I understand that these applications are generally geared toward WAN access, but is there a remote control option suitable for zero-latency LAN situations?

My next concern, assuming that the distribution of processing in VMWare Fusion works the way that is should, is the distribution of other resources. One particular area that I'm curious about, and hope to test soon, is storage. Hard drive speed is commonly a bottleneck in computers, and purchasing RAID cards, enclosures, and fast drives to remedy this is a big expendature, especially if it has to be done for every system in your environment. Well, if all of your computers, or four of your computers, were virtual machines inside of another computer, then the expendature on setting up a fast RAID volume could be much lower, hypothetically. This is the way that I imagine it, please tell me if it works like this:

Your host machine is running it's OS on it's internal drives, but it's using an external SAS RAID card to connect to a much faster array. Let's say assume this RAID array has a read and write speed around 800 MBps. This is the array used to host your virtual machine operating systems. If all four of the virtual machines are being accessed for a lot of hard drive access simultaneously, will each of them have access to 200 MBps, or will the array be bogged down by the multiple requests, causing slower access speeds for all users? Furthermore, if all four virtual machines are sitting idle, using 5% of the drive speed each, and suddenly one gets a command for a lot of hard drive access, will it be able to use the remaining 85%? If so, this makes virtualization a very attractive solution for providing fast hard drive access to multiple computers.

Am I mistaken in thinking that RAM is assigned to a virtual machine instead of being shared the way that a hard drive would be? I've seen my friend set up a virtual machine before, and I remember him choosing an amount of his system RAM to dedicate to that computer. If that's the case, then one would probably need to max out their RAM for the host machine, but it would be worth it to not have to purchase three more equally powerful computers.

The last piece of hardware that I have a question about, and the one that I'm most worried about would be the video card. The video card would have to be shared by all virtual machines, right? I'm unsure if video card processors are multi-core these days, so I don't know if they would benefit in productivity by being fed manually threaded tasks. If they're not, would the video card get bogged down if it was receiving graphic intensive tasks such as phot editing on two or more virtual machines? If so, could installing multiple video cards remedy this? Would these video cards need to be assigned separately to different virtual machines, or are GPUs more effective at threading tasks than mult-core processors?

Alright, I'm sorry for all of the lengthy questions, but I'm very excited by the possibilities created by VMWare. Any replies at all would be very welcome. Thanks a bunch!

-Ryan

Re: Interested in virtualization, lots of questions.

1. Nov 22, 2009 10:37 AM in response to: omnicow
Click to view Bob Zimmerman's profile Hot Shot 259 posts since
Dec 22, 2006
The best way to think of multiple cores is not as making the machine faster. Most things a computer does are single-threaded. Multiple cores let it do more things at once.

If your tasks are multi-threaded and can live side-by-side on the same OS, you will normally get the best results out of letting the OS schedule them rather than using virtual machines for them. After all, each VM adds some overhead for the virtualization software and some for the guest operating system. If you use a host OS and two guests running the same OS as your host, your system is now running three copies of the same OS. Each one is consuming a certain amount of RAM and processor time, so running it three times consumes three times as much RAM and processor time as just running the host. If you go to four VMs, you are running five copies of the OS. This can get very inefficient very quickly.

In answer to your questions about hard drive access, yes, hypothetically four VMs could get up to 200 MB/s simultaneous access to the external volume. The large issue would be related to how the transport between the VM host and the mass storage handles the read requests. If you're using a high-bandwidth but high-latency transport, then lots of individual read requests would suffer, just like you'd expect. Similarly, if all VMs are using 5% of the external array's digital bandwidth, then a sudden spike in requests from one could potentially use all of the remaining capacity, subject to limitations elsewhere.

RAM is assigned to an individual VM, yes. Hard drives are certainly not shared, though. If you are going to give a VM access to a hard drive, that access needs to be exclusive. Most modern filesystems and operating environments were built around the assumption of exclusive access to the filesystem and the volume on which it resides. If you change files out from under them while they're running, all kinds of bad things happen. I think you misunderstand how VMs operate in this regard.

The host has exclusive access to a certain amount of RAM and a certain amount of mass storage. VMs are run as processes on the host. They allocate themselves a certain amount of RAM and interact with disk images that are stored as files. From the perspective of the host, it is not much different from InDesign (for example) having a very large file on the disk and allocating a large amount of RAM to read it. Each VM must have exclusive access to its RAM space and its disk image. Digital bandwidth to and from the RAM and mass storage are shared between systems, but the contents are not.

Finally, peripherals like video cards have not been designed with virtualization in mind, so in general, VMs get an emulated video card that is accelerated as possible using whatever methods the host has access to. I don't know if multiple VMs can use 3D acceleration at the same time on a system with a single video card. Someone else may be able to answer that.

Re: Interested in virtualization, lots of questions.

3. Nov 22, 2009 1:42 PM in response to: omnicow
Click to view Bob Zimmerman's profile Hot Shot 259 posts since
Dec 22, 2006
Woo! Someone else who got the reference. _

Strictly, most VMs don't use a partition for their hard drives. Most use a file that acts as a disk image. From the perspective of the host OS, that file is just like any other file. Read requests from software in the VM to the VM's hard drive get adjusted and sent as read requests for certain blocks in the disk image file. From the perspective of an external RAID enclosure, it would look like read requests from one computer for a bunch of files.

I would not expect Photoshop and Illustrator to perform particularly well in a VM. They may perform adequately, especially since Adobe has been so slow to add any kind of video-card-based acceleration. Just be sure to give both VMs plenty of RAM.

Keep in mind that, two copies of Mac OS X Server would total almost $1k by themselves. That's a pretty significant chunk of change towards either one of the 27" Core i7 iMacs or another Mac Pro. The iMacs perform better than the Mac Pro units at some tasks because the Mac Pro units use Xeon processors with fully buffered DIMMs (read: very high-latency memory) while the iMacs use consumer processors with normal unbuffered RAM.

Yes, it is possible to have multiple keyboards and mice plugged into the same machine. All you need to do is set it so HIDs stay grabbed by the VM and full-screen the VM on one of the monitors. If you are going to do this, I would recommend only running one VM. Have one person use the host OS and one person use the guest. That way, if the guest has some kind of weird problem, the person with access to the host can troubleshoot it, reboot the guest, or what-have-you.

VMware Beta Programs

Want to be Considered for Future Beta Programs?

Learn More

VMware Developer

Download SDKs, APIs, videos,
training, and more in the Developer community.

Learn More

Developer
Sample Code

Increase your developer productivity with VMware API sample code.

Learn More

VMworld
Sessions & Labs

Online access to the latest VMworld Sessions & Labs and online services.

Learn more

Purchase PSO Credits Online

Purchase credits to redeem training and consulting services online.

Buy Now

Community Hardware Software

View reported configurations or report your own.

Learn More

Only VMware ... Delivers Nexus 1000V

Ensure consistent, policy-based network capabilities to virtual machines across your data center.

Learn More

Communities