For ISVs
White Papers
Video Garden

Extract the App-V Cache

We have established a Golden Image containing a fully cached set of virtual applications. While it would be possible to use the image as is, we prefer to save on storage, and more particularly storage bandwidth.

When a new VDI session is spun up, the entire Golden Image is copied. The base Windows 7 image might be under 20GB without any applications. Because we are adding all applications that any user might need into this cache, it may more than double that size.

By extracting and removing the large cache, and configuring App-V client to use a read-only remote cache, we reduce the size of the Golden Image that must be copied. The cache itself will not need to be copied. Portions of it will be paged in directly from the cache into memory of the VM when needed.

In this step, we will extract the cache file from the image.

Ultimately, the App-V cache is placed in a single file, named "sftfs.fsd". When the operating system, which includes the App-V client, is booted, background services start up the App-V file system which exposes itself as the virtual drive (Q:\ by default). The App-V file system driver then opens the sftfs.fsd file with a file lock that prevents any other process or kernel component from reading this file directly. Thus, to copy off the file we need to remove this lock.

This is not as simple as stopping the services. If you stop the services, the file system remains loaded and the lock remains. Instead, we must disable the services and reboot, as is shown below.

In the screen-shot below, we can see that there are two important App-V services, the services named "Application Virtualization Client" and "Application Virtualization Service Agent".

Select the first of these services, and set the property to "Disabled". Selecting "Manual" will not work as other portions of the App-V client will manually start the service after reboot, if allowed.

Do the same for the Service Agent.

Now reboot, and log back in.

Locate the sftfs.fsd file. By default, this is normally located under the Global folder in the Public User's area, but when I install the App-V client I always configure the Global folder to be placed under C:\AppVirt. Copy the file.

Create a file share to store the cache file. This share will need to be on direct storage class store, such as a SAN, or on a drive local to the VDI host. The access to this cache file by the VDI file system driver needs to be immediate to achieve optimum performance, thus placing it on an external windows file share may not work well. Paste the file into this share.

Here we can see the completed file copy. We rename the file, appending the name with the current date to help provide a version control.

Our simple 11 packages consume almost 2GB of space, so this operation will take a lot of time with a complete list of application packages present. Keep in mind that if you use compression when sequencing, the files will be compressed on the Source share, but were decompressed when we ran the deployment tool and streamed them into the cache.

Just as I prefer to use symbolic links for the source share folders, I also prefer to use symbolic links. Below, we create a file symbolic link, so that the VDI client can always refer to the generic name and be redirected to the current cache file image.

We can now proceede to the next step,, where we will finalize the image.

Return to Preparation of Golden Image