Sei sulla pagina 1di 40

Aidan Finn 16 June 2011 http://www.aidanfinn.

com/

A Guide to Hyper-V Dynamic Memory


Understanding, enabling, and configuring Windows Server 2008 R2 Hyper-V Dynamic Memory for virtualised workloads

This document and parts thereof are the sole property of Aidan Finn and may not be copied, reproduced, shared or distributed in any shape or form, physical or digital, without the sole and express permission of Aidan Finn.

This could be where your company promotes its products

My last whitepaper, How to Build a Hyper-V Cluster Using the Microsoft iSCSI Software Target v3.3 had 516 downloads on its first day (April 13th, 2011), and 4,229 downloads up to 16th June, 2011.

Contact me via my blog at http://www.aidanfinn.com for more information.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

Table of Contents
Introduction ............................................................................................................................................ 5 Understanding Dynamic Memory ........................................................................................................... 6 Before Dynamic Memory .................................................................................................................... 6 The Challenges before Dynamic Memory ........................................................................................... 6 The Basics of Dynamic Memory .......................................................................................................... 8 The Architecture of Dynamic Memory ............................................................................................. 12 Dynamic Memory at the Virtual Machine Level ............................................................................... 14 The Virtual Machines View of Dynamic Memory ............................................................................ 17 This is Not Over Commitment........................................................................................................... 21 Non-Uniform Memory Access (NUMA) ............................................................................................ 22 Dynamic Memory Strategies................................................................................................................. 24 Configuring Dynamic Memory .............................................................................................................. 25 Requirements.................................................................................................................................... 25 Upgrade the Parent Partition............................................................................................................ 25 Integration Components ................................................................................................................... 25 Supported Guest Operating Systems ................................................................................................ 26 Configuring Dynamic Memory in the Hyper-V Manager .................................................................. 27 Host Settings ................................................................................................................................. 27 Virtual Machine Settings ............................................................................................................... 27 Configuring Dynamic Memory in SCVMM 2008 R2 SP1 ................................................................... 28 Monitoring and Troubleshooting ...................................................................................................... 31 Monitoring Dynamic Memory....................................................................................................... 31 Troubleshooting Dynamic Memory .............................................................................................. 33 General Recommendations .................................................................................................................. 35 Cluster Failover ................................................................................................................................. 35 Storage Sizing .................................................................................................................................... 35 Host Storage Sizing........................................................................................................................ 35 Paging File ..................................................................................................................................... 36 Application Caching....................................................................................................................... 36 Virtual Workload Configuration Recommendations ............................................................................ 37 Windows 7/Vista VDI ........................................................................................................................ 37 SQL Server ......................................................................................................................................... 37

Copyright Aidan Finn 2011

http://www.aidanfinn.com

Exchange Server 2007/2010 ............................................................................................................. 38 Small Business Server (SBS) 2008/2011 ............................................................................................ 38 Lync 2010 .......................................................................................................................................... 38 CRM Dynamics 2011 ......................................................................................................................... 38 SharePoint 2010 ................................................................................................................................ 38 About The Author ................................................................................................................................. 39

Copyright Aidan Finn 2011

http://www.aidanfinn.com

Introduction
We normally dont like it when a service pack includes new features. New features mean changes that need to be tested, possible compatibility issues, and more headaches in between the usual operating system deployment cycles. Windows Server 2008 R2 Service Pack 1 came with a number of new features but we did not complain; in fact, we virtualisation engineers had a mini celebration. This is because those new features were mostly targeted at server and desktop/session virtualisation, and aimed to give us a better return on hardware investment. Dynamic Memory was one of those new features. Put very simply, this VM memory allocation feature allows us to get more virtual machines on to a Hyper-V host without sacrificing performance. You can use Dynamic Memory in a few scenarios. The one that gets the most publicity is virtual desktop infrastructure (VDI) where economic PCs are replaced by expensive virtual machines running in the data centre. Its critical to get as many of them on a host as possible to reduce the cost of ownership. Server virtualisation is the scenario that we techies are most concerned with. Weve typically found that we tend to run out of memory before we get near to the processor or storage I/O limits of our hardware. And the final scenario is where we use Hyper-V to build an Infrastructure-as-a-Service cloud, where elasticity and greater virtual machine density are required. The approach that Microsoft took with this new memory optimisation technique ensures that concepts such as over commitment are not possible; thats because over commitment potentially does cause performance issues. Dynamic Memory does require that you understand how it works, how to troubleshoot it, and how applications may be affected, before you log into your hosts and start enabling it. It will require some planning. The aim of this document is to teach you how Dynamic Memory works, show you how to configure it, how to monitor it, and how to use it in various application scenarios.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

Understanding Dynamic Memory


This section of the guide will show you the theory behind Dynamic Memory, ensuring that you know how to configure it for your virtual workloads.

Before Dynamic Memory


Before Windows Server 2008 R2 Service Pack 1 we had no memory optimization techniques. Memory was consumed as follows on a Hyper-V host server. Lets assume we have a host with 16 GB of RAM. The parent partition (or host operating system) would power up and take whatever memory it required. This isnt a huge amount; its usually 2 GB RAM or less. So from our 16 GB, 2 GB is consumed by the host, leaving us with 14 GB of available memory. Each virtual machine is allocated a certain amount of memory. For example, VM1 might be assigned 4 GB RAM and VM2 might be assigned 8 GB RAM. Each virtual machine will instantly consume all of their allocated memory, even if their workloads dont require it. That means that 12 GB RAM is consumed from the available physical pool of RAM on the host, even if the current workloads in the virtual machines might only require 4 GB. Does that sound a little wasteful? We did have 14 GB free on the host. Now we have consumed 12 GB of that and are left with 2 GB of RAM, even though we only require 4 GB for our application workloads right now.

VM2 8 GB

Available Host Memory 16 GB

VM1 4 GB

Parent Partition 2 GB

Virtual machines consuming all allocated physical memory.

The Challenges before Dynamic Memory


There are a number of challenges including the following: Waste of Expensive RAM: Server memory is not cheap. Application demands vary over time. One moment a virtual machine may require only a small fraction of the allocated

Copyright Aidan Finn 2011

http://www.aidanfinn.com

physical memory. Later it might require all of that memory. You have to allow for those times of higher demand and that means that unused allocated memory is wasted. Memory is the Bottleneck: Worldwide, we spotted a trend with Hyper-V. We tended to run out of memory capacity on Hyper-V hosts long before we ran out of processor or storage capacity. Processor and storage I/O are the factors that cap performance. Memory does not affect performance as long as there is enough available. This means that if we had a more efficient way to assign memory to virtual machines on Hyper-V then we could get many more virtual machines onto our Hyper-V hosts without impacting on performance. This could allow us to get a much better return on investment for server virtualisation and in virtual desktop infrastructure (VDI where it really is important mainly because you are using expensive server hardware/data centres instead of cheaper PCs and office space. Sizing Memory is Difficult: Consider a scenario where you are asked to size a virtual machine for a new business application. Youll ask the application developers for guidance. Theyll typically say they want the usual or whatever you think is best. In other words, they dont have a clue and are dumping the sizing responsibility on your shoulders. So youll go off and dig up sizing guidance from Microsoft, the application vendors, and for things like antivirus, backup, and other management agents. This tends not to go so well how many Microsoft guides assume that the smallest deployment needs to support 20,000 users? How many of us really work in those environments? Suddenly you have a VM that requires 8 GB of RAM. You deploy it, monitor it, and soon see that its only using 3 GB of RAM. You could downsize the virtual machine, but that could lead to a nasty conversation with the boss if the users run some end of month report that does require all 8 GB of the original memory allocation. Sizing of memory just isnt easy. The Private Cloud: The basic concept of cloud computing is that you provide a system where users (or other non-central administrators in this case such as application administrators or developers) will be able to deploy virtual machines (or services) for themselves without any virtualisation administrator involvement. That means there is no professional sizing done by an expert like you. That application developer who didnt have the first clue about memory requirements is now deploying virtual machines via a web portal. Without some memory allocation optimisation technique, the virtual machines will either have too little or too much memory - and that will be your fault of course. If the amount of memory in the virtual machine is too low then the performance will be poor. You just know that the developers will complain that the Hyper-V compute cluster (you in other words) is at fault. On the other hand, if they allocate too much memory then theyll be cross-charged for that and complain about the cost. You just know thatll be your fault too! We need some elasticity with the memory assignment to virtual machines, ensuring that they always has just what they need based on their demand for resources, especially if non-experts are going to be sizing virtual machines. Clearly something had to change, especially considering that the lack of Dynamic Memory was the last remaining major complaint by some about Hyper-V.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

The Basics of Dynamic Memory


Dynamic Memory is an extension of a feature of Windows that has been around for quite some time. Users of high end server hardware have had hardware features such as fault tolerant memory. This functioned like storage RAID. If a memory DIMM degraded, it could be removed and replaced while the server was running. Striping of memory contents was done by the server to ensure that nothing bad, like a blue screen of death, would occur once the engineer popped open the case and started removing and adding memory DIMMs. These servers tended to have heavy workloads. If demand grew, then it was possible to open the machine while it was running, and add additional memory DIMMs. This hot-add memory ability was a feature of Windows Server Enterprise and Datacenter editions. Dynamic Memory is really just an extension of this idea. Memory is added to virtual machines while they run. But instead of plugging in large amounts, such as 8 GB DIMMs, tiny amounts of memory are added to the virtual machine. This is done on an on-demand basis from the pool of available memory on the host. Lets take the 16 GB RAM host example once again. Think of this 16 GB of RAM as a shared pool of available memory. When the host powers up, the parent partition will start up and consume whatever memory it requires from the host pool of memory. For now, well assume that this is 1.5 GB of RAM for now. This leaves the pool with 14.5 GB of available memory.

Available Host Memory 16 GB

Parent Partition 1.5 GB

The parent partition consumes required memory from the host. VM1 and VM2 are the two virtual machines on this host. They will both start up, each initially consuming 1 GB of RAM. Its immediately clear that Dynamic Memory is going to allow more virtual machines on the host if available memory is the true density bottleneck.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

Available Host Memory 16 GB

VM2 1 GB VM1 1 GB Parent Partition 1.5 GB

VM1 and VM2 power up on the host. The application workloads on VM1 and VM2 will start up and require memory once their guest operating systems have started. This may drive up memory demand. This demand will be met by dynamically allocating additional memory to the virtual machines from the shared pool on the host. Note that this is the very same pool that the parent partition (host OS) will go to if it requires more memory.

Available Host Memory 16 GB

VM2 4 GB

VM1 2 GB

Parent Partition 1.5 GB

VM1 and VM2 application workloads increase memory demand.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

The virtual machines are now handling their normal workload. Compare this with our original scenario where there was no Dynamic Memory. There appears to be additional capacity for more virtual machines. A third virtual machine called VM3 is added to the host.

VM3 4 GB Available Host Memory 16 GB

VM2 4 GB

VM1 2 GB

Parent Partition 1.5 GB

VM3 is added to the host and consumes memory from the shared pool of physical memory. Now we see increased user activity and this increases memory demand by the workloads that are running in VM1 and VM2. Additional memory must be added.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

10

VM3 4 GB

VM2 6.5 GB Available Host Memory 16 GB

VM1 4 GB

Parent Partition 1.5 GB

VM1 and VM2 increase their memory demand. Both VM1 and VM2 have increased their memory. They cannot increase it beyond what is left in the shared pool of physical memory on the host. The host has 16 GB of RAM. That means that Hyper-V can never allocate more than 16 GB RAM to the parent partition and virtual machines. In fact, if you consider that there is a memory overhead for virtual machines (up to 32 MB for the first 1 GB per VM, and up to 8 MB for each additional GB in that VM) then you actually get slightly less than 16 GB of memory that can be allocated. Eventually demand will subside in virtual machines and they will return the unneeded memory back to the available pool so that it can be reallocated to other virtual machines should they have demand.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

11

VM3 6 GB

Available Host Memory 16 GB VM2 5 GB

VM1 3 GB

Parent Partition 1.5 GB

VM1 and VM2 return memory to the host and it is reallocated to meet demand elsewhere. This gives you a very high level view of what is happening in Dynamic Memory. Lets dive deeper to see whats going on under the covers.

The Architecture of Dynamic Memory


The architecture of Hyper-V looks something like the below figure. Hyper-V runs at ring -1 on the processor. That means that the kernel partition of the parent partition (host operating system) and the child partitions (virtual machines) run at ring 0, exactly where they would on a physical computer. In user mode in the parent partition, youll see a collection of VM worker processes. There is one worker process per running virtual machine, allowing the host to manage those virtual machines that are on the host. Over in the child partition you can see a collection of Virtual Service Clients (VSCs) running in the kernel of the guest operating system. These are the integration services (components) that enlighten the virtual machine. These include the features that enable things such as the synthetic network card in the virtual machine. The child partition is referred to as enlightened when you install the integration components in the guest operating system. Each of these VSCs communicate with a matching Virtual Service Provider (VSP running in kernel mode in the parent partition) via the VM Bus (protected by Data Execution Prevention and running in the hypervisor).

Copyright Aidan Finn 2011

http://www.aidanfinn.com

12

The architecture of Hyper-V with an enlightened child partition. If you have run Hyper-V for a while then you may have noticed the occasional update to the integration components for Hyper-V. These updates will either fix something or add functionality to enlightened virtual machines. We previously saw that Dynamic Memory was an extension of a previous feature of Windows where larger blocks of memory could be added to a running physical machine. To make Dynamic Memory happen, Microsoft created a new VSC, called the Dynamic Memory VSC (DMVSC) for virtual machines that run one of a select set of guest operating systems. Installing this new VSC in a supported guest operating system would make it possible to configure and use Dynamic Memory in that virtual machine. It is interesting to see how the DMVSC has a different communications and management path to the other VSCs. It doesnt communicate with a VSP in the parent partition kernel mode. It actually communicates with the virtualisation stack that runs in user mode in the parent partition. The benefit of this is that Dynamic Memory is able to intelligently add memory to virtual machines with some knowledge of their real internal requirements, rather than just blindly guessing about the real demands of some black box virtual machine. This becomes useful when many virtual machines undergo increased memory demands at once, there isnt a sufficient amount left in the pool for everyone, and Hyper-V has to figure out how to divide up the pool to the virtual machines that really need it the most.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

13

The Dynamic Memory VSC communicating with the parent partition virtualisation stack. What do you take from this? Firstly, you need to upgrade your Windows Server 2008 R2 Hyper-V hosts to Service Pack 1. And secondly, to use Dynamic Memory in a virtual machine, you must have the DMVSC. This was first made available in the integration components that are included in Windows 7 and Windows Server 2008 R2 Service Pack 1. You can install these integration components in a couple of ways: Install Windows 7 with Service Pack 1 or Windows Server 2008 R2 with Service Pack 1 in a new virtual machine. The integration components are included automatically. Upgrade Windows 7 or Windows Server 2008 R2 virtual machines to Service Pack 1. Install or upgrade the latest integration components in each virtual machine that will be using Dynamic Memory. This includes the supported legacy operating systems.

Dynamic Memory at the Virtual Machine Level


There is no global setting to turn Dynamic Memory on or off at the host level. It must be configured for each virtual machine. By default, a virtual machine is set up with the traditional static amount of memory. You can edit the properties of a virtual machine to enable Dynamic Memory. There are 4 settings for you to be aware of that must be configured for each virtual machine that you will enable with Dynamic Memory: Startup RAM This is the amount of memory that is allocated to the virtual machine when it starts up. If you set this to 512 MB then 512 MB is instantly assigned from the shared pool to the virtual

Copyright Aidan Finn 2011

http://www.aidanfinn.com

14

machine when it starts. If you set this to 1 GB then 1 GB is instantly assigned from the shared pool to the virtual machine when it starts up. Think about this for a few seconds. Dynamic Memory is made possible via the DMSCV integration component. The integration components are a set of drivers or services. They only start up when the virtual machines guest operating system starts up. The guest operating system has a requirement for a certain amount of memory for it starts up. You cant configure a virtual machine to start up with 128 MB of RAM and expect it to work with a Windows Server 2008 R2 guest operating system. Windows Server 2008 R2 will look for 512 MB to get up and running. Only when the OS is running will the DMVSC start. And that is when Dynamic Memory can start up and start adding more memory to the virtual machine to meet the demands of any other services or applications that are installed in the virtual machine. That means that you must configure the Startup RAM setting to be at least the minimum amount of RAM required for the operating system to start up. Thats the official line. My recommendation is that you configure Startup RAM to be the amount of memory that is the minimum required for the operating system and applications in the VM to run at basic or normal levels. This will ensure that the virtual machine always has enough memory to meet normal demands, and can grow beyond this when unusual demands occur. Maximum RAM This is simple enough. How much memory do you want to limit this virtual machine to? By default this is 64 GB RAM. 64 GB is the maximum possible amount of memory that a HyperV virtual machine can have. Note that Hyper-V can never allocate more memory than is available in the shared pool on the host machine. This means that in times of low general demand, a virtual machine that has a high demand could reach its maximum RAM setting. But in times of high general demand, there might not be any memory left in the pool to allocate to the virtual machine. Memory Buffer Once you try out Dynamic Memory you will see that it is able to add both small and large amounts of memory to a virtual machine very quickly. However, there is a process, and there will be some amount of latency that is not perceivable to us. There is always a chance that some service or application will demand memory more rapidly than Dynamic Memory can respond to. This is why Dynamic Memory allocates a spare amount of memory to each virtual machine. The Memory Buffer defines that extra assignment as a percentage of the committed RAM in the virtual machine. For example, if the virtual machine has demand for 4 GB of committed RAM, and the Memory Buffer is 50% (the default value is 20%), then the virtual machine will be allocated 6 GB of RAM (4 GB + 50% of 4 GB).

Copyright Aidan Finn 2011

http://www.aidanfinn.com

15

50% Buffer = 2 GB

Maximum RAM = 10 GB

Committed RAM = 4 GB

Memory buffer in action in a virtual machine. During normal demand, the guest operating system will use this spare amount of memory for caching to improve performance. There are two scenarios where Dynamic Memory will not be able to allocate the full amount of the memory buffer. The first one makes total sense. The virtual machine will never be assigned more memory than is configured in the Maximum RAM setting. You will find that the size of the buffer will decrease in the virtual machine as the amount of assigned memory approaches the maximum allowed. This means that extreme demand is met by committing memory rather than providing a buffer. The buffer will increase in size as demand drops below the Maximum RAM setting.

50% Buffer Not Possible Actually = 2 GB

Maximum RAM = 10 GB Committed RAM = 8 GB

Memory buffer shrinks as the maximum memory is reached. In times of high demand across the entire host, there may not be enough available memory to assign to virtual machines for their buffer. Committed memory demands must be serviced first.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

16

Memory Weight There will be times when there is not enough memory to meet the total memory demands of virtual machines that are running on the host. If you have a Hyper-V host cluster with System Center Virtual Machine Manager and System Center Operations Manager then virtual machines will be moved with zero downtime via Live Migration to more suitable hosts. But lets assume that you dont. What will happen? This scenario is an example of why the Hyper-V virtualisation stack in the Parent Partition user mode wants a unified view of virtual machine activity. Hyper-V uses a metric called pressure to figure out how badly a virtual machine needs more memory, and this is used to compare the demands of many virtual machines if there is contention for the remaining memory on the host. Pressure takes the amount of committed memory in a virtual machine and compares it with the demand for additional memory. In other words, it is a ratio of how much memory the machine has versus how much it wants. All virtual machines are equal, but some are more equal than others. What if VM1 and VM2 both want more memory and your host does not have enough to meet both of their requirements? Who should get the last of the available memory from the shared pool? If they both have the same pressure then the last of the memory may just be split equally between the two virtual machines. If VM1 is a low priority web server and VM2 is a high priority SQL server then this equal split wont make sense. Youll probably want the higher priority VM2 to get more, if not all, of the remaining memory in those times of memory contention. The final Dynamic Memory setting, Memory Weight, allows you to configure the relative importance of each virtual machine in the eyes of Dynamic Memory. By default all virtual machines have the middle setting. We could configure VM1 with a lower memory weight, and/or we could set up VM2 with a higher memory weight. Now when VM1 and VM2 are contending for the final piece of memory on the host, Dynamic Memory will use Memory Weight and the pressure of each virtual machine to determine how that pool should be split and assigned. A high priority virtual machine with high pressure will get more memory than a lower priority virtual machine with lower pressure. But you could see a lower priority virtual machine with higher pressure getting as much, if not more, memory than a higher priority virtual machine with lower pressure. What you learn from this is that you must configure the properties of a virtual machine to enable it to use Dynamic Memory.

The Virtual Machines View of Dynamic Memory


The most important thing youll need to know about Dynamic Memory as a day-to-day administrator is how the guest operating system and the user will see things happening. Get things wrong and youll spend way too much time responding to help desk tickets or in your bosses office. Get it right, and the power of the private cloud will be possible.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

17

Some virtualisation technologies have a memory optimisation technique that lies to the guest operating system. A virtual machine may be configured to have up to 4 GB of RAM. When the guest operating system starts, it will think it has 4 GB of memory. Any applications that run on it or any users that log into it will also see 4 GB of RAM. But in reality, under the hood, the virtual machine will only be assigned whatever memory is required to meet demand for the committed work load, plus maybe an extra buffer amount.
Application, Operating System & Users See 8 GB RAM

Virtual Machine Maximum RAM = 8 GB

Hypervisor

Virtual Machine Assigned RAM = 4GB

Some other hypervisors lie about the amount of assigned memory. Hyper-V is using the guest operating systems ability to hot add memory to allocate additional memory to the virtual machine to meet demand and ease pressure. This means that the operating system is fully aware of memory amounts. There is no lying. The following figure is quite simplistic but it gives you a comparison to the alternative that is found in other hypervisors.
Application, Operating System & Users See 4 GB RAM

Virtual Machine Virtual Machine Maximum RAM = 8 Current RAM = 4GB GB

Hypervisor

Virtual Machine Assigned RAM = 4GB

Hyper-V is honest about the amount of assigned memory. This may cause some issues. What will happen if you give an end user a virtual machine configured to start up with 512 MB and grow to 8 GB? They might log in and see 768 MB of RAM, get upset, and ask the help desk why theyve been short changed. Or they might try to install SQL Server which

Copyright Aidan Finn 2011

http://www.aidanfinn.com

18

has a minimum requirement for 1 GB of RAM. The setup will query the operating system, find maybe 768 MB of RAM is currently assigned and is visible, and that setup wont be able to continue. We can understand this visibility a bit more, or lack thereof, if we look at how memory is added and removed from a virtual machine. The below figure shows us: The virtual machine with its currently assigned (and visible) amount of memory The available pool of physical memory that can be assigned to virtual machines

Currently the virtual machine has 2 GB of RAM. It has a maximum memory setting of 64 GB. The guest operating system, applications, and user of the virtual machine can see 2 GB of RAM. No matter what tool or API is used by an application or user, they can only see 2 GB of RAM the highest amount of memory that the virtual machine has had since it booted up. They will only ever see that high-water mark in those tools within the virtual machine. Note that a Hyper-V administrator can see the startup, maximum, and currently assigned memory amounts at the host level using tools such as Performance Monitor or the Hyper-V Manager.

A virtual machine with Dynamic Memory enabled. Pressure increases in the virtual machine and Hyper-V responds by adding more memory. Dynamic Memory increases the amount of memory in the virtual machine up to 3 GB. This is the new high water mark for memory and now the guest operating system, applications, and users can see 3 GB of memory in the virtual machine.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

19

Dynamic Memory increases the amount of memory in the virtual machine. You cannot remove memory from a machine. Doing so would crash the machine. What you can do is hoodwink a machine by making the memory unavailable. Hyper-V needs some way to remove unneeded memory from a Dynamic Memory enabled virtual machine. It does this by using a process called ballooning. Dynamic Memory sees pressure reduce within the virtual machine. This means that memory can be returned back to the pool, making it available for reassignment. Dynamic Memory cannot tell the virtual machine that it is shrinking from 3 GB down to 2 GB. Instead, the DMVSC effectively blocks the freed up memory using a balloon. That means that the guest operating system cannot use the memory until the balloon (the block) is shrunk by being re-assigned that memory from the available memory on host. One the balloon is in place, the DMVSC can work with the parent partition to reassign the physical memory back to the host. The virtual machine in our example now has 2 GB of memory physically assigned to it on the host. However, the guest operating system, applications, and users still see 3 GB of total memory. They cant use that additional memory because the DMVSC is blocking it using the balloon. This reinforces the fact that you should never judge Hyper-V virtual machine performance using tools within the virtual machine; you really need to use the Hyper-V metrics that are available in the parent partition (host operating system).

Copyright Aidan Finn 2011

http://www.aidanfinn.com

20

Dynamic Memory removes unneeded memory from the virtual machine using ballooning. After some time, pressure may increase in the virtual machine. The balloon will shrink as memory is assigned to the virtual machine, making the new memory available to be used by the guest operating systems processes. Note that a virtual machine will never have less than the startup amount of memory. Your take away from this is that you cannot use tools in a Dynamic Memory enabled virtual machine to determine how much memory it currently has. You can really only tell what the maximum amount of memory was since the virtual machine was started up. This high water mark will reset to the startup memory amount when the guest operating system is restarted or is shut down. You also need to consider your startup memory setting for reasons other than efficiency or operating system support. Consider setup programs, such as SQL Server, that will check for a certain amount. If you deploy a private cloud, you wont want to be helping people every time they deploy a virtual machine that starts up with 512 MB and they want to install a database. Maybe youll set up your server VM templates to start up with 1 or 2 GB instead.

This is Not Over Commitment


The approach that Microsoft took with Dynamic Memory was to assign only the memory that is required by virtual machines, and to do so without compromising on performance. They have accomplished this with the hot add approach of assigning additional memory to virtual machines. A Dynamic Memory enabled Hyper-V virtual machine can only ever use the amount of memory that is physically assigned to it. There is no black magic, there is no shared memory paging, and there are no secret caches. If a host has 16 GB RAM then it can only assign up to 16 GB RAM between the parent partition and the virtual machines. Because of this, the parent partition doesnt have to compensate for over commitment. Consider the alternative approach where there is some lying taking place. With that approach, a virtual machines guest operating system believes it has maybe 8 GB RAM. It might start up with 512 MB. What happens when there is contention for physical memory on the host? The hypervisor has to provide some form of memory because the guest operating system would probably crash if

Copyright Aidan Finn 2011

http://www.aidanfinn.com

21

presumable addressable memory wasnt there. That means nasty things like paging at the host level must take place. Paging files cannot compare to real RAM. And paging at the host level is the most inefficient form of paging because the host has no idea what pages should be prioritised, or swapped in/out to improve performance. So maybe you cannot run 256 GB of virtual machines on a 192 GB Hyper-V host. Thats not the way Microsoft chose to go. Microsoft would instead ask how many of those virtual machines really need all of their maximum memory, and only allocate what is needed. The end result is that you still increase your virtual machine density, maybe to the same end-result levels, but you do so without negatively impacting on business application performance.

Non-Uniform Memory Access (NUMA)


NUMA is a feature of some server hardware. It is not something that is a feature of Windows. In fact, any software on NUMA hardware has to deal with it, and that includes all of the available hypervisors. NUMA is an architecture where memory is divided up based on the channel architecture that connects the memory banks to the processors. For example, in the below illustration you can see that two of the processors have direct access to the first half of the memory, and the other two processors have a different direct channel to the second half of the memory in the server hardware. These divisions are referred to as NUMA nodes. There are two NUMA nodes in this example. The result of this is that a process running in NUMA node 1 will operate more efficiently if it has its memory in the same NUMA node. That is because the process threads execute on the processors in NUMA node 1, and those processors only have direct connectivity to that NUMA nodes memory bank. This applies to Windows, Linux, Hyper-V, ESX, or anything else that runs on NUMA hardware. Hyper-V is aware of this and it always tried to keep virtual machine threads of execution in the same NUMA node as the virtual machines memory. But Dynamic Memory does add a complication.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

22

NUMA divides memory based on the processor and channel architecture. Sometimes the memory bank in a NUMA node will fill up and additional data must be stored in another NUMA node. That is made more likely with Dynamic Memory. A virtual machine may have an increase in pressure and need to be assigned with more memory. If the memory banks in the NUMA node are full then the host will have no choice but to span NUMA nodes. In other words, the physical processors will have to cross an inefficient path to cross into the other NUMA node every time they are accessing that memory on behalf of that virtual machine. This will impact the performance of this virtual machine, and probably everything else running on that host.

A virtual machines memory spans NUMA nodes. Is this acceptable? What is the worst case scenario? Do you want the virtual machine to suffer in performance if it cannot get more memory at the risk of impacting all virtual machines performance on that host? Or will you sacrifice that virtual machine for the sake of the other virtual machines on that host? You can disable NUMA node spanning on a per-host basis. This means that a virtual machine that wants more memory that is not available in the current NUMA node will not be able to expand. You will see how this is done later in the document.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

23

Dynamic Memory Strategies


Why will you enable Dynamic Memory? How will you configure it? Here are a few suggestions. Remember that you can do this for any, all, or no virtual machines; it is up to you what you choose to do. Disabled Some applications will not support Dynamic Memory so their virtual machines shouldnt be configured. And some organizations may find that enabling it causes way too many helpdesk calls. Optimised With this approach you set the minimum amount of RAM that you consider is realistic, such as 2 GB of RAM, and you also set the maximum amount of RAM to be what you normally would have used in a static memory scenario. For example, a SharePoint VM might be configured to start up with 1 GB of memory and grow up to 8 GB. Elastic This is the true cloud approach. You would set the start up memory to be as small as you consider reasonable. However the maximum RAM would be set to the largest you could possibly envision, e.g. 32 GB or even 64 GB (assuming the guest operating system supports it). With the elastic approach, you are allowing end users to take what they need. Youre probably charging them for it. This does assume that: Users know what theyre doing Theyll pay the invoice when you send it out Applications arent leaky and they wont eat up all that delicious dynamically expanding memory

Cluster Fault Tolerance Ive read and heard about this application of Dynamic Memory. Ive not tried it, and I cant say it will be good or not. If you have the requirement, and equipment, then it might be worth testing for yourself. The idea with this approach is that you lose more hosts than your cluster is designed to lose. For example you lose two hosts in an N+1 host cluster. In theory, it might be possible to run all, or most, of your virtual machines on what is left of the cluster. The virtual machines will be using less memory than before the host failures, but the workloads will be operational. At least thats the theory, and it seems possible to me.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

24

Configuring Dynamic Memory


In this section you will learn about the requirements for Dynamic Memory, how to configure it in the Hyper-V Manager, and how to manage it in System Center Virtual Machine Manager.

Requirements
The requirements to use Dynamic Memory are as follows: Parent Partition The host must be running Hyper-V Server 2008 R2 SP1 or Windows Server 2008 R2 SP1 with Hyper-V, or later. Integration Components The integration components from Windows 7 and Windows Server 2008 R2 Service Pack 1, or later, must be installed in the guest operating system. Guest Operating System A guest operating system that is supported by Dynamic Memory must be installed in the virtual machine. Per Virtual Machine Configuration You must configure the Dynamic Memory settings of each virtual machine that should use this feature. There is no per-host setting to enable Dynamic Memory for all virtual machines.

Upgrade the Parent Partition


You have a bunch of ways to do this. You can manually upgrade the parent partition with Service Pack 1. You can install new hosts with Hyper-V Server 2008 R2 with Service Pack 1, or with Windows Server 2008 R2 with Service Pack 1 and the Hyper-V role. You can use a number of automated solutions such as System Center Configuration Manager, WSUS, or scheduled Windows Update to install the service pack as an update. Note: If you are using System Center Virtual Machine Manager (SCVMM) then I would recommend that you update it and your virtual machine templates to at least SCVMM 2008 R2 with Service Pack 1 before upgrading the hosts and trying out Dynamic Memory. This is because SCVMM 2008 R2 SP1 is the first version to include support for Dynamic Memory.

Integration Components
This is the part of the prerequisites deployment that could require the most work. There are a number of approaches that you could employ to install the latest integration components to each virtual machine, including the following:

Copyright Aidan Finn 2011

http://www.aidanfinn.com

25

SCVMM 2008 R2 SP1 You have two approaches that you can take by using SCVMM 2008 R2 SP1. The first is to select a number of virtual machines, right click, and select the option to upgrade the integration components. The nasty side of this process is that theres a good chunk of manual mouse engineering that will either mean a late night for some unlucky person or downtime during the day for production systems. The alternative is to figure out the PowerShell cmdlets to do the same work, write some scripts, and schedule them to run during an organised maintenance window. System Center Configuration Manager (ConfigMgr or SCCM) ConfigMgr has the ability to deploy software to managed machines on a scheduled basis, enable System Center Operations Manager (OpsMgr or SCOM) maintenance mode, track progress with reports, and minimise human effort. Many make the mistake of seeing it as a PC-only management solution, and thats their loss. Using ConfigMgr to do a scheduled automatic deployment of the integration components to virtual machines could be the cleanest and easiest one to use in medium to large environments. System Center Essentials (SCE) SCE is a part of the Microsoft System Center systems management portfolio for small/medium enterprises (SMEs). It has the ability to install software from a central point on a scheduled basis. It actually leverages Windows Update to install software, rather than by using a more powerful agent like that in ConfigMgr. This might be a nice way to install the integration components to all of your virtual machines in an SME. Sneaker.Net You could always log into each and every virtual machine using the Hyper-V console, run the task to upgrade the integration components, and reboot the virtual machine. That might be OK for a few virtual machines, but I want to be nowhere nearby if there are more than that. WSUS and the System Center Updates Publisher (SCUP) This one isnt supported, apparently, but it would be fine for a lab environment. That lack of support does make me wonder about using SCE to deploy integration components. You can use SCUP to inject an installed into WSUS. This would make the integration components available for approval and distribution by a WSUS server as a Windows update. Its a pretty nice solution for your lab.

Supported Guest Operating Systems


You cannot use Dynamic Memory with all Hyper-V supported guest operating systems. For example, at the moment, the supported Linux guest operating systems do not have support for Dynamic Memory. The following are the guest operating systems that you can use Dynamic Memory with:

Copyright Aidan Finn 2011

http://www.aidanfinn.com

26

Windows Vista SP1 Enterprise & Ultimate (32-bit and 64-bit) Windows 7 Enterprise & Ultimate (32-bit and 64-bit) Windows Server 2003 SP2 Web, Standard, Enterprise & Datacenter (32-bit and 64-bit) Windows Server 2003 R2 SP 2 Web, Standard, Enterprise & Datacenter (32-bit and 64-bit) Windows Server 2008 SP2 Web*, Standard*, Enterprise & Datacenter (32-bit and 64-bit) Windows Server 2008 R2 Web, Standard, Enterprise & Datacenter (64-bit)

Note that Windows Server 2008 SP2 Web and Standard editions will require an additional update (KB2230887).

Configuring Dynamic Memory in the Hyper-V Manager


There are two groups of settings you will need to know about to manage Dynamic Memory. Host Settings I mentioned that the setting to manage NUMA spanning for Hyper-V was configured on a per-host basis. In the Hyper-V Manager, you can open the Hyper-V Settings for a host to enable (default setting) or to disable NUMA spanning.

NUMA Spanning settings for a Hyper-V Host. Virtual Machine Settings On to the virtual machines! This is where you can enable and configure Dynamic Memory for each virtual machine once the prerequisites have been deployed. By default, a virtual machine will be configured with Static memory. That will mean that the virtual machine will behave as if it was pre-SP1; Dynamic Memory will be disabled and the virtual machine

Copyright Aidan Finn 2011

http://www.aidanfinn.com

27

will attempt to consume all of its allocated memory when it starts up. If the memory isnt available then the virtual machine will not start up. The Dynamic Memory settings will be greyed out until you select the Dynamic option. Now you can configure Startup RAM, Maximum RAM, Memory Buffer, and Memory Weight. The latter one is interesting. Memory Weight is presented as a rather simple Low-to-High slide control. Under the covers, it reconfigures the weight from 0 to 10,000. Itll come in handy to understand this if you will be using SCVMM 2008 R2 SP1 to manage your hosts and virtual machines.

Configuring Dynamic Memory in Hyper-V Manager.

Configuring Dynamic Memory in SCVMM 2008 R2 SP1


SCVMM 2008 R2 is the tool that allows you to manage many Hyper-V hosts from a central console, with a reusable repository of resources, such as VHDs and Templates. Using these resources, you (or delegated self-service users) can deploy virtual machines from those templates with fully functional and configured guest operating systems. The new virtual machines will inherit the configurations of those templates or hardware profiles (and can be customized at the time of deployment). SCVMM 2008 R2 has no concept of Dynamic Memory. You will need to upgrade SCVMM 2008 R2 to Service Pack 1. Now heres the nasty bit. The service pack isnt really a service pack. It is a whole new version of SCVMM 2008 R2 with Service Pack 1. When you go to download it, you must be careful that you get the right one; youd hate to find out that youve gone and upgraded your production SCVMM server to a 365 day hard time limited demo license. The download locations are:

Copyright Aidan Finn 2011

http://www.aidanfinn.com

28

365 Day Evaluation: http://www.microsoft.com/downloads/details.aspx?FamilyID=9189bbce-d970-4c6c-9dd39e65798ecd70 MSDN: http://msdn.microsoft.com/subscriptions/downloads/default.aspx Fully licensed version: http://www.microsoft.com/licensing/

Youll have to follow these steps to do to upgrade SCVMM 2008 R2 to Service Pack 1: Backup the VMM database Run the upgrade wizard on the VMM server Upgrade any self-service portals (uninstall and reinstall) and administrator consoles (uninstall and reinstall) Refresh hosts/libraries in the administrator console Hosts will show Needs Attention - upgrade the agents using VMM admin console actions pane.

If you have System Center Operations Manager 2007 installed and integrated with SCVMM via Performance and Resource Optimization (PRO) then you will also need to upgrade that. Microsoft has published the instructions for the PRO upgrade at http://technet.microsoft.com/library/gg318083.aspx. Dynamic Memory impacts VM intelligent placement as follows: A host will have a zero rating (blocking the migration) if the VM has dynamic memory and the host does not. If a running VM is allocated with X MB of RAM then the destination host must have at least X MB free. If a stopped VM is migrated then the destination host must have at least the startup amount of RAM of the VM. If a VM is in a saved state then the startup/last allocated amount of RAM is used to figure out if the destination host has enough RAM.

Get all that done and youre ready to rock with managing Dynamic Memory with SCVMM 2008 R2 SP1. Here you will find some renaming has been done: Startup RAM = Startup Memory Maximum RAM = Maximum Memory

Copyright Aidan Finn 2011

http://www.aidanfinn.com

29

Configuring Dynamic Memory in SCVMM. You may have noticed that Memory Priority is missing from the Memory section of the Virtual Machine Properties dialog in SCVMM. You can find this setting in the Priority section of the same dialog box. This setting is presented very differently in VMM than how its presented in the Hyper-V Manager. There are four settings to control the Memory Priority of a virtual machine in SCVMM: High: a high priority Normal: the default medium setting Low: a low priority Custom: a setting that varies the memory priority from 0 to 10000.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

30

Configuring Memory Priority in SCVMM. Now you know three pieces of valuable information: 1. How Dynamic Memory works 2. The prerequisites for Dynamic Memory 3. How to configure Dynamic Memory Memory is a key factor in the performance of machines and applications. Youll need to understand how to monitor and troubleshoot Dynamic Memory.

Monitoring and Troubleshooting


As with any configurable resource that affects performance, you need to know how to monitor your changes and how to troubleshoot issues. Monitoring Dynamic Memory Remember that you cannot tell how much memory is assigned to a virtual machine by using the tools within the guest operating system of that virtual machine. Those tools will ever only show you the largest amount of memory that has been assigned to the virtual machine since the guest operating system last started. You need to use tools on the parent partition of the host to get a true picture of what is happening.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

31

You can observe the operations of Dynamic Memory using the Hyper-V Manager. Here there are three new columns that show you whats going on with the memory of a virtual machine: Assigned Memory: shows how much physical memory is being used by the virtual machine. Memory Demand: shows how much memory the virtual machine really needs. This is equal to the amount of committed memory in the guest operating system. Memory Status: this indicates how much of the buffer is free.

Memory Status can have one of three values: OK: there is enough free space to provide the full buffer Low: Hyper-V believes that the virtual machine should have a larger buffer than is currently assigned Warning: There isnt enough physical memory on the host to supply the buffer

Dynamic Memory in action in the Hyper-V Manager. There will come a time when you need to delve under the covers to get at more detailed performance information for Dynamic Memory. There are two groups of metrics that you can find in Performance Monitor on the parent partition. Hyper-V Dynamic Memory Balancer gives you a collection of metrics from the hosts perspective. These include: Added Memory: how much memory has been added to virtual machines Available Memory: how much memory is available on the host to add to virtual machines Average Pressure: the average memory pressure for all virtual machines across the host

Copyright Aidan Finn 2011

http://www.aidanfinn.com

32

Monitoring Dynamic Memory for the host. You can see the virtual machines view of Dynamic Memory using the Hyper-V Dynamic Memory VM metrics. These include: Added Memory: how much memory has been added to this virtual machine Current Pressure: the current amount of memory pressure in this virtual machine

Monitoring Dynamic Memory for the virtual machine. Troubleshooting Dynamic Memory Here are some suggestions to deal with a few scenarios: Virtual Machine Performance Issues Because of Memory Starvation If a virtual machine is not able to get additional memory, you can manually configure its paging file to be bigger. This will improve the performance of the virtual machine.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

33

Poor Storage I/O Performance The memory buffer that you assign to a virtual machine is not used for committed memory (services and applications). The buffer is typically used for file caching which will boost the performance of storage I/O. You can increase the size of the buffer for the affected virtual machine to increase this performance. Note that this will increase the amount of physical memory that is taken from the hosts pool. Services Cannot Start or Applications Cant Install This sounds like the virtual machine has a Startup RAM setting that is too small. Youll need to check the requirements for your software and increase the value of this configuration for the virtual machine.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

34

General Recommendations
There are a number of things to consider when enabling Dynamic Memory. The number one rule is, do not assume anything. Do your research before you do enable Dynamic Memory on a virtual machine and understand how it will impact your sizing and workloads.

Cluster Failover
A virtual machine will fail to start up on a destination host after it fails over if there is not enough memory on that host after a failover.

Storage Sizing
Storage is the key to the success of any virtualisation project, and this applies to Dynamic Memory too. Host Storage Sizing Hyper-V can save the state of a running virtual machine. This is like laptop hibernation but it isnt. The virtual machine pretty much freezes and writes the contents of its memory to a file. By default you can find this file in the virtual machines storage location. Hyper-V always guarantees that there will be sufficient disk space for this file by placing a .BIN file on the disk when the virtual machine starts up. This file is the same size as the memory of the virtual machine. And theres the catch! A virtual machine with dynamic memory will most likely increase the amount of memory that it consumes. As a result, Hyper-V will also grow the .BIN file to match the size of assigned memory. You need to consider this when sizing your storage for virtual machines. Now this would be simple if all the virtual machines on your host resided on a single disk, or if all the virtual machines in a Hyper-V cluster resided on a single cluster shared volume (CSV). Thats not all that likely, but its a nice starting point. Earlier I stated that a host could only run a certain amount of virtual machine memory. Hyper-V cannot over commit memory so we always know how much memory would be assigned to virtual machines. Using that, we can tell how much space would be consumed by the .BIN files of all of those virtual machines. Lets assume that a host has 192 GB of memory. Maybe 3 GB of that is used by the parent partitions. That leaves us with 189 GB of memory that can be used by virtual machines on that host. No matter how this is divided up by virtual machines, there will never be a need for more than 189 GB of BIN files for all of those virtual machines. This does not take into account that some virtual machines will be put into a saved state, while others may take their place as running virtual machines. This means that you could have 189 GB of running virtual machines requiring 189 GB of .BIN files. You could also have another 48 GB of virtual machines that have stored their saved states to disk. This trick also does not take into account that you rarely put that many virtual machines onto a single disk. Some planning is required. The following table shows a possible way to size a disk in these types of scenarios:

Copyright Aidan Finn 2011

http://www.aidanfinn.com

35

VM Name VM1 VM2 VM3

Maximum Memory Size Disk Size 8 200 16 500 8 300 Maximum Disk Required

Total 208 516 308 1032 GB

Paging File The good news is that you have no concerns about paging at the host level for virtual machines. Microsoft understands better than anybody that this is a pretty pointless thing to do. Even if your host has 1 TB RAM, theres really not much point to having a paging file more than 4 GB in size for the parent partition, unless Microsoft Support asks you to do a pretty big crash dump (which requires a pretty monstrous upload). The paging file size is managed by the operating system by default. A guest operating system in a Dynamic Memory enabled virtual machine will want to auto grow the paging file. Think of a virtual machine with large amounts of memory. A 40 GB VHD wont last too long, so consider than when sizing the C: drive VHD in those situations. There is a recommendation that if you notice paging file performance issues with a Dynamic Memory enabled virtual machine then you should manually configure the size of the paging file to be larger. This may help during times of memory contention for lower priority virtual machines that are starved of resources. Application Caching Dont get too clever. Some might want to alter how applications (that run in virtual machines) do their internal caching, just because of the presence of Dynamic Memory. Dont do it! Dynamic Memory wont know the best way to cache application data. Configure applications (or not) as you would if there was no such thing as Dynamic Memory.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

36

Virtual Workload Configuration Recommendations


Here are the recommendations from Microsoft for using Dynamic Memory with a few common workloads that you will encounter in virtual machines.

Windows 7/Vista VDI


Youll absolutely want to configure Dynamic Memory if you are deploying a VDI solution on Hyper-V. I have not seen any guidance but here is my thinking on the scenario. Windows 7 can boot up with 512 MB RAM but you wont do too much with it. 1 GB of RAM will get Outlook up and running at a very basic level. A typical business machine will require up to 4 GB of memory. So maybe youll set up the virtual machines as follows: Startup RAM: 1024 MB Maximum RAM: 4096 MB Memory Buffer: 20% Memory Weight: Default

You might find that there are certain people, such as the CEO, MD, or the CIO, who should have a higher weight setting so they are more important when they have memory pressure in a contention scenario. You might do the same for others who are in a customer facing role. They key to success in VDI is a pilot deployment. That will help you size and configure correctly.

SQL Server
The good news is that all versions of SQL Server do support for Dynamic Memory. The bad news is that only the following versions and editions can actually make use of the additional RAM that is added to a virtual machine by Dynamic Memory: SQL Server 2005 Enterprise SQL Server 2008 Enterprise / Datacenter Editions SQL Server 2008 R2 Enterprise / Datacenter Editions

Other SQL Server editions such as Standard and Express will only use whatever memory is available when they start up. Unfortunately those two are the most common editions of SQL Server. Microsoft is planning on adding support to more editions of SQL in the next version of the product. Here is the advice for configuring a SQL Server virtual machine with Dynamic Memory: Startup RAM: 1 GB plus whatever your SQL application requires to function at a basic level, allowing for times of contention. Maximum RAM: set this to whatever you require, considering the maximum supported by SQL Server. Memory Buffer: SQL Server does its own caching. The buffer is wasted on SQL Server virtual machines so set this to the lowest setting (5%).

Copyright Aidan Finn 2011

http://www.aidanfinn.com

37

Memory Weight: set this according to the relative importance of the SQL Server. Theres a good chance that it will be higher than default.

Exchange Server 2007/2010


The mailbox role should not be installed on a Dynamic Memory enabled virtual machine. It will grab memory when it starts up and never look for more. That means that any dynamically added memory would be wasted. As for the other roles, The Exchange product group dont recommend it, but dont say it is not supported.

Small Business Server (SBS) 2008/2011


Sorry folks; SBS does not support Dynamic Memory.

Lync 2010
The Lync product group has not tested against Dynamic Memory at this point. That doesnt mean that they dont support Dynamic Memory, but if there is a problem, you can bet that support will jump all over it, telling you to disable the settings.

CRM Dynamics 2011


There is no reference to Dynamic Memory in the virtualisation guidance for this product. If you do decide to use it then see the guidance for SQL Server.

SharePoint 2010
Again, there is no mention of Dynamic Memory. If you do decide to use Dynamic Memory for SharePoint virtual machines then check the guidance for SQL Server. In my own testing, I have found SharePoint 2010 virtual machines with Dynamic Memory tend to jump to over 6 GB of RAM very quickly, even with the lightest of loads.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

38

About The Author


Aidan Finn, MVP, has been working in IT since 1996, focusing on server/desktop management and virtualisation, including Hyper-V and System Center. He has worked as an administrator, contractor, and consultant with the likes of Amdahl/DMR, Barclays, Aer Lingus, and DVG. Aidan is the Technical Sales Lead at MicroWarehouse, a value added distributor based in Dublin, Ireland, where he works with customers to help them sell and deploy Microsoft technologies such as virtualisation, System Center and Forefront. Aidan blogs on http://www.aidanfinn.com and is one of the people behind the Windows User Group in Ireland. Aidan was a Microsoft Most Valuable Professional (MVP) on System Center Configuration Manager in 2008 and was switched the Virtual Machine expertise in 2009. Aidan has worked closely with Microsoft, including online interviews, launch events, and road shows. When Aidan isnt at work, or at home in Ireland, hes out and about with camera in hand trying to be a photographer. Aidan is the lead author of Mastering Hyper-V Deployment (Sybex, 2010). He is one of the contributing authors of Mastering Windows Server 2008 R2 (Sybex, 2009) and of Mastering Windows 7 Deployment (Sybex, 2011) . Aidan is on Twitter as @joe_elway.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

39

This could be where your company promotes its products

My last whitepaper, How to Build a Hyper-V Cluster Using the Microsoft iSCSI Software Target v3.3 had 516 downloads on its first day (April 13th, 2011), and 4,229 downloads up to 16th June, 2011.

Contact me via my blog at http://www.aidanfinn.com for more information.

Copyright Aidan Finn 2011

http://www.aidanfinn.com

40

Potrebbero piacerti anche