15.4. 级联复制
				在级联复制方案中 , 一个服务器同时充当消费者和供应商。它包含一个只读副本和维护更改日志,因此它会从包含数据的供应商副本的供应商服务器接收更新,并为消费者提供这些更新。使用级联复制来平衡重重流量负载,或者在地理分布式环境中将供应商服务器保持在本地。
			
				下图显示了一个简单的级联复制场景:
			
图 15.4. 级联复制
注意
					可以组合使用 multi-supplier 和 cascading 复制。
				
				使用命令行或 Web 控制台来设置级联复制拓扑。请参阅:
			
15.4.1. 使用命令行设置 Cascading 复制 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
					以下示例假定您已在名为 vendor. 
example.com 的主机上运行现有的 Directory 服务器实例。以下流程描述了如何将名为 hub. example.com 的 hub 添加到从 dc=example,dc=com 后缀的供应商接收更新的拓扑中。因此,该流程描述了添加名为 consumer.example.com 的消费者,该消费者从 hub 服务器接收后缀的更新。
				准备新的 Hub 服务器以加入
					在 
hub.example.com 主机上:
				- 安装目录服务器并创建实例。详情请查看 红帽目录服务器安装指南。
 - 如果您在没有数据库的情况下创建实例,请为后缀创建数据库。例如,要为 dc=example,dc=com 后缀创建一个名为
userRoot的数据库:dsconf -D "cn=Directory Manager" ldap://hub.example.com backend \ create --suffix="dc=example,dc=com" --be-name="userRoot"# dsconf -D "cn=Directory Manager" ldap://hub.example.com backend \ create --suffix="dc=example,dc=com" --be-name="userRoot"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关为后缀创建数据库的详情,请参考 第 2.1.1 节 “创建后缀”。 - 为后缀启用复制并创建复制管理器帐户:
dsconf -D "cn=Directory Manager" ldap://hub.example.com replication \ enable --suffix="dc=example,dc=com" --role="hub" \ --bind-dn="cn=replication manager,cn=config" --bind-passwd="password"# dsconf -D "cn=Directory Manager" ldap://hub.example.com replication \ enable --suffix="dc=example,dc=com" --role="hub" \ --bind-dn="cn=replication manager,cn=config" --bind-passwd="password"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令将hub.example.com主机配置为 dc=example,dc=com 后缀的 hub。另外,服务器使用指定密码创建cn=replication manager,cn=config用户,并允许此帐户将后缀的更改复制到此主机上。 
将现有服务器配置为供应商
					在 vendor 
.example.com 主机上:
				- 与在新的 hub 服务器上运行的命令类似 “准备新的 Hub 服务器以加入”一节 中的命令,为 dc=example,dc=com 后缀启用复制,并创建复制管理器帐户:
dsconf -D "cn=Directory Manager" ldap://supplier1.example.com replication \ enable --suffix="dc=example,dc=com" --role="supplier" --replica-id=1 \ --bind-dn="cn=replication manager,cn=config" --bind-passwd="password"# dsconf -D "cn=Directory Manager" ldap://supplier1.example.com replication \ enable --suffix="dc=example,dc=com" --role="supplier" --replica-id=1 \ --bind-dn="cn=replication manager,cn=config" --bind-passwd="password"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要副本 ID 必须是拓扑中所有供应商的后缀 1 到 65534 之间的唯一整数。复制管理器帐户可以使用与 hub 上创建相同的 DN。 - 添加复制协议并初始化 hub。例如:
dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \ create --suffix="dc=example,dc=com" --host="hub.example.com" --port=636 \ --conn-protocol=LDAPS --bind-dn="cn=replication manager,cn=config" \ --bind-passwd="password" --bind-method=SIMPLE --init \ example-agreement-supplier-to-hub# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \ create --suffix="dc=example,dc=com" --host="hub.example.com" --port=636 \ --conn-protocol=LDAPS --bind-dn="cn=replication manager,cn=config" \ --bind-passwd="password" --bind-method=SIMPLE --init \ example-agreement-supplier-to-hubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令创建一个名为example-agreement-supplier-to-hub的复制协议。复制协议定义设置,如 hub 的主机名、协议和身份验证信息,供应商在连接和将数据复制到 hub 时使用。创建协议后,Directory 服务器会初始化 hub。要稍后初始化 hub,请省略 the-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 --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow  - 验证初始化是否成功:
dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \ init-status --suffix="dc=example,dc=com" example-agreement-supplier-to-hub# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \ init-status --suffix="dc=example,dc=com" example-agreement-supplier-to-hub Agreement successfully initialized.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据要复制的数据量,初始化过程可能会非常耗时。 
准备新 Consumer to Join
					在 
consumer.example.com 主机上:
				- 安装目录服务器并创建实例。详情请查看 红帽目录服务器安装指南。
 - 如果您在没有数据库的情况下创建实例,请为后缀创建数据库。例如,要为 dc=example,dc=com 后缀创建一个名为
userRoot的数据库:dsconf -D "cn=Directory Manager" ldap://hub.example.com backend \ create --suffix="dc=example,dc=com" --be-name="userRoot"# dsconf -D "cn=Directory Manager" ldap://hub.example.com backend \ create --suffix="dc=example,dc=com" --be-name="userRoot"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关为后缀创建数据库的详情,请参考 第 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"# 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"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令将consumer.example.com主机配置为 dc=example,dc=com 后缀的使用者。另外,服务器使用指定密码创建cn=replication manager,cn=config用户,并允许此帐户将后缀的更改复制到此主机上。 
将 Hub 配置为消费者的供应商
					在 
hub.example.com 主机上:
				- 添加复制协议并初始化服务器。例如:
dsconf -D "cn=Directory Manager" ldap://hub.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-hub-to-consumer# dsconf -D "cn=Directory Manager" ldap://hub.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-hub-to-consumerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建协议后,目录服务器会初始化消费者。要稍后初始化消费者,请省略 the-init选项。 - 验证初始化是否成功:
dsconf -D "cn=Directory Manager" ldap://hub.example.com repl-agmt \ init-status --suffix="dc=example,dc=com" example-agreement-hub-to-consumer# dsconf -D "cn=Directory Manager" ldap://hub.example.com repl-agmt \ init-status --suffix="dc=example,dc=com" example-agreement-hub-to-consumer Agreement successfully initialized.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据要复制的数据量,初始化过程可能会非常耗时。 
15.4.2. 使用 Web 控制台设置 Cascading Replication 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
					以下示例假定您在名为 
supplier.example.com 的主机中运行了现有的 Directory Server 实例。以下流程描述了如何将名为 hub. example.com 的 hub 添加到拓扑,该拓扑从 dc=example,dc=com 后缀的供应商接收更新。因此,这个流程描述了添加名为 consumer.example.com 的消费者,该消费者从 hub 服务器接收后缀的更新。
				准备新 Hub 服务器以加入
					在 
hub.example.com 主机上:
				- 安装目录服务器并创建实例。详情请查看 红帽目录服务器安装指南。
 - 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录目录服务器”。
 - 选择实例。
 - 如果您在没有数据库的情况下创建实例,请为后缀创建数据库。有关为后缀创建数据库的详情,请参考 第 2.1.1 节 “创建后缀”。
 - 为后缀启用复制:
- 打开 菜单。
 - 选择 dc=example,dc=com 后缀,再单击 。
 - 在 Replication Role 字段中选择 Hub,并输入要创建的复制管理器帐户的 DN 和密码。例如:这些设置将
hub.example.com主机配置为 dc=example,dc=com 后缀的 hub。另外,服务器使用指定密码创建cn=replication manager,cn=config用户,并允许此帐户将后缀的更改复制到此主机上。 - 单击 。
 
 
将现有服务器配置为供应商
					在 vendor 
.example.com 主机上:
				- 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录目录服务器”。
 - 选择实例。
 - 与新 hub 服务器中的设置加入 “准备新 Hub 服务器以加入”一节 类似,为 dc=example,dc=com 后缀启用复制,并创建一个复制管理器帐户:
- 打开 菜单。
 - 选择 dc=example,dc=com 后缀,再单击 。
 - 在 Replication Role 字段中选择 Vendor,输入副本 ID,以及要创建的复制管理器帐户的 DN 和密码。例如:重要副本 ID 必须是拓扑中所有供应商的后缀 1 到 65534 之间的唯一整数。复制管理器帐户可以使用与 hub 上创建相同的 DN。
 - 单击 。
 
 - 添加复制协议并初始化 hub:
- 打开 菜单,然后选择后缀。
 - 在 选项卡中,点 ,并填写字段。例如:这些设置创建一个名为
example-agreement-supplier-to-hub的复制协议。复制协议定义设置,如 hub 的主机名、协议和身份验证信息,供应商在连接和将数据复制到 hub 时使用。 - 选择 Consumer Initialization 字段中的 Do Online Initialization,以在保存协议后自动初始化消费者。要稍后初始化 hub,请选择 Do Not Initialize。请注意,在初始化消费者前复制不会启动。有关初始化消费者的详情,请参考 第 15.8.3 节 “初始化消费者”。
 - 单击 。
 
 - 验证初始化是否成功:
- 打开 菜单。
 - 选择 条目。如果初始化成功完成,Web 控制台会在 Last Update Status 列中显示 Error (0) Replica getting successfully: Incremental update succeeded 信息。根据要复制的数据量,初始化过程可能会非常耗时。
 
 
配置 New Consumer to Join
					在 
consumer.example.com 主机上:
				- 安装目录服务器并创建实例。详情请查看 红帽目录服务器安装指南。
 - 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录目录服务器”。
 - 选择实例。
 - 如果您在没有数据库的情况下创建实例,请为后缀创建数据库。有关为后缀创建数据库的详情,请参考 第 2.1.1 节 “创建后缀”。
 - 为后缀启用复制:
- 打开 菜单。
 - 选择 dc=example,dc=com 后缀,再单击 。
 - 在 Replication Role 字段中选择 Consumer,并输入要创建的复制管理器帐户的 DN 和密码。例如:这些设置将
consumer.example.com主机配置为 dc=example,dc=com 后缀的使用者。另外,服务器使用指定密码创建cn=replication manager,cn=config用户,并允许此帐户将后缀的更改复制到此主机上。 - 单击 。
 
 
将 Hub 配置为消费者的供应商
					在 
consumer.example.com 主机上:
				- 添加复制协议并初始化消费者:
- 打开 菜单,然后选择后缀。
 - 在 选项卡中,点 ,并填写字段。例如:这些设置创建一个名为
example-agreement-hub-to-consumer的复制协议。 - 选择 Consumer Initialization 字段中的 Do Online Initialization,以在保存协议后自动初始化消费者。要稍后初始化消费者,请选择 Do Not Initialize。请注意,在初始化消费者前复制不会启动。有关初始化消费者的详情,请参考 第 15.8.3 节 “初始化消费者”。
 - 单击 。
 
 - 验证初始化是否成功:
- 打开 菜单。
 - 选择 条目。如果初始化成功完成,Web 控制台会在 Last Update Status 列中显示 Error (0) Replica getting successfully: Incremental update succeeded 信息。根据要复制的数据量,初始化过程可能会非常耗时。