centos7上离线环境利用 keepalived 实现VIP
背景:一般在银行内部是无法连接外网(互联网)的,基于生产环境数据库需要双机热备,对外共享同一IP,本文利用 keepalived 实现虚拟IP。
环境:
10.12.248.91 为将要设置的共享VIP
10.12.248.13 master (主数据库)
10.12.248.15 backup (从数据库)
postgresql 安装:https://blog.csdn.net/caoxbzhangsn/article/details/96359241
注:主从数据库都需要安装 keepalived
安装 keepalived 所需要的依赖环境(rpm)
- rpm 包下载地址:https://download.csdn.net/download/caoxbzhangsn/11367500
- 没有积分可以在这一个一个下载:https://pkgs.org/
- 上传到服务器任意目录
- 安装所有依赖包
rpm -Uvh --force *.rpm
安装 keepalived
以 /app/vip/ 目录为例
- 上传 keepalived-2.0.6.tar.gz 包到 /app/vip/ 目录
- 解压: tar -zxvf keepalived-2.0.6.tar.gz
- 创建编译目录:mkdir /app/vip/keepalived
- 进入目录:cd keepalived-2.0.6
- 编译:./configure --prefix=/app/vip/keepalived
- 安装:make && make install
- 查看安装效果:cd /app/vip/keepalived/ 如下图
启动 keepalived
systemctl start keepalived
查看启动结果:systemctl status keepalived.service
出现以下错误
解决方法,复制以下配置到相应位置:
- cp keepalived-2.0.6/keepalived/etc/init.d/keepalived /etc/init.d/
- mkdir /etc/keepalived
- cp /app/vip/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
- cp keepalived-2.0.6/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
- cp /app/vip/keepalived/sbin/keepalived /usr/local/sbin/
再次启动:systemctl start keepalived
查看状态 systemctl status keepalived.service 如下图:
截至, 主从数据库服务器都完整安装了 keepalived
配置 VIP
在主数据库 10.12.248.13 上操作
在目录 /etc/keepalived/ 下创建一个文件 vi keepalived.conf
添加内容如下:
vrrp_instance VI_1 {
state MASTER
interface eno16780032 #网卡接口
virtual_router_id 51
priority 101 #优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.12.248.91 #VIP
}
}
重启 keepalived : systemctl restart keepalived
通过命令: ip addr 查看如下图
在备数据库 10.12.248.15 上操作
在目录 /etc/keepalived/ 下创建一个文件 vi keepalived.conf
添加内容如下:
vrrp_instance VI_1 {
state BACKUP
interface eno16780032 #网卡接口
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.12.248.91
}
}
重启 keepalived : systemctl restart keepalived
通过命令: ip addr 并没有发现 10.12.248.91 信息,那是因为 priority 优先级100<101
所以VIP飘在主数据库上,当停掉主数据库时,再通过 ip addr 就会发现 VIP 飘到从数据库
备注:
这里作演示可以先停掉主数据库的 keepalived 服务 ,systemctl stop keepalived
然后在从数据库 ip addr 即可看到 VIP 信息