July, 2010

  • Windows Virtualization Team Blog

    Linux Integration Services v2.1 Now Available

    • 21 Comments

    We are really excited to announce the availability of the Hyper-V Linux Integration Services for Linux Version 2.1. This release marks yet another milestone in providing a comprehensive virtualization platform to our customers. Customers who have a heterogeneous operating system environment desire their virtualization platform to provide support for all operating systems that they have in their datacenters. We have supported Linux as a guest operating system on our virtualization platform from the days of Virtual Server and continue to enhance our support in that regard.

    The following features are included in the 2.1 release:

    Driver support for synthetic devices: Linux Integration Services supports the synthetic network controller and the synthetic storage controller that were developed specifically for Hyper-V.

    Fastpath Boot Support for Hyper-V: Boot devices take advantage of the block Virtualization Service Client (VSC) to provide enhanced performance.

    Timesync: The clock inside the virtual machine will remain synchronized with the clock on the host.

    Integrated Shutdown: Virtual machines running Linux can be gracefully shut down from either Hyper-V Manager or System Center Virtual Machine Manager.

    Symmetric Multi-Processing (SMP) Support: Supported Linux distributions can use up to 4 virtual processors (VP) per virtual machine.

    Heartbeat: Allows the host to detect whether the guest is running and responsive.

    Pluggable Time Source: A pluggable clock source module is included to provide a more accurate time source to the guest.

                                                                    

    This version of the integration services for Hyper-V supports Novell SUSE Linux Enterprise Server 10 SP3, SUSE Linux Enterprise Server 11, and Red Hat Enterprise Linux 5.2 / 5.3 / 5.4 / 5.5.

    Customers can obtain the Linux IC’s via the Microsoft Download Center at this link: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=eee39325-898b-4522-9b4c-f4b5b9b64551

  • Windows Virtualization Team Blog

    Installing Service Pack 1 on Microsoft Hyper-V Server 2008 R2

    • 9 Comments

     With the release of Beta of Service Pack 1 for Windows Server 2008 R2 a number of you have asked about Service Pack 1 for the standalone Microsoft Hyper-V Server 2008 R2, and whether the new capabilities of Dynamic Memory and RemoteFX will be available for it. Absolutely, both Dynamic Memory and RemoteFX have been developed for Microsoft Hyper-V Server 2008 R2 as well.

     

    In order to get these capabilities for the Microsoft Hyper-V Server 2008 R2, you will need to install the Beta of Service Pack 1 on Microsoft Hyper-V Server 2008 R2. Note that the first wave of the Service pack installer is only in 5 languages (English, French, German, Japanese and Spanish), so if you try and apply the package to Microsoft Hyper-V Server 2008 R2 (which has 11 language packs installed by default) you will rightly see the following screen

     

     

     

     It’s pretty simple to uninstall these language packs to thereafter install the Service pack. In order to uninstall the language packs, there is nifty utility included (lpksetup.exe). Launch this from an administrator’s command prompt and select “Uninstall display languages”.

    On the next screen, select the all languages other than the five (English, French, German, Japanese and Spanish). Of course if you want to save some additional disk space, you can uninstall other languages as well and leave just the language that you use in your environment, Click next and let the tool do its job. Thereafter you can apply Service Pack 1. Enjoy!!

    Vijay Tewari

    Principal Program Manager, Windows Server Virtualization

  • Windows Virtualization Team Blog

    Update to private cloud toolkit for System Center

    • 0 Comments

    Back in February we started working with partners and TAP customers on a toolkit to create private cloud environment.  See our February blog about the Dynamic Infrastructure Toolkit for System Center.

    A couple updates were announced Monday at our Worldwide Partner Conference. First, the tool has a new name: System Center Virtual Machine Manager Self-Service Portal 2.0 (the portal). Second, we reached the release candidate milestone. You can download it here. A release candidate milestone means it’s feature complete, and is nearing completion. We expect the portal to be finalized and released to the web in calendar Q4.

    You can read more about the self-service portal tool over at the System Center team blog (here). Here's an excerpt:

    The self-service portal provides the following features that are exposed through a web-based user interface:

    • Configuration and allocation of datacenter resources: Store management and configuration information related to compute, network and storage resources as assets in the VMMSSP database.
    • Customization of virtual machine actions: Provide a simple web-based interface to extend the default virtual machine actions; for example, you can add scripts that interact with Storage Area Networks for rapid deployment of virtual machines.
    • Business unit on-boarding: Standardized forms and a simple workflow for registering and approving or rejecting business units to enroll in the portal.
    • Infrastructure request and change management: Standardized forms and human-driven workflow that results in reducing the time needed to provision infrastructures in your environment.
    • Self-Service provisioning: Supports bulk creation of virtual machines on provisioned infrastructure through the web-based interface.Helps business units to manage their virtual machines based on delegated roles

    Patrick

  • Windows Virtualization Team Blog

    Dynamic Memory Coming to Hyper-V Part 6…

    • 13 Comments

    ======================================================

    Preamble: The point of this series, and the spirit in which it is written, is to take a holistic approach at the issues facing our customers, discuss the complexities with regard to memory management and explain why we’re taking the approach we are with Hyper-V Dynamic Memory. This isn’t meant to criticize anyone or technology, rather to have an open and transparent discussion about the problem space.

    ======================================================

    In the past few blogs we’ve covered Page Sharing and Second Level Paging. Today, let’s dig into what we’re delivering with Hyper-V Dynamic Memory in Windows Server 2008 R2 SP1 as well as our free hypervisor Microsoft Hyper-V Server 2008 R2 SP1. So what is Dynamic Memory?

    Dynamic memory is an enhancement to Hyper-V R2 which pools all the memory available on a physical host and dynamically distributes it to virtual machines running on that host as necessary. That means based on changes in workload, virtual machines will be able to receive new memory allocations without a service interruption through Dynamic Memory Balancing. In short, Dynamic Memory is exactly what it’s named.

    Let’s dive in an explain how all this works starting with the new Dynamic Memory settings. Here are the new settings available on a per virtual machine basis. Here’s a screenshot:

    Dynamic Memory Settings Highlighted

    Dynamic Memory In Depth

    With Hyper-V (V1 & R2), memory is statically assigned to a virtual machine. Meaning you assign memory to a virtual machine and when that virtual machine is turned on, Hyper-V allocates and provides that memory to the virtual machine. That memory is held while the virtual machine is running or paused. When the virtual machine is saved or shut down, that memory is released. Below is a screenshot for assigning memory to a virtual machine in Hyper-V V1/R2:

    Hyper-V V1/R2 Static Memory

    With Hyper-V Dynamic Memory there are two values: Startup RAM and Maximum RAM and it looks like this:

    Hyper-V R2 SP1 Dynamic Memory

    Startup RAM is the initial/startup amount of memory assigned to a virtual machine. When a virtual machine is started this is the amount of memory the virtual machine will be allocated. In this example, the virtual machine will start with 1 GB.

    The Maximum RAM setting is the maximum amount of memory that the guest operating system can grow to, up to 64 GB of memory (provided the guest OS supports that much memory). Based on the settings above, here’s an example of what the memory allocation could look like over a workday...

    image

    As you can see, the workload is dynamically allocated memory based on demand.

    Next, let’s look at the Memory Buffer.

    Memory Buffer: In one of the earlier blogs posts in this series, we discussed the complexity of capacity planning in terms of memory. To summarize, there is no “one size fits all” answer for every workload as deployments can vary based on scale and performance requirements. However, one consistent bit of feedback was that customers always felt more comfortable by providing additional memory headroom ‘just in case.’

    We completely agree.

    The point being you want to avoid a situation where a workload needs memory and Hyper-V has to start looking for it. You want some set aside memory as buffer for these situations, especially for bursty workloads.

    The Dynamic Memory buffer property specifies the amount of memory available in a virtual machine for file cache purposes (e.g. SuperFetch) or as free memory. The range of values are from 5 to 95. A target memory buffer is specified in percentages of free memory and is based on current runtime memory usage. A target memory buffer percentage of 20% means that in a VM where 1 GB is used, 250 MB will be ‘free’ (or available) ideally for a total amount of 1.25 GB in the virtual machine. By default, Hyper-V Dynamic Memory uses a default buffer allocation of 20%. If you find this percentage is too conservative or not conservative enough, you can adjust this setting on the fly while the virtual machine is running without downtime.

    Hyper-V Dynamic Memory Buffer

    This takes us to the last Dynamic Memory setting, Memory Priority.

    Memory Priority: By default, all virtual machines are created equal in terms of memory prioritization. However, it’s very likely you’ll want to prioritize memory allocation based on workload. For example, I can see a scenario where one would give domain controllers greater memory priority than a departmental print server. Memory Priority is a per virtual machine setting which indicates the relative priority of the virtual machine's memory needs measured against the needs of other virtual machines. The default is set to ‘medium’. If you find that you need to adjust this setting, you can adjust this setting on the fly while the virtual machine is running without downtime.

      Hyper-V Dynamic Memory Priority

    Dynamic Memory Works Over Time With A Few VMs…

    I’ve explained the per VM settings and shown how this would work with a single virtual machine, but how does Dynamic Memory work with multiple virtual machines? Below is an example to show just how Dynamic Memory works. I’ve kept this example simple on purpose to avoid confusion. Let’s assume I have a small server with 8 GB of memory. I’m going to run three virtual machines, one from Finance, Sales and Engineering. Each virtual machine is given the same settings: Startup RAM = 1 GB and Maximum RAM = 4 GB. With these settings, each virtual machine will start 1 GB and can grow up to 4 GB as needed.

    Virtual Machine Start. On the left graphic below, you can see three virtual machines starting. Each virtual machine is consuming 1 GB of memory for Startup RAM. On the right graphic below, you can see the total amount of memory being used in the entire system ~3 GB.

    Hyper-V DM Start Time

    15 minutes later. The Finance VM is running reports while the Engineering VM starts an analysis job. With Dynamic Memory, the Finance VM is allocated 3 GB of memory, the Engineering VM is allocated 2 GB of memory while the Sales VM remains at 1 GB. System wide, the server is now using 6 GB of its 8 GB or 75% of the total physical memory.

    Dynamic Memory @ 15 Minutes

    30 minutes later. The Finance VM is running reports while the Engineering VM starts an analysis job. With Dynamic Memory, the Finance VM is allocated 2 GB of memory, the Engineering VM is allocated 3.5 GB of memory while the Sales VM remains at 1 GB and a fourth VM, Service VM is started using 1 GB of memory. System wide, the server is now using 7.5 GB of its 8 GB of memory for VMs. At this point the server is fully allocated in terms of memory and is using its memory most efficiently.

     

    At this point, the question I’m always asked is, “What now? What if a virtual machine still needs more memory? Does the parent start paging?”

    No.

    At this point, Dynamic Memory will attempt to reclaim pages from other virtual machines. However, in the absolute worst case where no free pages are available, the guest operating system will page as needed, not the parent. This is important because the guest operating system knows best what memory should and shouldn’t be paged. (I covered this back in Part 5...) Finally, when free memory does become available from other virtual machines, Dynamic Memory will move memory as needed.

    Over-Subscription & the CPU Analogy

    One argument we routinely hear is that there’s nothing wrong with over-subscription. Customers tell us that they take a bunch of physical servers, virtualize them and run the server with over-subscribed CPUs without issue, so why is this an issue with memory?

    Great analogy, wrong conclusion.

    Example 1: Suppose you are running 8 physical servers at 10% utilization, virtualize them and run those 8 virtual machines on a single server for a total of ~85% utilization. In this example, you’re not over-subscribing the CPU and the server still has 15% CPU headroom.

    Over-subscription is this…

    Example 2: Suppose you are running 8 physical servers at 50% utilization, virtualize them and run those 8 virtual machines on a single server. The single server would max out at 100% utilization, but because the workloads require ~400% utilization, performance would be terrible. What would you do? Move virtual machines to other servers of course to avoid over-subscription. In short, what you really want to do is maximize resource utilization to get the best balance of resources and performance.

    That’s exactly what we’re doing with Hyper-V Dynamic Memory.

    Customer Requirements & Dynamic memory

    When it comes to virtualization and memory, virtualization users have repeatedly provided the following requirements:

    1. Use physical memory as efficiently and dynamically as possible with minimal performance impact. Customers investing in virtualization hosts are purchasing systems with larger memory configurations (32 GB, 64 GB, 128 GB and more) and want to fully utilize this system asset. At the same time, they’re purchasing this memory to provide superior performance and to avoid paging.
    2. Provide consistent performance and scalability. One frequent comment from virtualization users is that they don’t want a feature with a performance cliff or inconsistent, variable performance. That’s makes it more difficult to manage and increases TCO.

    You got it. Here’s why we’ve chosen the path we have with Dynamic Memory.

    1. Dynamic Memory is truly a dynamic solution. Memory is allocated to virtual machines on the fly without service interruption based on policy.
    2. Dynamic Memory avoids significant performance penalties by not adding additional levels of paging which can significantly impact performance
    3. Dynamic Memory takes advantage of Large Memory Pages and is, in fact, optimized for Large Memory Pages
    4. Dynamic Memory is a great solution for virtualizing servers and desktops (BTW, Dynamic Memory works fine with SuperFetch)

    Cheers,

    Jeff Woolsey

    Principal Group Program Manager

    Windows Server & Cloud, Virtualization

    P.S. Here are the links to all of the posts in this blog series:

  • Windows Virtualization Team Blog

    Download beta of Windows Server 2008 R2 sp1

    • 0 Comments

    Over at the Windows Server Division blog, Oliver says the beta is available to download. Oliver focuses on Windows Server 2008 R2 sp1, but Windows 7 sp1 beta is also available. All of this was announced today at our Worldwide Partner Conference in Washington, D.C.

    Here's an excerpt from Oliver's post:

    The two most important developments in SP1 for Windows Server 2008 R2 are:

    Dynamic memory lets Hyper-V administrators pool available memory on a physical host and dynamically distribute it to any virtual machine(s) running on that host. So as the workloads on that physical workload change, requiring more or less memory, Dynamic Memory will let administrators change the memory allocation to their VMs without service interruption. For a deeper look at Dynamic Memory check here.

    RemoteFX enhances Microsoft desktop virtualization. RemoteFX lets Windows Server 2008 R2 administrators provide an even richer and user-transparent desktop virtualization experience. RemoteFX delivers rich content, independent of any graphics stack, to server-hosted virtual and session-based desktops, allowing them to support any screen content, including full-motion video, portable graphics stacks such as Silverlight, and 3D applications. Because it can use virtualized graphics on the server and advanced codecs , RemoteFX can deliver those experiences to a much wider array of target devices, including standard desktops and laptops but also an emerging slew of thin clients. You'll also be able to forward the USB ports of the local client to the virtual machine being accessed on the device - just like you can forward the local printer over RDP today. [UPDATE - see Max's new blog post on partner support for RemoteFX]

    Make sure you check out the new SP1 Beta Resource page on Microsoft.com as well as the TechNet SP1 page -- and don't forget to grab the download here

    Patrick

Page 1 of 1 (5 items)