此操作说明基于麒麟V10 SP3中离线安装
1、设置SSH免密登录
- 在主服务器生成默认密钥,执行:
shell
ssh-keygen -t rsa
-
一路回车,会生成:
~/.ssh/id_rsa
~/.ssh/id_rsa.pub

- 然后再执行:
shell
ssh-copy-id root@备服务器ip
-
输入备服务器密码即可,此时主服务器可以SSH免密登录备服务器

-
根据以上操作流程,在备服务器中也配置SSH免密登录主服务器
2、安装配置lsyncd
官方地址:https://lsyncd.github.io/lsyncd/
2.1、下载安装包
-
进入下载地址:https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/x86_64/Packages/
-
下载rpm包:lsyncd-2.2.3-2.ky10.x86_64.rpm
-
将下载后的rpm包上传至服务器
2.2、执行安装
- 使用以下命令安装lsyncd
shell
rpm -ivh lsyncd-2.2.3-2.ky10.x86_64.rpm

2.3、配置lsyncd
- 查看环境变量文件,可根据自己需要修改该环境变量,这里使用默认环境变量
shell
cat /etc/sysconfig/lsyncd

- 备份原配置文件
shell
mv /etc/lsyncd.conf /etc/lsyncd.conf.bak
- 创建配置文件
shell
vi /etc/lsyncd.conf
- 插入如下基础配置
lua
-- 全局配置
settings {
-- 运行日志目录
logfile = "/var/log/lsyncd.log",
-- 同步状态日志目录
statusFile = "/var/log/lsyncd-status.log",
-- 更新状态日志时间间隔(秒)
statusInterval = 20
}
-- 通用配置
common = {
-- 同步模式:rsync + ssh 同步
default.rsyncssh,
-- 远程服务器
host = "192.168.239.180",
-- rsync参数
rsync = {
-- 保持文件完整属性
archive = true,
-- 是否压缩传输,局域网推荐关闭
compress = false,
-- 是否使用增量同步
whole_file = false
},
-- ssh配置
ssh = {
-- 远程服务器ssh端口
port = 22
}
}
-- 同步任务配置(同步多个目录写多个sync {} 块)
sync {
common,
-- 需要监控并同步的本地目录
source = "/home/test1",
-- 同步排除规则文件
excludeFrom="/etc/lsyncd.exclude",
-- 远程服务器目录
targetdir = "/home/test1"
}
sync {
common,
source = "/home/test2",
excludeFrom="/etc/lsyncd.exclude",
targetdir = "/home/test2"
}
- 创建排除规则文件
shell
vi /etc/lsyncd.exclude
-
插入如下配置(按需修改)
日志文件
*.log
临时文件
*.tmp
*.swp
*.bak缓存目录
cache/
tmp/
logs/
核心规则
*.log → 文件
tmp/ → 目录
*/tmp/ → 任意目录
- 启动lsyncd
shell
systemctl start lsyncd
此时:
主服务器/home/test1目录下的任何文件变更都会同步至备服务器的/home/test1目录中
主服务器/home/test2目录下的任何文件变更都会同步至备服务器的/home/test2目录中
- 根据以上操作流程,在备服务器中也安装配置好lsyncd
3、安装配置keepalived
3.1、下载安装包
- 进入下载地址:https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/x86_64/Packages/
- 下载rpm包
- keepalived-2.0.20-19.ky10.x86_64.rpm
- keepalived-help-2.0.20-19.ky10.noarch.rpm
- net-snmp-5.9-8.p02.ky10.x86_64.rpm
- net-snmp-help-5.9-8.p02.ky10.noarch.rpm
- 将下载后的rpm包上传至服务器
3.2、执行安装
- 使用以下命令安装keepalived
shell
rpm -ivh *.rpm

3.3、配置keepalived
- 备份原配置文件
shell
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
- 创建配置文件
shell
vi /etc/keepalived/keepalived.conf
- 插入如下基础配置
- 按照注释说明修改为自己需要的配置
- 此处主、备服务器的初始状态均设为 BACKUP,实际 MASTER 由 priority 决定
- 建议主服务器priority设为100,备服务器priority设为90
shell
# 定义一个检测脚本,用于检查 lsyncd 是否正常运行
vrrp_script chk_lsyncd {
# 要执行的脚本路径
script "/etc/keepalived/check_lsyncd.sh"
# 每 2 秒执行一次检测
interval 2
# 如果检测失败,当前节点 priority 减 20
# 用于触发主备切换
weight -20
}
# 定义一个 VRRP 实例
vrrp_instance VI_1 {
# 初始状态为 BACKUP
# 实际 MASTER 由 priority 决定
state BACKUP
# 绑定的网卡
interface ens33
# VRRP 路由ID
# 同一组高可用节点必须一致
virtual_router_id 51
# 节点优先级
# 数值越大越容易成为 MASTER
priority 100
# VRRP 心跳发送间隔(秒)
advert_int 1
# 不抢占模式
# MASTER 恢复后不会自动抢回 VIP
nopreempt
# VRRP 认证配置
authentication {
# 认证方式
auth_type PASS
# 认证密码
# 主备必须一致
auth_pass 1111
}
# 配置虚拟IP(VIP)
# MASTER 节点会绑定这个IP
virtual_ipaddress {
192.168.239.200
}
# 监控脚本
# 当脚本失败时会调整 priority
track_script {
chk_lsyncd
}
# 当节点变为 MASTER 时执行脚本
# 通常用于启动 lsyncd
notify_master "/etc/keepalived/master.sh"
# 当节点变为 BACKUP 时执行脚本
# 通常用于停止 lsyncd
notify_backup "/etc/keepalived/backup.sh"
# keepalived 服务停止时执行脚本
# 防止 lsyncd 残留运行
notify_stop "/etc/keepalived/backup.sh"
}
- 创建节点变为 MASTER 时执行脚本
shell
vi /etc/keepalived/master.conf
- 插入如下内容
shell
#!/bin/bash
systemctl start lsyncd
- 创建节点变为 BACKUP 或 keepalived 服务停止时执行脚本
shell
vi /etc/keepalived/backup.conf
- 插入如下内容
shell
#!/bin/bash
systemctl stop lsyncd
- 创建检测脚本,用于防脑裂
shell
vi /etc/keepalived/check_lsyncd.sh
- 插入如下内容
shell
#!/bin/bash
systemctl is-active lsyncd > /dev/null 2>&1
if [ $? -eq 0 ]; then
exit 0
else
exit 1
fi
- 赋予上述脚本执行权限
shell
chmod +x /etc/keepalived/*.sh
- 设置开机自启
shell
systemctl enable keepalived
- 启动keepalived
shell
systemctl start keepalived
- 若服务器开启了防火墙,需对vrrp放行
shell
firewall-cmd --permanent --add-protocol=vrrp
firewall-cmd --reload
- 在主、备服务器均按上述流程安装并启用keepalived
- 通过使用以下命令查看主服务器是否存在VIP
shell
ip addr

- 停止主服务器的keepalived服务后,VIP会飘移至备服务器,且停止主服务器的lsyncd服务,启动备服务器的lsyncd服务

至此,lsyncd+keepalived对主备双机文件热备配置完成