第 15 章 管理复制

复制 是将目录数据自动从一个 Red Hat Directory Server 实例同步到另一个机制的机制;这是在单一服务器配置外扩展目录服务的一个重要机制。本章论述了要在供应商和消费者服务器上执行的任务,以设置单层次复制、多层次复制和级联复制。

15.1. 复制概述

复制是目录数据自动从一个目录服务器同步到另一个目录服务器的机制。任何类型的更新 - 条目添加、修改、删除或重命名条目 - 使用复制自动镜像到其他目录服务器。

15.1.1. 复制的目录单元

可以复制的目录的最小单元是数据库。这意味着,一个可以复制整个数据库,但不能复制数据库中的子树。因此,在创建目录树时,请考虑任何复制计划,作为确定如何分发信息的一部分。
复制还需要一个数据库对应于一个后缀。这意味着,无法使用自定义分发逻辑在两个或多个数据库分发的后缀(或命名空间)。有关此主题的详情请参考 第 2.2 节 “创建和维护数据库”

15.1.2. 读写和只读副本

参与复制的数据库称为 副本。有两种副本:读写或只读。读写副本包含目录信息 的供应商副本,并可更新。只读副本 服务读取、搜索和比较请求,但引用所有更新操作到读写副本。服务器可以保存任意数量的只读或读写副本。

15.1.3. Vendor 和 Consumers

包含发送到不同服务器上的副本的服务器被称为该副本 的供应商。包含从不同服务器接收的副本的服务器称为该副本的consumer(消费者)。通常,供应商服务器上的副本是一个读写副本,消费者服务器上的副本是一个只读副本,但有两个例外:
复制始终由供应商服务器启动,永远不会由消费者(供应商发起的复制)启动。通过供应商发起的复制,可以将供应商服务器配置为将数据发送到多个消费者服务器。

15.1.4. 变更日志

每个供应商服务器都会维护一个 更改日志,这是供应商或中心需要发送到其消费者的所有更改记录。changelog 是一个特殊的数据库,可保留副本上发生的修改。然后,供应商服务器会在多层次复制时对消费者服务器或其他供应商的副本重新执行这些修改。
修改条目时,描述所执行 LDAP 操作的更改记录将在 changelog 中记录。
changelog 使用与主数据库相同的数据库环境。作为主数据库的一部分实施更改日志可确保始终同步数据库和更改日志,从而减少所需的数据库缓存大小,并简化备份和恢复操作。
重要
更改日志仅在服务器关闭时将 changelog RUV 条目写入数据库,否则 RUV 会在内存中管理。当您备份供应商的数据库时,请使用 dsctl db2bak 命令或 Web 控制台。在备份开始前,RUV 都会写入数据库。
在目录服务器中,更改日志仅用于服务器内部使用。

15.1.5. 复制身份

当在两个服务器之间进行复制时,复制过程使用特殊条目(称为 复制管理器 条目)来识别复制协议交换并控制对目录数据的访问。复制管理器条目或复制过程中使用的任何条目都必须满足以下条件:
  • 它在 cn=config 条目中的消费者服务器上创建。
  • 在每个 从另一个服务器接收更新的服务器上创建此条目,这意味着每个 hub 或专用消费者。
  • 当副本配置为消费者或 hub 时,必须将此条目指定为执行复制更新的授权。
  • 复制协议是在供应商服务器上创建的,此条目的 DN 必须在复制协议中指定。
  • 在复制上下文中,此条目具有其特殊用户配置文件,绕过消费者服务器上针对参与该复制协议的数据库定义的访问控制规则。请注意,在复制上下文之外,复制管理器在执行常规操作时可能会受到 ACI 的影响。

15.1.6. 复制协议

目录服务器使用复制协议定义其复制配置。复制协议仅描述了一个提供者和一个消费者之间的复制。协议是在供应商服务器上配置的,必须指定所有必需的复制信息:
  • 要复制的数据库。
  • 将数据推送到的消费者服务器。
  • 复制可能发生的天数和时间。
  • 供应商服务器必须用来绑定的 DN 和凭证(复制管理器条目或供应商绑定 DN)。
  • 连接是如何保护的(TLS、客户端身份验证)。
  • 任何不复制的属性(强制复制)。

15.1.7. 使用 DNATactional Replication 复制子属性集

部分复制设置不会从供应商传输到消费者(或其他供应商)的特定属性子集。因此,管理员可以在不复制包含的所有信息或每个条目中的所有信息的情况下复制数据库。
部分复制由每个复制协议启用和配置,而不是每个条目配置。从复制中排除属性将同样应用到复制协议范围内的所有条目。
对于在架构中定义为可选(MAY 关键字)的属性,可以为增量更新和总更新设置不同的属性。增量更新列表(nsDS5ReplicatedAttributeList)必须始终设置为启用部分复制;如果这是唯一属性集,则它将应用到增量和总体更新。可选的 nsDS5ReplicatedAttributeListTotal 属性为总更新设置额外的部分复制列表。这在 第 15.11.1 节 “为总和增量更新设置不同的复制属性” 中进行了描述。
注意
对 exclude 属性的更新仍然会触发修改事件,并生成空的复制更新。nsds5ReplicaStripAttrs 属性添加一个无法在空复制事件中发送的属性列表,并从更新序列中分离。这个逻辑上包括操作特定点,如 修饰符名称
如果复制事件 不为空则会 复制剥离的属性。只有在事件是 emtpy 时,这些属性才会从更新中删除。

15.1.8. 通过 TLS 复制

出于安全考虑,将涉及复制的目录服务器实例配置为仅通过 TLS 连接复制数据。请注意,如果启用了属性加密,则总需要安全连接才能进行复制。

先决条件

在通过 TLS 配置复制前,需要以下先决条件:
  • 将供应商和消费者服务器配置为使用 TLS。请参阅 第 9.4.1 节 “在目录服务器中启用 TLS”
  • 配置消费者服务器,将供应商服务器的证书识别为供应商 DN。仅执行此操作来使用 TLS 客户端身份验证,而不是简单的身份验证。请参阅 第 9.9 节 “使用基于证书的客户端身份验证”
    重要
    如果供应商的证书只能作为服务器证书,而不是作为 TLS 握手期间的客户端,则通过 TLS 身份验证配置的复制会失败。使用基于证书的身份验证复制使用目录服务器的服务器证书向远程服务器进行身份验证。
    如果您使用 certutil 生成证书签名请求(CSR),请将 --nsCertType=sslClientType=sslServer 选项传给命令,以设置所需的证书类型。

通过 TLS 配置复制

有关配置复制的详情: