I have to say was a bit sceptical about VDI support for Lync 2013 when it was announced. Although I had come across requirement for VDI with Lync 2010, it was only with the largest customers which in reality is small section of the overall market however for these customers the lack of proper VDI support was a deployment blocker for them.
Sadly due to these larger scale customers not really being on on-board with Lync A/V and Enterprise Voice in a big way this somewhat opened more questions about the viability about Lync being Enterprise ready which wasn’t really valid given this very specific use case. For a lot of these customers they are additional large scale Parlono Mindalign and Group Chat customers too which has also been addressed in the 2013 release, which is a double win and very much is now giving confidence to the enterprise market as these large scale enterprise customers are on-board with Lync Audio and Video as well as Enterprise Voice however for these customers displacing or replacing their PBX’s isn’t going to happen overnight however Lync is very much part of their overly voice strategy now because of BYOD and also flexible working.
Although there was 3rd party support for VDI with 2010, Microsoft would only support voice in these scenario by using Phone Edition [1] which isn’t really VDI its just MPOP and there was no support for video.
[1] Client virtualization support for the Lync 2010 client and the Lync 2010 Group Chat client http://support.microsoft.com/kb/2560826
With 2013 there is continued 3rd party VDI support, however I am not going to discuss that here today maybe at later date.
There are a few elements for Lync VDI:
- Endpoint Client
- Endpoint Devices
- Lync VDI Plug-in
- Virtual Desktop
- Lync 2013 Client
- And obviously the Lync Server 2013 infrastructure
All of these element work together in the following architecture from Nexthop Article [2]:
[2] Microsoft Lync 2013 in a Virtual Desktop Infrastructure http://blogs.technet.com/b/nexthop/archive/2012/07/31/microsoft-lync-2013-preview-in-a-virtual-desktop-infrastructure.aspx
With endpoint client you would be wrong in thinking this is just a thin client from the likes of HP and Wyse etc, yes it will be for some customers but it doesn’t have to be. There are actually a number of use cases. With the thin clients they come in a number of shape and sizes, the can’t be zero client as the Lync VDI plug-in is required to be installed typically they will ship with either Windows 7 embedded or the Windows 8 version. The larger thin clients can have additional PCIe slots to be able to install more display adapters to drive more screens for users with these use cases.
However the endpoint client can be any Windows capable machine running Windows 7 or Windows 8 (which is requirement for the Lync VDI plug-in) so if you have aging machine in the estate then reprovisioning (or repurposing) these machines will push these investments a bit further whilst you work out your BYOD strategy, in fact you need to be thinking about VDI to protecting you intellectual property as a part of an overall DLP strategy for BYOD.
It is worth pointing out that these endpoints should not run the main Lync client this run on the Virtual Desktop. Also in terms of licensing the Lync client will be licensed as part of the corporate Microsoft agreement however VDI plug-in is a free download.
As another use case is using Windows to Go which is basically the ability to run Windows 8 Enterprise booting off a USB Stick, why is this important? Again could be used in a BYOD strategy although where it is more important is for people who travel to countries with data security concerns for example China whereby potentially a company issues USB stick with a Windows to Go build with the Lync VDI plug-in deployed then the traveller can pick up a cheap laptop at the airport on route to China and when in China can boot off the USB stick and can use Lync and access corporate resource via VDI and before leaving the laptop is discarded/left and the USB key for snapped and security and data is protected. This is a concern and reality for some customers operating in these locations and although is an extreme scenario but in most cases the laptop doesn’t leave country
As a point with thin clients and repurposed machines then these will be generally low powered and low spec’ed machine therefore you can’t expect HD video to work. In testing with a low power dual core CPU from AMD with VGA video the endpoint was maxed out at 80%-100% CPU. Your unlikely to find too many quad-core or Intel Core i3/5/7 powered machine coming to the end of their investment cycles to bear this in mind, however there are some device solutions which I will discuss in a bit.
With the Endpoint Devices these connect direct to the endpoint client via USB. As always Lync optimised devices are recommended. In terms of webcams, a new Logitech Webcam C930e [2] has just come to the market which as well as being optimised for Lync and supports 1080p it also supports support H.264 with Scalable Video Coding on the webcam itself offloading from the CPU. I haven’t had to opportunity to test one myself (hint) but having seen one running and compared it to a standard optimised webcam and there was about a 40-50% reduction is CPU utilisation, this was running on a Windows 8 system. But I need to run one or two myself.
[2] Logitech Webcam C930e http://www.logitech.com/en-gb/product/webcam-c930e-business
With the Lync VDI Plug-in this runs on the endpoint client, a Datagram Transport Layer Security (DTLS) [3] and RDP 8.0 [4] update are required for Windows 7 machines these should be installed first and then the Lync VDI Plug-in [5a and 5b] and then finally the latest Lync update (which was May 2013 at the time of writing).
[3] An update is available that adds support for DTLS in Windows 7 SP1 and Windows Server 2008 R2 SP1 http://support.microsoft.com/kb/2574819
[4] Description of the Remote Desktop Protocol 8.0 update for Windows 7 SP1 and Windows Server 2008 R2 SP1 http://support.microsoft.com/kb/2592687
[5a] Microsoft Lync VDI 2013 plugin (32 bit) http://www.microsoft.com/en-us/download/details.aspx?id=35457
[5b] Microsoft Lync VDI 2013 plugin (64 bit) http://www.microsoft.com/en-us/download/details.aspx?id=35454
Again I will point out that on the endpoint device shouldn’t run the full Lync client so will be dependent on the VDI infrastructure.
The Virtual Desktop running on VDI infrastructure doesn’t have to be anything special in fact I have just being testing using just a basic virtual machine without any of the 3rd party VDI features. This VM has to be running Windows 7 or 8 and it runs the full licensed Lync client, the free basic client (primarily for Office 365) doesn’t support VDI.
From a Lync server 2013 perspective EnableMediaRedirection is set to True for all VDI users using the Set-CsClientPolicy cmdlet so Lync Server 2010 won’t work! Nor will using Office 365, so on-premise only at the moment.
Limitation and Quirks
There are some documented known limitation [6] Multi-view video (aka Gallery view or continuous presence) is not available so only older active speaker switching also Panoramic video isn’t available either if you hoping to us some RoundTables (Polycom CX5000). In testing we have seen some video quirks which is resolve by either popping out the video and then back or switch between full screen and windowed video, but I hope that these now minor issues are resolved in later updates and stability has much improved with the first few updates. If you move around the video window you will notice is lags a little behind this is VDI plug-in tracking the window movement, this is expected
[6] Known Limitations for VDI http://technet.microsoft.com/en-us/library/jj204982.aspx
Testing, Setup and Pairing
I mentioned Windows To Go [7] earlier, what you basically need to a 32GB fast USB 3.0 drive or you can get a device which is certified for Windows To Go (obviously at a price premium) or just an external hard drive which I’ve been using.
Booting is supported off USB 2.0 and 3.0 port on PC’s certified for Windows 7 or Windows 8.
And before you ask about the Lync Windows Store App for Windows 8 (LyncMX) access to the Store is disabled with Windows To Go due to apps purchased from the Store are bound to the host PC’s hardware.
[7] Windows To Go: Feature Overview http://technet.microsoft.com/en-us/library/hh831833.aspx
Here is how you create a Windows To Go installation on a usb drive:
You will need is:
- Windows Automated Installation Kit (AIK) for Windows 7 [8] in fact you do only need ImageX tool
- Windows 8 Enterprise ISO image and only the install.wim file from the .\sources folder
[8] http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=5753
There are three basic steps:
Step 1: Prepare USB Drive
- Run Command Prompt as Admin then run DiskPart and use the following commands:
- list disk
- select disk n (make sure replacing n with the with the correct drive from the list disk command)
- clean
- create partition primary
- format fs=ntfs quick
- active
- assign
- exit
Step 2: Apply Image
- Run Command Prompt as Admin and run
- ImageX.exe /apply install.wim 1 U:\ (where U:\ is the drive assigned to your USB drive)
Step 3: Apply boot record
- Again Run the Command Prompt Admin and run
- bcdboot.exe U:\windows /s U: /f all (where U: is the drive assigned to your USB drive)
That’s it!
Next we boot off the USB drive, complete the OOBE mini setup, add to domain and install the Lync VDI plug-in and latest update.
Once you’re all prepared insert the headset and webcam in the endpoint device, and then you need to RDP from the endpoint to the virtual desktop (VM) there are a couple settings needed:
Under Remote Audio Settings (on the Local Resources Tab) set the following:
- Under Remote audio playback, select Play on this computer
- Under Remote audio recording, select Do not record
Then in Performance (on the Experience Tab) we need to disable Persistent bitmap caching
Then we are good to connect to our Virtual Desktop. Then we can launch the Lync 2013 client and sign-in with any luck the Lync client detects the VDI plug-in and will Lync prompts the user to re-enter their credentials (we can save the password here):
And after a minute what you want to look for is that the pairing was successful in the bottom right of the Lync 2013 client:
Quality of Service (QoS)
For the most part Quality of Service (QoS) isn’t much different for VDI however the Policy-based QoS setting you’ve define in your Group Policy you probably have communicator.exe defined as the application name if you’re doing full DSCP marking running Lync 2010 or lync.exe defined if your running Lync 2013. If your just doing port based QoS on your network infrastructure then you haven’t anything to worry about.
With the Lync VDI plug-in is doesn’t run using lync.exe so your existing QoS Group Policy won’t work. As you can see in the screenshot below the media runs under the context of mstsc.exe
I picked this screenshot of a network trace from the endpoint device as there is a bit of everything in it!
Now this opens an interesting discussion on the QoS settings themselves as they are primarily based on the source port and as we know the remote desktop protocol (RDP) has a destination port of TCP/3389 but the source port could be anything so there is a ‘chance’ with defining mstsc.exe for Lync media DSCP marking that you could unintentionally market actual RDP traffic across your network (less than ideal if it is DSCP marked as EF), it would be by chance but you might want to think about using the destination port for this VDI specific QoS rule. I will have a think about it and create another Lync Question.
Troubleshooting
Well there isn’t too much to look at just the usual client log/tracing which does exist on the endpoint device in the LyncVdiPluing-UccApi-0.uccApilog file.
Hopefully you have found this useful and interesting and although isn’t a game changer or red wedding event, VDI is more than just about thin clients and is your thinking about deploying it you will need to factor in the RDP traffic within your Lync network planning.
