Slashdot Mirror


Virtualization Goes Mainstream

InformationWeek is reporting that, during the same week that Microsoft announced the free price for Virtual PC, VMWare 1.0 was released for free as well. Though there were already many free options for virtualization available, these major products signal a shift in the industry. From the article: "There are many ramifications here. Obviously, the slew of products means network managers can now adopt virtual servers into their overall strategies and don't have acquisition costs providing a justification to avoid it. Other than the very-high-end VMware ESX and the midline Microsoft Virtual Server on mainstream XP platforms, virtualization is essentially free wherever you might want to use it."

2 of 167 comments (clear)

  1. Re:VM Fabric by Natales · · Score: 5, Informative

    The recently released VMware Virtual Infrastructure 3 (which is basically ESX 3.0 + VirtualCenter 2.0 + some add-ons) can do this using a technique called Distributed Resource Scheduling (DRS). This is basically a global scheduler running on your VirtualCenter server that works in coordination with the local schedulers in each ESX server part of the same ESX cluster.

    When you hit a user-defined treshold for either memory or CPU on a VM, then DRS will trigger a VMotion of that particular VM to another ESX in the cluster without user intervention, effectively running the VM where it can run the best, based on the SLA you defined when you created it.

    The cool thing about this is that you can now have a predictable cluster utilization level, regardless of where the VMs are running.

    [Disclaimer: I work for VMware]

  2. Re:The only discussion missing.. by Natales · · Score: 5, Informative

    Virtualization overhead is not deterministic due to the nature of the code execution algorithm on the x86 CPUs. From the VMware perspective (which is what I know), you have two kinds of virtualization mechanisms: 1) Hosted on top of Linux or Windows, and 2) Bare metal, on top of a thin hypervisor like ESX.

    In the hosted world, the host OS is providing memory management and scheduling, as well as access to its device drivers. In the bare metal architecture, the hypervisor itself provides those functions, making it way more efficient. Recently, a customer was telling me he was running 6 VMs using GSX (now VMware Server) on a 2-way dual-core Opteron box. He installed ESX and he was then running 20 VMs on the same machine. That gives you an idea of the difference on these two approaches from the performance perspective.

    The other reason why your performance may vary, is because you have CPU, memory and I/O overhead also. In the CPU realm, the vmkernel is running on ring 0, and the guest OS is relegated to ring 1 in the x86 CPU. The problem is that not all assembly instructions can be executed successfully in ring 1, so VMware's Binary Translator module will actually detect those patterns of "dirty" assembly instructions and will insert traps so every time you hit one of those, it gets executed by the vmkernel on behalf of that VM. So, the more traps you need to do, the more CPU overhead you get.

    Additionally to the CPU overhead, you have memory mapping overhead (i.e. no real DMA), I/O subsystem overhead, etc.

    Numbers can vary a lot. In general, large companies consider an average of 15% of virtualization tax, which is realistic when you want to run a large number of VMs in multiple systems. In any case, the best approach is to always test your workload before you put it in a sensitive environment.

    [Disclaimer: I work for VMware]