Distributing the data allows the directory service to be scaled across multiple servers without physically containing those directory entries on each server in the enterprise. A distributed directory can therefore hold a much larger number of entries than would be possible with a single server.
In addition, the directory service can be configured to hide the distribution details from the user. As far as users and applications are concerned, there is only a single directory that answers their directory queries.
The following sections describe the mechanics of data distribution in more detail:
6.2.1. About Using Multiple Databases
Directory Server stores data in LDBM databases. This a high-performance, disk-based database. Each database consists of a set of large files that contain all of the data assigned to it.
Different portions of the directory tree can be stored in different databases.
When the directory tree is divided between a number of databases, these databases can then be distributed across multiple servers. For example, if there are three databases, DB1, DB2, and DB3, to contain the three suffixes of the directory tree, they can be stored on two servers, Server A and Server B.
Server A contains DB1 and DB2, and Server B contains DB3.
Distributing databases across multiple servers reduces the workload on each server. The directory service can therefore be scaled to a much larger number of entries than would be possible with a single server.
In addition, Directory Server supports adding databases dynamically, which means that new databases can be added when the directory service needs them without taking the entire directory service off-line.
Each database contains the data within a specific suffix of the Directory Server. Both root and subsuffixes can be created to organize the contents of the directory tree. A root suffix is the entry at the top of a tree. It can be the root of the directory tree or part of a larger tree designed for the Directory Server. A subsuffix is a branch beneath a root suffix. The data for root and subsuffixes are contained by databases.
For example, Example Corp. creates suffixes to represent the distribution of their directory data.
The resulting suffixes would contain the following entries:
The dc=example,dc=com
suffix is a root suffix. The ou=testing,dc=example,dc=com
suffix, the ou=development,dc=example,dc=com
suffix, and the ou=partners,ou=development,dc=example,dc=com
suffix are all subsuffixes of the dc=example,dc=com
root suffix. The root suffix dc=example,dc=com
contains the data in the ou=marketing
branch of the original directory tree.
Using Multiple Root Suffixes
The directory service might contain more than one root suffix. For example, an ISP called "Example" might host several websites, one for example_a.com and one for example_b.com. The ISP would create two root suffixes, one corresponding to the o=example_a.com
naming context and one corresponding to the o=example_b.com
naming context.
The dc=example,dc=com
entry represents a root suffix. The entry for each hosted customer is also a root suffix (o=example_a
and o=example_b
). The ou=people
and the ou=groups
branches are subsuffixes under each root suffix.