Building Legos at Work

How many of you still play with Legos? This is one of the benefits of having kids… I get to buy and play with Legos without anyone thinking that I’m too old for those toys. It’s amazing what options you have, although I find that I end up spending most of my time using one of these three

  1. Duplos
  2. Technics
  3. Mindstorms

When many of us were young, we probably started using Duplos. They gave you early experiences on how to build simple animals and buildings with really big blocks. You couldn’t do intricate details with Duplos because they are too big, but that really wasn’t the point. The point was to be able to do some basic building.

From there, many people, who still enjoyed Legos, moved up into the Technics (Although I still call them Expert Legos. I must be old). You could start to do some really amazing things. You had much smaller pieces, you had axels and gears. You could now build realistic cars, trains or planes and you could even see pistons move as the car rolled. Technics provided a more realistic experience. They allowed the person to do more than Duplos.

And now we move to the Mindstorms. This is for those people who want to take their Lego entertainment to the next level with robotics and sensors. Your experience with Mindstorms was only limited to your own imagination. You could do something simple or create complex series of movements to make a multi-jointed arm, all with Legos.

So how does this relate to my typical virtual desktop blogs? Just like Legos, you also have different options for virtual desktops based on the type of experience you want and need. Many of your users can get by with a fairly rigid configuration. Just as Duplos limit what can be done, so too does the Centrally Delivered Desktop Model. Sure you get some enjoyment and benefit, but some of your users will be limited and demand greater flexibility.

Those users might move into a power user group and start using an Optimally Managed Desktop that gives them greater levels of functionality and experiences, just like the Technics did.

But not everyone will be satisfied yet. You will have those expert users who want more. They want complete control to customize their desktop as they see fit. They want and need the power to build/develop their ideas. These users often need a Transformed Service Desktop. Just like Mindstorms, they have many options for their desktop. And the options they integrate will be exactly what they need.

Not everyone requires Mindstorms, many people are better suited for Technics or Duplos. But what is amazing is that they all work together. The same thing can be said with the Desktop Transformation Model. Whether you need a centrally delivered, optimally managed or transformed service desktop, they all work together in a single architecture. And this is what Doug Demskis and I will be discussing at Synergy 2011 in San Francisco in session SYN328: Designing an architecture for desktop transformation that can adapt and scale, which is all part of the 5-part Desktop Transformation Series.

  1. SYN329: Understanding the desktop transformation process and getting started
  2. SYN328: Designing an architecture for desktop transformation that can adapt and scale
  3. SYN305: Storage infrastructure design guidelines for successful desktop transformation
  4. SYN348: Design and deliver a delightful virtual desktop user experience the first time and every time
  5. SYN349: Lessons learned from the desktop transformation frontier – the Good, the Bad and the Ugly

But in order to see it, you must Register for Synergy 2011.

Daniel – Lead Architect
XenDesktop Design Handbook


Application compatibility with Windows 7

How many of you have migrated to Windows 7? If the company you work for has, I bet there are a host of applications that are not compatible with Windows 7 (although Win7 is much better at app compatibility than Vista). So what options do you have? . Let’s say your application worked fine with Windows XP, does that mean your users need XP and Windows 7 desktops? Unfortunately, I’ve seen too many people end up with multiple desktops at their desk. Not sure about you, but it seems like a waste to have two desktops for a simple issue as application compatibility

No. The user can still use Windows 7 and with a little Citrix-Magic in the backend, you can merge everything together.

First, let’s get the application working. We know it works on Windows XP, but let’s see if it works on Windows Server 2003 with XenApp. If it does we can get better scalability by having many users share the XenApp server instead of allocating many Windows XP virtual desktops. Just so you know, this is what I call Hosted Applications: applications that run remotely on a XenApp server.

If the application doesn’t’ work on Windows 2003, you can go down the VM-Hosted Application path. This uses a Windows XP operating system to run the applications. But the user will not see the Windows XP desktop, they only se the application. So when the user is on a Windows 7 desktop, they can still get to their XP-based applications seamlessly, which is critical. You know how confusing it is to have two start menus?

What does the user see is an important question.  The user will see, if using Citrix Receiver, application icons for all of their applications in the start menu. Launching an application could either launch a local app, a hosted app, a VM-hosted app or maybe even an App-V app.  The user won’t know, and that is how it should be.

Debating on which path to take? Think of it this way:

  1. XenApp option gives you much better scalability and the majority of application work
  2. VM-Hosted Apps should work for every application that worked on a physical Windows XP desktop

Daniel – Lead Architect
XenDesktop Design Handbook

Virtual Desktops in the Classroom

I got a great question into the Ask the Architect email bag that I thought it would be great to share and potentially create a good discussion. Let’s say you are in a classroom setting where students are only in the class for 4 weeks and then after those 4 weeks, you need to reset all desktops back to a base image. Before desktop virtualization, you could use Ghost or other tools. But could we use desktop virtualization for this? Does it make sense?

As this environment is already using the local, physical desktops, I’m assuming the desktops have adequate resources, so let’s continue to use them by using the Streamed VHD FlexCast model. For those unfamiliar with Streamed VHD, I’ve provided a very rough drawing

Because the desktops have enough resources, we want to use those for computing power, thus reducing the need to buy a lot of servers in the data center. All we need is a Provisioning Services server. The classroom image (1 per classroom or 1 for all classrooms) will be streamed across the network to each physical desktop.

The unique thing with this use case is that students need to be able to modify the desktops and then when the 4 weeks class ends, those modifications are thrown away. With Provisioning Services, you simply use the Differential Disks, which will store the changes (write cache or delta disk) on the Provisioning Services server. So the PVS server will be holding the differential disks for all of the classroom desktops.

When the 4 week class is over, you simply remove the differencing disks and the desktops reset to the base state, ready for a new class. Pretty slick.

What do you need to make this work?

  1. One or two PVS servers (for redundancy) with enough storage to hold the disk image and the differential disks. You will want these disks to be fast as well to reduce latency
  2. At least 100Mbps switched to each endpoint
  3. Endpoints that are similar in hardware configuration (the more identical they are, the easier this will be)
  4. Network boot capabilities on the desktops and configured within the environment (DHCP, PXE, TFTP)

Note: If you want to see how to configure the difference disk or to see it in action, take a look at this CitrixTV Video.

Daniel – Lead Architect
😄 Design Handbook

Streamed VHD

I was recently asked a question about how we can still utilize endpoint hardware computing power when doing desktop virtualization. If doing a hosted VM-based virtual desktop, you can do the client-side rendering of flash and other multimedia activities, but there is another option that most people forget about… Streamed VHD. You simply turn that endpoint into a virtual desktop. Did you know you could do this? Honestly, I was happy when I got this question. Too many people forget about the Streamed VHD option and it solves so many of the Hosted VM-Based challenges like IOPS, storage, server costs, server footprint, scalability, etc. I think we should be talking about this option more as I think it is a great alternative for a large number of users.

But let’s get to the details. XenDesktop includes a feature called Provisioning Services. Most people think of this to deliver a desktop image to virtual machines, or even a XenApp image to a virtual machine. But guess what? You can also stream to bare metal hardware (desktop or server hardware). And that hardware doesn’t have to be locked up in the data center. It can be sitting under your desk. All we need is a network. That means you effectively turn your endpoint into a virtual desktop. BTW, this is what is known as Streamed VHD; at least that is what it is called within Citrix’s FlexCast model.

So let’s say you decided to go with Streamed VHD instead of the hosted VM-based desktop model (VDI), what do you need to think about?

  • Desktop Image: One of the beauties about using Provisioning Services to stream to a VM is that each VM is identical from a hardware perspective. The hardware differences are hidden due because of the hypervisor. However, when streaming to a physical endpoint, this is not the case. Your desktop image must contain all of the drivers for the endpoint.     This doesn’t seem like a big deal until you start looking at little nuances across 500 different physical endpoints, especially if there were not purchased at the same time. This doesn’t’ necessarily mean you have to now have 500 images. There is a thing called common image, which allows you to use one image and deliver it to multiple hardware types (assuming the chipset is the same). Honestly, I would only do common image to similar hardware profiles, as it will make things much easier. If you try to create one image for all of your Intel-based desktops, you will have an image with hundreds or thousands of different audio, video, network, etc drivers. Can become quite difficult to manage.
  • Network Connectivity: Streamed VHD requires a network connection. In fact, it requires a fairly fast network connection. How fast? 100 Mbps switched at least. Remember, to boot up Windows 7, you will need to send roughly 200MB across the wire. If you have a slow network link, that 200 MB will take longer, thus adding a perceived slowness to the solution. The faster your network, the more responsive the desktop will seem.
  • Network Stability: Even if you have a fast network, if it isn’t stable, you will notice. Streamed VHD is Just In Time, meaning that Provisioning Services only sends what the endpoint needs at that instant. If you are dropping packets, you will have slowness as the data is retransmitted.
  • Write Cache: The write cache should be stored on the endpoints physical drives. That way we reduce the impact on the network and improve performance.
  • User Data: Just like with Hosted VM-Based pooled desktops, a streamed VHD is often done in a read-only fashion where any changes are deleted upon reboot. That means you need good profile/data practices. User’s application settings should be stored on a network drive. All user data should be stored on a network drive.

This isn’t a complete list of what to look out for when doing Streamed VHD, but it is a start. One thing should look familiar; many of the recommendations mimic those of a Hosted VM-based desktop or a hosted shared desktop model. You are able to re-use the same design principles regardless of the type of virtual desktop you decide to implement. So it isn’t like we have to learn a whole set of new design best practices, we just have to apply them to a different type of virtual desktop.

Hope this helps

Daniel – Lead Architect
XenDesktop Design Handbook