Zeros & Ones

The Magic Numbers

Windows Server 2008 Clusters and Premier Support

In Windows Server 2008 and Windows Server 2008 R2, the way that clusters are qualified for supportability is changing significantly with the introduction of the cluster validation wizard.

The cluster validation wizard is a feature that is integrated into failover clustering in Windows Server 2008 and Windows Server 2008 R2. With the cluster validation wizard, you can run a set of focused tests on a collection of servers that you intend to use as nodes in a cluster. This cluster validation process tests the underlying hardware and software directly, and individually, to obtain an accurate assessment of how well failover clustering can be supported on a given configuration.

 What defines a supported failover cluster configuration in Windows Server 2008?

For a failover cluster in Windows Server 2008 or Windows Server 2008 R2 to be considered an officially supported solution by Microsoft Customer Support Services (CSS), the solution must meet the following criteria.

 

  • The fully configured solution (servers, network, and storage) must pass all tests in the validation wizard, which is part of the failover cluster snap-in.
  • All hardware and software components must meet the qualifications for the appropriate logo. For Windows Server 2008, this is the “Certified for Windows Server 2008” logo. For Windows Server 2008 R2, this is the “Certified for Windows Server 2008 R2” logo. For more information about the Logo Programs, see the Microsoft Web site at:

http://go.microsoft.com/fwlink/?LinkId=111561

  As per kb943984, a Cluster Validation Report is required by customer support as a condition of support provision. This is a new condition on Windows Server 2008, where historically the Hardware Compatibility List (HCL) was the basis for supportability for Windows Server 2003 clusters.

July 7, 2009 Posted by Mohamed Fawzi | Windows 2008 R2 | , | 1 Comment

HP ML 370 G6, Network Problem with Hyper-V Guests

This is a new problem that  faced with HP Proliant ML 370 G6 . After Installing Windows 2008 SP2 and install Hyper-V finish all the configuration everything looks fine.

I start creating some Guest machines with Hyper-V console and joining the domain. We start see unexpected behavior like some missing PING packets and time out for DNS lookup. this looks strange as I tried a lot of HP servers and it worked fine. I made sure that HP Network Configuration is uninstalled but still facing the problem.

 I start suspecting the NIC as I saw problems like this due to NIC , After disabling IPv4 Checksum Offload J It worked fine.

 In most cases I can see that Guest machines are suffering in case of IPv4 Checksum Offload.

 Update:

While I was searching online I found the same problem there and he recommend to disable all those:

 IPv4 Checksum Offload

TCP Checksum Offload IPv4

UCP Checksum Offload IPv4

TCP Checksum Offload IPv6

UCP Checksum Offload IPv6

June 27, 2009 Posted by Mohamed Fawzi | Hyper-V, Virtualization | , , , , , | No Comments Yet

VMM Disaster recovery and High Availability

System Center virtual machine Manager become a very important part of the virtual environment.  Although that down time for this service is acceptable as it will not interrupt the current services or the running VMs. Maybe we will lose some functionality during any downtime like SSP or the integration with SCOM (PRO) but that maybe acceptable for some companies.

But considering the high availability in designing new VMM deployment will be a great thing. So to design VMM in highly available environment we must first think about VMM component:

  1. VMM Server
  2. VMM Database
  3. Library Servers
  4. Self Service Portal

VMM Server:

Clustering of the VMM application, which enables failover of VMM itself, has not been tested and is not supported. So basically there is not a direct high availability for the services .

The workaround for that as mentioned by Microsoft is to Run the VMM server inside a highly available virtual machine which is supported.

The only recommendation for this is not to do Quick migration for this HAVM using VMM as this may cause interruption for the service.

Another workaround is to use multiple VMM environment. This is a good solution to scale out your VMM deployment by adding more virtual machine hosts and library servers as your virtual environment grows. The whole idea behind this is not to keep all your eggs in one basket.

VMM Database:

VMM is using SQL as database to store all VMM configuration information, which you can access and modify by using the VMM Administrator Console.

The VMM database requires a supported version of Microsoft SQL Server. You can either specify a local or remote instance of an existing Microsoft SQL Server database or have the Setup Wizard install SQL Server 2005 Express Edition SP2 on the VMM server.

To make the VMM database highly available, you can deploy the SQL Server instance on a failover cluster created in either Windows Server 2008 or Windows Server 2003.

VMM library:

VMM 2008 supports using highly available file servers and shares hosted by a failover cluster created in Windows Server 2008 Enterprise Edition or Windows Server 2008 Datacenter Edition as highly available library servers and library shares. VMM 2008 is not aware of failover clusters created in Windows Server 2003.

Self Service Portal:

For Self-Service Portals  it is recommended that you maintain multiple portals on multiple Web servers. Virtual Machine Manager does not support Network Load Balancing (NLB) clusters in Windows Server 2008, which are required in order to distribute the network traffic among self-service users on multiple Web sites.

Disaster Recovery for VMM:

The Virtual Machine Manager (VMM) database is a SQL Server database that contains all VMM configuration information.

To backup VMM SQL database

http://technet.microsoft.com/en-us/library/cc956045.aspx

June 13, 2009 Posted by Mohamed Fawzi | SCVMM | , , , , , , | No Comments Yet

SCOM 2007 installation error “Invalid Management Group name”

Just a small tip.. I was trying to install SCOM 2007 SP1 for PRO integration. I used an old server which used to be SCOM server before we uninstall it.

When I tried to install System Center Operations Manager 2007 I saw the following error when I enter the management group name.

“Invalid Management Group name”

 This problem occurs when the Management Group name is:

 -Empty of Null

-Leading or Trailing spaces

 -Already exists on this computer

-Contains special characters.   The Management Group name should not contain following special characters:
^@)~(:!`#%\*+$|,&&=’["]/<.{;?>}

To continue setup, go back and change the Management Group name.

Actually the uninstall process was fine and did not reflect any errors in the system. I am not SCOM expert but from the error looks like the OS still keeping some information about the old SCOM servers in somewhere. I searched in the registry for the servers and I found some keys still not removed from the old installation.

To solve this problem Just delete the following registry path HKLM\Software\Microsoft\Microsoft Operations Manager

Double check if still there any files under your Program Files for the old installation.. if there remove it and restart the server.

June 5, 2009 Posted by Mohamed Fawzi | SCOM, Tips&Tricks | | 1 Comment

SQL Server Support Policy for Virtualization and Failover Clustering updated

Another great news from Microsoft, SQL Support policy is updated. SQL was supported on VM but now building SQL Failover Cluster on VMs is supported. Check this on CSS SQL Server Engineers

Support policy for Microsoft SQL Server products that are running in a hardware virtualization environment

One fairly controversial aspect to this policy was our support (actually non-support is a better word) for “guest” failover clustering. We didn’t support installing SQL Server failover clustering in a virtual machine. Well this policy is now changed effective immediately as updated in the article.

The article now contains the following new wording on this topic:

Guest Failover Clustering is supported for SQL Server 2005 and SQL Server 2008 in a virtual machine for Windows Server 2008 with Hyper-V, Microsoft Hyper-V Server 2008, and SVVP certified configurations provided both of the following requirements are met:
The Operating System running in the virtual machine (the “Guest Operating System”) is Windows Server 2008 or higher
The virtualization environment meets the requirements of Windows 2008 Failover Clustering as documented at The Microsoft Support Policy for Windows Server 2008 Failover Clusters.
Guest Failover Clustering is when you create a SQL Server failover cluster inside a virtual machine where the nodes are running as a virtual machine.

  • SQL Server 2005 and SQL Server 2008 are supported.
  • We only support Windows Server 2008 or higher as the operating system running inside the virtual machine (known as the “guest” operating system). Because of this requirement, SQL Server 2000 and earlier SQL Server releases are not supported.
  • The virtualization vendor must meet the requirements for failover clustering as documented in the following KB article: The Microsoft Support Policy for Windows Server 2008 Failover Clusters
  • Non-SVVP configurations that meet all of these requirements still can get some support from Microsoft per http://support.microsoft.com/kb/897615.
  • The article on Windows 2008 Failover Clustering has 2 requirements:

    • All hardware and software components must be meet “Certified for Windows Server 2008” logo requirements.
    • The configuration must pass the Validate test in the Failover Clusters Management snap-in. This is run inside the virtual machine.

    May 26, 2009 Posted by Mohamed Fawzi | Hyper-V, Virtualization, Windows Server 2008 | , , , | No Comments Yet

    Virtualization and Protection Rings (Welcome to Ring -1) Part II

    Hyper-V and Ring -1

    Under Hyper-V hypervisor virtualization a program known as a hypervisor runs directly on the hardware of the host system in ring 0. The task of this hypervisor is to handle tasks such CPU and memory resource allocation for the virtual machines in addition to providing interfaces for higher level administration and monitoring tools.

    Clearly, if the hypervisor is going to occupy ring 0 of the CPU, the kernels for any guest operating systems running on the system must run in less privileged CPU rings. Unfortunately, most operating system kernels are written explicitly to run in ring 0 for the simple reason that they need to perform tasks that are only available in that ring, such as the ability to execute privileged CPU instructions and directly manipulate memory. One solution to this problem is to modify the guest operating systems, replacing any privileged operations that will only run in ring 0 of the CPU with calls to the hypervisor (known as hypercalls). The hypervisor in turn performs the task on behalf of the guest system.

    Another solution is to leverage the hardware assisted virtualization features of the latest generation of processors from both Intel and AMD. These technologies, known as Intel VT and AMD-V respectively, provide extensions necessary to run unmodified guest virtual machines. In very simplistic terms these new processors provide an additional privilege mode (referred to as ring -1) above ring 0 in which the hypervisor can operate, essentially leaving ring 0 available for unmodified guest operating systems.

    Hypervisor (Hyper-V) Architecture

    the root partition contains the Virtualization Stack. This is a collection of components that provide a large amount of the Hyper-V functionality. The following diagram provides an abstract outline of the stack:

    The following table provides an overview of each of the virtual stack components:

    Component Description
    Virtual Machine Management Service (VMM Service) Manages the state of virtual machines running in the child partitions (active, offline, stopped etc) and controls the tasks that can be performed on a virtual machine based on current state (such as taking snapshots). Also manages the addition and removal of devices. When a virtual machine is started, the VMM Service is also responsible for creating a corresponding Virtual Machine Worker Process.
    Virtual Machine Worker Process Virtual Machine Worker Processes are started by the VMM Service when virtual machines are started. A Virtual Machine Worker Process (named vmwp.exe) is created for each Hyper-V virtual machine and is responsible for much of the management level interaction between the parent partition Windows Server 2008 system and the virtual machines in the child partitions. The duties of the Virtual Machine Worker Process include creating, configuring, running, pausing, resuming, saving, restoring and snapshotting the associated virtual machine. It also handles IRQs, memory and I/O port mapping through a Virtual Motherboard (VMB).
    Virtual Devices Virtual Devices are managed by the Virtual Motherboard (VMB). Virtual Motherboards are contained within the Virtual Machine Worker Processes, of which there is one for each virtual machine. Virtual Devices fall into two categories, Core VDevs and Plug-in VDevs. Core VDevs can either be Emulated Devices or Synthetic Devices.
    Virtual Infrastructure Driver Operates in kernel mode (i.e. in the privileged CPU ring) and provides partition, memory and processor management for the virtual machines running in the child partitions. The Virtual Infrastructure Driver (Vid.sys) also provides the conduit for the components higher up the Virtualization Stack to communicate with the hypervisor.
    Windows Hypervisor Interface Library A DLL (named WinHv.sys) located in the parent partition Windows Server 2008 instance and any guest operating systems which are Hyper-V aware (in other words modified specifically to operate in a Hyper-V child partition). Allows the operating system’s drivers to access the hypervisor using standard Windows API calls instead of hypercalls.
    VMBus Part of Hyper-V Integration Services, the VMBus facilitates highly optimized communication between child partitions and the parent partition.
    Virtualization Service Providers Resides in the parent partition and provides synthetic device support via the VMBus to Virtual Service Clients (VSCs) running in child partitions.
    Virtualization Service Clients Virtualization Service Clients are synthetic device instances that reside in child partitions. They communicate with the VSPs in the parent partition over the VMBus to fulfill the child partition’s device access requests.

    In addition to the components contained within the virtualization stack, the root partition also contains the following components:

    Component Description
    VMBus Part of Hyper-V Integration Services, the VMBus facilitates highly optimized communication between child partitions and the parent partition.
    Virtualization Service Providers Resides in the parent partition and provides synthetic device support via the VMBus to Virtual Service Clients (VSCs) running in child partitions.
    Virtualization Service Clients Virtualization Service Clients are synthetic device instances that reside in child partitions. They communicate with the VSPs in the parent partition over the VMBus to fulfill the child partition’s device access requests.

    Source

    http://www.virtuatopia.com/index.php/An_Overview_of_the_Hyper-V_Architecture

    May 24, 2009 Posted by Mohamed Fawzi | Hyper-V, Virtualization | , , , , , , | 1 Comment

    Virtualization and Protection Rings (Welcome to Ring -1) Part I

    What is protection Rings?!!!
    Protection Rings, are a mechanism to protect data and functionality from faults (fault tolerance) and malicious behavior (computer security). This approach is diametrically opposite to that of capability-based security.
    Computer operating systems provide different levels of access to resources.
    A protection ring is one of two or more hierarchical levels or layers of privilege within the architecture of a computer system. This is generally hardware-enforced by some CPU architectures that provide different CPU modes at the firmware level. Rings are arranged in a hierarchy from most privileged (most trusted, usually numbered zero) to least privileged (least trusted, usually with the highest ring number). On most operating systems, Ring 0 is the level with the most privileges and interacts most directly with the physical hardware such as the CPU and memory.
    Special gates between rings are provided to allow an outer ring to access an inner ring’s resources in a predefined manner, as opposed to allowing arbitrary usage. Correctly gating access between rings can improve security by preventing programs from one ring or privilege level from misusing resources intended for programs in another. For example, spyware running as a user program in Ring 3 should be prevented from turning on a web camera without informing the user, since hardware access should be a Ring 1 function reserved for device drivers. Programs such as web browsers running in higher numbered rings must request access to the network, a resource restricted to a lower numbered ring.
    x86 CPU hardware actually provides four protection rings: 0, 1, 2, and 3. Only rings 0 (Kernel) and 3 (User) are typically used.
    Four Protection Rings
    In any modern operating system, the CPU is actually spending time in two very distinct modes:
    1.Kernel Mode
    In Kernel mode, the executing code has complete and unrestricted access to the underlying hardware. It can execute any CPU instruction and reference any memory address. Kernel mode is generally reserved for the lowest-level, most trusted functions of the operating system. Crashes in kernel mode are catastrophic; they will halt the entire PC.
    2. User Mode
    In User mode, the executing code has no ability to directly access hardware or reference memory. Code running in user mode must delegate to system APIs to access hardware or memory. Due to the protection afforded by this sort of isolation, crashes in user mode are always recoverable. Most of the code running on your computer will execute in user mode.
    Hypervisor mode
    The x86 family of CPUs provide a range of protection levels also known as rings in which code can execute. Ring 0 has the highest level privilege and it is in this ring that the operating system kernel normally runs. Code executing in ring 0 is said to be running in system space, kernel mode or supervisor mode. All other code such as applications running on the operating system operates in less privileged rings, typically ring 3.
    Under hypervisor virtualization a program known as a hypervisor (also known as a type 1 Virtual Machine Monitor or VMM) runs directly on the hardware of the host system in ring 0. The task of this hypervisor is to handle resource and memory allocation for the virtual machines in addition to providing interfaces for higher level administration and monitoring tools.
    Clearly, with the hypervisor occupying ring 0 of the CPU, the kernels for any guest operating systems running on the system must run in less privileged CPU rings. Unfortunately, most operating system kernels are written explicitly to run in ring 0 for the simple reason that they need to perform tasks that are only available in that ring, such as the ability to execute privileged CPU instructions and directly manipulate memory.
    A number of different solutions to this problem have been devised in recent years, each of which is described below:
    Paravirtualization
    Under Paravirtualization the kernel of the guest operating system is modified specifically to run on the hypervisor. This typically involves replacing any privileged operations that will only run in ring 0 of the CPU with calls to the hypervisor (known as hypercalls). The hypervisor in turn performs the task on behalf of the guest kernel.
    This typically limits support to open source operating systems such as Linux which may be freely altered and proprietary operating systems where the owners have agreed to make the necessary code modifications to target a specific hypervisor. These issues notwithstanding, the ability of the guest kernel to communicate directly with the hypervisor results in greater performance levels than other virtualization approaches.
    Full Virtualization
    Full virtualization provides support for unmodified guest operating systems. The term unmodified refers to operating system kernels which have not been altered to run on a hypervisor and therefore still execute privileged operations as though running in ring 0 of the CPU.
    In this scenario, the hypervisor provides CPU emulation to handle and modify privileged and protected CPU operations made by unmodified guest operating system kernels. Unfortunately this emulation process requires both time and system resources to operate resulting in inferior performance levels when compared to those provided by Paravirtualization.
    Hardware Virtualization
    Hardware virtualization leverages virtualization features built into the latest generations of CPUs from both Intel and AMD. These technologies, known as Intel VT and AMD-V respectively, provide extensions necessary to run unmodified guest virtual machines without the overheads inherent in full virtualization CPU emulation.
    In very simplistic terms these new processors provide an additional privilege mode above ring 0 in which the hypervisor can operate essentially leaving ring 0 available for unmodified guest operating systems.
    Sources :
    http://en.wikipedia.org/wiki/Ring_(computer_security)
    http://www.codinghorror.com/blog/archives/001029.html

    May 24, 2009 Posted by Mohamed Fawzi | Hyper-V, Virtualization | , , , | 1 Comment

    System Center Operations Manager 2007 R2

    Microsoft is pleased to announce the release of System Center Operations Manager 2007 R2.

    Extending monitoring support from Windows platforms to UNIX and Linux servers and workloads, detailed reporting on service levels, enhanced monitoring capabilities for systems and web applications, and more, the trial for Operations Manager 2007 R2 is now available.

    May 23, 2009 Posted by Mohamed Fawzi | Uncategorized | , | No Comments Yet

    Tech Ed: Windows Server 2008 R2 Hyper-V News!

    Today Tech Ed in Los Angeles has announced some great news for all virtualizations fans.

     

    The most amazing part is Processor Compatibility

     

    With Hyper-V R2, we include a new Processor Compatibility feature. Processor compatibility allows you to move a virtual machine up and down multiple processor generations from the same vendor. Here’s how it works.

    When a Virtual Machine (VM) is started on a host, the hypervisor exposes the set of supported processor features available on the underlying hardware to the VM. This set of processor features are called guest visible processor features and are available to the VM until the VM is restarted.

     

    When a VM is started with processor compatibility mode enabled, Hyper-V normalizes the processor feature set and only exposes guest visible processor features that are available on all Hyper-V enabled processors of the same processor architecture, i.e. AMD or Intel.  This allows the VM to be migrated to any hardware platform of the same processor architecture. Processor features are “hidden” by the hypervisor by intercepting a VM’s CPUID instruction and clearing the returned bits corresponding to the hidden features.

     

    Just so we’re clear: this still means AMD<->AMD and Intel<->Intel. It does not mean you can Live Migrate between different processor vendors AMD<->Intel or vice versa.

     

    Check more there

    May 13, 2009 Posted by Mohamed Fawzi | Hyper-V R2, Virtualization | , , , , , | No Comments Yet

    SCVMM …. Host Reservers and Cluster Reserve

    What are host reserves?

     Host Reserves define how much of a host’s resources are to reserved for the host operating system. Once these reserves are configured, a virtual machine cannot be deployed on that host if doing so would require the use of those reserved resources. The host resources that may be reserved are as follows:

    ·         CPU Percentage

    ·         Memory

    ·         Disk Space

    ·         Maximum Disk I/O Per Second (IOPS)

    ·         Network Capacity Percentage

     Host reserves are specified on a host group basis. In addition, the group reserve settings may also be overridden on a per host basis. To specify the host group reserve settings, right click on the host group name in the Hosts pane, select Properties from the menu and click the Host Reserve Tabs in the Host Group Properties dialog as illustrated in the following figure:

    Host-Reverse

     

     

    What is cluster reserve ?

    Depending on your needs, you can configure a cluster reserve for each host cluster that specifies the number of node failures a cluster must be able to sustain while still supporting all virtual machines deployed on the host cluster. If the cluster cannot withstand the specified number of node failures and still keep all of the virtual machines running, the cluster is placed in an Over-Committed state, and the clustered hosts receive a zero rating during virtual machine placement. The administrator can, during a manual placement, override the rating and place an HAVM on an over-committed cluster.

    For example, if you specify a node failure reserve of 2 for an 8-node cluster, the rule is applied in the following ways:

    ·         If all 8 nodes of the cluster are functioning, the host cluster is marked Over-committed if any combination of 6 nodes (8-2) in the cluster lacks the capacity to accommodate existing virtual machines.

    ·         If only 5 nodes in the cluster are functioning, the cluster is marked Overcommitted if any combination of 3 (5-2) nodes in the cluster lacks the capacity to accommodate existing virtual machines.

     

    VMM’s cluster refresher updates the host cluster’s Over-committed status after each of the following events:

    ·         A change in the cluster reserve value

    ·         The failure or removal of nodes from the host cluster

    ·         The addition of nodes to the host cluster

    ·         The discovery of new virtual machines on nodes in the host cluster

     

    The cluster reserve is set on the General tab of the host cluster properties.

    View the status of the cluster, and adjust the cluster reserve.

    ·         In the Cluster reserve field, specify the maximum number of node failures the cluster must be able to sustain but still keep all existing virtual machines running. If the rule is violated, the host cluster is marked Overcommitted.

     Cluster-Reverse-1

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

        

     

     How VMM calculate Over-Committed Cluster?!!

     The VMM calculate depending on the highest VM RAM, i.e.. If you have 10 VMs with different RAMs then VMM calculate the amount of RAM by this equation (Highest RAM in VM * N) Where N is the no of VMs in the cluster and equal 10 in our example.

      

    Error (13803)

    The cluster node failure reserve equals or exceeds the number of nodes in cluster <Cluster Name>

     

    Recommended Action

    Specify a cluster node failure reserve less than the number of nodes in the cluster and then try the operation again.

     

    this is another thing.. due to the fact that building Hyper-V cluster using one physical and one virtual node is not valid (Sure this make no sense). As the VMs cannot failover to the virtual node.

     

    April 13, 2009 Posted by Mohamed Fawzi | Hyper-V, SCVMM | , , , , | No Comments Yet