6.2. 分发目录数据

分发数据后,可以在多台服务器上扩展目录服务,无需实际地包含企业服务器中的每个服务器上的目录条目。因此,分布式目录可以保存更多的条目数量,而不是单个服务器可能。
另外,可将目录服务配置为隐藏用户的分发详情。在关注用户和应用程序的情况下,只有单个目录可以回答其目录查询。
以下小节更详细地描述了数据分发的原理:

6.2.1. 关于使用多个数据库

目录服务器将数据保存到 LDBM 数据库中。这个基于磁盘的高性能数据库。每个数据库由一组大型文件组成,其中包含分配给它的所有数据。
目录树的不同部分可以存储在不同的数据库中。
例如: 图 6.1 “在独立的数据库中保存后缀数据” 显示存储在三个独立数据库中的三个后缀。

图 6.1. 在独立的数据库中保存后缀数据

在独立的数据库中保存后缀数据
当目录树划分到多个数据库时,可以在多个服务器上分发这些数据库。例如,如果存在三个数据库,DB1、DB2 和 DB3 含有目录树的三个后缀,则可以将其存储在两个服务器上,即 Server A 和 Server B。

图 6.2. 在独立的服务器间划分后缀数据库

在独立的服务器间划分后缀数据库
服务器 A 包含 DB1 和 DB2,服务器 B 包含 DB3。
在多个服务器间分布数据库可减少每台服务器上的工作负载。因此,目录服务可以扩展到比单个服务器可能更多的条目。
此外,Directory 服务器支持动态添加数据库,这意味着当目录服务在不需要整个目录服务的情况下,可以添加新的数据库。

6.2.2. 关于 Suffixes

每个数据库都包含 Directory 服务器的特定后缀中的数据。可以创建根和子修复来组织目录树的内容。root 后缀是树顶部的条目。它可以是目录树的根目录,也可以是为 Directory 服务器设计的更大树的一部分。subsuffix 是根后缀下的分支。root 和 subsuffixes 的数据包含在数据库中。
例如,example Corp. 创建后缀来代表目录数据的分布。

图 6.3. 示例公司的目录树.

示例公司的目录树.
示例 Corp. 可以将其目录树分散到五个不同的数据库中,如 图 6.4 “跨多个数据库进行目录树读取” 中。

图 6.4. 跨多个数据库进行目录树读取

跨多个数据库进行目录树读取
生成的后缀会包含以下条目:

图 6.5. 分布式目录树的后缀

分布式目录树的后缀
dc=example,dc=com 后缀是 root 后缀。ou=testing,dc=example,dc=com 后缀、ou=development,dc=example,dc=com 后缀和 ou= partners,ou=development,dc=example,dc=com 后缀是 dc=example,dc=com root 后缀的所有子后缀。root 后缀 dc=example,dc=com 包含原始目录树的 ou= marketing 分支中的数据。

使用多个 Root Suffixes

目录服务可以包含多个根后缀。例如,名为"Example"的 ISP 可以托管几个网站,一个用于 example_a.com,一个用于 example_b.com。ISP 将创建两个 root 后缀,一个用于 o=example_a.com 命名上下文,另一个对应于 o=example_b.com 命名上下文。

图 6.6. 带有多个 Root Suffixes 的目录树

带有多个 Root Suffixes 的目录树
dc=example,dc=com 条目代表 root 后缀。每个托管客户的条目也是一个 root 后缀(o=example_ao=example_b)。ou=peopleou=groups 分支是每个 root 后缀下的子后缀。