Zero Clients, Host cards, Tera Chipsets and APEX card; what is what in VMware View and PCoIP land?

I have noticed people are mixing up/are confused about the different PCoIP hardware bits which can be used in a VMware View environment. For example, people sometimes think the Teradici APEX card is a GPU. Below I would like to give you a brief overview of what is what. I will also add links to sites where you can find more information.

Zero Clients;

ZC’s are access devices used by View users to access their virtual desktops using PCoIP as the protocol. They are called ZC’s because they don’t have an OS running on them. Firmware runs on top of the Teradici chipset. The chip today is the Tera 1 chipset. The latest firmware can be downloaded from the Teradici support site.

ZC’s come in standalone devices but also as integrated monitors.

Teradici develops the chipsets and firmware. It is Teradici who adds functionality to the ZC’s and not VMware. There is a chance that VMware adds new features in a new VMware View release and that the current ZC firmware/chipsets don’t support the new features. A current example is Client Side Caching; a feature in VMware View 5.0 but doesn’t work on ZC’s. Teradici continues developing and supporting new features and will continue releasing new version of the Tera chip and firmware.

Personally, I do like ZC’s. I’m not too fond of the name “Zero Client” because there is firmware running, so not zero or nothing. Anyway… The good part is the firmware’s footprint is very small and doesn’t need much patching like a typical Operating System. Also, no hard drive which can break or local data which can leak. On top of that, a lot of Zero Client don’t use a lot of power. Teradici also offers a ZC management tool for free. You can manage your clients from 1 central place.

Host cards;

Host cards are Teradici cards you put into a PC/Workstation, which you put in a datacenter. Instead of connecting to a virtual desktop, a user connects to a physical Workstation with a Host card.  On that Workstation an OS (support for Linux, Mac and Windows) is running with applications. Companies use this solution for high-end graphical users. Inside the Workstation a professional graphics card is present. The output of that card is being send to the Host card and put on the network as a PCoIP stream to the user’s access device. The users most likely will use a Zero Client as their access device and can use VMware View as their broker (Workstation can only run Windows). The software driver for the host cards can also be found on the Teradici support website.  A white paper about Host cards and VMware View has been published as well.

APEX 2800 Server Offload Card;

When a VMware View user connects to a virtual desktop and is doing a lot of multimedia related work, like watching videos, all that encoding/rendering needs to be done in software of the ESX servers. Remember, PCoIP is a host-based protocol. Read more about PCoIP basics here.

Encoding/rendering and compressing cost ESX CPU cycles that might lead to a decrease of your consolidation ratio when a lot of multimedia is being done. In that case, to ensure the high level of consolidation, a Teradici APEX 2800 Server Offload Card can be used. This card will take over that encoding from the server CPU’s. Don’t mix this card with a Graphics card or GPU. The APEX is an encoding offload card and for sure not a GPU! It won’t add hardware 3D capabilities to your VM’s. That’s something else VMware is developing with NVIDIA. I will come back to that later.

Hopefully this overview gives you a clear view of what is what in PCoIP/Teradici land.

VMware View4-Templates; PCoIP Install and Configure

VMware has heard about screen re-sizing issues when using the PCoIP protocol. Same goes for me. I have heard about this on vSphere and VI3 platforms with View4. Symptoms are;

You cannot resize the screen,it doesn’t resize automatically, resizing only works down instead of up etc.

In February 2010 a VMware KB came out around this; KB1018158, This KB describes How to prepare your template for using the PCoIP protocol.

I will copy paste the whole KB and afterwards tell you about my experiences and things to keep in mind. So far this has been working fine on vSphere and VI3, 3.5 with XP.

To ensure that a pool has all of the correct PCoIP functionality:

  1. Install View 4 on a supported platform (VMware vSphere 4 or VMware Infrastructure 3.5 Update 3 or 4).
  2. Create a Windows XP, Windows Vista, or Windows 7 virtual machine.
  3. Ensure that VMware Tools is installed, then install the View Agent, then the .NET framework.Note: The order is important. If you install any of these applications in the wrong order, or if you do not know the order in which they were installed, uninstall all 3, then reinstall in the correct order.
  4. In View Manager, set this desktop up as an individual desktop and entitle it.
  5. Ensure that you have the PCoIP settings for monitor and max resolution set the way you want them in the pool.
  6. Log in once and ensure that the basics work.
  7. If PCoIP or screen resizing is not already working, logout of the desktop and use the Reset option from inside of View Manager.Note: Do not reboot by clicking ShutdownRestart in the virtual machine. PCoIP is dependent upon the appropriate amount of video memory being allocated to the virtual machine. Since this is a virtual hardware setting (that needs to be in place before the virtual machine starts up), it is applied as a change in the .vmx file. If the virtual machine has already been started, it is essential that this virtual machine be restarted so that the .vmx file is re-read and the changes are used. Using Shutdown >Restart option inside the virtual machine does not force the .vmx to be re-read, as this does not cold boot the machine (from the VirtualCenter perspective) to refresh the virtual hardware. Using theShutdown Restart option from either VirtualCenter or View Manager (which issues the command via VirtualCenter) is the best way to make sure this file gets read properly.
  8. Log in again and make sure screen resizing works.
  9. Shutdown the virtual machine.
  10. Take a Snapshot.
  11. Remove the individual virtual machine assignment from View Manager.Note: If you do not perform this step, the virtual machine does not show up as an available parent in the pool creation process.
  12. Create your pool. It should work as expected.Note: When the appropriate video memory settings are in place for the parent virtual machine, you can create a pool based on this virtual machine and machines in that pool properly inherit the .vmx settings on first boot.

I have to say, I always do follow this KB until point 3. The most important part is the order of installation of VMware Tools, View Agents and .Net. Follow that order for sure. After that, I edit the VM’s properties in vCenter and change the properties of the virtual Video card; by default it is set to 4MB of RAM and I manually set it to 128MB. In vSphere this is very easy to do through the vCenter Client. In VI3, 3.5 you will have to manually change it in the .vmx file.

Keep in mind though, till vSphere 4 Update 1 you can’t set the Video card RAM to anything above 30MB. You could but VMotion of the VM’s will fail when the vRAM is over 30MB: KB1011971.

After the vRAM has been changed to 128MB and I use this VM to roll out a pool (Full or Linked Clone), when I’m using the View Manager to add a pool, I always set the Display Settings to 4 monitors and the maximum resolution of 2560×1600. Screen resizing works every time.

PCoIP; Basics

There isn’t a VDI topic people talk about more than about remote display protocols. “Which protocol is better, more efficient, faster”.. etc. For sure this is an important subject but not conclusivly. Yes, end users need to have a great user experience; the same and preferably better than in a physical environment. If they don’t, they won’t adopt centralized virtual desktops, but there are other, equal important parts like management/scalability/density.

For now I would like to cover the basics around PC over IP (PCoIP), VMware’s display protocol in View4 besides RDP.

First of all I want to start telling you PCoIP isn’t a new protocol. PCoIP has been around for years. It’s been developed by Teradici. Teradici created hardware to process this protocol. In the data center you need, for example, a blade pc with a TERA Host chip and on the client side you need a device with TERA chip.

VMware signed a co-development agreement with Teradici to put the protocol into VMware’s View software. The View Agent inside the VM and the View Client on the access device are handling the protocol now in View4. Software to software was the first step. VMware is also aiming to support software-hardware and hardware-hardware. Vmware wants to provide 1 solution that can support all kinds of end users; task workers, knowledge workers and heavy power users. Maybe those power users need a hardware PCoIP solution but it still can be put inside the data center, managed through the View Manager and there is 1 uniform way of connecting to (virtual) desktops.

First question I often get is if the new software way is putting more load on the ESX/vSphere servers. Instead of handling it in hardware, the load is being handled in software and thus handled by the ESX/vSphere server. Yes, rendering graphical content will cost CPU cycles but how much is hard to say. It all depends. I know this sounds easy but it does all depend on what’s being done inside the VM. The heavier the graphical content, the more CPU cycles it will cost you. Remember 1 other thing also; with PCoIP, end users are able to view richer multi media content than with RDP. Users will make use of that so resource usage will go up. Give me a car that can drive 100 km/h which uses 1 liter per 15 km’s and I will try and drive 100 km/h. Give me a car that can go up to 150 km/h but uses 1 liter per 13 km’s and i will do that.

Below I will talk about a couple of characteristics of PCoIP;

Codecs/encryption; PCoIP is codec agnostic. It just “looks” at the changed pixels on the screen. Basically it is comparing the changed pixels in the frame buffer of the video card. It will send over those changed pixels to the access device, compressed and encrypted (AES). With VMware View you don’t need to be afraid the solution doesn’t support a specific codec like Flash, Silverlight, MPEG etc. You also don’t need to have those codecs available on access devices which decreases management.

Progressive Build; With this capability PCoIP will send just enough data over the network for the image to be useful.  Over time the protocol will send more data until a full resolution image has been rendered. The progressive build capability applies in low bandwidth, high latency scenarios. Below you see 3 pictures. From grainy to full resolution;

Lossless/lossy compression; Primarily PCoIP will always try to build up the exact same image that is in the VM. See the 3 images above. It will drop pixels when it can’t build up to lossless because the frames are changing too quickly, like in a movie; In an action scene, not all pixels need to be transferred to the access device. Frames are changing too quickly, the eyes won’t notice the loss of pixels.

Resolution/size/color; PCoIP supports up to 4 monitors with a max resolution of 1920×1200 each. Because of Pivot technology, the monitors can be of different sizes and resolutions. They also can be placed horizontally and vertically. 32 bit color is also supported. The window automatically resizes to the maximum resolution of the monitor.

USB/Audio Redirection; PCoIP handles USB redirection via a virtual channel. This means you can put a USB device in your access device and it will appear in the VM. This also means for audio. Bi directional audio and video isn’t officially supported at the moment.

Adaptive Network Adjustment; PCoIP will use the bandwidth it can get its hands on. A single session could use many Mbps. However, this usage will decrease when more sessions from other users are setup on the network. Usage will adjust to the amount of “room” available.

PCoIP is a great protocol. In my opinion, this “first version” is equal or better than protocols that have been around for many years. This tells me there is a lot of potential for great things in the future.