Changing the DNS RR name for RDS 2012 Connection Broker HA

1

Perhaps you’ve configured RDS 2012 and are using the new Active/Active Connection Broker technology. Perhaps like me you selected a name during the HA configuration for DNS round robin name that you no longer want to use? If you attempt to edit the Deployment Properties you won’t be able to change this value.

Edit Deployment Properties RDS 2012 Connection Broker

Edit Deployment Properties RDS 2012 Connection Broker

Well this frustrated me at first but I was able to find the Powershell cmdlet that allows you to modify this after deployment.

Thanks to this thread on the Microsoft Blogs site http://blogs.msdn.com/b/rds/archive/2012/06/27/rd-connection-broker-high-availability-in-windows-server-2012.aspx

The Powershell Cmdlet is:

Set-RDClientAccessName -ConnectionBroker <ActiveManagementServer name> -ClientAccessName <New DNS RR Name>

Run that and you’ll be squared away! I officially take back my hulk smash RDS 2012 comment now. :)

Why VDI projects fail

3

First, I’m using VDI as a catch all term in this post for all Desktop Virtualization choices…I despise the term VDI, but I’m using it here because it’s the term I hear from customers most.

I wrote a post earlier this year that was quite popular, “How to Fail at VDI”. The first reason I listed was, “Start desktop virtualization not knowing the business problem you’re solving”. Now this list wasn’t necessarily in order of importance or frequency but in this case this is the #1 reason I see VDI projects fail. Failure comes in many ways, stalled projects, cost overruns, or all out failure delivering what users want and need. In my job I’m often brought in early on to discuss VDI or desktop virtualization initiatives with our customers and I’m quite frequently accused of hating on VDI in these meetings.

In order to learn about my customer’s motivations and expectations for VDI I frequently play devil’s advocate in my customer meetings to get to them to express the reasons they want to use and benefits they expect to receive from VDI. The reason for this is simple…many times the customer reasons for wanting to do VDI are bullshit, non-existant, of no substance…and are doomed to probable failure. In some cases what we all learn is that the customer doesn’t need VDI, they just need to virtualize some desktops on a hypervisor and use RDP to connect to them to solve the problem that they have.

So what questions do I usually ask to begin this conversation?

  • What benefits do (you, the business, the user, the financial decision maker) expect to receive from VDI?
  • What problems (you, the business, the user, the financial decision maker) do you expect VDI to solve?
  • How long do you expect this project to take? (pilot, user acceptance testing, production rollout)
  • What project costs have you budgeted for?

Then I just dig in to their answers and ask more questions, not to talk them out of VDI but rather to fully understand the problems that exist in their environment, the ones they’ve already identified VDI might help with and ones they might not even be aware of that could be solved or helped by a VDI solution. We typically talk about strategies other than VDI, whether that be continuing to do what they’ve been doing with a few minor tweaks, or other solutions in the stack like Application or Profile Management (depending on the customer). What hopefully happens is a discussion about all of the options that are available to them, a more complete understanding of the complexities of each solution, and ultimately a joint discussion about what our next steps should be.

Yeah, it doesn’t seem like VDI hating but in a world where vendors and VARs push product on customers it probably throws a few people off.

Recap – VDI projects fail because the there wasn’t a business reason to have a VDI project in the first place, not because there wasn’t one, but because nobody spent time figuring out what problem they were solving before they started.

The “Post-PC” Era is about the “Workspace”

4

I’ve heard a lot of discussion in the last two weeks since VMworld 2012 San Francisco about Horizon Suite, View, Horizon Data, etc… how they’ll be combined or replace each other, which one is the broker, blah blah blah..and what I can’t help but scream to myself is, “You’re missing the point!”. What I believe VMware showed at VMworld with their Horizon Suite is the new “Workspace”. Citrix CloudGateway is this same new “Workspace”. So let me explain a bit.

The Windows desktop (literally the desktop screen) has been our workspace since the days of Windows 95 and it hasn’t changed much in the time since, even with Windows 8 on my laptop the desktop is still my primary screen. The reason that the Windows desktop hasn’t changed much is because it works well for the average user. It’s where we put shortcuts to recently used applications, saved documents we were working on, and put pictures of our family or dream automobile. What has changed is that we now have multiple devices and therefore workspaces. We have smartphones, tablets, laptops, desktops, web browsers, etc…and each of these for many people is made by a different vendor with potentially a different operating system for each. This is the fundamental change that has happened in the industry, we’re no longer Windows desktop only users. Each of these new devices has a desktop/workspace that you use to launch applications, documents, pictures…you get the point, they all have a “desktop”. The post-PC era isn’t one without Windows, it’s an era of Windows, iOS, Android, OSX all at the same time and interchangeably depending on the user.

A Workspace is like your desk. It’s a place to stack up documents, books, to-do lists, bills, etc. It’s the base to which you return to do your job. If VMware and Citrix can replace the Windows desktop with a new desktop or “Workspace” as I’m referring to it, then they can become the base that users require to do their job. Citrix and VMware aren’t stopping here, they realize that the other fundamental change that has happened is people are increasingly using their own devices and so a new category of IT applications has emerged, those meant to manage application and data security on non-company owned devices. The big challenge in my mind isn’t the application and data management, this will come in time. It’s changing people’s behavior, changing them from using the native Workspace on each their devices to using a new Workspace provided by Citrix/VMware.

Virtualization Resources & Links

1

I’ve tweeted this out a couple times but I felt it was worthy of a blog post in case it has gone unnoticed by some. At the top of this page there is a link to “Virtualization Resources”, this is a publicly shared Microsoft SkyDrive document (used to be a Google doc) that I update with links. I update this document a few times a day, any questions or information that I look up for my customers I add to this document. I now find myself referring back to this document hourly and referring people who have questions to it as well…in other words it’s really important to me and I’m hoping you find it useful as well. If you have suggestions of things I’ve missed send me an email or post in the comments on this post. Thanks and enjoy! https://skydrive.live.com/redir?resid=AC104530CDF373DD!1004

Windows Performance Counters

1

Back in the day of physical servers I created a document with this information in it from various places on the internet, I’ve kept it for years and most of the information included in it is still accurate. In the highly virtualized world we live in today this is only one part of performance troubleshooting and you have to be careful about some of the metrics, but the OS layer is still an important area to measure performance from. Adding virtualization to your environment does render any counter that has a time component to it (something/sec) since CPUs can be descheduled and their time skewed.

PAL (Performance Analysis of Logs)

http://pal.codeplex.com/

Windows Performance Analysis Developer Center

http://msdn.microsoft.com/en-us/performance/default.aspx

Performance Counter Thresholds

Memory\Available Mbytes

Threshold: A consistent value of less than 20 to 25 percent of installed RAM is an indication of insufficient memory.

Significance: This indicates the amount of physical memory available to processes running on the computer. Note that this counter displays the last observed value only. It is not an average.

Memory\Page Reads/sec

Threshold: Sustained values of more than five indicate a large number of page faults for read requests.

Significance: This counter indicates that the working set of your process is too large for the physical memory and that it is paging to disk. It shows the number of read operations, without regard to the number of pages retrieved in each operation. Higher values indicate a memory bottleneck.

If a low rate of page-read operations coincides with high values for Physical Disk\% Disk Time and Physical Disk\Avg. Disk Queue Length, there could be a disk bottleneck. If an increase in queue length is not accompanied by a decrease in the pages-read rate, a memory shortage exists.

Memory\Pages Input/sec

Threshold: The value should not exceed 15.  Higher the value poor the performance.

Significance:  Pages Input/sec is the rate at which pages are read from disk to resolve hard page faults. Hard page faults occur when a process refers to a page in virtual memory that is not in its working set or elsewhere in physical memory, and must be retrieved from disk.

Memory\Pages/sec

Threshold: Sustained values higher than five indicate a bottleneck.

Significance: This counter indicates the rate at which pages are read from or written to disk to resolve hard page faults. To determine the impact of excessive paging on disk activity, multiply the values of the Physical Disk\ Avg. Disk sec/Transfer and Memory\ Pages/sec counters.  If the product of these counters exceeds 0.1, paging is taking more than 10 percent of disk access time, which indicates that you need more RAM.  If this occurs over a long period, you probably need more memory.

A high value of Pages/sec indicates that your application does not have sufficient memory. The average of Pages Input/sec divided by average of Page Reads/sec gives the number of pages per disk read. This value should not generally exceed five pages per second. A value greater than five pages per second indicates that the system is spending too much time paging and requires more memory (assuming that the application has been optimized).

If the Pages / sec multiplied by 4,000 (the 4k page size) is greater than 70% of the total number of Logical Disk Bytes / sec to the disk(s) where the page file is located on a consistent basis then you should investigate.

Translation:  If paging to disk is > 70% of your total disk activity on a consistent basis then there may be an issue

PhysicalDisk\%Disk Time

Threshold:  Greater than 50 percent, it represents an I/O bottleneck

Significance: Represents the percentage of elapsed time that the selected disk drive was busy servicing read or write requests.

PhysicalDisk\Avg. Disk Queue Length

Threshold: Should not be higher than the number of spindles plus two.

Significance: This counter indicates the average number of both read and writes requests that were queued for the selected disk during the sample interval.

PhysicalDisk\Avg. Disk Read Queue Length

Threshold: Should be less than two.

Significance: This counter indicates the average number of read requests that were queued for the selected disk during the sample interval.

PhysicalDisk\Avg. Disk sec/Read

Threshold: No specific value.

  •          Less than 10 ms – very good
  •          Between 10-20 ms – okay
  •          Between 20-50 ms – slow, needs attention
  •          Greater than 50 ms – Serious I/O bottleneck

Significance: This counter indicates the average time, in seconds, of a read of data from the disk.

PhysicalDisk\Avg. Disk/Transfer

Threshold: Should not be more than 20 milliseconds.

Significance: This counter indicates the time, in seconds, of the average disk transfer. This may indicate a large amount of disk fragmentation, slow disks, or disk failures. Multiply the values of the Physical Disk\Avg. Disk sec/Transfer and Memory\Pages/sec counters. If the product of these counters exceeds 0.1, paging is taking more than 10 percent of disk access time, so you need more RAM.

PhysicalDisk\Avg. Disk Write Queue Length

Threshold: Should be less than two.

Significance: This counter indicates the average number of write requests that were queued for the selected disk during the sample interval.

PhysicalDisk\Disk Reads/sec & PhysicalDisk\Disk Writes/sec

Threshold: Depends on manufacturer’s specification.

Significance: This counter indicates the rate of write operations on the disk.

Processor\%Privileged Time

Threshold: A figure that is consistently over 75 percent indicates a bottleneck.

Significance: This counter indicates the percentage of time a thread runs in privileged mode. When your application calls operating system functions (for example to perform file or network I/O or to allocate memory), these operating system functions are executed in privileged mode.

Processor\%Processor Time

Threshold: The general figure for the threshold limit for processors is 65 percent.

Significance: This counter is the primary indicator of processor activity. High values many not necessarily be bad. However, if the other processor-related counters are increasing linearly such as % Privileged Time or Processor Queue Length, high CPU utilization may be worth investigating.

System\Context Switches/sec

Threshold: As a general rule, context switching rates of less than 5,000 per second per processor are not worth worrying about. If context switching rates exceed 15,000 per second per processor, then there is a constraint.

Significance: Context switching happens when a higher priority thread preempts a lower priority thread that is currently running or when a high priority thread blocks. High levels of context switching can occur when many threads share the same priority level. This often indicates that there are too many threads competing for the processors on the system. If you do not see much processor utilization and you see very low levels of context switching, it could indicate that threads are blocked.

Hyper-V | XenServer | vSphere

10

Update: this is out of date, needs to be updated for vSphere 5.1!

 

I took all of the pictures that David Davis took at Microsoft TechEd 2012 today comparing Microsoft Hyper-V 2012, Citrix XenServer 6.0, and vSphere (free) and vSphere Enterprise Plus. This is not meant to be an unbiased view, this is simply a spreadsheet view of the screenshots that David took at TechEd…as presented by Microsoft, so of course they might have a specific view on the comparison of these features. Hopefully later I’ll have time to add in all of the fine print they had at the bottom of the screen.

The CPU scheduler and VDI

3

Something for those of you considering VDI to chew on. First start off with a good read about the vSphere CPU scheduler http://www.vmware.com/resources/techresources/10131 and what you’ll learn is that CPU scheduling on a hypervisor is all about proportional share, not priority as is the case in unix/linux/windows. Quoting here from the whitepaper “when making scheduling decisions, the ratio of the consumed CPU resources to the entitlement is used as the priority of the world“. Basically, all shares equally distributed, the more compute resources a world consumes the more likely another world will preempt it.

So in a VDI world where there is a high ratio of vCPU’s to physical cores the hypervisor does a very good job of fairly distributing compute resources to requesting worlds. What the hypervisor is blind to is the type of workload that is being done and since compute resources are typically oversubscribed, latency sensitive workloads which require also tend to use more CPU than others…things like video and audio, rich multimedia applications tend to struggle as physical cores become oversubscribed. Take a reference made by Andre Leibovici in this article http://myvirtualcloud.net/?p=3371

“A 1vCPU desktop can deliver 720p@25fps without any hardware acceleration. In this scenario it is recommended a maximum of 2 desktops per core for concurrent playbacks at 720p@25fps. Most VDI deployments don’t cater for this kind playback conditions, but if this is the case of your deployment you should follow these guidelines to ensure the best user experience.”

This isn’t a dig against VMware View, Citrix XenDesktop or VDI…this is just the reality of the world of compute oversubscription. I’m not implying we shouldn’t oversubscribe CPU’s either, I doubt all of your employees are watching 720p video all day long. I do however think it is important to understand how and why these things happen. I think some people have an unrealistic view of the expected performance of 100 VM’s on a 12-16 core server.  I’d also contend that the days of a 1 vCPU desktop VM are drawing to a close. Application developers have been told for years now to multithread their apps to harness more of the power of the AMD and Intel cpu’s.

I’ll leave you with this if it helps drive home the point I’m making as it relates to compute oversubscription..

Traditional PC/laptop

Microsoft Remote Desktop Services/TS/XenApp

VDI

Only use as much Application Virtualization as you need

6

If you’ve ever gone 4 wheeling there is a saying when going offroad: “as slow as possible, as fast as necessary”.  This phrase reminds me a lot of how I feel with application virtualization, “as little as possible, as much as necessary“.

Application virtualization whether done via App-v, ThinApp, or XenApp (or others) all have some common characteristics.

  • Virtualized file system and registry
  • Files, installation packages (.msi, setup.exe), etc are repackaged into a new format
  • Applications are streamed out to the endpoint on demand and run in an isolated space
  • Streamed packages can be cached and used offline
  • Updates made to the base package are streamed out to clients

The promise of application virtualization is that you are making apps portable and available on demand, no lengthy installation package to run through or customizations to make.

Some of the challenges of application virtualization are actually some of the core tenants of application virtualization that I mentioned before:

  • The application is virtualized and see virtual registry and file systems, meaning it can’t necessarily (unless allowed) interact with other apps (be called to or call in to other apps).
  • Applications have to be repackaged in order to be streamed and although there are previews of technology that automate this repackaging process (ThinApp Factory) it’s a process that adds time and steps to a user getting a new piece of software or an update to an existing one…and it’s frankly not so easy to repackage these applications that you can assume automation of this is even possible.
  • Not all applications work or can be virtualized.  Depending on the software being used there are still challenges with certain drivers, DCOM, kernel level items, plug-ins, 64 bit apps, etc…every vendor is currently working from a different list of limitations.

Ultimately application virtualization is a patch (or perversion) due to the deficiencies of the Windows operating system, installer process offered by Microsoft, and application isolation options as a core operating system feature.  The problem can’t be solved by 3rd parties it has to be taken on by Microsoft and resolved as a core feature of the OS.  I’ve talked about some other challenges and thoughts on application virtualization in a prior post here.

  • I believe that application virtualization should be used when you have application conflicts where 2 applications need to be isolated from each other.
  • I believe that application virtualization should be used when you have an application that requires very frequent updates and the traditional deployment tools fall short or if you don’t have them.
  • I believe that application virtualization should be used to isolate “messy” applications from shitting all over your OS image that make them difficult to remove or update cleanly.
  • I believe in application virtualization when you have a small list of “easy” applications that allow you to truly layer your apps on top of a single gold image.

So back to the phrase I said at the beginning in 4 wheeling: “as slow as possible, as fast as necessary”, in application virtualization I say: “as little as possible, as much as necessary“.

Windows is a piece of &%$#

1

Fill in the blank, four letters, rhymes with spit.

I said this recently and I thought I would write a little more about this and expand on the problems we deal with in Desktop Virtualization, problems that are uniquely Windows issues.  I wrote a bit on this in a previous blog post here.  My problem with WIndows isn’t that it isn’t a Mac, but that they have failed to advance the operating system to make me as a consumer more efficient and in the enterprise they have failed to add features that make enterprise management significantly easier, in fact they have added applications to the Microsoft stack who’s value is to make up for the deficiencies in Windows!  I feel like Microsoft has had opportunity to make changes to the operating system that might or should break backwards compatibility but would make things better going forward…if it’s a positive change consumers, businesses and developers will embrace it, just take a look at Android and iOS, these didn’t exist a few years ago, yet people have embraced them.

I don’t want Windows, I want Windows v2 which is a complete rewrite of the platform.  A platform that takes into account application delivery, personalization, multiple devices.  The last major change in application delivery technology was the introduction of msi packages, how long ago was that?  App-v, or application virtualization in general hasn’t taken off, if it had we’d be downloading app-v packages for all microsoft apps, but alas app virtualization just creates new problems because the underlying problem is the OS.  So in the meantime we will continue to deal with problems that are uniquely WIndows problems.  We’ll do this using tools that make Windows do unnatural things, don’t work perfectly, and ultimately require a high level of Windows skills.  The complexity in Desktop Virtualization is partially the delivery technology, whether that be VMware or Citrix (or other), but the majority of the complexity is the perversion we keep forcing on the Windows OS in the form of application layering, application virtualization, user/persona virtualization, etc.  None of these solutions mentioned work perfectly, all introduce new issues, and all require new skills and usually more highly skilled people.

So back to why I’m writing about this, Desktop Virtualization isn’t easy, much of this is because its about the “desktop” (not the remote delivery technology) and therefore about managing WIndows…which has years of legacy and no new solutions to solve the problems that have existed for years.  These problems aren’t easy.  Want to be good at Desktop Virtualization…then as Brian Madden says be an expert at WIndows, know the resource kit inside and out http://www.amazon.com/Windows%C2%AE-Resource-Kit-Mitch-Tulloch/dp/0735627002.  I’m sad to say I’m an expert on Windows that chooses to use a Mac as my day to day desktop… I was a Windows fan my entire career, now I just make it work for others.  I’m still angry about it if you can tell :)

One last item, I know the enterprise still runs on Windows, but that’s changing…that’s why I do what I do.