Enhanced (Failover) Placement of Virtual Machines on Windows 8 Hyper-V Cluster

One of the nice features in Windows 8 Hyper-V clustering are the “drain node” capability and the virtual machine priorities. You can see this in action in a video by Aidan Finn here.

image

For more details on draining a node see Draining Nodes for Planned Maintenance with Windows Server "8" for a detailed explanation.

Now another very important feature is the fact that the cluster is intelligent enough to determine what node is the best suited as a target during failover or live migration. Not only CPU and memory load of the hosts are taking into consideration but also the resource needs of the VM and the priority you have given those. This entire process is NUMA aware and as such with windows 8 can be evaluated on a per virtual machine basis. This means that you that the cluster will always try to get the best possible placement and thus performance for your virtual machines.

image

 

Now we also have affinity and anti affinity rules. Anti Affinity ensures that the nodes of a virtualized NLB farm will be placed on separate hosts to minimize risk. You don’t want one host to house all the nodes of you NLB farm!

On the other hand sometime you want virtual machines to stick together lets say you have an NLB farm but the virtual machines with the front end and middle tier need  to stay together. In that case you use affinity rules to achieve this. On top of this the anti affinity rules will ensure that the NLB farm virtual machines are on different nodes.

image

Do note that when the cluster has to choose to break these rules versus bot being able to run the virtual machines it will choose to keep them running. It knows its priorities! Now if in such a situation there are not enough resource the priority will also come into play and the low priority machine may be shut down to ensure the higher priority ones can be up and running.

As you can imagine there are potentially a lot of factors/permutations at play here and I’m looking into doing some more test of these features and the intelligence in the process to see if we make the same decisions and how to best configure this for maximal performance & availability.

Learning Resources for Windows 8 Clustering, WNLB & Hyper-V 3.0

I know a lot of you are, just like me, actively investigating Windows 8 & Hyper-V. You’re downloading the Beta, reading blog post, discussing scenarios and use cases and that’s great. You’re investing in a bright future Smile

Here are some blog post that contain gems of information and that I’d like to bring to your attention:

Enjoy!

No Hyper-V Module for Windows PowerShell After Upgrading to Windows Server 8?

When I upgraded some of my Hyper-V hosts from Windows 2008 R2 to Windows 8 I noticed I wanted to do some experiments using the Hyper-v Module for Windows PowerShell. So the first thing I did was install the Windows PowerShell integrated Scripting Environment (ISE) via the Add Roles and Features Wizard on my client. You don’t usually install this on your servers.

ISEPosh

 

We opted to restart automatically if required, so we get a warning this server might restart.

image

 

Windows PowerShell ISE is installing

installISE2

 

We are informed of our successful installation.installISE3

That was easy and no reboot required. So we launch ISE and start testing some commands of our new Hyper-V Module. But that doesn’t do much for us. Nothing happens.get-command 1

 

So I try some more commands. But no luck, just some errors that the commands are not recognized or Get-Help can’t find anything of that command.  I also not that for non of the Hyper-V commands I have any IntelliSense support.

Nope2 

No jio

So it seams the Hyper-V Module for Windows PowerShell is not installed. But I can’t make that out from the Roles Wizard.

I needed to get this going fast so I uninstalled the Hyper-V role and than added it again. That did the trick as now the Hyper-V Module for Windows PowerShell is also installed because I can execute commands

Success.

 

Just install the Hyper-V Module for Windows PowerShell via Features

But after discussing this with Microsoft it turns out that uninstalling and reinstalling the Hyper-V role is not necessary at all. You see when you upgrade a Window 2008 R2 node to Windows 8 it does not install Hyper-V by default as this would change the original install base and they try not to install features you didn’t have before during an upgrade. On a clean install where you add the Hyper-V role you won’t have this issue as the Hyper-V Module for Windows PowerShell is installed by default. What confused me is that I didn’t see an option under Roles to add Role Services to roles as I was used to do in Windows 2008 R2. There is no sub tree or anything.

Hyper-VRoleIInstalled

 

I was thinking along the same path in Windows 8 but here we can find it in the in “Add Roles and Features Wizard” under Features / Remote Server Administration Tools sub tree. That has two entries. One for Feature Administration Tools and one for Role Administration tools and und the latter we find the Hyper-V Management Tools with Hyper-V Module for Windows PowerShell. Just a tip Smile

You can add it your self after the upgrade by going to Server Manager and starting the Add Roles & Features Wizard.

image

You go through the normal steps and select to install Hyper-V Module for Windows PowerShell.

clip_image002

 

We are asked for confirmation of our request actions.

installit

 

The Hyper-V Module for Windows PowerShell is being installed.

installit2

 

And we have a successful install. We can start scripting on that node right way Smile

Installit3

Happy scripting!

The shortage of skilled employees, are we making it worse?

We still have a serious problem in ICT. Even in this second decade of the 21st century. While the entire industry has been buzzing with IT-Business alignment for many, many years now, I often notice that we have not gotten very far. For one the divide between business & IT is an artificial disconnect. This artifact does exist, but we’ve created it, and all we need to do is stop doing that. No one is giving this much attention to the struggling relations of business with the HRM or the finance departments.

In contradiction of what we might expect, while this artifact is detrimental to the success & profitability of IT, it is not taken seriously enough. Sure the business absolutely needs to define what they need. But in an ever more rapidly changing technology world they do not have the knowledge needed to do that. So we need bridge builders, people with the skills to translate technology used in IT into competitive solutions and highly efficient & profitable systems. It takes a special breed & some serious skills to act on opportunities and see them materialize with the help of IT solutions. It also takes a whole lot of common sense. The latter often seems to be lacking. Why does this happen?

This is not just about business and not just about technology. It’s something in between. As a result it’s often seen as not that critical and this leads to staffing these functions with the wrong skillsets. At best they are populated by people who want to get into the IT sector but don’t like technology that much. This is enforced by all those campaigns to make IT more sexy and attractive to the new generations who associate IT with nerds. It’s beyond me why we’d want to attract people who think so superficially but hey, that’s just me. But aren’t we building our own future nightmare this way? At worst it is used to get people in better pay grades. The functions might very well mandate better pay due to its complexity and the required skill set but this only holds true if you get the right people in those functions. Whatever the reason, this is a major pain point. Why?

The neglect of these bridging functions lets people without the necessary skillsets take responsibility for decisions they are incapable of making. Their knowledge of the technical matters is not up to that task and business wise they’re often in the same boat. So now we have a bunch of people who have way too little understanding of what IT and business is and what they themselves should achieve in that bridging role. Oh great, so fundamentally critical decisions are being made by the unqualified. People who lack skills, experience and context will fall back to methodologies & theories. They use them as cook books. Unfortunately reading and using a cookbook doesn’t make any one a chef. And these are the roles where we need chefs’ people. In reality there is a giant gap between reality and all the theories, methodologies & real or perceived knowledge on how IT can be better aligned with the business and be run more successfully and profitably.

I can only conclude that allowing this to happen means that the functions that are supposed to be bridge that cap is not taken seriously enough. For all the lip service to these efforts it cannot be for lack of acknowledgement of the pain points. But the solution often seems more of what doesn’t work, thereby eroding any credibility of the bridging functions. This is costing us dearly and it will only get worse if we don’t stop this madness. There is of cause the fact that projects become more and more expensive with all the * architects, * analysts & * officers. On top of that the complexity keeps rising and we don’t seem to be very good at managing that. Ask any engineer what the worst enemy in any project is and you’ll get uncontrolled and unmanageable complexity as an answer. But even worse, you are faced with the fact that best people in the business, bridge and technical positions eventually leave. Tired & worn out by the environment that doesn’t value them as they don’t understand their true contribution and skill set.

This means that even today IT retreats into its technical areas of expertise and the business doesn’t learn what IT is & can do. If we don’t get better at bridging that gap we are doomed to keep failing at ever higher costs and you’ll lose ever more valuable employees. The only difference will be we’ll have more parties than IT and business to point our fingers at as the ones to blame.