第 2 章 IdM 中的故障转移、负载平衡和高可用性
身份管理(IdM)为 IdM 客户端提供了内置的故障转移机制,为 IdM 服务器提供了负载平衡和高可用性功能。
客户端故障转移功能
默认情况下,IdM 客户端中的 SSSD
服务被配置为使用 DNS 服务(SRV)资源记录,以便客户端可以自动决定要连接的最佳 IdM 服务器。
主和备份服务器配置
服务器解析行为由 /etc/sssd/sssd.conf
文件的 ipa_server
参数中的 _srv_
选项控制:
/etc/sssd/sssd.conf 示例
[domain/example.com]
id_provider = ipa
ipa_server = _srv_, server1.example.com, server2.example.com
ipa_backup_server = backup1.example.com, backup2.example.com
...
指定 _srv_
选项后,SSSD 会检索按首选顺序排序的 IdM 服务器列表。如果主服务器离线,IdM 客户端上的 SSSD 服务会自动连接到另一个可用的 IdM 服务器。
主服务器在 ipa_server
参数中指定。SSSD 尝试首先连接到主服务器,只有在没有主服务器可用时切换到备份服务器。
备份服务器不支持 _srv_
选项。
SSSD 从 DNS 服务器查询 SRV 记录。默认情况下,在尝试查询另一个 DNS 服务器前,SSSD 会等待 6
秒等待 DNS 解析器的回复。如果所有 DNS 服务器都不可访问,域将继续以离线模式运行。您可以使用 dns_resolver_timeout
选项增加客户端等待 DNS 解析器回复的时间。
-
如果您希望因为性能原因绕过 DNS 查找,请从
ipa_server
参数中删除_srv_
条目,并指定客户端应该连接的 IdM 服务器,按首选顺序排列:
/etc/sssd/sssd.conf 示例
[domain/example.com] id_provider = ipa ipa_server = server1.example.com, server2.example.com ipa_backup_server = backup1.example.com, backup2.example.com ...
IdM 服务器和服务故障转移行为
SSSD 故障转移机制独立对待 IdM 服务器及其服务。如果服务器的主机名解析成功,SSSD 会认为机器在线,并尝试连接到该机器上所需的服务。如果与服务的连接失败,SSSD 只会将该特定服务视为离线,而不是其上的整个机器或其他服务。
如果主机名解析失败,SSSD 会将整个机器视为离线,且不会尝试连接到该机器上的任何服务。
当所有主服务器都不可用时,SSSD 会尝试连接到配置的备份服务器。当连接到备份服务器时,SSSD 会定期尝试重新连接到其中一个主服务器,并在主服务器可用时立即连接。这些尝试之间的间隔由 failover_primary_timeout
选项控制,该选项默认为 31 秒。
如果所有 IdM 服务器都无法访问,SSSD 会切换到离线模式。在这个状态中,SSSD 每 30 秒重试连接,直到服务器可用为止。
服务器端负载平衡和服务可用性
您可以通过安装多个 IdM 副本在 IdM 中实现负载平衡和高可用性:
- 如果您的网络分布在不同的地理位置,可以通过为每个数据中心配置多个 IdM 副本来缩短 IdM 客户端和最快的服务器间的路径。
- 红帽支持最多有 60 个副本的环境。
- IdM 复制机制提供主动/主动服务可用性:所有 IdM 副本的服务都同时可用。
红帽建议不要合并 IdM 和其他负载均衡或高可用性(HA)软件。
许多第三方高可用性解决方案假定使用主动/被动模式,并可能导致 IdM 服务出现不必要的中断。其他解决方案使用虚拟 IP 或每个集群服务使用一个主机名。所有这些方法通常不适用于 IdM 所提供的服务。另外,它们与 Kerberos 的集成效果也不好,从而降低了部署的整体安全性和稳定性。
其它资源
-
您系统上的
sssd.conf (5)
手册页