8.5. 域控制器发现和故障转移
在设置受管域时,每一主机控制器必须配置必要的信息以联系域控制器。在 JBoss EAP 中,每一主机控制器可以配置 多个选项,以查找域控制器。主机控制器迭代选项列表,直到成功为止。
如果主域控制器出现问题,备份主机控制器可以提升为 域聚合器。这使得主机控制器在新的域控制器提升后自动故障转移到它。
8.5.1. 配置域发现选项 复制链接链接已复制到粘贴板!
下例中演示了如何使用查找域控制器的多个选项配置主机控制器:
示例:具有多个域控制器选项的主机控制器
<domain-controller>
<remote security-realm="ManagementRealm">
<discovery-options>
<static-discovery name="primary" protocol="${jboss.domain.master.protocol:remote}" host="172.16.81.100" port="${jboss.domain.master.port:9990}"/>
<static-discovery name="backup" protocol="${jboss.domain.master.protocol:remote}" host="172.16.81.101" port="${jboss.domain.master.port:9990}"/>
</discovery-options>
</remote>
</domain-controller>
静态发现选项包括以下所需属性:
- name
- 此域控制器发现选项的名称。
- 主机
- 远程域控制器的主机名。
- port
- 远程域控制器的端口。
在上例中,第一个发现选项是预期成功的选项。第二个选项可用于故障转移情况。
8.5.2. 使用缓存域配置启动主机控制器 复制链接链接已复制到粘贴板!
可以使用 --cached-dc 选项在不连接域控制器的情况下启动主机控制器;不过,主机控制器必须之前已从域控制器在本地缓存其域控制器的域控制器配置。使用这个 --cached-dc 选项启动主机控制器将缓存主机控制器的域控制器配置。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml --cached-dc
这会在 EAP_HOME/domain/configuration/ 目录中创建一个 domain.cached-remote.xml 文件,该文件包含此主机控制器临时管理其当前服务器而无需域控制器连接所需的信息。
默认情况下,使用 --cached-dc 选项仅缓存此主机控制器使用的配置,这意味着无法提升到整个域的域控制器。有关 缓存整个域配置 的信息,请参阅缓存域配置,以允许主机控制器充当域控制器。
如果在使用 --cached-dc 启动此主机控制器时域控制器不可用,主机控制器将开始使用 domain.cached-remote.xml 文件中保存的缓存配置。注意此文件必须存在,或者主机控制器将无法启动。
在这种状态下,主机控制器无法修改域配置,但可以启动服务器和管理部署。
在使用缓存的配置启动后,主机控制器将继续尝试重新连接到域控制器。域控制器变为可用后,主机控制器将自动重新连接它并同步域配置。请注意,一些配置更改可能要求您重新加载主机控制器才能生效。如果发生此情况,主机控制器上将记录警告。
8.5.3. 提升主机控制器以作为域控制器 复制链接链接已复制到粘贴板!
如果主域控制器出现问题,您可以提升主机控制器以充当域控制器。主机控制器必须先将 域配置从域控制器本地缓存,然后才能 提升。
缓存域配置
将 --backup 选项用于您可能希望成为域控制器的任何主机控制器。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml --backup
这会在 EAP_HOME/domain/configuration/ 目录中创建一个 domain.cached-remote.xml 文件,其中包含整个域配置的副本。如果主机控制器重新配置为充当域控制器,则将使用此配置。
ignore-unused-configuration 属性用于确定要缓存的特定主机的配置量。值 true 表示仅缓存与此主机控制器相关的配置,这不允许它接管域控制器。值 false 表示将缓存整个域配置。
--backup 参数将此属性默认为 false,以缓存整个域。但是,如果您在 host.xml 文件中设置了此属性,则会使用该值。
您也可以单独使用 --cached-dc 选项来创建域配置的副本,但必须在 host.xml 中将 ignore-unused-configuration 设置为 false 来缓存整个域。例如:
<domain-controller>
<remote username="$local" security-realm="ManagementRealm" ignore-unused-configuration="false">
<discovery-options>
...
</discovery-options>
</remote>
</domain-controller>
将主机控制器提升为域控制器
- 确保原先的域控制器已停止。
- 使用管理 CLI 连接主机控制器,该主机控制器将成为新的域控制器。
执行以下命令,将主机控制器配置为充当新的域控制器:
/host=backup:write-attribute(name=domain-controller.local, value={})执行以下命令,以重新加载主机控制器:
reload --host=HOST_NAME
此主机控制器现在将充当域控制器。