SETUP WORK - DURING CLUSTER INSTALLATION
Unlike the SQL Server setup, the Exchange Setup isn't straight forward. The SQL Setup process is really straight forward. You need to double click on Setup.exe and then follow the on-screen steps to create an SQL Server database instance in the cluster. On the other hand, before you run the Exchange Cluster Setup to install an Exchange virtual Server, you need to perform a couple of steps on Active Directory. Exchange Setup also performs a couple of steps internally to make sure the server on which you are going to install Exchange is ready. These checks are performed by the setup regardless of the installation mode (i.e. whether on a stand-alone server or a cluster).
An Exchange Virtual Server is an instance running on the cluster with all the Exchange Services. Setup requires you to install binary files on all the nodes one by one and then create Exchange Virtual Server resources on the cluster.
This section is dedicated to the Exchange Clustering setup. This doesn't explain or give insight about any Exchange Component and also doesn't talk about how to cluster Exchange Server. Instead it covers the internal process of the Exchange Cluster Setup. The figure below shows the clustering installation process and the functions it executes to begin the cluster installation.
FIGURE B - Exchange Cluster Setup Internal Process
Extending the Schema
Exchange setup requires you to run the Setup /PrepareForest (Exchange 2007) or ForestPrep (Exchange 2000) in order to extend the Active Directory schema with its own objects and classes. This section covers a high level overview of this process. It also covers what happens if the forest schema is not extended properly by the Exchange Setup process and troubleshooting tips.
PrepareForest is a mandatory step for Exchange Server installations. This can be run directly through the command prompt or else the setup runs it automatically. This task isn't lightweight from an organization perspective. If you don't have access to the Schema Master then you need to have someone run this on the first domain controller of the forest which is by default the Schema Master (unless the role was moved). When you run this step, setup contacts the Schema Master to import the LDF files from the Exchange Setup source directory to the Active Directory Schema container. As shown in the main figure B, a total of 99 LDF files are imported to the schema in Exchange 2007. SCHEMA9.LDF is shown in bold to indicate that Exchange 2003 only has 9 LDF files to be imported.
The Exchange Setup process creates the main Exchange Classes in the Schema using these LDF file. The LDF files are very important for a successful installation and are located under the x:\Setup\Data directory (for Exchange Server 2007). If these LDF files are not present on the CD or Exchange source folder, setup fails.
Setup doesn't really use API calls to import LDF files to the Schema. Instead it always uses the LDIFDE utility. The setup imports all the files starting with SCHEMA0.LDF and ends with importing the last LDF file - that is SCHEMA99.LDF.
Setup also imports the PostExchange2000_schemaxx.ldf files. The setup imports these files in the following sequence:
And so on...
The LDIFDE tool targets the schema container: CN=Schema,CN=Configuration,DC=dname,DC=com as shown in the main figure B.
These LDF files contain the <SchemaContainerDN> tag. This tag is the place holder for the Schema Container distinguished name DN. Setup replaces <SchemaContainerDN> with the correct DN retrieved on executing the CDirectoryManager procedure to get the domain information.
The Exchange LDF files will look as show in the figure below:
FIGURE B.1 - Contents of LDF files
You can always change this place holder to the correct DN of the Schema and then import the LDF files using the LDIFDE.exe tool which is explained later in this section of the article.
There are other LDF files that setup uses only when required. For example, the RIGHTS.LDF file is used to add the access rights to the classes and attributes created by the other LDF files. This file is executed by LDIFDE after importing all the LDF files into the Schema. The following figure shows the contents of this file.
FIGURE B.2 - Contents of the RIGHTS.LDF file
The rights or permissions given by this file on the Exchange Classes and attributes are identified by the ValidAccesses attribute as shown in the above figure.
If you ever face any "Access is denied" error message after importing all the LDF files by the setup, you can run LDIFIDE.exe utility from the command prompt to import the RIGHTS.LDF file in the schema.
For more information please check here:
This file is also very important when you want to remove the Exchange Server completely from Active Directory. This file just uninstalls the rights added by RIGHTS.LDF. The following figure shows its contents:
FIGURE B.3 - Contents of the RIGHTS_UNINSTALL.LDF file
Please note the RIGHTS_UNINSTALL.LDF file only uninstalls or deletes the attributes that were added by RIGHTS.LDF. You can compare both files (RIGHTS.LDF and RIGHTS_UNINSTALL.LDF) in notepad.
Setup always exits with error code 0 for LDIFDE.exe after it has imported the LDF files in the schema as shown in the ExchangeSetup.Log file. This indicates setup did not encounter any errors when importing the LDF files in the Active Directory schema.
FIGURE B.4 - Importing LDF files with exit code 0
If you see exit code 1 for any LDF files, check the LDF file and its syntax and try to import it manually using the LDIFDE.exe command.
LDIFDE also creates a file named LDIF.err log file. Please check this file for any syntax error and then try to import the LDF file again manually after rectifying the errors.
In this part of Setup Work - During Cluster Installation we explained the importance of the LDF files in the Exchange Setup. We saw how Exchange 2007 uses almost 99 LDF files to extend the schema. We also looked at the information returned at the Exchange Setup log files in case of any errors while extending the Schema. In the next part we will continue discussing the schema extension further and more troubleshooting steps that can be used if setup stops responding while extending the schema.