How do I define failover servers for delivery groups


Although XenApp 6.5 worker groups do not exist in XenApp 7.x, we’ve seen how similar functionality is available.

Instead of comparing XenApp 6.5 with XenApp 7.x, let’s put some of these new technologies into practice by solving the following design requirement.

  • Define a set of XenApp hosts as failover servers for a group of XenApp hosts delivering the primary app? In addition, the failover servers have the following conditions:
    • The failover servers are a subset of servers hosting their own set of apps
    • The failover servers only host the primary app in the event the primary hosts are unavailable

If I diagram the requirements, it would look something like the following:

high-levelThis diagram is simple to understand, but it lacks the information need to turn it into a reality. In order to build this solution in XenApp 7.12+, you would have a diagram like the following, which includes machine catalogs, delivery groups, application groups, delivery group priorities and tags.

detailedLet’s break this down into sections.

  1. A single machine catalog contains all XenApp hosts. The image should include the apps as part of the image (if Unidesk elastic layering is not used)
  2. Set tags on the VMs as follows
    1. XenApp VM #1: Office tag
    2. XenApp VM #2: Office and LoB tags
    3. XenApp VM #3: LoB tag
    4. XenApp VM #4: LoB tag
    5. XenApp VM #5: LoB tag
  3. Two delivery groups use the previously created machine catalog.
    1. Office Delivery Group: Server 1 and Server 2
    2. LoB Delivery Group: Server 3, Server 4 and Server 5
  4. Two application groups with the following specs
    1. Office App Group:
      1. Includes three apps: Word, PowerPoint and Excel
      2. Assigned to the Office delivery group
      3. Restricted to VMs with tag of “Office”
    2. LoB App Group:
      1. Includes one app: LoB
      2. Assigned to the LoB delivery group with a priority of “0”
      3. Assigned to the Office delivery group with a priority of “10”
      4. Restricted to VMs with tag of “LoB”

When this is configured properly, you will see the following in the properties of the LoB app group.

priorityDue to the usage of tags, the LoB app group contains all 3 servers from the LoB delivery group but only 1 of the 2 Office delivery group servers.

This configuration works as follows:

  1. For the Office apps
    1. Word, PowerPoint and Excel will only run from servers 1 and 2.
  2. For the LoB app
    1. The LoB app can only run from server 2, 3, 4 and 5
    2. The LoB app will only run from server 2 if servers 3, 4 and 5 are unavailable

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Videos

Advertisements

How do I increase Delivery Group (Worker Group) capacity


As described in the blog How do I migrate a XenApp worker group structure, we saw how the use of Delivery groups, application groups and tags allow us to replicate XenApp 6.5 worker group capabilities to XenApp 7.x. There are some operational differences between Worker Groups and Delivery Groups, namely, how do increase the capacity of the delivery/worker group.

One of the more interesting capabilities of XenApp 6.5 worker groups was in the ways an admin could increase worker group capacity.  By adding a server into a worker group, the capacity of the worker group increased.

Many organizations took this approach a step further by basing worker group membership on Active Directory group membership or Active Directory OU membership.  In the XenApp console, each worker group was assigned to a single Active Directory group or OU. Any server in the Active Directory group or OU would be a member of that worker group.

To make this possible, you duplicate the worker group structure into Active Directory as groups or OUs.  If I have 3 worker groups, I have 3 Active Directory groups or OUs.  When a worker group requires additional capacity, the admin would add a XenApp computer object into the Active Directory group or OU.

Personally, I have a problem with the Active Directory methods.

  1. If you use the Active Directory OU approach, a XenApp server cannot belong to multiple worker groups.
  2. Using Active Directory for worker group membership requires the use of a second console (Active Directory Users and Computers).
  3. Using Active Directory for worker group membership requires the admin have rights to modify Active directory groups or OUs.
  4. Using Active Directory requires duplication of effort. You have to build your worker group structure in XenApp, then create a similar structure in Active Directory.

But for those who do use the Active Method, you might be wondering how you can create the same structure in XenApp 7.x.

As we know, worker groups in XenApp 7.x do not exist. Instead, we use delivery groups. The two most common ways to increase the capacity of a delivery group are to either

  1. Add Machines: Select the delivery group and add a machine. Studio then lets the admin select the machine catalog and number of machines to add. This approach simply takes the next available machine and adds it to the delivery group.
    add-machines
  2. Add to Delivery Group: In the search node, an admin can select a specific machine identity and add it to a particular delivery group.  This approach allows the admin to be specific about which machine ID should belong to which delivery group. This approach is similar to using Active Directory groups as it allows the admin to be specific about which machine belongs to which group.
    add-machines1

I tend to see the XenApp 7.x approach to be easier in that I can do it all from a single console, Studio.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Videos

Your network is hurting your application experience


A few times a year I get addicted to Xbox. Once the kids go to sleep, I can easily spend hours playing Mass Effect, Fallout or Assassin’s Creed.

The games are wonderful and immersive, which is why I spent over 100 hours playing Fallout 3 and another 100+ hours in Fallout New Vegas.  Unfortunately, I’ve experienced some annoying things with these games.  I’ll be in one of the final battles of Mass Effect 3 against the Reapers when the game starts stuttering.  Do you know how hard it is to aim when the system stutters?

Game stuttering, system stuttering or application stuttering is a great way to severely hurt the user experience. How can we reduce app stutters? We need to look at the underlying reason for the stuttering and figure out how to correct.

Network latency and packet loss is a big reason why users might experience stuttering in an application. If a packet gets lost or a packet times out due to high latency, that packet must be retransmitted.  Retransmissions take time. And if you experience a lot of retransmissions, you experience a lot of application stutters.

We’ve already seen how Citrix’s Adaptive Transport impacts

  1. File Copying
  2. Video Viewing

But what does it do to the application experience? See for yourself

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Videos

 

 

 

Your network is hurting your video viewing experience


I just binged watched the first season of “The Expanse”. Awesome! (BTW, the books are even better.)

I would say 90% of my TV viewing is done with streaming media either from Netflix, Amazon or my home library. Nothing is better at ruining a good viewing session than the spinning circle of oblivion as the video stream is being loaded.

Unfortunately, I had the unfortunate experience of watching that spinning circle of frustration multiple times per episode. Running an Internet speed test revealed I had plenty of bandwidth but, for some reason, my latency was through the roof (400+ms).

My solution was to reboot my cable modem and wireless access points throughout my house. This always fixes the problems. I even made it easy for my family to reboot the system when I was traveling.

What I find interesting about this experience is how latency, and not bandwidth, can impact the viewing experience of video content. Lucky for me, the solution was easy… Reboot. But what if the latency isn’t a technical challenge, but more of a physical challenge based on the location of the viewer and the location of the content?

How can we overcome poor network latency and packet loss?

In a previous video that talked about Adaptive Transport, the focus was on file copying.  The results were astounding.

The question now is, would Adaptive Transport also have an impact on the video viewing experience?

Short answer: Yes. Yes it does.

And just in case you were worried about me and my personal happiness, I did fix my home network issues by replacing my WiFi router with better WiFi access points. No more rebooting devices every 2 days.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Videos

How do I migrate a XenApp worker group structure


In XenApp 6.5, there is the concept of a worker group.  Before that, we called them load managed groups or application silos.  Basically, it is  group of XenApp servers publishing the same set of applications.  If you publish an app on one server, that published app is also available across every other server in the worker group.

workergroup

In XenApp 7.x, you can think of a delivery group like a worker group.  A delivery group is associated to a machine catalog, which is a group of XenApp servers.  If I publish an app within the delivery group, all XenApp servers in that delivery group also publishes the application.

deliverygroupThis is basic functionality, which has been around for a very long time.

However, worker groups also had an interesting characteristic in that XenApp servers could belong to multiple worker groups at the same time.

This means I could have a group of XenApp servers hosting a set of applications.  A subset of those servers could also belong to another worker group publishing another group of applications. The list of resources a particular XenApp server delivers is the sum of the apps from all assigned worker groups.

wgadvBased on this example,

  • XenApp servers 1 and 2 deliver applications 1-4 and 5-6.
  • XenApp servers 3 and 4 deliver applications 1-4 and 7-8.

With XenApp 7.x, the rules for a delivery group are more strict.  A XenApp server can only belong to a single delivery group.  In order to create the same structure in XenApp 7.x that we had in XenApp 6.5, we have to change our approach.

In XenApp 7.x, we need to create a superset of published resources and assign at the Delivery Group layer.  We then use VM and app group tags to create subsets by limiting which applications can be hosted from which XenApp servers.

dgadvThe result is the same as XenApp 6.5.

  • XenApp servers 1 and 2 deliver applications 1-4 and 5-6.
  • XenApp servers 3 and 4 deliver applications 1-4 and 7-8.

Remember this:

  • In XenApp 6.5, you create subsets and merge into supersets
  • In XenApp 7.x, you create supersets and divide into subsets

And to make your move from XenApp 6.5 to XenApp 7.x easier, use your XenApp 6.5 worker group names as your XenApp 7.x app group tags and VM tags.

If you wish to learn more, tune in to Tech Talks To Go, with the first episode focusing on Worker Groups.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Videos

Your network is killing your file copy performance


We’ve all been there before, rush hour traffic.

You know how it goes. You slowly increase speed to 5mph, then 10, then 15. Excitement is building because you are now going 20mph. Then, out of nowhere, you slam on the brakes and your speed immediately drops back to 0mph. We eventually start over again, 5, 10, 15mph before we slam our foot on the brakes again bringing us to a complete stop.

At this point it is OK to yell “SERENITY NOW!!!

Unfortunately, this is how packets are being sent across the LAN/WAN. This is how TCP functions via the AIMD (Additive Increments, Multiplicative Decrements) congestion control algorithm. TCP slowly increases transmission speed and then drastically falls back when a re-transmission is required due to a timeout, collision or packet loss.

This works fine on a LAN where bandwidth is high, packet loss is low and latency is low. But as latency and packet loss increases, as is common with a WAN environment, TCP is never able to get up to full speed. We are left with only partial utilization of our WAN link.

We see this all of the time when we try to copy a file. On a LAN, the speed of the file copy remains fairly constant, but on a WAN, the bandwidth utilization slowly increases before dropping back to 0, just like rush hour traffic.

Look at what Citrix did!

Adaptive Transport is able to overcome WAN latency and packet loss. It makes a simple task, like file copying, twice as fast as a traditional Windows 10 PC and 3 times as fast as a VMware Horizon desktop.

Adaptive Transport is an alternative to traditional TCP. And it is more than simply a switch to UDP. Adaptive Transport is a newly developed Citrix enlightened data transport optimized for WAN environments by overcoming high latency and packet loss resulting in faster file copying.

protocol

If the network supports the new transport, HDX will use it. If it does not, HDX falls back to TCP.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Videos

How Do I Create ICA Files


In older versions of XenApp (6.5 and earlier), we could create ICA files, which were essentially shortcuts, and email them to users or place them on a static web page.

With XenApp 7.x, ICA files are no longer available.  However, StoreFront provides an alternative with a little option called “Website Shortcuts”.

It is a feature I was unaware of until I needed it for a project.

After you setup your environment with StoreFront servers, Delivery controllers and VDI resources, you do the following:

  1. Launch the StoreFront console
  2. Select “Stores”
  3. Select your store
  4. Select “Manage Receiver for Websites”
  5. Select “Configure”
  6. Select “Website Shortcuts”

This should give you a screen like the following

websiteshortcutIf you plan to host the resource links from an internal web site, you want to add the website’s URL into the websites section. This will trust launches from that location only.  (note: A URL must be entered or the resource will not start)

Once the trusted websites are defined, selecting the “Get Shortcuts” link will send the admin to StoreFront, where each resource will contain a unique shortcut.  Those shortcuts can be added into the web site.

appshortcuts

But what if you want to email the link to users?

Those same links can be used, but because they are not on the trusted list of websites, users will receive a warning message they must acknowledge.

untrusted

This prompt can be disabled by going to “Advanced Settings” and deselecting “Prompt for untrusted shortcuts”.  (Note: A URL must still be added to the list of websites or else the resource will not launch.  Any URL can be used).

trustconfigAdditional options:

  1. Pass through authentication: If users must use their domain credentials to launch the resource, it might be worthwhile to setup pass through authentication so the users are not subjected to authentication challenges.
  2. Unauthenticated users: If the application incorporates its own authentication, it might be worthwhile to enable unauthenticated user access to the resource.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 LTSR Handbook
XenApp Best Practices
XenApp Videos

My virtual desktop journey