Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
App-V Volume Format Specification

App-V Volume Format Specification

Ratings: (0)|Views: 80 |Likes:
Published by userfrominternet

More info:

Published by: userfrominternet on Jun 23, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

06/23/2011

pdf

text

original

 
Microsoft Application Virtualization Volume Format Specification
Microsoft Corporation. All rights reserved. By using or providing feedback on these materials, you agree to by accepting the licenseagreement.
MICROSOFT APPLICATIONVIRTUALIZATION VOLUME FORMATSPECIFICATION
May 15
th
, 2010 - Version 1.0
 Abstract 
This specification describes the file format, internal structure and layout of volume files used by theMicrosoft Application Virtualization (hereafter
App-V
)
product.
1
 
Con
te
n
ts
2 Introduction ..................................................................................................................................... 23 Overview of App-V Volume File ........................................................................................................ 23.1 App-V Volume Format .............................................................................................................. 33.2 Container ................................................................................................................................. 43.3 Permanent First 16 Containers ................................................................................................. 93.4 Remaining containers after the first 16 ................................................................................... 204 Appendix ....................................................................................................................................... 31
 
Microsoft Application Virtualization Volume Format Specification
Microsoft Corporation. All rights reserved. By using or providing feedback on these materials, you agree to by accepting the licenseagreement.
2
 
INTRODUCTION
The reader should be familiar with the overall concept of application virtualization technology as well asconcepts and terminology commonly used in conjunction with App-V.The following terminology is used in this paper:
App-V
 
Volume
Fi
le
 
The App-V volume file-system is a file based file-system that is all the data is stored in specialvolume files with any of the following file extensions: .fsd, .fsg, .pkg, and .tmp.
C
onta
i
ner
 
A container is a data structure which contains some metadata about a data structure (i.e.directory structure, volume information, allocation map, file structure etc.
S
torage
B
lock
 
Storage Blocks serve as fixed size data containers which are marked as either used or free by theStorage Block Allocation Bitmap.
 
P
ackage
 
A set of applications that have been sequenced by the App-V Sequencer. These applicationsshare a common root and run under the same virtual environment.
 
3
 
O
VE
R
V
I
EW
OF
A
PP
-V
 
V
OLUM
E
FIL
E
 
The App-Vvolume file-system is a file based file-systemthat is all the data is stored in special volumefileswith any of the following file extensions: .fsd, .fsg, .pkg, and .tmp,rather than on the disk asindividual files. A summary of each of the volume files is stated below:
FSD C
ache
 
Volume
(.fsd)
: This volume file maintains read-only package data which is basicallythe content of the SFT file. Thus FSD Cache Volume file acts as a true cache, where any data, if lost, can be fully recovered from the App-V Server.
G
lobal
FSD C
ache
 
Volume
(.fs
g
)
: This volume maintains any data that is created in the contextof processes that are not registered within App-Vvirtual environment or are not related to anypackage. An example of such processes would be the App-VListener process, where it is notregistered within App-V environment, but it is still allowed to access the App-Vfile system. Itscontents are not recoverable if lost.While it is important to maintain the integrity of this volume,it has to be noted that if this volume is lost, it is not going to affect the streaming of thepackages since this volume does not maintain any package specific data.
 
Microsoft Application Virtualization Volume Format Specification
Microsoft Corporation. All rights reserved. By using or providing feedback on these materials, you agree to by accepting the licenseagreement.
P
er
Sys
tem
 
P
ackage
 
Volume
(.
pkg/
.
tmp
)
: There are 2 types of volumes in this case: one typemaintainsany changes that were made to package specific files that are marked asAPP_DATA/APP_CONFIG, and the other one maintains any changes that were made to packagespecific files that are marked as USER_DATA/USER_CONFIG. These changes are made by allowedsystem processes and by definition these are global to all users, and will affect all users loggedon to the App-VClient. In multi-user environment all launches and shutdowns that occur onbehalf of different users are maintained. These volumesare initialized when a user launches thefirst instance of the package, and will be closed, when the last instance of the package is closed.
P
er
Us
er
P
ackage
 
Volume
(.
pkg/
.
tmp
)
: Again there are 2 types of volumes in this case: one typemaintains any changes that were made to package specific files that are marked asUSER_DATA/USER_CONFIG, and the other one maintains any changes that were made topackage specific files that are marked as APP_DATA/APP_CONFIG. Such changes are made bythe applications of a specific package running under a user context. The USER_DATA PackageVolume file will reside in user specific profile, and in roaming and folder-redirection profileenvironments it will be accessible to a user no matter what server user is logged on to. Thesesvolumes will be initialized when the user launches the first instance of the package, and will beclosed, when the user closes the last instance of the package.
 
For any volume other than FSD Cache Volume and Global FSD Cache Volume,while a volume is in-use wewill be accessing its temporary copy (.tmp
)
. The master copy will be updated only upon volumeshutdown, which occurs when the last reference of the volume is closed. If any system failures occurwhile the volume is in-use that cause volume session shutdown or/and system reboot, the temporarycopy of the volume will be discarded and any changes made to it will be lost. In case of FSD CacheVolume file, its contents will be analyzed upon reboot to determine if the previous abnormal shutdowncould corrupt its contents, and if any or all data has to be discarded and re-fetched from the App-VServer.
3.
1
 
 APP-V VOLUME FORMAT
The volume files provide a persistent data storage for all the data that has to be used by App-V FileSystem between system shutdowns and reboots. Since all these different types of volumes share thesame format, from now on in the rest of the document they will be treated as a single type of volume.The root of a volume file is populated with several well-known Containers (explained in the nextsection
)
thattogether describe all the remaining data stored in a volume file. At the beginning, avolumefile is going to be divided into predetermined number of fixed size Storage Blocks, where a Blocksize is a configurable parameter. In present implementation, the default Storage Block size is 4 KB, andthe default Container size is 512 bytes.Even though these 2 block sizes are configurable, it is advised notto change the default sizes which may produce undesired side effects in the File System. The number of Storage Blocks is determined by the size of the volume file, which is also a configurable parameter.Storage Blocks serve as fixed size data containers which are marked as either usedor free by the StorageBlock Allocation Bitmap. The primary layout of a volume fileis shown in the figure 1:

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->