Keepalived让树莓派也可以VIP漂移

作者: 刘小白DOER | 来源:发表于2020-09-06 22:17 被阅读0次

        本文利用两块树莓派4B来玩一下漂移,可不是扔到地上哈,而是VIP(Virtual IP Address)。网页用pi-dashboard来演示。为了配置keepalived,笔者试了一次失败,中间一直没有时间捡起来,今天闲下来终于成功了,有些高兴!我猜可能是开始前吃的那个苹果帮助了我,当然和牛顿的那个苹果还是不一样。

        两个树莓派通过sudo apt-get install keepalived安装keepalived,安装完成会生成/etc/keepalived/目录,按照网络上的资源,应该有个配置文件keepalived.conf,安装完成后后就是没有看到。辗转反侧,apt-ge这种方法安装是没有配置文件的,需要手动建立一个配置文件,keepalived启动时会读取,没有就会默认。

        进入目录/etc/keepalived/,创建配置文件sudo nano keepalived.conf,需要root权限。

        master:

        vrrp_instance lamp {

            state MASTER

            interface wlan0

            virtual_router_id 100

            priority 200

            advert_int 2

            authentication {

                    auth_type PASS

                    auth_pass 123456

            }

            virtual_ipaddress {

                    192.168.31.100

            }

    }

    slave:

    vrrp_instance lamp {

            state BACKUP

            interface wlan0

            virtual_router_id 100

            priority 50

            advert_int 2

            authentication {

                    auth_type PASS

                    auth_pass 123456

            }

            virtual_ipaddress {

                    192.168.31.100

            }

    }

        需要配置的项为:state,interface,priority,virtual_ipaddress,virtual_router_id,advert_int。state表明主备master backup。interface就是网卡名称,可以ifconfig或者ip addr命令查看,笔者使用的是wifi,所以是wlan0。priority是优先级别,取值范围0~254,数字越大优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级,这样MASTER故障恢复后,就可以将VIP资源再次抢回来。virtual_ipaddress虚拟IP地址池,可以有多个IP,每个IP占一行,主备一致。virtual_router_id:虚拟路由的ID号,每个节点设置必须一样。advert_int:MASTER与BACKUP节点间同步检查的时间间隔,单位为秒。

        这是只是核心的参数,其他参数包括脚本检查等请自行搜索资料或者上官网有详细的介绍。

        配置完成后就需要在两个树莓派上面重启keepalived进程 /etc/init.d/keepalived restart。下面三个命令可以查看启动停止进程。

        /etc/init.d/keepalived status # 查看状态

        /etc/init.d/keepalived stop # 停止

        /etc/init.d/keepalived start # 启动

        还有一个主要的命令tail -f /var/log/messages可以动态刷新查看日志,对于 /etc/init.d/keepalived status是静态查看来说,可以实时查看切换过程日志信息。下图是master进程正常后的信息,抢占VIP资源。

    master抢占VIP资源

        查看vip在master或者backup上面,可以使用ip addr查看。

    ip addr查看VIP

        最后试一试网页pi-dashboard,可以通过hostname来确定vip在哪里。

    pi-dashborrd演示

        疑难杂症。

        笔者配置好后,master抢占vip,,杀掉进程后,vip没有漂移到slave。读者从下图可以定位到是什么原因吗,这个可以找了我一个小时的时间,真系阴功啰。只能说要养成看日志的习惯,呈现给你的信息比网络上乱七八糟的信息有用很多。

    日志信息

        目前树莓派安装了LAMP,上面的mariadb数据库只配置了主从复制,下一步再搭建双主结构,配合检查数据库状态的脚本来漂移VIP,提升高可用性。双主结构+keepalived有啥用处呢?根据笔者学习书籍“高可用MYSQL”,双主复制在生产中很少用到,因为数据一致性是个大问题,也无法扩展写操作。但是局域网小型服务器就可以用来做灾备,比如笔者见到用pgsql+vip漂移来实现服务器的高可用。但vip漂移不知是否是keepalived来实现,毕竟还有heartbeat。

        本文keepalived配置只是配了VIP功能,其他详细的参数没有配置,特别是脚本检查方面的功能,待下个专题来测试吧。

        同时,keepalived和heartbeat也找个专题来分析一下区别。

        最后还是说一下日志信息里面的故障,少了个} 。

    相关文章

      网友评论

        本文标题:Keepalived让树莓派也可以VIP漂移

        本文链接:https://www.haomeiwen.com/subject/cmkvjktx.html