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