25-03-15

Upgrading the home lab Part II : ESXi hosts

In Part I of the “Upgrading the home lab” series, we migrated/upgraded the vCenter appliance from version 5.5 to 6.0. That all seemed to go pretty well, so the next major step on the road to vSphere 6.0 is to upgrade the ESXi hosts in the environment to ESXi 6.0. Just before we get to that, we’ve actually missed a step out. Once vCenter has been upgraded to version 6.0, you should take a few minutes to upgrade VMware Update Manager (VUM) to version 6.0 too. In my case I hadn’t got around to building a 5.5 VUM server, so I just built one out from scratch with the vSphere 6.0 installer DVD. I just did a simple install and used the SQL Server 2012 Express version for the database, as I’m just managing a single host. For 5 or more hosts, you should go and get the “full fat” SQL Server.

What’s new with VUM?

Not really a lot as far as I can see. It still requires a Windows Server (minimum 2008, but 2012 R2 should be your aim these days), still requires a SQL database (see above) and still requires the vSphere Client (not the Web Client) to perform any kind of meaningful management. In that respect, it doesn’t look much different than it did in 5.5 days. You can read what’s new in the VUM 6.0 documentation, but it seems to be more database support than anything to get excited about (like baking it into the appliance, for example).

Upgrading the ESXi host(s)

To upgrade your hosts, there are a couple of different ways you can do it. You can boot from the DVD (or remotely attach an ISO image if you have an iLO/DRAC card etc.) and perform an in-place upgrade, you can use VUM to upgrade your hosts, or you can boot from DVD/ISO and perform a fresh installation. It depends what you want to achieve in the process, obviously you want a quick and supported way of getting your hosts up to date, and VUM is VMware’s recommended method.

However, in most enterprise environments, ESXi hosts are commodity items – by this I mean all VM data (and even ISOs) are stored on shared datastores on SAN/NAS etc. In this case, you can achieve a “clean slate” installation by using the installation DVD to perform a fresh installation with the original addressing information. Consider the use of host profiles to “backup” the host configuration before you start (requires Enterprise Plus licencing).

You can also use scripted upgrades, using Auto Deploy or the esxcli command, see here for further information on supported methods. I’m lazy, so I’m using VUM.

Using VUM to upgrade your hosts

As noted above, VUM is the recommended method of upgrading hosts to the latest version of ESXi. In terms of supported prior versions of ESXi, if you’re version 5.x or above, you’re pretty much in clover. Anything older than that is basically a fresh new installation. That’s not all bad, depending of course on how many hosts you have to get through. Remember to check the VMware HCL to ensure your host hardware is supported with ESXi 6.0 and if you can, obtain the custom vendor ISO for ESXi for the best level of driver support and functionality. At the time of writing however, I was only able to find the HP version of the custom ISO (as you can see below), so I will have to use the GA ISO to upgrade my PowerEdge. Hurry up, Dell!

esxi-downloads

Once you have obtained the ESXi 6.0 ISO, ensure your VUM plugin in the vSphere Client is installed and enabled (and one step I haven’t specifically called out is to ensure you upgrade your vSphere Client to version 6.0 before you start this part. Reports of it’s demise have been somewhat premature!).  You can check this by going to the Plugins menu and selecting Manage Plugins.., you should see something similar to the following:-

plugin-manager

If you have a prior version of the VUM plugin installed or you don’t have the plugin installed, you will have to select the “Download and install” option. This runs a brief installer and does not require a reboot nor a restart of the vSphere Client. If the installation has been successful, you’ll see the plugin enabled in the Plugin Manager and you’ll also have a button on the home screen and an extra tab on the host view.

The next step is to upload our ESXi ISO into the VUM repository and create a patch baseline. To do this, you need to go to the Home view in the vSphere Client and then click on the VUM button in the Solutions and Applications section, as shown below:-

vum-home

This button takes you into the VUM management view and from here we need the ESXi Images tab, as shown below:-

esxi-images

And then from there, click on “Import ESXi Image” as shown above. Browse to and select the ESXi 6.0 ISO you downloaded, click next to start the import process and you should see the following progress dialog. This only usually takes a couple of minutes or so.

iso-upload

If the import has been successful, you’ll see the following dialog:-

import-successful

We now need to create an upgrade patch baseline from this ISO so we can add it to our hosts to be upgraded. Leave the “create a baseline” option ticked and give it a meaningful name, as shown below:-

baseline-name

And click “Finish”. All being well, you should now have both the ISO imported and the baseline created, as shown below:-

baseline-iso

So now we have imported our ISO and we have created a baseline. Now we need to associate this baseline with an object to be upgraded. We basically have three choices here – we can apply the baseline at datacenter level, cluster level or we can apply the baseline at individual host level. I’m going to go for the first option, just so I can call out some differences between the options. To apply the baseline to the datacenter object, select the datacenter object in the vSphere Client, select the Update Manager tab and click the Attach.. button on the far right, as shown below:-

attach-baseline

As you can see, my datacenter has no baselines already attached. In the “Attach baseline or Group” dialog, you should see the upgrade baseline we created earlier. Tick the box and tick “Attach” as shown below:-

attach-baseline-group

Once you have attached the patch baseline to the datacenter object, the view in Update Manager should change. You will see the hosts added and a 0% compliance report. This is because we haven’t yet run a scan against the host to check what version of ESXi already exists and if the host is compatible with the ESXi 6.0 upgrade. Next, select your hosts and click the “Scan..” button in the top right.

vum-scan

In our case we just want to scan against upgrade baselines, so be sure to tick this box in the “Confirm Scan” dialog:-

confirm-scan

Click the “Scan” button and VUM will go off and query each host in turn for their compliance against the ESXi 6.0 upgrade baseline we created. This should only take a couple of minutes per host. Once the scan is complete, you should see new information in the VUM tab. In my case, my host as come back as “Incompatible”, which doesn’t surprise me in the least as this host hardware is prehistoric by any measure. However, I can still force the upgrade to run if I know the installer will complete successfully. This isn’t strictly supported by VMware, but all this basically means is that only current generations of servers are tested by VMware and their partners for HCL purposes. To recertify every piece of server hardware for each new release of ESXi does not make sense. This does not however mean that your server can’t run ESXi 6.0, I suggest you test it on some development kit first before moving forward. In my lab, I don’t care!

vum-incompatible

As you can see in the above graphic, my host is older than Bruce Forsyth and as such comes back as non compliant in VUM. No surprises there. In order to force this upgrade through, I can hit the “Remediate” button to force the upgrade to start. I have seen in the field some HCL certified kit come back as incomplete, so sometimes you do need to know how to do this to get the upgrade done. This in turn starts a 6 step wizard to push the upgrade down to the host via VUM. First up, we need to select which hosts and which baseline to use, as below:-

remediate-1

Then we thoroughly read and agree to the software EULA:-

remediate-2

The next step is “signing the death warrant”. If this goes toes up, that’s down to you! Check the box to ignore warnings and in my case, hope my offline backups are good!

remediate-3

Then we give the task a name and description (you can call it anything you like, really) and schedule when this upgrade should be done. I’m going to do it immediately, because I just can’t wait for ESXi 6.0 goodness!

remediate-4

In the final configuration step, I need to tell VUM what to do if there are running VMs on the host to be upgraded. Normally you wouldn’t change anything here as really you should already have your host in maintenance mode before you target it with the upgrade. As my vCenter appliance is on the host to be upgraded, I need to be slightly more creative and get vCenter to power VMs off.

remediate-5

Then one last sanity check before we hit the chicken switch…

remediate-6

And off we went. However, big problems lay ahead. VUM spat out my upgrade saying the CPU in my host was not compatible. OK, fair enough. I did buy it from Fred Flintstone! What I did instead was to burn the ESXi 6.0 ISO to CD and boot it off the physical DVD drive in the host. This way I can basically tell the installer I don’t care about compatibility and support issues, I’m going to bear the risk of it all turning to toast.

First off, I booted from the CD and as the files were copying (black screen with yellow thin progress bar at the top), I got the error “Error loading /s.v00 Fatal error: 6 (Buffer too small)” and the whole thing just stopped. I didn’t get it – the MD5 matched the VMware download site! I downloaded the ISO again, but this time I performed a “direct” download rather than using the Download Manager. The MD5 matched again, I burned a new CD and this time it all worked just fine.

Even though the installer complained bitterly about the host CPU, CPU virtualisation modes and a PCI device not being supported, it all seems to work just fine. The host booted and my vCenter appliance auto started as usual. For completeness, time to go back into VUM and validate my upgrade. To do this, select the host, go to the Update Manager tab and select “Scan” again, as previously. This should take just a minute or so, and then we get what we were hoping for. Green!

vum-green

So now we have vCenter at 6.0 and ESXi at 6.0. Not without a few niggles, but that’s just a consequence of using such old hardware. The moral of the story for me is that it’s high time I gave my boxen an overhaul. Finally, as a last piece of housekeeping, I’m going to validate the status of my vSphere Client plug-ins :-

plugin-error

It seems everyone is happy except Mr Auto Deploy. I don’t use Auto Deploy in my lab, but red errors kind of piss me off anyway. I performed a quick Google and found a blog post by Kyle Gleed that tells you how to fix this. You simply start the Auto Deploy service on the appliance as it’s disabled by default. God bless the internet. However, Kyle’s instructions reference a management interface to the appliance which is no longer used in 6.0. In order to configure appliance based services, you must login to the Web Client as an administrator and enable it from there.

In the main Web Client home screen, click on the “Administration” button on the left and navigate down to Deployment/System Configuration as shown below:-

deploy-sysconfig

Then click “Services”..

services

And then right click on “Auto Deploy”.. and select “Edit Startup Type”..

rightclick-autodeploy

 

Select the Startup Type, depending on how you want the service to start on appliance boot – I’m choosing “Automatic“and click OK..

startup-type

And then manually start the service by right clicking again on “Auto Deploy” and selecting “Start”..

autodeploy-start

I then go back into Plugin Manager, enable the Auto Deploy plugin (accepting any certificate warnings) and we should be free of errors!

plugin-manager-fixed

As a side effect, we also have a nice button added to the home screen:-

autodeploy-button

Conclusion

So there we go, we now have an upgraded vCenter Server and ESXi host. I wouldn’t advise forcing the upgrade through the way I did unless you have nothing to lose – i.e. it’s a test lab or something non production. If the host hardware you are installing to is HCL listed, you should whizz through a VUM focused upgrade just fine.

If you get any odd errors in the Web Client, try deleting your browser cache and also the Flash Player cache from Control Panel. There could be something caught up in there from 5.x days.

Next stop is upgrades to the virtual machines – virtual hardware and VMware Tools. That is to come in Part III !

 

Advertisement

29-01-15

VCP-DT6 – What’s New?

I noticed the other day when looking for something entirely unconnected that the latest iteration of the VCP-DT has sneaked out, somewhat under the radar. The exam is intended to test your skills around the full Horizon View stack, including Workspace, vCenter Ops for View and Mirage. AppStacks doesn’t make it in there, but that’s not a great surprise. The ink is barely wet on the acquisition paperwork, so I suppose that will form part of the VCP7 track, or whatever it gets called.

So then, what’s new? The most obvious items that leap out from the exam blueprint are Mirage and Horizon Workspace. If you’ve been hiding under a rock or EUC stuff just isn’t your thing, Mirage is a product acquired from Wanova a couple of years back which performs layered image management of physical and virtual desktops. Horizon Workspace is a web based portal that runs from a Linux appliance which can present virtual desktops, applications and such via a unified web portal.

The exam itself is 120 questions, which does sound like rather a lot but you have 120 minutes in which to answer them all, so 1 question per minute. Even I can work that one out! If English isn’t your mother tongue, then you get an extra 30 minutes.

So other than Mirage and Workspace, what else does the exam cover? As you’d expect, as View requires a vSphere stack, there are some questions relating to the install and configuration of vCenter and ESXi hosts. That’s been in there since the start, so no real surprises there. You’ll also need to know the basic building blocks of a View infrastructure, so Connection Servers and the like. I notice the blueprint makes mention of RDSH (Terminal Services in old money), which of course is new in View 6.x., so as well as firewall rules you’ll need to know how to manage RDSH. There are also objectives around creating RDSH farms and desktop and application pools for RDSH apps.

View Cloud Pod architecture is featured as objective 2.6 – this again is a new feature of View 6.x and is lovingly referred to by me alone it seems as Linked Mode for View. This is where you can have two separate View instances and tie them logically together as one for fault tolerance and high availability.

Section 5 is pretty heavy on VMware Mirage, so my inference here is that you’re going to have to know this product reasonably well if you want to pass the exam. Installation and configuration seems to be the order of the day, so know how to install and configure the major components such as Management Server and Console, Web Manager, Mirage Server and Mirage Gateway Server. If you’ve not come across Mirage before and you want a primer to get you going for the exam, I recommend giving the free VMware Hands On LabHOL-MBL-1455 – Managing Desktops with VMware Mirage“a go.

Section 6 hammers Workspace Portal. As users become more and more mobile and have expectations of a consumer type “App Store” environment, I forsee Workspace Portal becoming ever more popular. It can also serve as a single point of entry for virtual desktops, RDSH applications and ThinApps. Again, if you don’t have time to spin up a test environment and you want to get to grips with the product a bit better, try the hands on lab “HOL-MBL-1453 – VMware Workspace Portal – Explore and Deploy“.

Virtual SAN gets a mention in objective 9.2. I suppose this is more of a product awareness thing, as in it’s first iteration it has a reasonably narrow use case in my opinion, certainly in the EUC space. Again the Hands On Labs come to the rescue to give you the insight on the product basics, try “HOL-SDC-1408 – VMware Virtual SAN 101“, which I would expect to give you enough knowledge to get past any questions you might have about Virtual SAN.

Finally, objective 12.3 covers off vCenter Operations Manager for View. Yes, I know it isn’t called vCOps anymore, but there was obviously a timing issue with the exam and the rebranding of the product! V4V is basically a View specific driver that snaps into the regular vCOps product, so you’ll need to know how to do that too. Guess what? There’s a lab for that! Have a look at “HOL-MBL-1452 – Horizon View – Use Cases” to get a first hand view of what V4V is all about.

As for me, I doubt I’ll sit this exam unless I have to (maintain Partner status etc.) as I’ll wait for the VCAP updated exams. I actually prefer the VCAP exams as they focus a lot more on “doing” rather than memorising numbers of scale and things like “What version of SQL do I use for vCenter?”. I’m also busy at the moment with other vendors’ certs, so hopefully the VCAP updates are a few months off yet!

If I get some time, I’ll try and put together a short study guide for the VCP6-DT exam, so I’ll tweet about that if and when it happens.

02-12-14

Teradici University Videos

A mercifully brief blog post today – if you’re looking to get down and dirty with PCoIP (and who isn’t?), there are some excellent free training videos on Teradici’s website. You will notice that they’re a little dated (2010 in some cases) but fundamentally the ideas remain the same and you can certainly take the knowledge forward into View 6.x deployments. You can also register for free on the support site, where there are some other tools and bits and pieces, but well worth the effort. Also worth a look if you’re studying for any View exams, some of the video content lends itself to sitting the two View VCAP exams.

The videos themselves are no longer than 30 mins, which makes them bite sized enough even for my gnat like span of attention. Check out the links below for further information:-

Teradici University landing page

PCoIP Protocol Introduction

PCoIP Protocol Implementation

PCoIP Protocol On The Network

PCoIP High Level Overview

Troubleshooting PCoIP Deployments

 

28-11-14

Notes From The Trenches : Horizon View Multimedia and Graphics Tuning

In the last few weeks I’ve spent a lot of time with different customers from different verticals looking at the performance of multimedia playback and hardware graphics rendering for applications. I thought I already had a good grasp of how all of these technologies work and how best to tune them, but it’s not until you’re presented with varying requirements that it really puts your skills to the test trying to find bottlenecks and in some cases, turning what you think you knew on it’s head.

This post relates solely to VMware Horizon View, but I guess could be applied to any virtual desktop solution, whether that be XenDesktop, vWorkspace or anything else. From a View perspective, we are always hammered with the message “know your use cases”. In many ways, this message gets saturated to the degree that a touch of snow blindness kicks in and you just make some general assumptions about what will work and what won’t.

To recap, at the very least before starting a View proof of concept (PoC), you should be asking yourself the following questions :-

  • How many users will require multimedia playback?
  • What level of quality is expected? 480p? 720p?
  • Will the videos be in full screen or will a smaller window suffice?
  • What applications will require OpenGL or DirectX support?

By covering off the above points, you put yourself in a position where the proof of concept can address a high proportion of user requirements. Don’t beat yourself up though if you don’t nail it 100% out of the gate, getting it right on day one is unheard of! Taking each point in turn, let’s look at why the responses to these points matter.

How many users will require multimedia playback?

Quite often, organisations limit access to video streaming sites such as YouTube, Vimeo, iPlayer and others to preserve office bandwidth. From a View perspective, this can do you a favour but there are always uses that may well slip under that radar and result in users having a degraded VDI experience that gives the solution an unmerited bad name. News websites such as Sky News or BBC News all have multimedia content these days, from radio interviews to video clips in small boxes with a full screen option.

The result of this question will help determine an appropriate pool design. If you have users that will use a lot of video (presenters, trainers, academics, for example), then it would make sense to have a dedicated pool of desktops for these users with more resource than would be given to “regular” users. Also, VMware’s recommendation is that good quality multimedia playback requires 2 vCPUs per virtual desktop, which in turn affects your infrastructure sizing requirements as this will impact your host:desktop consolidation ratios.

If the answer to this question “all users” then the next step is to determine what quality is expected.

What level of quality is expected? 480p? 720p?

If there are users expecting full screen 1080p native performance at 60 fps (same as a blu ray player etc.) then this level of expectation should be reset. The nature of a virtual desktop solution means that this won’t be achieved due to bandwidth, compression, hardware resource and other potential bottlenecks along the way. Remember a blu ray player has a single cable running from it to the TV, so there isn’t a bunch of other traffic flying down that cable, the cable length is typically less than a metre (or 3 feet 3⅜ inches in old money!) so it’s barely even an apples to oranges comparison.

In a View environment, PCoIP is the display protocol of choice. RDP is also available, but generally lacks the flexibility and tuning options afforded to us by PCoIP. In addition to this, there are several hardware options to help augment and improve the PCoIP experience. If you recall, Teradici are the owners of PCoIP and VMware use this protocol in View and Teradici have both host card based and zero client based options to offload PCoIP processing to dedicated hardware.

One other thing worth bearing in mind is that in my experience, the human eye can’t really tell the difference between 720p and 1080p, so if you get mired in discussions with end users about this, you’re kind of missing the point. If you can deliver video at a good resolution (720p) and a good frame rate, the rest is just splitting hairs in my opinion.

Will the video be in full screen or smaller screen?

This fact obviously matters because the larger the video playback surface area, the more resource required to push it along. In the tests I’ve done, standard 480p video in a full screen uses around 20MB more GPU RAM than a video embedded into a web page (BBC News is a good example of this). If full screen high quality video playback is required, you need to factor this into pool designs and the PoC. As always though, benchmark it yourself during the PoC phase, as your mileage will inevitably vary.

What applications will require OpenGL or DirectX support?

As we ascend to the more demanding groups of users, it’s key to know who requires extra grunt on their virtual desktop. This again affects pool design but also means that some consideration will need to be given to specialist graphics hardware to enable these users to work effectively in a virtual environment as they do in the physical world. Some examples of applications requiring this level of support include but are not limited to:-

(All OpenGL apps)

  • Adobe After Effects, Photoshop CS3/CS4, Premiere Pro
  • AutoCAD
  • Google Earth
  • Google SketchUp
  • Scilab
  • Virtools

DirectX seems to be typically used in gaming, so it’s debatable whether or not there’s a use case there in general environments. That being said, one recent customer teaches computer game design and coding, which would place this use case right in the middle of your View deployment.

What are my options?

There is a very good white paper from VMware that discusses graphics acceleration in View and is well worth a read. It focusses primarily on the NVIDIA GRID solution which I’ve discussed previously and is available here. So let’s say you’ve done your scoping exercise and completed a desktop assessment, where do you go from here? There are lots of resources out there if your Google-Fu is up to snuff that will tell you what the different varieties of hardware there are, I’m just going to provide a simple reference based on my testing.

Multimedia Playback

For good multimedia performance, look for a thin or zero client with the Teradici chip installed. I recently tested the 10Zig V1200P Zero Client with a customer and I have to say the multimedia performance was exceptional. This was partly due to the excellent bandwidth to desktop that the customer had, but also with the Tera2 chip installed, the PCoIP processing gets offloaded to a dedicated hardware device, in a similar way to say a TCP/IP Offload Engine works on a network card. Of course it goes without saying that performance with hardware vs software will always be superior and this was the case in my experience.

If you can’t stretch that far budget wise, ensure you follow best practice and have 2 vCPU per virtual desktop as video playback is a purely CPU based operation. If you run up Task Manager on two desktops, one uniprocessor and one multiprocessor, you should see the difference in CPU spiking during multimedia playback. Remember though not to oversubscribe vCPU – there is not a linear improvement the more vCPUs you add to a desktop, in actual fact you could slow the whole environment down. This is well known in the virtualisation community and there is a good explanation as to why here. So in short? No more than 2 vCPUs per desktop unless a specific use case calls for it, which would be dependent on multiprocessor desktop applications.

Applications requiring OpenGL or DirectX support

Primarily in the case of OpenGL, I have seen improved performance using NVIDIA GRID K1 cards operating in vSGA mode. As stated in a previous post, make sure you have the latest versions of ESXi, Horizon View and the NVIDIA VIB on the ESXi host. So how much better is hardware acceleration? A picture says a thousand words, so I’ve pictured below the output from Passmark 3D test that shows a desktop using software rendering and 128 MB video RAM and a desktop using hardware rendering with 128MB video RAM.

IMG_20141120_134042929 IMG_20141120_134035087On the same two desktops I’ve also got the 2D Passmark test results shown below:-

IMG_20141120_133950443 IMG_20141120_134005415

Apologies for the general rubbishness of the pictures, they were taken with a phone camera, but it gives you a sense as to what kind of performance you can expect with hardware acceleration. Thankfully Passmark is a free tool and can be downloaded from here.

How much Video RAM should I allocate to my pool?

Great question and somewhat subjective. VMware state that if you are using Windows 7 with Aero (and let’s be honest, most people are) that you should set a value between 64MB – 128MB in the pool settings (I couldn’t find any change in this advice for View 6). In my experience, this is fine for basic use cases, but where multimedia is required and especially good quality video playback, that won’t be enough. We talk all the time about right sizing View deployments, but one gap really in the analysis for me is to how to right size video RAM per pool.

I found a free utility called GPU-Z which is really useful for benchmarking performance during multimedia playback and determining the high watermark for video RAM usage. This can then be taken forward into the View design and ensure multimedia users have enough resource for their use case. GPU-Z can be downloaded here and is pretty simple to use. For my testing purposes, I ran it up during normal Windows navigation (starting and closing apps, web pages etc.)

gpuz-1

The above screenshot shows the tool running on a laptop and gives you the kind of idea of what information can be gleaned. The Sensors tab is the one with all the key information, the screen shot below shows the “idle” state of the GPU during normal operations.

gpuz-2

As you can see above, we’re already at 206MB of video RAM and we’re not really doing anything. If your pool is set to the recommended 128MB RAM, there is an obvious pinch point there already. This will lead to degraded multimedia performance as there isn’t sufficient resource. Playing a small screen video from the BBC News website, the video RAM usage climbs to 284MB as shown below.

gpuz-3-video-sm

And then finally on the full screen version of the video, the usage climbs still further to 363MB. So in this particular case, you’d be looking to set an initial high pool watermark of 370MB video RAM (for example) to give the user sufficient horse power for video playback in View. That being said, the results will most likely be lower in a virtual environment, so make sure you continue to monitor usage during the PoC phase to ensure that the pool video RAM size is neither under or over specced.

gpuz-4-video-lg

Conclusions

In summary, I’d say look at the following:-

  • Review end user requirements for graphics performance, including multimedia and application support
  • Spend time tuning PCoIP if you find that bandwidth is a constraint, but remember this is usually a balance and/or trade off between picture quality and playback smoothness. Audio quality is also affected by tuning maximum audio bandwidth
  • Conduct a PoC to level expectation appropriately
  • Use free tools such as Passmark and GPU-Z to accurately benchmark the environment and right size the capacity
  • Obtain eval units if you are going down the thin/zero client route and test out all the different use cases you know of to see which unit is most appropriate
  • vSGA with NVIDIA GRID cards can be very cost effective when applications require additional 3D resource
  • Consider the use of a Teradici APEX 2800 card to offload some graphics processing to dedicated hardware in the host (caveat : I haven’t tested this and Teradici – feel free to loan me one!)

08-11-14

Adventures in NVIDIA GRID K1 and Horizon View

Just had a really interesting week helping a customer with a proof of concept environment using Horizon View 6 and an NVIDIA GRID K1 card, so I thought I’d blog about it. You know, like you do. Anyway, this customer already had a View 5.2 environment running on vSphere 5.1 on a Cisco UCS back end. They use 10 Zig V-1200 zero clients on the desktop to provide virtual desktops to end users. As they are an education customer providing tuition on 3D rendering and computer games production, they wanted to see how far they could push a K1 card and get acceptable performance for end users. Ultimately, the customer’s goal is to move away from fat clients as much as possible and move over to thin or zero clients.

I have to say that in my opinion,  there is not a great deal of content out there about K1 cards and Horizon View. One of the best articles I’ve seen is by my good friend Steve Dunne, where he conducted a PoC with a customer using dedicated VGA. In our case, we were testing out sVGA or Shared VGA as the TCO of dedicated would be far too high and impossible to justify to the cheque signers. This PoC involved a Cisco UCS C240-M3 with an NVIDIA K1 card pre-installed. The K1 card has four GPU cores and 16GB RAM on board and takes up two PCI slots.

I’m not going to produce a highly structured and technical test plan with performance metrics as this really isn’t the way we ran the initial testing. It was really a bit more ad hoc than that. We ran the following basic tests:-

– Official 720p “Furious 7” trailer from YouTube (replete with hopelessly unrealistic stunts)

– Official 1080p “Fury” trailer from YouTube  (replete with hopelessly unrealistic acting)

– Manipulating a pre-assembled dune buggy type unit in LEGO Digital Designer

– Manipulating objects in 3DS Max

When we started off at View 5.2, we found that video playback was very choppy, lip sync was out on the trailers and 3D objects would just hang on the screen. Not the most auspicious of starts, so I ensured the NVIDIA VIB for ESXi 5.1 was the latest version (it was) and ESXi was at 5.1 U1. We made a single change at a time and went back over the test list above to see what difference it made. We initially set the test pool to be hardware 3D renderer, with 256MB of video RAM. The command gpuvm was checked to ensure the test VMs were indeed assigned to the GRID K1 card and we used nvidia-smi -l to monitor the GPU usage during the testing process.

Remember that when you configure video RAM in a desktop pool, half of the RAM is assigned from host memory and the other half is from the GRID K1 card, so keep this in mind when sizing your environment. The goal of the customer is to provide enough capacity for 50 concurrent heavy 3D users per host, so two GRID K1 cards per host is what they’re looking at, pending testing and based on the K120Q profile.

So after performing some Google-Fu, the next change we decided to make was to add the Teradici audio driver to the base image, the main reason for this was that there is apparently a known issue with 10Zig devices and audio sync, so we thought we’d give it a try. Although audio quality and sync did improve, it still didn’t really give us the results we were looking for.

Having gone back to the drawing board (and forums), the next change we made was to upgrade the View agent on the virtual desktop from 5.2 to 5.3. Some customers in the VMware Communities forums had observed some fairly major performance improvements doing this, without the need to upgrade the rest of the View infrastructure to 5.3. We did this and boy did things improve! It was like night and day and the video was much improved, barely flickered at all and the audio was perfect. At this point we decided that View 5.2 was obviously not going to give us the performance we needed to put this environment in front of power users for UAT.

The decision was taken to upgrade the identical but unused parallel environment at another site from vSphere 5.1 and View 5.2 to vSphere 5.5 U2 and View 6.0.1. The reasoning behind this was that I knew that PCoIP had improved markedly in 6.0.1 from the 5.x days, plus is meant we were testing on the latest platform available. Once we upgraded the environment and re-ran the tests, we saw further improvement without major pool or image changes. We updated VMware Tools and also the View Agent to the latest versions as part of the upgrade and the customer was really impressed with the results.

In fact, as we were watching the 720p and 1080p videos, we remarked that you’d never know you were watching it on a zero client, basically streamed from a data centre. That remark is quite telling, as if a bunch of grizzled techies say that, end users are likely to be even more chirpy! We also performed more rudimentary testing with LEGO Digital Designer and also 3DS Max, with improved results. The PoC kit has now been left with the customer, as really we need subject matter experts to test whether or not this solution provides acceptable end user performance to totally replace fat clients.

What is the takeway from this?

The takeaway is that  in my opinion, VDI is following a similar path to what datacentre virtualisation followed a few years back. First you take the quick and easy wins such as web servers and file servers and then you get more ambitious and virtualise database servers and messaging servers once confidence in the platform has been established.

VDI has started with the lighter use of the “knowledge user” who uses a web browser and some Office applications to a basic level. Now this target has been proven and conquered, we’re moving up the stack to concentrate on users who require more grunt out of their virtual desktop. The improvements in Horizon View, ESXi and now with the support of hardware vendors such as NVIDIA and Teradici, native levels of performance for some heavy use cases can be achieved at a sensible cost.

That being said, running a PoC will also help finding where the performance tipping point is and what realistic expectations are. In our case, early testing has shown that video, audio and smaller scale 3D object manipulation is more than feasible and a realistic goal for production. However, much larger vehicles such as the Unreal Development Kit may still be best suited to dedicated gaming hardware rather than a virtual desktop environment. The one thing of course I haven’t mentioned is the fact that the customer is GigE to the desktop and have a 10GigE backbone between their two sites. This makes a huge difference. I doubt we’d have seen the same results on a 100Mbps/1Gbps equivalent environment.

The customer will be testing the PoC until the end of December, hopefully I can share the results nearer the time as to whether or not they proceed and if so, how they do it. Hopefully for anyone researching or testing NVIDIA GRID cards in a VDI environment, this has been some help.

NVIDIA GRID Card

 

17-10-14

VMware Flings are a curious concept. Not quite production code, yet not quite hobby code either. However, it’s a veritable goldmine of useful tools and applications to complement, manage and augment your VMware estate. For example, Auto Deploy is a very useful feature of vSphere, but I don’t see a lot of it in the wild as most folks think it’s a little too “command line” to be worth the effort. Having to do most of the work in PowerShell puts a lot of people off (and I have to say, I don’t blame them. I winced when it came up on my VCAP-DCA exam). So what has someone done? Written a GUI tool for it. A solution that fixed a problem, not a solution looking for a problem.

I’m not here to discuss that one, however. I’m primarily an EUC boy and there are several useful (did I say free?) tools on VMware Flings that can bail out your average Horizon View Joe. One of which is ViewDbChk. Yes, I know it doesn’t have a fancy name, but it’s a true bacon saver in the sense that I found myself saying “Wow, ViewDbChk really saved my bacon there”. As View folks will know, data is splattered across various different repositories, including a database for View Events, a database for View Composer, a database for vCenter and the ADAM/LDS database, replicated between the Connection Servers.

This is where ViewDBChk comes into play. On occasion, what is seen in vCenter and what is shown in View Administrator can get a little out of whack, and this can slow you down or cause you unforeseen issues. For example, if you’re plain impatient like me, you may find that a pool deletion has apparently hung, so you help it along by manually torching some VMs and replica VMs from vCenter (in the lab, obviously. Never in the real world!). At this point the delete task can get stalled because there are now no objects for View to refer to, or things could be the other way around where View has left orphaned VMs behind in vCenter and you just need to perform a little housekeeping. ViewDbChk is really useful in performing this clean sweep and keeping your vCenter and View installations in perfect sync.

To use the tool, first download it from the Flings website, unzip and copy the files over to any Connection Server in your View installation you want to tidy up. Then you need to start a command prompt as ViewDBChk is a command line tool, ensuring you right click and use the “Run As Administrator” option, otherwise you’ll get some fairly cryptic errors and this caught me out at first. From your Administrator command prompt, run ViewDbChk –scanMachines. This will run through and check your View estate for issues, as shown below (desktop/pool names redacted!) :-

 

scan1

 

From this point on it’s really just a case of following the bouncing ball. One word to note is that for me, just typing “y” or “n” for the questions did not seem to work properly, so I just typed in “yes” and “no”. Obviously for the tool to work it’s magic, you kind of have to let it do it’s thing 😉

Once some duff VMs have been found, you are asked to disable the pool affected. Then as shown below, the affected VMs are listed with the reason for the ongoing issue, in this case the master VM or snapshot couldn’t be found in vCenter (ooops!). At this point the tool will ask you if you want it to tidy that up. Say yes and the tool will do the rest. Once all affected VMs have been cleaned up, you are then prompted to re-enable the pool, as per the screen shot below.

scan2

This is all well and good for a couple of VMs, but what if your View environment is in a stinky old state? Well you can add switches to the tool to force through a tidy up without having to constantly say “yes”. Also worth bearing in mind is the in built limit of 5 VMs before you have to run the tool again. To circumvent this, use the command ViewDBChk –scanMachines –force –limit 100 to set an upper limit of 100 VMs (or whatever you deem appropriate).

Props to Griff James for this cool tool, and happy flinging!!

 

15-08-14

VCAP-DTA Consolidated Study Guide 1.5 Released

Now that I have finally passed, I’ve been back over the Consolidated VCAP-DTA Study Guide and updated it. I’ve done some small formatting changes so it’s a little easier to read, as well as correcting a few typos I found and adding in the two quick reference tables for PCoIP and Windows image tuning that I blogged about previously. I’ve also added in a few exam tips for those thinking of sitting soon. As this road has now come to a bit of an end, I won’t be maintaining this guide from here on in until the VCAP6-DTA is released, which I expect to be a little way off just yet.

I’ll also update the sample questions guide, but that may follow in a week or so.

Enjoy!

 

14-08-14

VCAP-DTA Exam Experience (Redux)

So I got back about an hour ago from my second sitting of the VCAP-DTA exam in Leeds. As regular readers will know, I sat it a couple of weeks ago and failed. The score report I got back gave me some suggestions on the areas I wasn’t quite so hot on, so I spent some extra time going back over those and making sure I understood them (two factor authentication and group policy settings to name but two). I had the mindset that if I didn’t pass it today, it would be a would be a while before I’d be back as my employer wants me to get up to speed with the latest MCSE track and quickly, meaning I wouldn’t have the bandwidth (or the mental capacity!) to take on both at the same time.

Nor did it help that I was running a little late, I’d had a coffee and an early lunch because as usual, my appointment spanned over lunch time and I didn’t want to get hungry. By the time I set off for the test centre, it was getting close to my appointment time start so I had to run the last couple of hundred yards to make it on time. With that and a coffee swilling around inside me, my eyes were on stalks when the exam started!

I’m not sure how large the pool of questions is, but I did get a few I’d had previously, including some I came a little unstuck on. I tried to move on if I felt I was getting bogged down, with the intention of picking up as many points as possible elsewhere. Somewhat surprisingly, by the time I’d completed question 23, I still had 30 minutes left. So I went back, quickly checking my answers and referring to the admin guide on the ones I was stuck on.

It turned out to be a pretty effective strategy, although I did go back to delete and restart one “answer” I’d started and then ran out of time, as the desktop refresh was a little laggier than last time, and I couldn’t quite complete the task in time.

I came out feeling tense as I thought I’d passed last time and didn’t,  and I was mindful that I hadn’t completed all tasks with the loss of points that entails. Anyway, I got the score report back quickly again (thanks Joshua!) and this time thankfully I’ve passed! So now I have four VCAPs and I can afford to dream of the far off pot of gold that is the VCDX. I’m not going to think about that yet, as I’ve a box full of Microsoft exams to get done before I can get to that. Still, in the words of Peter Venkman, “we came, we saw, we kicked it’s ASS!”

 

G-1136 - We came, we saw, we kicked its ass

 

07-08-14

VCAP-DTA PCoIP Tuning Quick  Reference

Following on from my previous post regarding tuning your Windows 7 image for the purposes of the VCAP-DTA exam, I lifted the following table from the View 5.2 Best Practices guide. In the exam you don’t have a lot of time and you’re probably going to have to tackle a question at some stage about PCoIP performance or be asked to tune it for certain restrictive network conditions. The table below has a handful of settings which should help you go a decent way to getting good marks for this question:-

SETTING

DEFAULT RECOMMENDATION

DESCRIPTION

Build to lossless

On

Turn Off

Enables the ability to enable or disable build to lossless
Session Audio BWlimit

500Kbps

50 – 100Kbps

Reduces bandwidth usage of audio with usable quality
Maximum frame rate

30

Change to 10-15 based on network settings

In WAN conditions, this will be helpful for video playback and fast graphics operations
Maximum sessionbandwidth

n/a

Set per network conditions

Good for better bandwidth estimation
Client side cache size

250MB

Set per client-side memory available

This allows you to configure the client side image cache size

05-08-14

Windows 7 Desktop Tuning Quick Reference

Another item that kicked me a bit in the VCAP-DTA exam (as per the RADIUS post below) was tuning the Windows 7 desktop image for VDI. I mean, that could be a million settings, couldn’t it? Where do you start? You could take the whole of the three hours of the exam tweaking and changing! While going through a View best practices white paper for another piece of work that I’m doing, I came across a handy chart for a handful of basic items you should tune on your Windows 7 desktop, which is a damn sight easier than remembering hundreds of registry keys and group policy settings!

 

PARAMETER CONFIGURATION
vCPU 1 for WinXP and Win7 and Win8

2 for multimedia intensive apps

Memory 512-768 MB for WinXP

1GB for 32-bit Win7 and Win82GB for 64-bit Win7 and Win8

3GB for Win7 and Win8 64-bit for memory-intensive apps

Network adapter VMXnet3, flexible
Storage adapter PVSCSI or LSI Logic SAS
VMware Tools Latest installed
Visual settings “Adjust to best performance”

Disable Animations for Windows Maximize and Minimize operations

Use default cursor for busy and working cursor

Disable services Windows Update, Super-fetch, Windows Index
Group policy settings Disable Hibernation

Screensaver to None

Other settings Turn off clear-type

Disable fading effectsDisable auto-play and external drive caching for quick release

Disable last access timestamps (1)

 

1) Set the registry key HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Filesystem/
NtfsDisableLastAccessUpdate to 1