Moving CellServDB files (once again)

Jeffrey Altman <[email protected]> Fri, 01 Feb 2008 12:10:06 -0800
Newsgroups gmane.comp.file-systems.openafs.devel.win32
Organization Secure Endpoints Inc.
Message-ID <[email protected]>
With the deployment of 64-bit Windows becoming more widespread
it has become clear to me that once again the CellServDB files
are going to have to be moved to a new location.

The CellServDB file was originally stored in the the %windir%
directory as afsdcell.ini.  This was a problem for three reasons.
First, the file is not a INI file.  Second, applications should
not be writing to the %windir% directory.  Third, the name was
different from that used on UNIX and therefore maintaining a
common file for distribution was annoying at best.

As part of the removal of all configuration files from the
%windir% directory and the transition to the use of the Windows
registry for OpenAFS configuration, the afsdcell.ini file was
renamed to CellServDB and moved to the
"\Program Files\OpenAFS\Client" directory.

Unfortunately, storing configuration data in the \Program Files
tree does not work for applications that provide both 64-bit
and 32-bit libraries.  The 64-bit libraries access "\Program Files"
as "\Program Files" but for the 32-bit applications "\Program Files"
is shadowed to "\Program Files (x86)".  As a result, dual copies of
the CellServDB file must be kept in sync.

For this reason Microsoft recommends that applications store
their configuration data files in
"\Documents and Settings\All Users\Application Data\" which
on Vista and 2008 Server is shadowed from
"\Users\All Users\Application Data".

For those who wish to preserve the existing location, there
are two methods available for configuring where the
CellServDB file should be accessed from that could be used
to preserve the existing behavior.  First there is the
"HKLM\SOFTWARE\OpenAFS\Client" key's "CellServDBDir" value
which specifies the directory in which the "CellServDB"
file should be found.  For the WOW64 environment this value
needs to be replicated in
"HKLM\SOFTWARE\Wow6432Node\OpenAFS\Client" in order for the
32-bit executables to find it.

The second method is the "AFSCONF" environment variable
which also specifies the directory in which the "CellServDB"
file should be located in.  The environment variable takes
precedence over the registry setting.

Does anyone foresee a problem with this transition?

Jeffrey Altman
Secure Endpoints Inc.
smime.p7s (application/x-pkcs7-signature, 3.3 KB) - not displayed