15.2. 单层次复制
在单层次复制场景中,目录数据的供应商副本保存在一个名为 供应商服务器 的单个读写副本中。供应商还维护此副本的 changelog。在另一个服务器上,称为 消费者服务器,将存储目录的只读副本。在单层次复制环境中,您可以运行多个消费者。
使用单层次复制拓扑,例如,如果后缀收到大量搜索请求,但有一些写入请求。要分发负载,客户端可以在拓扑中的所有服务器上运行搜索后缀,并将写入请求发送到供应商。
下图显示了带有两个消费者的单层次复制环境:
图 15.1. 单层次复制
使用命令行或 Web 控制台来设置单层次复制拓扑。请参阅:
15.2.1. 使用命令行设置单层次复制
以下示例假定您在名为 provider.
example.com 的主机上运行了一个现有的 Directory 服务器实例
,它将充当复制拓扑中的供应商来设置。以下流程描述了如何将名为 consumer.example.com
的只读消费者添加到拓扑中,以及如何为 dc=example,dc=com
后缀配置单层次复制。
在 Consumer 上执行的步骤
在
consumer.example.com
主机上:
- 安装目录服务器并创建实例。详情请查看 红帽目录服务器 安装指南。
- 如果您在没有数据库的情况下创建实例,请为后缀创建数据库。例如,要为 dc=example,dc=com 后缀创建一个名为
userRoot
的数据库:# dsconf -D "cn=Directory Manager" ldap://consumer.example.com backend \ create --suffix="dc=example,dc=com" --be-name="userRoot"
有关为后缀创建数据库的详情,请参考 第 2.1.1 节 “创建后缀”。 - 为后缀启用复制,并创建复制管理器帐户:
# dsconf -D "cn=Directory Manager" ldap://consumer.example.com replication \ enable --suffix="dc=example,dc=com" --role="consumer" \ --bind-dn="cn=replication manager,cn=config" --bind-passwd="password"
此命令将consumer.example.com
主机配置为 dc=example,dc=com 后缀的消费者。另外,服务器使用指定密码创建cn=replication manager,cn=config
用户,并允许此帐户将后缀的更改复制到此主机上。
要为拓扑添加多个后缀的用户,请在每个消费者上重复这些步骤。
在独立上执行的步骤
在 provider
.example.com
主机上:
- 为 dc=example,dc=com 后缀启用复制:
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com replication \ enable --suffix="dc=example,dc=com" --role="supplier" --replica-id=1
此命令将 provider.example.com
主机配置为 dc=example,dc=com 后缀的供应商,并将此条目的副本 ID 设置为 1。重要对于拓扑中的所有供应商,副本 ID 必须是 1 到 65534 之间的唯一整数。 - 添加复制协议,并初始化消费者。例如:
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \ create --suffix="dc=example,dc=com" --host="consumer.example.com" --port=636 \ --conn-protocol=LDAPS --bind-dn="cn=replication manager,cn=config" \ --bind-passwd="password" --bind-method=SIMPLE --init \ example-agreement
此命令创建一个名为example-agreement
的复制协议。复制协议定义了设置,如消费者的主机名、协议和身份验证信息,这些设置供应商将数据连接到消费者时使用。创建协议后,目录服务器会初始化消费者。要稍后初始化使用者,请省略--init
选项。请注意,在初始化消费者前复制不会启动。有关初始化消费者的详情,请参考 第 15.8.3 节 “初始化消费者”。有关命令中使用的选项的详情,请输入:# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt --help
- 验证初始化是否成功:
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \ init-status --suffix="dc=example,dc=com" example-agreement Agreement successfully initialized.
根据要复制的数据量,初始化可能会非常耗时。
如果您在拓扑中添加多个后缀的用户,请为每个消费者对供应商重复步骤。但是,您必须仅在供应商上为后缀启用复制。
15.2.2. 使用 Web 控制台设置单层次复制
以下示例假定您在名为 provider.
example.com 的主机上运行了一个现有的 Directory 服务器实例
,它将充当复制拓扑中的供应商来设置。以下流程描述了如何将名为 consumer.example.com
的只读消费者添加到拓扑中,以及如何为 dc=example,dc=com
后缀配置单层次复制。
在 Consumer 上执行的步骤
在
consumer.example.com
主机上:
- 安装目录服务器并创建实例。详情请查看 红帽目录服务器 安装指南。
- 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”。
- 选择实例。
- 如果您在没有数据库的情况下创建实例,请为后缀创建数据库。有关为后缀创建数据库的详情,请参考 第 2.1.1 节 “创建后缀”。
- 为后缀启用复制:
- 打开菜单。
- 选择 dc=example,dc=com 后缀,然后单击 。
- 在 Replication Role 字段中选择 Consumer,并输入要创建的复制管理器帐户的 DN 和密码。例如:这些设置将主机配置为 dc=example,dc=com 后缀的消费者。另外,服务器使用指定密码创建
cn=replication manager,cn=config
用户,并允许此帐户将后缀的更改复制到此主机上。 - 点。
要为拓扑添加多个后缀的用户,请在每个消费者上重复这些步骤。
在独立上执行的步骤
在 provider
.example.com
主机上:
- 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”。
- 选择实例。
- 为 dc=example,dc=com 后缀启用复制:
- 打开菜单。
- 选择 dc=example,dc=com 后缀,然后单击 。
- 在 Replication Role 字段中选择 Supplier,输入副本 ID,并将 Replication Authentication 区域中的字段留空。例如:这会将主机配置为 dc=example,dc=com 后缀的供应商,并将此条目的副本 ID 设置为 1。重要对于拓扑中的所有供应商,副本 ID 必须是 1 到 65534 之间的唯一整数。
- 点。
- 添加复制协议,并初始化消费者:
- 打开 dc=example,dc=com 后缀。菜单,然后选择
- 在选项卡中,点 ,并填写字段。例如:这些设置会创建一个名为
example-agreement
的复制协议。复制协议定义了设置,如消费者的主机名、协议和身份验证信息,这些设置供应商将数据连接到消费者时使用。 - 在 Consumer Initialization 字段中选择 Do Online Initialization,以在保存协议后自动初始化消费者。要稍后初始化消费者,请选择 Do Not Initialize。请注意,在初始化消费者前复制不会启动。有关初始化消费者的详情,请参考 第 15.8.3 节 “初始化消费者”。
- 点。
- 验证初始化是否成功:
- 打开菜单。
- 选择条目。对于成功完成的初始化,Web 控制台会在 Last Update Status 列中显示 Error (0) Replica obtained: Incremental update successful 信息。根据要复制的数据量,初始化可能会非常耗时。
如果您在拓扑中添加多个后缀的用户,请为每个消费者对供应商重复步骤。但是,您必须仅在供应商上为后缀启用复制。