Author Archives: Alan

About Alan

Alan Renouf has a role of Automation Frameworks Product Manager at VMware responsible for providing the architects and operators of the cloud infrastructure with the toolkits/frameworks and command-line interfaces they require to build a fully automated software-defined datacenter. Alan is a frequent blogger at http://blogs.vmware.com/vipowershell and has a personal blog at https://virtu-al.net. You can follow Alan on twitter as @alanrenouf.

Is MSCS Supported on a HA/DRS Cluster ?

(Straight answer in red at the bottom if you want to miss out the novel)

I needed to install Microsoft Cluster Service (MSCS) on a couple of virtual machines acting as an Active-Passive cluster, with a rule to separate these VM’s onto different hosts within VMware 3.5 U1.

Some may ask why (as I did) when you have the wonders that are HA and Vmotion why would you do this ? the short answer was that it took less time (slightly) for the MSCS cluster to fail over to another virtual machine on a different host in the event of hardware failure than it did for HA to realise there was a failure and move the machine and power it back on and the machine to start up.

And as this was a urgent application the MSCS cluster on top of VMware seemed to be the way to go.

So after reading the fantastic white paper by VMware:

Setup for Microsoft Cluster Service
Update 2 Release for ESX Server 3.5, ESX Server 3i version 3.5, VirtualCenter 2.5

Which can be downloaded here

Unfortunately I hit upon a problem in my planned design, on Page 16 of the above document which summarises the caveats for setting up a MSCS cluster on VMware, one of the bullet points was as follows:

  • Clustered virtual machines cannot be part of VMware clusters (DRS or HA)

I will not use the exact language here but lets just say I was not best pleased !

On thinking about this and the way that it worked and after adding a post on the VMware communities to confirm what I was thinking (great bunch of guys on there) I came up with the following…

As the MSCS Cluster has a private network which it uses for a heartbeat LAN there may be issues VMotioning the server over to another host, this as we know can cause a slight blip in the network communication and if this was to happen it may cause a problem with the MSCS cluster causing it to issue a failover and suddenly the service would be unavailable.

OK it makes sense, but that is quite a broad statement to make, “Clustered virtual machines cannot be part of VMware clusters (DRS or HA)”. Why couldn’t I just edit the DRS Cluster and set the Virtual Machines Automation Level to Disabled ? Surely this would stop the machines from being VMotioned and everyone would be happy ?

Whilst in theory this would work forever and a day and I would not get any issues I decided to confirm why the document did not reflect this setup as even if I did get it working it was point blankly “Not Supported” by VMware, and as we know working in a corporate environment this is a big NO NO.

Next Step: I raised a call with VMware to ask why this was the case, after a few games of Ping Pong I received my answer…..

Hi Alan,

You are correct in your assumption. It is not recommended to have MSCS VM’s within a Vmware Cluster. This is for the reasons you mentioned above regarding interrupted heartbeats. You could set individual HA/DRS settings on these individual MSCS VM’s in order to keep them running on the specific hosts. However, there would be issues in the future if these values were ever changed unknowingly by another administrator with access to the system.

Yes, I can confirm that this would be supported by VMware. However, if DRS ever tried to move these VM’s even with the DRS setting disabled then this would be a bug and would need to be investigated.

I would recommend that you test this setup using a network monitoring tool such as IO Meter to ensure that no heartbeats are dropped from the VM.

PowerGui 1.5.3 Released

Wahoo, I have been waiting for this one, I have tried a few editors but always go back to PowerGui.

Hopefully this will fix the issue I was having with code over a certain amount of lines and also some sloweness I have been getting expanding variables in debug mode.

A few other little problems too.

If you havent tried it yet, download it for free now….

http://powergui.org/downloads.jspa

Last Call: UK PowerShell Use Group

UK Powershell User Group

Following on from the last great meeting the next UK Powershell User Group has been announced…

The November meeting of the User Group will be on Thursday 20th November

Time
6.30 – 9.30

Location
Memphis Room
Building 3
Microsoft campus
Thames Valley Park
Reading

Agenda

  • Powershell Introduction: Objects and get-member
  • PowerGUI SQL Server Reporting Services powerpack
  • PowerShell in SQL Server 2008
  • The usual refreshments break will occur

The PowerShell Introduction is a new feature for meetings where they will explain a particular feature of PowerShell that has caused someone a problem or maybe a slightly more difficult concept.

Please visit the following site to confirm your attendance, please do not just turn up as ou will need to be regiestered….

http://richardsiddaway.spaces.live.com/blog/cns!43CFA46A74CF3E96!1872.entry

Correct HAL Installed ?

Following an inspiring blog post from Duncan Epping located here it made me think about how I could find the CPU vs HAL information, a 5 minute mess around in the VI Toolkit produced the following script:

Connect-viserver MYVISERVER

$myCol = @()

ForEach ($VM in (Get-VM)){
$MyDetails = “” | select-Object Name, HAL, NumvCPU
$MYDetails.Name = $VM.Name
$Hal = Get-WmiObject -ComputerName
$VM.Name -Query “SELECT * FROM Win32_PnPEntity where ClassGuid = ‘{4D36E966-E325-11CE-BFC1-08002BE10318}'” | Select Name
$MYDetails.HAL = $Hal.Name
$MYDetails.NumvCPU = $VM.NumCPU
$myCol += $MYDetails}

$myCol

This will give you a list of your VM’s the HAL installed and the number of vCPU’s

VMWorld 2009 VCP Special Prices

Just a reminder that if you are looking to attend VMWorld 2009 and you are a VCP you are eligible for a discounted price of 650 Euros….

http://www.vmworld.com/community/conferences/europe2009/registration/cost

VMworld VCP

VMworld VCP members are eligible for a discounted Full Conference rate of € 650. This discount will automatically be applied when you provide your VCP membership number, along with a valid email address, during the registration process. If the appropriate discount is not applied please contact VMworld Europe 2009 Registration Team. VCP pricing is not subject to enrolment date and will be valid throughout the enrolment period.

Virtualising Citrix/XenApp on VMware

As part of some investigation into virtualising Citrix servers I decided to evaluate the use of Windows 2003 32 bit Standard servers running as virtual machines on VMware ESX. The reasoning behind the use of virtual machines is to try and issue more Citrix sessions to a single server therefore reducing the amount of hardware, data center space, power consumption and heat generated by the multiple physical servers.

Moving to VMware should allow for multiple machines to run on a physical server, allowing for a higher user load by adding more smaller loaded servers to the physical server.

This obviously depends on how Citrix is used in your environment, as Citrix applications that are published to users who open the application and minimise it until they need the app, using there desktop applications most of the time will have much a lower utalisation impact than users who use full Citrix desktops.

It will also depend on the kind of applications that you are using and how CPU/Memory intensive these applications are.

Test Platform

In order to test this, and other environments, I have been using Citrix Edgesight for Load Testing. Edgesight for Load Testing allows me to develop “scripts” that simulate a user load. These scripts are made up of various user interactions, such as use of the Office products, and can then be replayed with various time parameters to simulate a real world load. Each script can be run in the context of a user session (separate users for each session) and so allowing us to get somewhere near generating a “real world” load.

The generated script is run against a specified server and the times taken to perform each action can be measured along with the built in Virtual Infrastructure performance statistics and graphs.

Physical Server (ESX Host) Specification

  • DELL PowerEdge 2950 III
  • 2 x Quad Core Intel Xeon X5450, 2X6MB Cache, 3.0GHz, 1333MHz FSB
  • 32GB FB 667MHz Memory (8x4GB dual rank DIMMs)
  • 2 x Intel PRO 1000VT Quad Port Gigabit Network Card, PCI-E
  • Emulex LPe-12002-E, Dual-port 8Gbps Fibre Channel PCI-Express HBA card
  • 2 x 73GB 15.000 rpm 3.5-inch SAS Hard Drives
  • ESX 3.5 Update 1

Virtual Machine Specification

  • 1 x vCPU (Using VMware process affinity to tie the VM to a specific CPU core)
    4GB RAM
  • 1 x 20GB Hard Disk Stored on SAN
  • 1 x vNic (1GB)

Virtual Machine Software Specification

Windows 2003 R2 32 Bit Standard Edition SP1
Citrix Presentation Enterprise 4.0 Rollup pack PSE400W2K3R03 plus additional hotfixes
Office 2003 with latest Service Pack

Other Configuration

The Virtual machines, ESX Hosts and VMTools were configured specifically to adjust the virtual machines for best performance of Citrix using multiple best practice and configuration documents.

Test Script

The test script was made up of 3 core sections that invoked the use of the following software:

  • Outlook 2003
  • Word 2003
  • Excel 2003

For each of the scripts the programs would be opened, used (either opening email or opening documents), and then left open and the next program opened. Once the Excel test had finished the test closed all of the Office applications and started again with Outlook. This was repeated until the allotted test time was completed and the user was then logged off.

Test Load

These tests were carried out with a number of users per virtual machine. The virtual machine was configured with 1 x vCPU to maximise the number of virtual machines that could be hosted on each host, as the host has 8 cores each core could host a virtual machine.


Test 1 – 10 Users

Test

Time Period

Users Logged On

Details

1

20 minutes

10

· Logged 10 users on and working over 5 minutes

· Kept 10 users logged on and working for 15 minutes

· Logged 5 users off over a 5 minute period

clip_image002


Test 2 – 20 Users

Test

Time Period

Users Logged On

Details

2

25 minutes

20

· Logged 10 users on and working over 5 minutes

· Logged another 10 users on and working over 5 minutes

· Kept 20 users logged on and working for 15 minutes

· Logged all 20 users off over a 5 minute period

clip_image004


Test 3 – 25 Users

Test

Time Period

Users Logged On

Details

3

33 minutes

25

· Logged 10 users on and working over 5 minutes

· Logged another 10 users on and working over 5 minutes

· Logged another 5 users on and working over 3 minutes

· Kept 25 users logged on and working for 15 minutes

· Logged all 25 users off over a 5 minute period

clip_image006


Test 4 – 30 Users

Test

Time Period

Users Logged On

Details

4

35 minutes

30

· Logged 10 users on and working over 5 minutes

· Logged another 10 users on and working over 5 minutes

· Logged another 10 users on and working over 5 minutes

· Kept 30 users logged on and working for 15 minutes

· Logged all 30 users off over a 5 minute period

clip_image008


Test 4 – 35 Users

Test

Time Period (Minutes)

Users Logged On

Details

5

38 minutes

35

· Logged 10 users on and working over 5 minutes

· Logged another 10 users on and working over 5 minutes

· Logged another 10 users on and working over 5 minutes

· Logged another 5 users on and working over 3 minutes

· Kept 35 users logged on and working for 15 minutes

· Logged all 35 users off over a 5 minute period

clip_image010


Results

During the tests CPU/Memory/Disk and Network figures were monitored, as the users were added to the virtual machines it was clear the application set used for testing were CPU bound and although all other figures were consistently monitored these would not take as heavy an impact as CPU.

From the above graphs we can see where the users were logging into the virtual machines and where the sessions conducted there test patterns, after an initial spike in the login period the figures averaged out at the following:

  • 10 Users – Averaged at 40% CPU Usage
  • 20 Users – Averaged at 65% CPU Usage
  • 25 Users – Averaged at 73% CPU Usage
  • 30 Users – Averaged at 81% CPU Usage
  • 35 Users – Averaged at 87% CPU Usage

Conclusion

Based on this testing and the environment we used, 25 users per single vCPU guest seems feasible (possibly a few more) but my opinion 30+ users is pushing sensible extended period CPU load due to resources needing to be made available for the tasks which will use the CPU for larger and longer periods of time which may impact the other running users of that particular machine.

If we extrapolate this out, it could mean 200+ (25 * 8) sessions on 8 guest machines across the 8 processor cores of the Dell 2950.

Please note that the current version of ESX at the time of writing this document is ESX 3.5 Update 3. As VMware continue to improve memory and CPU handling techniques it is feasible that further tests on this version may provide more sessions per virtual machine.

Unfortunately I was unable to get anywhere near the numbers that VMware achieved in there scalability document.

If you have any experience in virtualising Citrix or if you have any further tweaking or tuning tips please leave a comment below.

Part 2: Citrix on VMware, 1vCPU or 2vCPU ?