前言
在GIS服务架构中,保障服务的高可用性始终是系统设计的核心诉求之一。SuperMap iServer可结合Keepalived实现高可用部署,具体流程可见:SuperMap iServer 结合Keepalived实现高可用部署_超图计算服务 iserver-CSDN博客
在实际部署过程中会遇到一些问题,本文将需要注意的常见问题梳理总结如下,方便大家进行排查。
一、监测脚本的编写
1、在主从服务器上分别编写监测服务及重启脚本checkIServer.sh,保存到/etc/keepalived目录。用 touch checkIServer.sh 命令来创建脚本,用 vim checkIServer.sh 命令来编写脚本:


注意:其中主节点和从节点脚本内容的区别为最后几行,需要分别设置为各服务器的iServer启动目录。
2、赋予脚本可执行权限:chmod +x /etc/keepalived/checkIServer.sh
二、keepalived.conf 的修改
在主从服务器上分别编辑/etc/keepalived下的keepalived.conf配置文件:

注意:
1、主节点和从节点的 router_id 不能一致。
2、主节点和从节点的网络接口 interface 不要设置错了,可通过 ifconfig 命令查看:

3、主节点和从节点的虚拟IP地址 virtual_ipaddress 要保持一致,并且虚拟IP前三位要设置为同网段,局域网内才可访问。
三、常见报错及解决办法
1、报错:WARNING - default user 'keepalived_script' for script execution does not exist - please create.和 SECURITY VIOLATION - scripts are being executed but script_security not enabled.
报错指出用于脚本执行的默认用户不存在且 script_security 未启用。
解决方案:是向 global_defs 段添加 script_user 和 enable_script_security 配置,指定脚本执行用户并开启安全检查,然后重启Keepalived服务。
global_defs {
router_id MY_ROUTER1 # router_id 主从服务器不能一致
script_user root
enable_script_security
}
2、报错:/etc/keepalived/checkIServer.sh exited with status 1
执行 checkIServer.sh 脚本时,返回了错误代码 1,表示脚本执行失败。
解决方案:查看系统日志
tail -f /var/log/syslog (适用于大多数 Debian/Ubuntu 系统)
tail -f /var/log/messages (适用于大多数 RedHat/CentOS 系统)
日志显示:SELinux is preventing /usr/bin/bash from write access on the file iserverStatus.log.
SELinux is preventing sh from getattr access on the file /usr/bin/sudo.
说明是 SELinux 安全策略阻止了脚本对系统文件的访问,可通过设置 SELinux 策略模块或者临时禁用 SELinux 解决。
3、主从节点网络互通,主节点访问虚拟ip:8090正常,从节点访问虚拟ip:8090报错:
The connection has timed out
解决方案:确保 keepalived.conf 中主节点和从节点的 virtual_ipaddress 设置一致,并且 virtual_ipaddress 的前三位与主从服务器IP的前三位一致。

7897

被折叠的 条评论
为什么被折叠?



