Related Synchronization Processes in eDirectory
Articles and Tips: article
Senior Research Engineer
Novell AppNotes Magazine
01 May 2002
In previous columns, we discussed various Novell Directory Services (NDS) processes one at a time. (Remember that eDirectory is the product name and NDS is the technology.) This time I would like to discuss NDS synchronization, but not so much generic synchronization as the more minute processes that run after the generic portion of the synchronization has completed.
In mixed NetWare 4.x, 5.x and 6.0 replica rings, NetWare servers automatically detect which servers are NetWare 4.x servers and use NetWare 4.x synchronization procedures with them. The same is true with NetWare 5.x and NetWare 6.0. Each new release of NetWare has enhancements to the synchronization process; however, each new NetWare version provides backwards synchronization compatibility with older versions of NDS.
The replica synchronization process synchronizes all changes to the entries and attributes in the NDS database. However, it does not synchronize everything in the database. For instance, it does not purge deleted entries and attribute values or synchronize external references and backlinks. Besides the replica synchronization process, NDS uses the following processes for other types of synchronization:
Flat Cleaner Process
Schema Synchronization Process
Let's look at each of these processes in greater detail.
The Janitor process runs after a replica synchronization cycle has completed successfully. As it scans the partition, the Janitor process creates a Release ID List and a Notify External Reference List. It purges deleted entries and values that have been synchronized with all replicas and adds all successfully purged entries to the Release ID List.
The Janitor process also checks any entry that has been renamed, moved, or deleted for backlinks, and it adds any entries with backlinks to the Notify External Reference List. The Janitor process determines whether the partition's root entry has been renamed and purges move expectations that are more than ten minutes old. The Janitor process can purge a value from an entry if that value is not present and the value's modification time is less recent than the purge time.
After inspecting all of the values for an entry, the Janitor process inspects the entry to see if it can be purged. The process can purge any entry that is not present and has no value(s).
The Janitor process uses the Release ID list to release the entry and to send a request to purge the entry's obituary. The Janitor process also uses the Notify External Reference list to send requests to synchronize the entry's external reference.
The Limber process is charged with maintaining tree connectivity. Periodically, each server in the NDS tree checks and verifies that it still knows the correct tree name. This check is executed when the server boots, when the NDS processes are restarted and when the server receives a specific Limber request from another server.
The Limber process typically runs when a tree name changes or with IP/IPX address changes. A server holding the Master Root partition needs to send out the request. Additionally, the Limber process will run when the Master Root partition of a server receives change information from another server/partition on the NDS tree.
The backlink process verifies external references by verifying whether the original entry still exists and if the reason for its existence is still valid. If the external reference is no longer needed, the backlink process removes the reference.
By default, this process runs every 25 hours (1500 minutes). The default value can be modified with a setable parameter in the SET DSTRACE console command.
When an entry is deleted, backlinks make it possible for all references to the entry to be deleted. Backlinks also facilitate renaming and moving entries because the corresponding changes can be made to the external references through the backlink process.
Flat Cleaner Process
The Flat cleaner process is responsible for the following three tasks:
For real NDS objects, it truncates the revision count attributes, certifies keys, and generates Certificate Authority keys.
For bindery objects and external references, it returns deleted space.
For the Master replicas of NetWare Core ProtocolTM (NCPTM) Server objects, it updates the Status and Version attributes.
The Flat cleaner process is called when credentials are created for new users in the NDS tree. Also, the Flat Cleaner Process is an update process, updating NCP versions, etc.
Schema Synchronization Process
The NDS schema can be modified by changing or creating attribute definitions and object class definitions. Such changes then need to be replicated among all the servers containing replicas. This synchronization is done through the Schema synchronization process, which starts within 10 seconds following the completion of the schema modification operations. The 10-second delay enables several modifications to be synchronized at the same time.
The updates to the schema are automatically propagated from one server to another, similar to the replica synchronization process. However, the schema synchronization process does not use a replica ring to determine to which servers to send schema updates.
Schema updates are sent to servers that contain replicas of a given partition and child partitions of the given partition. Since schema modifications must occur on the root partition of the NDS tree, the modifications flow from the root partition to the subordinate partitions.
The primary purpose of the NDS Database Initialization process (often referred to as DB Init) is to:
Verify the general usability of the source server's NDS database files
Schedule various NDS background processes to execute
Initialize various tables and variables used globally by NDS
Open the source server's NDS database files for use by the version of NDS in use on the source server
DB Init is automatically executed whenever the source server's SYS volume is mounted. Subsequent executions of this process are triggered by a request to open the source server's NDS database. This request can be generated by a client or by unloading and then reloading NDS on the source server.
To better understand DB Init, you should use DSTRACE on the source server with the following DSTRACE flags set:
The primary purposes of the NDS Replica Purger background process (often referred to as the Purger) are to:
Purge any unused objects and/or attributes that exist in a user defined partition
Process obituaries assigned to objects that exist in a user defined partition
The Purger is scheduled to run by the NDS Replica Synchronization background process
To better understand the Purger, you should use DSTRACE on the source server with the Janitor flag set.
We have discussed several NDS background processes related to the Schema Synchronization process. For ways to view these processes in DSTrace, see Novell Technical Information Document 10064019, located at http://support.novell.com/cgi-bin/search/searchtid.cgi?/10064019.htm
* Originally published in Novell AppNotes
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.