Does my processor support Hyper-V : Coreinfo

Hi all,

Last June, i have been on a customer site to deliver a Windows Server 2012 RDS VDI PoC platform. They were not prepared so they give me two very old servers (and i mean it). No matter, it’s a PoC. I told them to install Windows Server 2012 on these servers and to enable Hyper-V. After one day, they report me that they were unable to enable hyper-V due to a missing virtualization feature. mmmm, i checked the processor technical specifications, but i was unable to find details. I rebooted the server to check the BIOS, i didn’t find any window where i can enable or disable the Hardware-assisted virtualization feature. (The processor must meet the following requirements)

I took a moment of reflection : The processor does not support it or the BIOS needs update !!

I have no time for BIOS update (even if i have time, updating a 8 year old server BIOS is a nightmare), so i rapidly decide to check if the processor supports or not virtualization. I downloaded the Coreinfo tool made and tailored by the Mark Russinovich Windows ninja.

You need to just run the tool from a command line.

  • The following is what i got when running the tool:

SNAG-0001

The legend is : ( * =  present,    –  =  not present)

You can see that the VMX feature is not present, VMX means “Supports Intel hardware-assisted virtualizaion”. Since my processor was an Intel one, i affirmed directly that this server is unfortunately useless in our case 😦

IMPORTANT NOTE : Hyper-V must be not enabled when making this verification, for a consistent result the Hypervisor should not be present. A (   ) must follow the HYPERVISOR feature

  • The following is the result of running Coreinfo in a Hyper-V production server. The tool indicates that the VMX feature is not present because the hypervisor is present

SNAG-0003

  • The same case is when running the tool in a virtual machine : In the case of a Hyper-V virtual machine, the VMX feature is not inherited to the virtual processor of the VM, so the VMX feature is not present for a VM processor. But, we can’t say that the tool result is valid because the tool indicates that the Hypervisor is present. Results are not consistent.

SNAG-0003

  • Finally, this is the result for a valid processor and result that supports virtualization

SNAG-0004

Don’t forget that Hyper-V (2008 R2 and 2012) needs in addition of the Virtualization feature, the Hardware-enforced Data Execution Prevention (DEP) feature. In the Intel case, it’s called NX bit. (NX in CoreInfo)

Note : For Hyper-V to run on a Windows 8 Pro or Enterprise machine, the processor must support SLAT feature. You can easily tape Coreinfo -v to display virtualization related features.

SNAG-0005

Important : If you have virtual machines domain controllers on your Windows Server 2012 Hyper-V servers, install this update

Hi all,

Consider the following scenario:

– You have a Windows Server 2012 Hyper-V platform

– You  virtualized windows server 2012 domain controllers : You have Windows Server 2012 domain controllers as virtual machines on this platform

– The host that holds the DC VM crashes (Power Outage) or an unplanned restart occurs.

– You start the hyper-V host and start the VM, or the VM is started in another Hyper-V host (cluster case)

– The DC VM may not start and the DC database may be  corrupted

FIX

Install the kb2853952 part of the July 2013 Windows Server 2012 roll-up update kb2855336

More

More explanation here

Windows Failover Cluster : What is it ?

Before anyone proceed with creating a Failover Cluster, configuring network storage, configurations and these “technical” and “nice” manipulations, it’s a must to understand what is a failover cluster, how it stands and what is it’s logic. I’m sure that after reading this post, you will all say (for whom that didn’t know) : waw, it’s a nice and  simple idea !! Keep in mind that understanding how a cluster works will make understanding all the configuration stuff so easy.

1- What is a cluster

A cluster in a windows vision, is  a bunch of resources that works together to finally give a highly available resource. As an example, a Hyper-V cluster is a group of Hyper-V servers (Hosts) that works together to give highly available virtual machines. A SQL Server failover cluster is a group of SQL Servers that works together to give highly available SQL Server instances.

So, the aim of the cluster is to bring a resource (or more) to a highly available state. Highly available state doesn’t mean, always available,  but means the cluster will do its best to make it always available (don’t be mad when a VM come offline or fail to be brought online, no Coperfield over there).

2- How does the cluster works : Magic or logic

This is the most important part because if we understand how it works, we understand how to build, how to maintain and how to troubleshoot. My explanations will not be deeply technical (no protocols, no ports, no packets…) but more logical. Believe me, technically understanding how the cluster works will need more than a  blog post 🙂

The ultimate example is the Hyper-V failover cluster. i will explain piece by piece what we have and what we got.

  • I have a single Hyper-V server with two virtual machines on it

ExplainResources

– For the physical server : The vital components for the system (OS) to run are: RAM, CPU, HardDisk and Network. we can see in the picture the presence of these components :  RAM ,   CPU,   Local Storage,   NIC

– Now, the virtual machine is like a physical one. It’s an Operating System that needs to run, and to run it needs the vital components : RAM, CPU, HardDisk and Network. For that, the VM will allocate (borrow) some resources from the physical resources : It will borrow some piece of RAM, some capacity from the CPU, some storage from the local storage and will use the physical NIC to access network. This will be the same for each virtual machine that will run.

——–> For the virtual machine to run it needs: RAM, CPU, VHD (virtual Hard Disk stored on the local storage as a vhd file) and access to the network.

———> If the physical RAM fails (hardware issue for ex), the virtual machine will fail (dependency). If the local storage fails, the VHD will be lost and the virtual machine will fail (no disk). So, if a dependent physical resource fails, the virtual machine fails

——–>If Hyper-V fails (service, bug) or the OS fails (bug, crash…) the VM will fail (Hyper-V is VM’s engine)

The lesson is : If you want to make your resource highly available, make sure all its vital components are made highly available

So in our case, the Hyper-V cluster will try to make the vital components highly available (RAM, CPU, Disk (data), network), let’s imagine such scenario.

ExplainHA

In the previous picture, we have added a second Hyper-V server (also called node or host) exactly like the first node. we attached a remote storage (SAN like Storage Area Network) to both nodes and we shared the storage so both nodes can access (read/write) it in the same time. The VM storage is now on this shared storage (VM storage = VM Configuration file + VHDs + other files that we will discuss later in this blog serie), the VM configuration file contains information about the VM configuration on the Hyper-V level (Name, Memory, CPU count, VHDs locations…) and VHDs are the Virtual Hard Disks that contain the OS and the Data.

The verdict 🙂

Imagine that our VM is running on the first node : Memory content is on the first node RAM, CPU instructions are ran on the first node CPU, network traffic is passed via the first node NIC and the VM storage is located on the shared storage.

What happens if the first node fails!!!

The VM will crash : No memory, no CPU, no network. It’s like we have a physical server and we unplugged the power-supply cable. In the case of the physical server, what can we rapidly do : We will bring a new server with the same configuration, we will un-mount the disk from the faulty server and replace it on the new server, the we will start the server 🙂

The same logic will be done with the VM, but this time the cluster mechanism will do it automatically:

1- It will detect that the host has failed, or the VM has failed, or any resource marked as highly available has failed, in our case the  host.

2- it will load the VM configuration from the VM configuration file located on the shared storage (yes, this why we need a shared storage), then register the VM in the second server.

3- it will start the VM and the VM is now up and running. (this step is done for all the HA virtual machines)

The result is depicted in the following picture:

ExplainHA 2

Easy!!

Yes, it is. The cluster concept is simple, the difficulty is to build an efficient, strong and stable system that can do it.

The Windows Failover Cluster is a concept that exists on Windows Server since Windows Server 2003. This concept has evolved continuously to reach today an excellent level with Windows Server 2012.

The same concept can be applied to SQL Server and any role that support clustering. Just don’t forget the concept

Windows Failover Cluster : The series

Hi All,

I’m starting this series to talk about the Windows Failover cluster feature and components. My aim is to explain many WFC (Windows Failover Cluster) ‘things” that any Infra consultant or IT should and must know if he wants to well handle a Windows Failover Cluster platform.

During this series, i will not explain part by part how to setup a Windows Failover Cluster (there’s many step by step blogs and articles on the community), i will go beyond, i will explain  how to think and how to proceed when you plan to build a windows Fail overCluster platform.

The WFC famous platform that i will always refer to is the Hyper-V cluster (SQL is famous too 🙂 ), and the release is certainly the famous Windows Server 2012.

As mentioned before, if you have questions, just ask them!

I’m back

Hi all,

I’m sorry for being quite for a  while (2 months !!!). I was far from my desk, my servers and my LAB. I was busy in implementing a nice private cloud platform for a foreign customer. Never mind, i will try to fill the spaces i left. And before i forget, for all my visitors and followers, if you have questions, just shoot !!