多服务器对外提供一个浮动ip

浅调研了下浮动ip方案。主要是用来做高可用/灾备切换,同一时间只有一个服务器提供服务。

三个问题

无论是什么方案,都要解决这三个问题:

  1. 如何配置浮动ip
  2. 如何实现故障检测
  3. 如何切换浮动ip

浮动IP方案

第一种:主备手动配置ip,脚本执行检测切换

https://blog.csdn.net/helloworld_9/article/details/133799465
主从上网卡配置浮动ip;利用crontab自动执行技术,定时执行脚本,检查IP地址的状态,实现浮动IP的自动开启与关闭(ifdown eth0:1)
本质:主ping自己浮动ip,ping不同就开启;备ping主ip、浮动ip,ping不同就启动从上的浮动ip,能ping通再关

三个ip同一个网段
问题:
1.从有网络问题导致ping不通主时,两个浮动ip都开启怎么办?
2.检测脚本自己挂了怎么办?

第二种:keepalived

https://blog.csdn.net/Hack_Bug/article/details/110914696
keepalived配置vip和检测脚本路径,自动切换

如何监控服务状态:
https://blog.csdn.net/yusewuhen/article/details/133918777
最简单的做法是监控进程,更靠谱的做法是检查端口,最靠谱的做法是检查多个url能否获取到页面。

通过脚本检测服务是否在运行

ip自动漂移,不可控
virtual_ipaddress 要和两台服务器在一个网关里面,还是同网段。不同网段虽然能查到一些文章,单没有看到具体实现方案,得试。

第三种:Heartbeat

这个没怎么查,只看了下同keepalived的区别。感觉非双机热备用不到这么复杂的方案。

keepalived Heartbeat
使用 安装、配置、使用、维护简单 复杂,但功能更强大,配套工具更全
集群管理 用于集群倒换,基本没有管理功能 适合做大型集群管理
协议 使用VRRP协议做双机进行通信和选举 使用心跳进行通信和选举
lvs的高可用建议用keepavlived 业务的高可用建议heartbeat

keepalived是高可用集群,heartbeat是双机热备

Heartbeat仅仅是个HA软件,它仅能完成心跳监控和资源接管,不会监视它控制的资源或应用程序,要监控资源和应用程序是否运行正常,必须使用第三方的插件,例如ipfail、Mon、Ldirector等。Heartbeat自身包含了几个插件,分别是ipfail、Stonith和Ldirectord

heartbeat高可用是服务器级别的,不是服务级别的。

方案总结

回答三个问题:

  1. 如何配置浮动ip:
    本质都是在服务器网卡上配置别名ip或者辅助ip

https://blog.csdn.net/chengxuyuanyonghu/article/details/83539966 提示,别名ip将被遗弃,使用辅助ip替代

  1. 如何实现故障检测:
    自动检测顶多能检测到ip通不通,想要检测服务挂不挂、挂了再切就要自己写脚本
  2. 如何切换浮动ip:
    既然vip都是配到了网卡上,猜测一下,就是删除现在的vip配到另一台机器上。(待查证)

更复杂的情况-别的思路

简单场景用简单方法,如果场景复杂了,就要考虑别的问题。

  1. 高可用/灾备切换,同一时间只有一个服务器提供服务,相对简单。如果是需要同时提供服务,负载均衡,如何处理?
  2. 如果不是多服务器,是多集群,对外提供一个浮动ip,这个ip配在哪里?

这就要搞复杂方案了,上nginx,单独写一篇。
——看这个nginx反向代理,暂时就先写到vip,负载均衡后面补上。

扩展:HaVip

查资料的时候看到了这个,总体就是云环境会有问题,所以也先放到这里。

https://help.aliyun.com/zh/vpc/user-guide/use-highly-available-virtual-ip
在VPC(虚拟私有云)环境下不支持免费ARP广播功能,无法像传统方式一样修改主机IP地址,且整个虚拟网络是基于3层的隧道技术,ARP被终结在发送端,主机无法声明IP地址。

你可能感兴趣的:(Linux/Ubuntu,服务器,tcp/ip,数据库)