VIRTUALBOY BLOG
As readers of this blog will be well aware, one of the key additions to Hyper-V R2, was Live Migration. Prior to R2, Hyper-V had a capability known as Quick Migration, which enabled a virtual machine (VM) to be migrated from one physical host to another, but included a pausing of the VM as it was moved. VMware, who’d had Live Migration, known as VMotion, for some time before this, inevitably picked up on this, and thus branded Hyper-V insufficient for an Enterprise’s needs. Still, 100+ case studies later, Hyper-V R1 has established a solid foundation, with a low TCO, ready for R2 to take over the baton.
Now R2 is here, and features like Live Migration, Hot-Add of storage, Cluster Shared Volumes, Redirected I/O, and more, are all baked into the product for free, the direction of the argument has changed. No longer is it about ‘We have Live Migration and you don’t’ – it’s all changed to a ‘We have a lower cost-per-application than you’. An application being a VM in this case. There’s a prime example of this argument being presented by VMware, in this video, aptly titled, “VMware slams Microsoft”. I’ll let you make your mind up on that one.
What’s interesting is, that neither VMware’s, nor Microsoft’s pricing models really reflect a cost-per-app comparison, yet the cost-per-app calculator is being used to prove that VMware vSphere does in fact have a lower cost-per-app than a Hyper-V & System Center combination.
In this post, we’re going to investigate how much of this is actually true…<disclaimer>I work for Microsoft, but that doesn’t mean that I don’t appreciate VMware technologies. My role is to ensure Microsoft Partners can build successful virtualisation practices around Microsoft virtualisation, and articulate the key values of our virtualisation technologies, so they, the Partner, can provide the right solution for their customers. This isn’t about slating any of their technologies, as they are the market leader, and in many ways, have defined where virtualisation has got to today. I am a VCP (not vSphere :-( ). This post is purely concerned with addressing the cost-per-application calculations.</disclaimer>
So, here we go…
Firstly, where can you find the cost-per-app calculator? Here: http://www.vmware.com/technology/whyvmware/calculator/
Let’s plug in some values:
OK, so that’s the values plugged in, what pops out the other side?
“The unique features and architectural design of VMware vSphere 4 allow you to run many more applications per server (higher VM density) at an acceptable level of performance than other virtualization solutions. In our own testing and from reviews of our customers, we have seen VMware vSphere 4 users commonly achieve 50-70% higher VM density per host than with Microsoft Hyper-V, resulting in a 20-30% lower cost per-application. Based on your inputs, the cost-per-application to virtualize 100 applications using VMware vSphere 4 Enterprise Plus Edition is $2,299 -- 3% lower* than with Microsoft Hyper-V R2 and System Center.”
“The unique features and architectural design of VMware vSphere 4 allow you to run many more applications per server (higher VM density) at an acceptable level of performance than other virtualization solutions. In our own testing and from reviews of our customers, we have seen VMware vSphere 4 users commonly achieve 50-70% higher VM density per host than with Microsoft Hyper-V, resulting in a 20-30% lower cost per-application.
Based on your inputs, the cost-per-application to virtualize 100 applications using VMware vSphere 4 Enterprise Plus Edition is $2,299 -- 3% lower* than with Microsoft Hyper-V R2 and System Center.”
Let’s just dissect what that is saying for a moment there. So, vSphere can provide higher levels of density, through the use, predominantly, of Memory Oversubscription/Overcommit (a feature Hyper-V, even in R2, doesn’t have). Based on this, you’d run more VMs per host, thus you’d need less hosts. We’ll investigate this more later. However, look at the last line of the first paragraph. “…resulting in a 20-30% lower cost-per-application. This is actually in line with what was said in the video I mentioned, and linked to, earlier. Also, what’s an acceptable level of performance? Hmmm!
However, the very next line, based on my inputs, suggests that the saving is actually 3% lower, (as opposed to 20-30%), and notice the little * after “3% lower”? This is to indicate, and I quote, “Assumes that a VMware ESX server can run 50% more applications than a Microsoft Windows Server 2008 (Hyper-V) host”. Firstly, where’s R2 gone from the comparison, and secondly, its an assumption that everyone uses Memory Oversubscription, to that level, and thus makes those gains.
What is Memory Oversubscription?
I’m not going to take anything away from VMware here. What ESX can do with memory management is very impressive indeed. There’s a great whitepaper that’s just been made available to download discussing the main techniques ESX uses to manage memory, with little impact to performance in most cases. In a nutshell, Memory Oversubscription is made up of three key mechanisms, Transparent Page Sharing, Ballooning, and Hypervisor Swapping, with the latter being the least desirable, as it can have a considerable performance impact. For the purpose of this discussion, Memory Oversubscription is a mechanism where, if a VM isn’t using all of it’s allocated RAM, say, it’s using 800MB of it’s 2GB allocation, that remaining 1GB ish, can be returned to, almost like a pool of spare RAM, which can then be used by other VMs. This can, as the information above states, allow more VMs to run on a host, providing they don’t all need their full allocation of RAM at once. To simplify, if you had 16GB RAM, you could, potentially, get 16 x 2GB RAM VMs running on that host, with little performance impact, providing that the total working set of memory in the VMs is less than the 16GB RAM. TPS would obviously help here. However, if all of those 16 VMs starting to go mad with a craving for RAM, and they all needed their 2GB, you could find yourself in a situation where you are hypervisor swapping, which isn’t, and VMware would accept this, the best place to be. For more info on Memory Oversubscription, there is a great explanation here.
Do I wish Hyper-V had some of these memory management techniques? Sure! If only to give people the opportunity to evaluate, and test it, and see if it is the right fit to use in their environment. Plus, I could get more VMs on my Shuttle PC :-)
To contrast this, Hyper-V’s approach to memory, at a high level, is more simple and straightforward, in the sense that if you create a VM with 2GB RAM, it consumes 2GB RAM from the physical host, and this doesn’t change, whether the guest OS is using 10% or 90% of it’s 2GB allocation. In some ways, this is preferable, as you always know what your VMs have got in terms of RAM, and even if they use their full 100%, you know you’re not going to get into a position of hypervisor swapping, so it won’t impact performance of other VMs, however, on the flip side of that, your limits are a lot more hardcoded. You won’t be able to start that 16th VM, should you already be at capacity with 15 of your 1GB VMs on a 16GB host, even though each of those 15 VMs aren’t using their full 1GB allocation. So, in summary, it’s swings and roundabouts when it comes to memory management. There was a post a while back on one of the VMware blogs, which, I accept, was based on VI3, not vSphere, but still highlighted that only 57% of 110 customers surveyed, used memory oversubscription techniques, and 87% of that 57% used it in production, so not everyone is using it, but still, I’d rather have it in my kitbag, than not, but that’s just me.
For the purpose of this cost-per-app discussion however, we’re not going to talk about how many people do, or don’t use it – we’re going to focus on what the cost-per-app calculator states, and that is that you will ‘always’ achieve a 1.5:1 higher ratio (50%) of VMs to host on ESX4, than you will on Hyper-V R2.
Back to the Report…
The very next item in the report, is a graph, which you can view for yourself when you enter your figures, however what I find funny is the heading for the graph: “VMware vSphere 4 can deliver a much lower cost per application than Microsoft's virtualization offerings” I’ve bolded out much lower there, but reality is, in the very next table:
Let’s take a look at this for a second. I’ve highlighted that versus Enterprise Plus, the actual savings in terms of cost-per-app is only 3%. Bit different than 20-30%, but hey, it’s still a saving, right? Let’s look at the numbers a bit deeper though. Why do we need 105 VMs, and they need 102? Well, we said we’d be virtualising 100 VMs, plus the Management technologies and associated database server. So, with that in mind, we’d need a SQL Box, (as would they), and VMs for System Center Virtual Machine Manager 2008 R2, Operations Manager 2007 R2, Configuration Manager 2007 R2, and Data Protection Manager R2. Fair enough, I'll give them that. 105 to 102 isn’t the end of the world anyway. However, where it starts to get interesting is the fact that due, predominantly, to the fact that memory oversubscription is being used, we can only get 12 VMs on a 32GB host, as oppose to 18 (50% higher) on the vSphere side. This means that we would in fact need 9 hosts, instead of 6, and thus every cost that’s associated with a host, which we’ll discuss in a minute, get’s added on 3 times too. We now have 3 more hosts’ worth of infrastructure costs, 3 more hosts’ worth of software costs (Windows licenses, Management licenses etc), thus our total costs are higher, thus our cost-per-app is higher, by 3%. Its important to note that no further information about the ‘VM’ is provided, in terms of CPU, I/O, RAM and so on, so, we’ll just have to work with what we’ve got, apples for apples.
Let’s just take a step back for a minute. If you had done an accurate capacity plan, and decided to buy some new servers to host these VMs, how many Partners are realistically going to think ‘right, on VMware we’ll need 6 x 32GB RAM Servers, and on MS we’ll need 9 x 32GB Servers, so I’ll go and buy 9 x 32GB RAM Servers’. Why would you not just double the RAM, and potentially, half the number of servers you’d need on the Hyper-V side? Simplistically, if 32GB hosts 12 VMs, would 64GB not host 24? 105 / 24 = 4.375 hosts, which, at a push could be 4 hosts, but, we’ll say 5 for headroom. 4 less hosts than before reduces our figures around infrastructure costs quite considerably, along with reduced software costs, and thus, a lower cost-per-app.
The (very) simplistic way to look at this is, whilst vSphere Cost > RAM Cost (and you’ve got room in the server to increase the RAM), cost-per-app will be less on a Hyper-V platform.
You could say, well, what if they are older machines, that don’t have so many RAM slots – if we max out the box in terms of RAM, vSphere is going to have a higher density than Hyper-V. There is only one answer to that, and it is yes, that’s true. However, a large proportion of customers, when they embrace virtualisation, are pretty much coming from a very physical environment, and want to invest in newer, more powerful and scalable hardware to run these virtual infrastructures. Working with a Partner, to accurately capacity plan their estate, and thus translating this into the levels of kit they need can be a straightforward exercise, yet choosing the kit to map to this will need to factor in budget, but also things like slots for RAM. a 32 RAM-Slot server is cheaper to upgrade to 128GB RAM than a 16 RAM-slot server, based on the fact you can buy 32 x 4GB DIMMs cheaper than 16 x 8GB DIMMs, but the 8GB DIMMs will decrease in cost as we move forward. These are just a few of the important considerations to make, but still, if you had an older server, with 16 slots for RAM (fairly common) which were all filled with 1GB DIMMs – you could take those out, and replace them with 4GB DIMMs, to get to 64GB RAM, for a few thousand dollars, giving that server a new lease of life, and at the same time, maximising your investment in kit. This obviously assumes that the piece of kit is supported, but also has enough I/O capacity, and CPU grunt, to handle VMs!
As always, I digress! Point is, if memory oversubscription is a blocker to Hyper-V, for a much lower cost than vSphere, you could increase the RAM significantly, as we’ll explore in more detail now.
Breaking down the Infrastructure Costs.
Firstly, what makes up the infrastructure costs? Well, if you scroll to the bottom of your results page, and expand Appendix A and B, you’ll find all the info there, but let’s take a deeper look. Infrastructure costs are made up of Servers/Hardware, but also Power/Cooling etc. I’m going to put a bit more of a real-life spin on this, but at the same time, I’m going to use a number of VMware’s Calculator Information for Power/Cooling and Datacenter Costs etc. Bear with me on this one, it will make sense!
Hardware
For this discussion, I’m going to head on over to http://www.Dell.com. The reason I chose Dell.com, is, because, like the VMware cost-per-app calculator, you can head on over there, for yourself, and try it out. The use of Dell hardware has nothing to do with it’s performance, scalability, or cost. It’s purely down to being able to quickly customise a server, and get a price for doing so!
Based on VMware’s Server Profile Assumptions, our chosen server will be:
FYI – based on the rule of thumb for Hyper-V R2, of 1 physical core to 8 vCPUs, we would support 96 VMs with 1 vCPU on a Dual Six-Core Server, or 48 2-vCPU VMs.
Total Server Cost: $3,664
What about Storage? Well, this is the same for both parties, so we’re not going to go into the nitty-gritty about this. If you look at Appendix A on the cost-per-app calculator, on both sides of the fence, the total comes in at $30,000, and takes into account the number of GB we’d need, and an assumed cost of $3 per GB.
Total Storage Cost: $30,000
What about Networking? Well, we’ll stick with the VMware pricing of $4,000 per network switch, and a network switch has 24 ports.
Total Networking Cost: $4,000 per switch
What about Power & Cooling costs? Well, actual operating power is 424 Watts Per Server, according to the calculator, and 530 Watts per Server for cooling, but to keep things simple, I’m going to use the figure of $833 per server in terms of power/cooling costs per year. This is based on the power/cooling costs of VMware’s 6 hosts, coming in at $5000. $5000 / 6 = $833 per host.
Total Power/Cooling Cost: $833 per Host
What about Datacenter space? Well, these are identical for both parties, as they assume that all servers (2U) will fit in a single rack (24U), and that the datacenter space consumed by 1 rack is 7 square feet, which equates to a cost of $2710 for Datacenter space costs.
Total Datacenter Space Cost: $2710
So, what are the scores (George Dawes)?
Well, using our real-life hardware (and admittedly, this wouldn’t be real-life for all organisations, but hey ho):
As you can see, the infrastructure costs, based on 9 Hyper-V R2 Hosts vs. 6 ESX Hosts, aren’t quite as large as they were in the VMware table shown earlier, yet this is a real example, taken with live server information. Inevitably, because Hyper-V needs more hosts, we consume more power, we need more networking switches (5 switches at $4000 each, as oppose to 3 on the VMware side), and, inevitably, we need more software licenses, for things like Windows Server Datacenter edition. You’ll notice on there that our SQL costs are different too. I’ve chosen to use the Per Processor version of SQL, with 1 CPU’s worth of SQL 2008 Standard Edition retailing at $8998 including SA. This means we don’t need to worry about CALs for all devices that will be indirectly accessing the SQL box, plus, it means we can use it for more stuff in the infrastructure too. If we put that SQL Server inside a VM, and provide it with 1 vCPU, and assuming just SCOM, SCCM, SCDPM and SCVMM are using instances within that database, I believe this would be adequate, however, if we take the VMware side, if SQL is being used for anything else in that environment apart from vCenter, they too will have to think about licensing it differently, but for now, I’ll take the hit on the Microsoft side, and leave VMware with just the Standard Edition Server/CAL version of SQL 2008.
The results however, show a pretty much identical cost per application (for those who want to check, it’s the Total Costs / 100 (as this is how many workloads we wanted to virtualise, management workloads aside for both parties).
Let’s take a step back now, and think back to what I wrote earlier:
“If you had done an accurate capacity plan, and decided to buy some new servers to host these VMs, how many Partners are realistically going to think ‘right, on VMware we’ll need 6 x 32GB RAM Servers, and on MS we’ll need 9 x 32GB Servers, so I’ll go and buy 9 x 32GB RAM Servers’. Why would you not just double the RAM, and potentially, half the number of servers you’d need on the Hyper-V side? Simplistically, if 32GB hosts 12 VMs, would 64GB not host 24? 105 / 24 = 4.375 hosts, which, at a push could be 4 hosts, but, we’ll say 5 for headroom. 4 less hosts than before reduces our figures around infrastructure costs quite considerably, along with reduced software costs, and thus, a lower cost-per-app.”
Lets perform the same comparison, but this time, we’ll pay to double the RAM for the Hyper-V hosts, to offset the value that memory oversubscription provides. This time, the same server will be stacked with 64GB (16x4GB), 800MHz, Dual Ranked RAM. Let’s look at the difference in cost:
WOW. $889 per server to double the RAM to 64GB. Yes, the leap to 128GB on this server is an extra $9590 per server, but that’s because we’d need to use the 8GB DIMMs, as I explained earlier. That is where you’d perhaps think about moving from a 2U to a 4U, with 32 DIMM slots, to enable reaching 128GB for much less than $9590 more.
Anyway, what does this do to our calculations? Assuming we go down to 5 Hyper-V hosts (I’m sure we could do 4, but hey, we’ll stick with 5 for this discussion):
As you can see, things have changed quite considerably. By doubling the RAM on the Hyper-V side, for an extra $889 per host, we’ve actually been able to reduce our number of hosts to 5 (this could have been 4), which has resulted in less hardware, networking switches, power, cooling, and software licenses.
Those eagle-eyed among you are bound to say, well why wouldn’t I just buy 64GB RAM for my VMware vSphere hosts, and reduce my hosts down still further? To that I say, absolutely! You could in fact do that, and we’d be back to the start again, where we’d have 5 nodes, vSphere would be running on, say, 3 nodes (assuming around a 36:1 consolidation ratio), and the table would look something like this:
You can see that this time vSphere provides an 8% cost-per-app advantage over a Hyper-V and System Center combination, yet if we take the 43% of customers who don’t use memory oversubscription, from the survey earlier, those customers are actually 23% worse off. Looking at the first vSphere Enterprise Plus column, you can see now that the hosts are running at 36:1. Not every customer is going to be comfortable with running at 36:1, whether it is supported or not. One of Microsoft’s biggest public case studies is Kroll Factual Data, and they are running at around 30:1, with no memory oversubscription, on Hyper-V R1, and it’s enabled them to reduce their servers from 650+ to 22, cutting their power bill by 90%. Most customers and partners that I speak to, typically go in around the 10-15:1, maybe a little higher on occasion. Plus, at 36:1, what this example doesn’t take into account is the level of I/O that will be going on at this stage, and also the CPU utilisation. To feel comfortable, you may choose to move to a 4-way Server, with 4 x Quad Core processors, to give you that additional scalability, but remember, as soon as you add more processors, you’ll need to double your vSphere license costs, and also your System Center Suite costs on the Microsoft side. I hope you appreciate, that at this stage, there is a lot of “if’s, but’s and maybe’s”.
We could keep going round in circles, adding RAM to one, working out the figures, then repeating for the other. The whole point I’m trying to make around this cost-per-app calculator, is it’s not as black and white as it first appears. When you start to delve into the numbers, it's clear to see that if you’re clever with your hardware selections, and your calculations are accurate for your environment, based on strong capacity planning information, with Hyper-V and System Center, you can save a considerable amount of money.
Assume an organisation has already got Windows licenses that they can transfer into the environment, and what are you left with? vSphere & vCenter costs, vs. Hyper-V and System Center costs, which, as you’ll see from the final column in the table, vSphere license costs for a 5-node environment come in at $61,302, whereas Hyper-V and System Center come in at $19,043, and that’s with the more expensive SQL, which may also be needed on the VMware side. Clear saving of 2/3rds of the cost. That’s upfront costs, in the customer’s pocket, plus, with it being under an agreement, chances are it will be paid off over the 2 years, rather than upfront, which means you’ll get the returns, before you’ve fully paid for the software!
“But you’re getting so much more functionality with vSphere”
Judging by this table, yes!!
So, thankfully, we’re given the benefit of the doubt when it comes to ‘Single Server Provisioning’, i.e. you can run virtual machines, but straight away, we lose a tick for High VM Density. This is subjective. For me, 24:1, or even 30:1 as Kroll Factual Data deployed, is a High VM Density, so, if you’re going to use generalist terms, then as long as the hypervisor can support large numbers of VMs (regardless of how much you upgrade the RAM), then I can have a tick in that box. If on the other hand, you use a more technical way of describing the option, i.e. ‘Has Memory Oversubscription’, of which not everyone will understand, then yes, I accept that there shouldn’t be a tick there.
On to Clustered File System. Hmm. Does it matter that we don’t have a ‘clustered file system’, when in fact, we have a non-proprietary Cluster Shared Volume system, which actually out scales VMFS-3 from 2TB, up to 256TB, and has load-balanced MPIO, for FC and iSCSI, built in, for free. Just have a read about what Jason Perlow of ZDNet thinks of VMFS-3…
Ultra-thin Hypervisor? I’ll let you read Jeff Woolsey’s posts on the Hypervisor Footprint Debate:
- Part 1 - Part 1 Update - Part 2 - Part 3
Both systems provide the capability for automated failover, with VMware HA on the VMware side, and Failover Clustering on the Microsoft side, so that’s a tick in the box for both there, yet we lose a tick for online/offline VM patching. I assume by patching, they are referring to Update Manager. Well, with System Center Configuration Manager 2007 R2, we have one of the most scalable, mature patch/update/app/OS deployment tools on the market, that can also be used to deploy patches/updates/apps/OSs out to the physical desktop estate too, which is something that Update Manager can’t address. It’ll also help you manage licenses through the Asset Intelligence feature, and deploy desired baselines out to OS’s, physical or virtual. It also integrates with App-V, and Intel vPro, to name but a few. These are just a few of the many features that make SCCM much more than just a ‘patching tool’. To handle offline patching, we have a free bolt on tool for SCCM/SCVMM, called the Offline Virtual Machine Servicing Tool, so we deserve a tick there.
No integrated disk backup? How about Data Protection Manager 2007, which we’ve paid for as part of our suite? This will back up not only the VM (like Data Recovery on the VMware side), but also the key workloads inside the VM, like SharePoint, Exchange, SQL, Windows, File Servers, System State etc (unlike Data Recovery). The stuff that matters. It also has a single instance storage capability, which can help save on storage space. It can backup to tape, which Data Recovery can’t, plus it can protect into the cloud. We’ll have a tick for that, thanks very much.
Storage Thin Provisioning – do you mean dynamic disks, that have been in Hyper-V, and even in Virtual Server, for years? Well, that’s in Hyper-V, and guess what, if you’ve got System Center Operations Manager, you can monitor it! Alert on it! Create custom actions on it! Tick, thank you!
Hot Add is an interesting one, with both parties providing the capability to hot-add/remove storage, however when you start to look at the capability of hot-adding / removing CPU’s and memory, I’d strongly recommend you give Jason’s blog post a read…I agree wholeheartedly with Jason’s comment (in the comments section) “I think it’s going to be quite a while before change management is ready for hot add CPU or memory”.
On to Live Migration, of which we can perform 1 LM, between 2 nodes, at once. Does this mean that VMware can perform 2 simultaneous Live Migrations at the same time, quicker than we can do 2 separate ones? I doubt it, but does it matter? Live Migration gives the IT Admin more flexibility than they’ve ever had before, and the fact that whether the LM takes 1 minute, or 30 seconds, the OS/User is unaware this is happening to the VM which makes this point much less relevant. The fact that we include it, for free, opens this feature up to organisations of all shapes and sizes.
Fault Tolerance – this is an interesting one. We don’t have an answer to this right now, but we’re partnering with Marathon to provide one. I’d strongly suggest you have a look here. The list of caveats for this feature alone is, well, long. Some of my favourites include no DRS for those protected VMs, 1 vCPU for protected VMs, no Thin Provisioning, no Storage VMotion, No ballooning…
Firewall Virtual Appliance – nope, not a direct apples for apples comparison from MS on that one, although I’m sure some clever chap could come up with some kind of ISA-like appliance to do a similar job, but time will tell on that one.
Storage Live Migration – SCVMM 2008 R2 provides a very similar capability, albeit pausing the VM whilst the migration is taking place. A handy feature, but not used as much as regular Live Migration. Half a tick for us on that one I guess.
Dynamic Resource Scheduling – I think you’ll find that SCVMM & SCOM combined provide you with Performance & Resource Optimisation, a.k.a. PRO. Not as easy to set up as DRS, but a great deal more extensible, through the authoring of PRO-enabled Management Packs. Tick in the box there, thanks.
Power Management – I was with a VMware Partner the other day, who, in front of an audience, said “We’ve not actually seen anyone deploy DPM' – having their servers shut-off scares them!”. Windows Server 2008 R2 in general has a much better grasp on Power than previous versions, and consumption is thus reduced, however if you wanted to achieve a like for like powering down of servers, with SCOM, and a bit of scripting, I’m sure it’s something that could be achieved.
Host Profiles – I still can’t get over the fact that Host Profiles is an Enterprise+ feature only. In a nutshell, Host profiles streamlines the configuration of new ESX hosts, and makes it easier for administrators to check for compliance. It won’t actually deploy ESX onto the bare metal for you, you’ll still have to do that manually, yet once deployed, you can quickly make the ESX hosts the same. Compare that with SCCM however, where you can define a gold task sequence, deploy the OS out to blank hardware, with zero-touch from the end user, then once it’s booted, continue to update this host centrally, from the same place, with desired configuration baselines. Combine this with Group Policy, and you’ve got an incredibly centralised, scalable deployment and management mechanism.
Distributed Network Switch – This is a pretty powerful capability, that brings a much greater granularity around networking, and specifically allows 3rd party integration from vendors like Cisco, with their Nexus 1000V. At this time, I’ll be honest, Microsoft doesn’t have an apples-for-apples comparison with this capability. Sure Hyper-V networking supports vLANs, Jumbo Frames, TOE VMq and more, but if you need the Cisco integration, you’ll have to go for Enterprise+, then add on the Nexus 1000v too.
So what would my version of events look like?
Slightly different, yet you see that VMware’s vSphere starts to fall down where management is concerned. I don’t mean management of the black box that is the VM – vCenter is a prime example of a well executed technology that does exactly what it says on the tin, however, customers need more than this. It’s great to virtualise workloads like Exchange, or SQL, but without a monitoring technology, monitoring at the workload level, how does anyone know what’s going on, and how can they show this back to the business? Also, the whole VMware management ethos, is to manage virtual machines, but what about the stuff that isn’t virtual? Do you need a separate set of tools to manage these too? Do I go and invest in a Symantec for backup, and deploy Altiris for for my patch/update deployment, and use OpenManage to monitor my physical servers? All these extras add up to what System Center is providing out of the box. VMware are very strong in the virtualisation space, with mature, and performant technologies, but they know all too well that once virtualised, there is more to an estate, and customers are now looking to optimise their infrastructure, with OS Change Management, centralised deployment methodologies, patch control and more, and this is what System Center has been doing for a long time, and with a strong hypervisor offering to boot, Microsoft is in a strong position to offer maximum value and big ROI to customers. It’s not about being cheaper than VMware – it’s about offering the right level of value, to maximise current and future investments in technology.
Summary
Blimey this was a long post. If you’ve followed it to the end, well done. If you haven’t, you won’t know I’m writing this! I guess what I tried to demonstrate in this post, is you shouldn’t always believe what you read on either VMware’s, or Microsoft’s website. We’re both guilty of the ‘marketing’ stuff, yet when you sit down, with a Partner, and thrash through all this stuff, it starts to become clear, and that's what I hope I’ve provided here today. Anyone who knows me, knows I’m passionate about what I do, and wear my heart on my sleeve when it comes to our technologies. I’m the first to admit when I think someone has something better than we do – I think I demonstrated that earlier when talking about Memory Oversubscription. I’m a fan of the technologies on both sides of the virtualisation fence, but do I think virtualisation is where the battle will be won? No. Will it be won on the management front? Yes. That’s the angle Microsoft is coming from. That’s what I’m talking to Partners about every day of the week. If you’re a Microsoft Partner, and you can deploy a System Center project, encompassing all 4 of those technologies, not only are you heavily optimising a customers’ infrastructure, but the number of consultancy days will be significantly more than they would have been for a ‘virtualisation project’, yet at the same time, the overall cost to the customer (licensing + consultancy) in most cases, will be less than just the vSphere licensing. Partner wins with services revenue (big margins), and customer wins with a trusted advisor (Mr Partner) and an optimised, well managed, “physical, virtual, desktop to datacenter” estate.
All that’s left to say is, thanks for reading, feedback welcome, and have a great weekend!
Hyper-V is a very cool technology. It's also a very complex technology, with a lot going on under the covers. When I deliver sessions on Hyper-V, and I talk about the architecture, it's a difficult concept to discuss quickly, hence, hopefully, this post will go some of the way to trying to explain the Hyper-V architecture in an easy to remember, and digest, way!
So, let's start with the Microkernalised approach to virtualisation. The diagram on the left shows the Hyper-V hypervisor. What is the hypervisor? Well, its a layer of code that runs natively on the hardware - it's the lowest thing on your system, and it's responsible for owning the hardware, and doing hardware and resource partitioning. The main difference between this and a monolithic hypervisor such as VMware's ESX, is the location of the drivers and location of some core operating system components. As you can see, in Hyper-V, the drivers exist in the actual partitions themselves, rather than actually in the hypervisor. This means that we can massively reduce the size of the hypervisor. In fact, Hyper-V's hypervisor is around 600kb in size. That is a small bit of code. Interestingly enough, this is a small bit of Microsoft code.
That's right. It's 100% Microsoft - there's no 3rd Party code gone into this platform. There are no operating systems components in the hypervisor. It's just a thin slither of reliable, and secure code. Now, certain people in the industry have questioned Microsoft's driver model, based on previous experiences with Windows drivers, and the fact that anyone could pretty much knock up a driver and it would be 'accepted' by Windows. I'd have to disagree with x64 drivers and Windows Server 2008. Microsoft have worked incredibly hard to provide mechanisms and structured programs for device manufacturers to produce top quality drivers, and sure, some will slip through the net, but as the mechanism evolves, this will be reduced and reduced. When it comes to x64 drivers, they all have to be signed, which means they have to go through even more testing to ensure they are of a good quality, and we've made loads of guidelines available for driver-writers (if that's what they are called!) here: http://www.microsoft.com/whdc/driver/64bitguide.mspx so it's not like they have to find their own way around the topic. Anyway, I digress.
You may or may not have had the chance to read a whitepaper about 'Blue Pill' which is a hypervisor rootkit security whitepaper. It's naming is in reference to the Matrix, where in the movie, if you take the blue pill, you exist in the computerised world, and continue to be controlled by the computer and you have no idea you are being controlled...The concept here is, if someone was to take control of your hypervisor, with it being the lowest element on your system, the elements above the hypervisor would not know they were being controlled, and would find it very difficult to detect. With this in mind, keeping core operating systems bits out of the hypervisor, and keeping it trim, clean and secure, also brings a strong level of reliability.
So, that's enough about the hypervisor as such, but lets look at the rest of the architecture:
So, when it comes to the hardware, it needs to be hardware with Intel-VT or AMD-V hardware assisted virtualisation technology, it needs to be x64 (not Itanium), you also need to enable the 'No Execute Bit' in the BIOS too. This is used to create a more secure environment. The diagram above is an installation before enabling Hyper-V. What you see on the left hand side of the diagram could be a full GUI version of Windows Server 2008, or it could be a Server Core installation. Advantages of Server Core include smaller footprint, lower attack surface, and reduced patching to name but a few. When we enable Hyper-V:
The hypervisor now slides under the OS, and this now becomes the lowest part of your system. Remember, it's a very thin, secure hypervisor. It's like a thin layer of veneer on the hardware. Enabling Hyper-V also brings the bits in the purple boxes:
The VM Worker Processes are individual processes spawned for each virtual machine, and are designed to handle things like emulation...
As you can see, I've added 2 virtual machines (child partitions) here to explain VM Worker Processes a little further. You can see that the 2nd VM is a non-hypervisor aware OS, which means that the hardware it sees, needs to be emulated. This is the old IO model, used in Virtual Server and Virtual PC. Why is emulation good? It's good because it emulates known hardware. Known hardware such as 440BX Chipset Motherboard, a DEC Ethernet Controller card, and more. These examples are pieces of hardware that are very standard in the industry, and nearly every operating system under the sun understands. Microsoft or otherwise! Downfall of emulation is the cost in terms of an IO perspective. If there is an app running in the emulated VM, say, Excel, and it's wanted to save a 100kb file down to the hard drive. What happens is, is that Excel tries to write down into Kernal mode - it's not aware that's its running on a hypervisor and thinks it has direct access to the hardware. So, what we have to do, is do a trap to grab that request, bring it over to the Parent partition, into Kernel Mode, up into User Mode, into the VM Worker Processes, and that's where the emulation happens. Now, to give a crude estimate, but for a 100kb write, it takes about 80 traverses from the User Mode on the Child Partition, down into Kernel Mode, up into Kernel Mode on the Parent, and up into User Mode and the VM Worker Processes, and back again to make that 100kb write. So, inevitably, there's a performance hit with this type of virtualisation, but, on the flip side, you have a broad range of operating system support, such as below:
If you now look at the other Child Partition, (in this case, with Windows Server 2003 / 2008 listed as the OS), this VM is not using emulation. It's using the VSP, VSC and VMBus architecture. This is the Virtual Service Provider, Virtual Service Clients, and they communicate over the high speed 'In Memory Bus'; VMBus, that we've created. It's 100% in memory, and not physically tangible in any way. It's been designed for IO traffic. So, effectively, the VM is writing directly to a driver (which is a VSC), and this information transfers directly to the VSP over VMBus (jumps back and forth a few times), and then onto the hardware below.
So, to expand on the VSP/VSC relationship, as you can see, we have the Parent partition on the left, and the hypervisor aware Child Partition on the right, split into User (top) and Kernel (bottom) modes. The Orange/Yellowy colour you can see, are all Hyper-V related bits. So, on the right hand side, the application tries to do a write, via the Windows File System, Volume, Partition and on to the Disk. If you're using emulation, you'd keep going down, across and up to the VM Worker Processes (not using VMBus) and it would go back and forth, back and forth, before it makes it's way to the StorPort MiniPort driver, and down to the hardware.
Now, with VSP/VSC, you work your way down, and it hits the VSC, goes across the VMBus to the VSP, still in Kernel mode here - there has been no need to go into User mode to handle this. Every time you go between User/Kernel mode, you take a performance hit, and because you are going back and forth, quite a few times in emulation, you take quite a few performance hits. This doesn't happen in the VSP/VSC world. Once the data is over at the VSP, it writes directly to disk, and then down to the hardware. Very fast and very performant. So, you get a very performant guest operating system, providing it knows it's running on the hypervisor. This reduces down the number of operating system choices by quite a way - right now, Windows Server 2008 and 2003 (with SP2), XP SP3 and Vista SP1 too.
What we're also hearing from customers is that you'd like a single platform to virtualise not only Microsoft OS's, but also Linux OS's, and that's where the partnerships with companies like Citrix, and Novell come in.
So, as you can see, we have 3rd type of Child Partition, namely, the Xen-Enabled Linux VM. This could be Novell SUSE SLES 10 SP1 as an example. So, this VM is running the Linux Kernel, and we've worked closely with the relevant organisations' to write the relevant VSC's and Hypercall Adaptors, that ensure that calls for hardware made by Xen-Enabled Linux VMs are handled in the most optimal way, rather than pushing them down the emulation route, as described earlier. This means certain Xen-Enabled Linux VMs really will be first class citizens on the Hyper-V platform. I'm sure, as time goes by, you'll find even more OS's come along with the ability to take advantage of the VSP/VSC architecture, as it really is the way to go :-)
That's about it - hopefully that's helped you understand the architecture, I know it's helped me by getting it off my chest!
For those of you who haven't heard of ReadyBoost, where have you been? Only kidding, it's not the most common term, so I'll explain. Essentially, without going too deep and technical, ReadyBoost is a technology in Windows Vista that boosts the performance of your system using inexpensive flash memory. Yes, the flash memory found in USB Keys, SD cards and so on. So, if you've bought a USB key in the last couple of months, or even earlier, it's definitely worth testing it in Vista to see if it is ready for ReadyBoost, as your system will benefit from that little extra oomph under the hood. You will see the biggest difference in performance if you have less physical memory to start with, say, 512mb for example, and you buy, for around $20 (or £10 here in the UK), a 2GB USB key, and use ReadyBoost. If you already have 2GB physical RAM, and you utilise the 2GB USB key for ReadyBoost, you will see some benefit, but not as much as the other scenario.
Anyway, the point of the post - I'm using ReadyBoost, but how can I actually measure what is going on? Well, today is your lucky day...
The various counters that you selected will now be seen in the Performance Monitor. As time goes on you will see the activity occurring in real time for each of these counters. Descriptions of the counters can be found below:
The total amount of uncompressed data currently stored in the cache. If there is data being stored then you know ReadyBoost is being used by Vista.
Cache reads/sec
The number of times Vista reads from the cache per second. If you see a lot of cache reads per second then you know Vista ReadyBoost is working. If this occurs often when using your computer it is advised you invest in more physical memory to further increase performance.
Compression ratio
The actual size of the data in the cache divided by the uncompressed size of the data in the cache.(actual size of the data in the cache) / (uncompressed size of the data in the cache)
Hit read bytes/sec
The number of bytes read from the cache per second. This is a further indication that the ReadyBoost cache is being used by Vista. If a lot of bytes are being read per second you also know that you need more physical memory to truly increase your performance.
Invalidated update buffer blocks/sec
The number of blocks in update buffers invalidated per second.
Invalidated update buffer bytes/sec
The number of bytes invalidated in update buffers per second.
No-regions reschedules/sec
Writes rescheduled due to the lack of regions per second.
No-update-buffers reschedules/sec
Writes rescheduled due to the lack of update buffers per second.
Read-Size-Max IOs bailed/sec
The number of I/Os not serviced by the cache because the size is bigger than the maximum read size per second.
Sequential IOs bailed/sec
The number of I/Os not serviced by the cache due to sequentiality per second.
Total read bytes/sec
The number of bytes read from the volume per second.
Total write bytes/sec
The number of bytes written to the volume per second.
Updated buffer read bytes/sec
The number of read bytes services from the update buffers per second.
There's a lot of great readiness and information on the Windows Server 2008 Learning Portal, however if you want specifics on how to go from an MCSE or MCSA up to a MCTS ((Microsoft Certified Technology Specialist, which replaces MCSA/MCTS) on Windows Server 2008, you need these links:
The key exam that MCSA's need to go to the new MCTS in Windows Server 2008 is 70-648 and the MCSE's need exam number 70-649.
*** Both of these exams will be available from the 29th October 2007 ***
When you pass 70-648, you'll get the following:
and when you pass 70-649, you'll get:
Not bad for 1 exam! Good Luck!
These 2 exams form part of this new wave of Microsoft Certifications. You can read all about these here.
I couldn't resist :-)
Thanks to Tony for sending this through. In Tony's own words "These are the first of several cookbooks to help SI partner consultants get up to speed to deploy virtualisation solutions in record time. These are step-by-step, one-stop documents with all the details, tips/tricks to build a working solution". To me, this already sounds great, but what are the documents specifically about?
Hosted Backup and Recovery Solutions for Service Providers using DPM and VS
This cookbook will provide procedural, step-by-step guidance to an IT Generalist audience providing data backup and recovery to customers as a hosted solution using Virtual Server and System Center Data Protection Manager v2.
Simple Offsite Backup and Recovery of virtual machines using Data Protection Manager and Virtual Server
This cookbook will provide procedural, step-by-step guidance to an IT Generalist audience for backing up and restoring virtual machines running in an offsite location using Virtual Server and System Center Data Protection Manager v2.
Simple Onsite Backup and Recovery of virtual machines using Data Protection Manager and Virtual Server
This cookbook will provide procedural, step-by-step guidance to an IT Generalist audience for backing up and restoring running virtual machines using Virtual Server and System Center Data Protection Manager v2.
High Availability with Virtual Server and Windows Server 2003 R2 Enterprise Server Clustering
This cookbook will provide procedural, step-by-step guidance to an IT Generalist audience for implementing high availability of server workloads using Windows Server 2003 Server Clustering and Virtual Server using Intel-based hardware.
Application Isolation and Operation in Branch Office Using Virtual Server
This cookbook will provide procedural, step-by-step guidance to an IT Generalist audience for isolating and operating applications on separate virtual machines in branch offices using Microsoft Virtual Server 2005 R2 SP1, in an Intel-based hardware environment for regulatory compliance and improved legacy workload performance.
What's nice for me to see is, that we've worked closely with Intel to produce these documents, and Intel are firmly behind Virtual Server as a technology. So much so, that they too will be promoting these cookbooks on their website. You're also getting an early look at these documents - they won't go live on Microsoft.com for another 1-3 weeks, so why not feel like a VIP for a while, and download now :-)
These cookbooks are a great way to learn about a product - it's a shame we don't do this kind of thing for more of our products, but I guess it's pretty time consuming to write, create the demo's etc, but still, we can but hope. You can however, expect some more Virtual Server related cookbooks in the works, very soon, along with System Center and Terminal Services cookbooks respectively.
Another interesting note is that I've stored the documents online using Windows Live SkyDrive. This service gives you 500mb of online storage, and all you need to upload stuff is a Windows Live ID. Pure and Simple. You can create personal folders, folders that are just accessible to your Live ID friends, or, like I've done in this case, public folders, accessible to all. Cool hey?
Here at Microsoft, there are regular questions flying around about the settings needed to run Virtual Server on Vista. Many people think they have set it up correctly, only to be presented with problems such as not being able to load the admin page etc. Well, here is the definitive guide, and it comes in the form of an image, and textual information. A huge thanks to Jeff Woolsey for producing this information.
So, if you’re trying to run Virtual Server on Vista, you need to do two things.
Step 1 - Enable IIS and the correct settings. To do this, go to Control Panel and under the Programs category click on Windows Features to Turn Windows features on and off. Here you will see a long list of features that can be enabled/disabled in Vista. For this discussion were specifically interested in enabling features under Internet Information Services (IIS). I’ve typed out what needs to be enabled below and included a screenshot which you can maximise by clicking the image.
Step 2 - Run IE using elevated privileges. To do this, right click on IE and select Run as Administrator.
You must do both.
For those of you who don't want to look at the screenshot, here are the details:
IIS Features that need to be enabled for Virtual Server to function properly
1. Under Web Management Tools enable IIS Management Console.2. Under IIS 6 Management Compatibility enable IIS Metabase and IIS6 configuration compatibility.3. Under Application Development Features enable CGI.4. Under Common Http Features enable Default Document, Directory Browsing, HTTP Errors, Static Content5. Under Health and Diagnostics enable HTTP Logging, Request Monitor6. Under Performance Features enable Static Content Compression7. Under Security enable Windows Authentication
Patrick, from the MVUG Blog, pinged this through this morning, so I thought I’d share:
Microsoft is offering some free Hyper-V training. You will need to enter a specific access code 9350-Y2W6-3676 and sign in with your Live ID. The course “Collection 6319 - Configuring Hyper-V in Windows Server 2008” includes the following modules:
To sign up go to https://www.microsoftelearning.com/eLearning/enterCode.aspx
Does this scare you?
This, if you don’t know, is Hyper-V Server 2008 R2. No proper GUI, pretty-much command-line oriented, and without doubt, in my eyes, the optimal way to deploy Hyper-V into businesses of all sizes. Why this, over the GUI version of Windows Server 2008 R2 Hyper-V? Well, there’s less going on, reduced patches, reduced services, and it’s kind of like the Ronseal version of Hyper-V – it does exactly what it says on the tin (that’s more for the UK guys!) i.e. it’s Hyper-V, and Clustering, and no other roles. Sure it has the driver model, and the core kernel, but that’s pretty much it. It’s still manageable and deployable like your normal Windows OS’s, it’s just, well, smaller. Best of all, is it’s free for everyone and unlike others, we don’t skimp on the features of our free version. Live Migration, High Availability, Hot-Add and more, it’s all in there, for free.
Question is, how to you deploy it, configure it, and manage it, and how quick can you do it?
Answer – watch this video, and be up and running in about an hour!
In this one-off video, I walk through a bare-metal installation of Hyper-V Server 2008 R2 (RC) on 2 physical nodes, hook them up to an iSCSI SAN, configure the SAN storage, and then, from a Windows 7 (RC) laptop, validate, and build a Hyper-V Server 2008 R2 (RC) Cluster. The end result? A Highly Available, Live Migratable, Virtual Machine!
Duration: 48m 34s
Download the video, and more, from the VirtualboyTV site
I found this via Patrick Lownds’ MVUG blog – looks like a beauty! (The book, not Patrick ;-))
Understanding Microsoft Virtualization Solutions
The above eBook is available for free if you register at http://csna01.libredigital.com/?urmvs17u33. Be patient once you’ve clicked to download – it takes a few minutes to render in the browser.
Synopsys
This guide will teach you about the benefits of the latest virtualization technologies and how to plan, implement, and manage virtual infrastructure solutions. The technologies covered include: Windows Server 2008 Hyper-V, System Center Virtual Machine Manager 2009, Microsoft Application Virtualization 4.5, Microsoft Enterprise Desktop Virtualization, and Microsoft Virtual Desktop Infrastructure.
I’ve just had a quick skim read of the book, and it looks pretty comprehensive, and even covers aspects such as the Microsoft Enterprise Desktop Virtualisation, and VDI, which are both pretty new areas of technology to be covering, so definitely a worthwhile read from that perspective.
The book also gives focus to the importance of Core Infrastructure Optimisation, and how you can take an infrastructure from being a very reactive, fighting-fires, basic infrastructure, right up to a dynamic infrastructure, where IT is a business enabler, not a cost centre.
Definitely worth a read in my opinion.
See - your feedback does work!
Over the last few weeks, it's been flying round the web that we were going to include a default sound that would play when you boot up Windows. Many of you out there wanted at least an ability to turn it off if you wanted to. Well, it's in there. As Nick says over on the Windows Vista Team Blog, "your collective voice truly made a difference in this matter, as we've incorporated a way for users to turn off the start-up sound when it's more appropriate to boot silently - be it when you're mobile, at home or in the office".
Have a glance at the screenshot below - I kid you not! :-)