统信UOS系统中构建Keepalived高可用服务有四种方法:一、在线APT源安装并配置主备节点;二、离线环境打包依赖安装;三、源码编译安装以支持定制化需求;四、Nginx+Keepalived联合健康检查验证。

如果您在统信UOS系统中需要构建高可用服务,但尚未部署Keepalived,则可能是由于缺少基础依赖、配置路径不标准或主备角色未明确区分。以下是完成Keepalived高可用安装与配置的多种可行方法:
一、在线APT源安装并配置主备节点
该方法适用于具备稳定网络连接的UOS环境,直接调用官方软件源安装keepalived,并通过标准化配置文件实现VRRP主备切换。所有操作需在root权限下执行。
1、在主节点(uos1)执行安装与基础配置:
2、运行命令 apt-get update 更新软件源列表。
3、执行 apt-get install keepalived 安装主程序。
4、备份原始配置:cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak。
5、编辑 /etc/keepalived/keepalived.conf,将 global_defs 中的 route_id 修改为 uos1;vrrp_instance 段中 state 设为 MASTER,priority 设为 100,interface 设置为实际网卡名(如 ens33),virtual_router_id 与认证密码 auth_pass 需与备节点一致,virtual_ipaddress 添加 VIP 地址(如 192.168.200.188)。
6、在备节点(uos2)重复步骤2–4,仅修改 route_id 为 uos2、state 为 BACKUP、priority 为 90(必须低于主节点)。
7、分别在两节点执行 systemctl restart keepalived && systemctl enable keepalived 启动并设为开机自启。
8、使用 ip addr show dev ens33 验证 VIP 是否绑定至主节点网卡。
二、离线环境安装Keepalived(含完整依赖打包)
该方法适用于生产环境中无外网访问权限的UOS系统,通过在联网机器上预下载全部依赖包,再拷贝至目标机器完成闭环安装,避免因缺失libnl、openssl-devel等底层依赖导致编译失败或功能异常。
1、在一台同架构(x86)且已联网的UOS系统中创建离线包目录:mkdir -p /opt/keepalived_offline。
2、进入该目录后执行:apt-get update。
3、运行以下命令递归获取keepalived及其全部依赖.deb包:apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances keepalived | grep "^\w" | sort -u)。
4、将整个 /opt/keepalived_offline 目录拷贝至目标离线UOS机器。
5、在离线机中执行 dpkg -i *.deb 一次性安装所有包(若提示依赖错误,可加 --force-depends 参数后重试)。
6、确认 /usr/sbin/keepalived 可执行文件存在,且 /etc/keepalived/ 目录已生成。
7、按方法一中第5、6步完成主备配置文件编辑。
三、源码编译安装(支持自定义路径与高级特性)
该方法适用于需启用IPVS、IPv6支持或定制化监控脚本的场景,绕过APT包管理限制,直接控制编译参数与安装位置,适用于对高可用机制有深度定制需求的管理员。
1、在UOS系统中安装编译依赖:apt-get install -y curl gcc openssl-devel libnl3-devel net-snmp-devel。
2、下载Keepalived源码包:wget http://www.keepalived.org/software/keepalived-2.2.8.tar.gz(以最新稳定版为准)。
3、解压并进入源码目录:tar zxvf keepalived-2.2.8.tar.gz && cd keepalived-2.2.8。
4、执行配置命令:./configure --prefix=/usr/local/keepalived --sysconfdir=/etc。
5、编译并安装:make && make install。
6、创建标准配置目录:mkdir -p /etc/keepalived。
7、将示例配置复制到标准路径:cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/。
8、复制SysV启动脚本:cp /usr/local/keepalived-2.2.8/keepalived/etc/init.d/keepalived /etc/init.d/。
9、复制环境变量文件:cp /usr/local/keepalived-2.2.8/keepalived/etc/sysconfig/keepalived /etc/sysconfig/。
10、建立二进制软链接:ln -sf /usr/local/keepalived/sbin/keepalived /sbin/keepalived。
11、编写 systemd service 文件(若系统使用systemd),内容需包含 Type=simple、ExecStart=/sbin/keepalived -D -f /etc/keepalived/keepalived.conf 等关键字段。
四、Nginx+Keepalived联合高可用验证配置
该方法不仅部署Keepalived,还集成Nginx健康检查机制,确保VIP仅在Nginx进程存活时才生效,避免“脑裂”或服务不可用却仍持有VIP的问题,提升真实业务连续性保障等级。
1、在主备节点均安装并启动Nginx:apt-get install nginx && systemctl start nginx && systemctl enable nginx。
2、在主节点创建检测脚本 /etc/keepalived/check_nginx_pid.sh:
3、写入内容:#!/bin/bash if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then exit 1; else exit 0; fi。
4、赋予执行权限:chmod +x /etc/keepalived/check_nginx_pid.sh。
5、在 keepalived.conf 的 vrrp_instance 段上方添加 vrrp_script 块:
6、写入:vrrp_script chk_http_port { script "/etc/keepalived/check_nginx_pid.sh" interval 2 weight 2 }。
7、在 vrrp_instance 段内添加 track_script { chk_http_port }。
8、重启 keepalived 服务使检测逻辑生效。
9、手动停止主节点Nginx:systemctl stop nginx,观察VIP是否在3秒内漂移至备节点。
10、重新启动主节点Nginx,确认VIP是否自动切回主节点(需确保未启用 nopreempt 选项)。

















