https://docs.cloudstack.apache.org/en/4.18.0.0/adminguide/reliability.html
参考翻译:
代理上支持多个管理服务器
在具有多个管理服务器的Cloudstack环境中,可以根据算法配置代理,将其连接到哪个管理服务器。这对于内部负载均衡器或高可用性非常有用。管理员负责设置管理服务器的列表,并使用全局设置选择排序算法。管理服务器负责将设置传播到连接的代理(在辅助存储虚拟机、控制台代理虚拟机或KVM主机内部运行)。
需要配置的三个全局设置如下:
主机:管理服务器IP地址的逗号分隔列表
indirect.agent.lb.agorithm:间接代理lb的算法
indirect.agent.lb.check.interval:代理后台任务的首选主机检查间隔,该任务检查并切换到代理的首选主机。
这些设置可以从UI中的全局设置页面进行配置,也可以使用updateConfiguration API调用进行配置。
indirect.agent.lb.算法设置支持以下算法选项:
static:使用提供的管理服务器IP地址列表。
roundrobin:根据主机的id,在管理服务器上均匀分布主机。
shuffle:伪随机排序列表(不建议用于生产)。
笔记
“静态”和“循环”算法严格检查它们所期望的顺序,然而,“洗牌”算法只检查内容,而不是逗号分隔的管理服务器主机地址的顺序。
对全局设置-indirect.agent.lb.算法和主机的任何更改都不需要重新启动管理服务器和代理。这些全局设置中的更改将传播到所有连接的代理。
在以下情况下,逗号分隔的管理服务器列表会传播到代理:-添加代理(包括ssvm、cpvm系统VM)。-代理与管理服务器的连接或重新连接。-管理员更改“主机”和/或“间接.agent.lb.algorithm”全局设置后。
在代理端,“host”设置保存在其属性文件中为:host=<逗号分隔的地址>@<算法名称>。
从代理的角度来看,传播列表中的第一个地址将被视为首选主机。可以通过配置indirect.agent.lb.check.interval来激活新的后台任务,这是CloudStack中的群集级全局设置,管理员也可以通过配置agent.properties文件中的“host.lb.check.interval”来覆盖此设置。
当代理获得主机和算法组合时,还会发送特定于主机的后台检查间隔,并在后台任务中动态重新配置,而无需重新启动代理。
为了更清楚地说明问题,请考虑以下示例:假设一个环境有3个管理服务器:A、B和C以及3个KVM代理。
设置“host”=“A,B,C”,代理将根据“direct.agent.lb”值接收列表:
“static”:每个代理将接收列表:“A,B,C”“round-robin”:第一个代理接收:“A、B、C”,第二个代理接收到:“B、C、A”,第三个代理接收“C、B、A”“shuffle”:每个代理将按随机顺序接收列表。