16.3.2. 配置共享存储高可用性
您可以使用共享存储高可用性(HA)策略在代理集群中实施 HA。使用共享存储时,实时和备份代理都访问共享文件系统上的通用目录,通常是存储区域网络(SAN)或网络文件系统(NFS)服务器。如果您配置了基于 JDBC 的持久性,您也可以将代理数据存储在指定的数据库中。使用共享存储时,如果 live 代理失败,备份代理会从共享存储中加载消息数据,并接管失败的实时代理。
通常,SAN 提供更好的性能(例如,速度)与 NFS 服务器,如果可用,建议使用这个选项。如果您需要使用 NFS 服务器,请参阅 Red Hat AMQ 7 支持的配置 以了解有关 AMQ Broker 支持的网络文件系统的更多信息。
在大多数情况下,您应使用共享存储 HA 而不是复制。由于共享存储不会通过网络复制数据,它通常比复制性能更好。共享存储还避免了网络隔离(也称为"脑裂")问题,其中实时代理及其备份同时处于活动状态。
使用共享存储时,备份代理的启动时间取决于消息日志的大小。当备份代理接管失败的实时代理时,它会从共享存储中加载日志。如果日志包含大量数据,该过程会花费时间。
16.3.2.1. 配置 NFS 共享存储
使用共享存储高可用性时,您必须将实时和备份代理配置为使用共享文件系统中的通用目录。通常,您使用存储区域网络(SAN)或网络文件系统(NFS)服务器。
在从每个代理机器实例上挂载 NFS 服务器导出目录时,以下列出了一些建议的配置选项。
同步
- 指定所有更改都会立即刷新到磁盘。
intr
- 如果服务器关机或无法访问,允许中断 NFS 请求。
noac
- 禁用属性缓存。需要此行为才能在多个客户端之间实现属性缓存一致性。
soft
- 指定如果 NFS 服务器不可用,应报告错误,而不是等待服务器恢复在线。
lookupcache=none
- 禁用查找缓存。
timeo=n
-
这个时间(秒为秒),NFS 客户端(即代理)在重新请求前等待来自 NFS 服务器的响应。对于使用 TCP 的 NFS,默认的
timeo
值是600
(60 秒)。对于通过 UDP 的 NFS,客户端使用自适应算法来估算常用请求类型的适当超时值,如读取和写入请求。 retrans=n
-
NFS 客户端在尝试进一步恢复操作前重试请求的次数。如果没有指定
retrans
选项,NFS 客户端会尝试每个请求三次。
在配置 timeo
和 retrans
选项时,务必要使用适当的值。默认的 timeo
等待时间为 600 秒(60 秒),重新传输值为 5 次重试可能会导致 AMQ Broker 检测到 NFS 断开连接。
其他资源
- 要了解如何从 NFS 服务器挂载导出的目录,请参阅 Red Hat Enterprise Linux 文档中的使用 挂载挂载 NFS 共享。
- 有关 AMQ Broker 支持的网络文件系统的详情,请参考 Red Hat AMQ 7 支持的配置。