------------------------------------------------20190818记录,并非一定全面,暂未特别深入原理层,但当前理解也肯定没太大问题(误差)---------------------
 
keepalived可以做的事情:
 
1、High Available(HA):即服务的高可用功能,此处Keepalived在高可用HA上所使用到的方式,即为故障转移,假设此时存在,IP1号服务器,和IP2号服务器,他们分别拥有两个IP段(这不可置疑),但当IP1挂掉的时候,如果将用户还在访问IP1的时候,动态将服务切换到IP2的服务器呢?这就是Keepalived在HA上面所做的事情,即故障转移;
 
a):keepalived的做法是:在对应的IP1的服务器上,部署一套对应的keepalived,并虚拟出一个对应的IP地址;在对应的/etc/keepalived/keepalived.conf 下的 vrrp_instance实例块下,定义对应的virtual_ipaddress,当在当前的IP1服务上指定了当前虚拟IP所要绑定的网卡名称等一系列信息后,则当前的IP1服务器上则虚拟出了一个新的IP地址,及keepalived所设置的虚拟IP;
 
此时在对应的 IP2 服务器上,也是部署一套相同的 keepalived,并将上述的配置方式,同步更改到 IP2 机器上,不同的是,此时需要在对应的vrrp_instance实例下,标明当前keepalived的虚拟IP实例,state=BACKUP,即备用IP服务;并且需保证各个服务,IP1,也好,IP2,或者IP3服务也罢,都必须保证,在对应的vrrp_instance配置的实例下,virtual_router_id 必须相同,此处的route_id表示路由ID,及当前局域网内的唯一路由ID(心跳广播其它服务段使用);
 
看到这里,相信已经大概知晓了keepalived所做了事情了吧;此时IP1服务器上,进行keepalived的启动:service keepalived start,则此时再通过 ip addr,即可查看到此时在对应的eth0网卡上,inet上多出了一个新的虚拟IP,及当前keepalived所配置的虚拟IP;然后再切换到,IP2服务上,此时启动 keepalived,然后再通过 ip addr上查看,则会发现,当前IP2的服务器上,并没有生成新的虚拟IP(如果生成,则说明配置文件配置错误;主节点和备节点同时争用虚拟IP资源,这个现象叫做“裂脑”);
 
IP1和IP2的服务端,都同时启动了keepalived后,此时主节点和备用节点,则实时进行广播通讯,一旦主节点IP1的keepalived挂掉,则此时备用节点的IP2则无法接收到心跳信息,此时备用节点IP2将会调用自身接管程序,接管主节点的IP资源,;直接在服务上的体现则是:通过交换机请求的服务,则将会全部映射到IP2的服务机器上;
 
现象:
1、在IP1和IP2服务器上都启动了keepalive后,此时通过 ip addr命令,可以观察到IP1上所指定的网卡eht0,新增了一个虚拟的IP地址,而IP2服务端的指定网卡处,则并没有新增对应的虚拟IP,如下所示:
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:7b:43:41 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.5/20 brd 172.17.15.255 scope global eth0
       valid_lft forever preferred_lft forever
                                                此处的 192.168.200.16 即为keepalived中所配置的虚拟IP,可以看到当前的虚拟IP是挂载到了对应的eth0网卡上,
    inet 192.168.200.16/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe7b:4341/64 scope link
       valid_lft forever preferred_lft forever
那么当我们在对应的IP1服务器上,service keepalived stop,停止掉当前IP1服务器上所对应的keepalived服务时;此时再切换到IP2的服务器上,使用 ip addr命令,可以看到,当前IP2的服务器eth0网卡上,自动挂载了当前的192.168.200.16虚拟IP;那么当我们在IP1服务上,重新service keepalived start,启动了keepalived服务时,此时主节点IP1则会自动抢回对应的虚拟IPVIP,而此时的IP2服务器,则不再具备VIP虚拟IP,重新作为备用服务器而存在;
 
keepalived为什么可以实现这个功能呢?这个。。好像就是因为它是基于网络的,3,4,7层来实现的交换机制软件,并且故障转移 是通过VRRP协议协议来进行的实现,所以,keepalived的虚拟IP又有一个别名叫做,VIP;
而至于,keepalived当前是如何基于3,4,7层网络而实现的交换机制以及VRRP协议的实现等,当前还暂未深究;
 
keepalived的安装方式:
1、wget下载对应的源码包,然后进行编译安装,(LZ自身在进行编译的时候,出现了fatal error: linux/mpls_iptunnel.h: No such file or directory的异常;未解决,直接使用YUM进行了安装)
源码包的编译方式,可参考如下链接: https://www.cnblogs.com/mikeguan/p/6506983.html
尽管最终没有使用源码包的方式进行安装,但推荐还是看一下上述的链接,可以更加清晰了解,/etc/keepalived/keepalived.conf 配置的来源,
2、使用yum直接安装:yum install keepalived
3、可以使用 sysctmctl enable keepalived 设置当前keepalived为自启动
4、常用的keepalived命令:
shell> chkconfig keepalived on
shell> service keepalived start #启动服务
shell> service keepalived stop #停止服务
shell> service keepalived restart #重启服务
 
可以使用journalctl 查看服务是否正常启动
journalctl -xe
 
#/etc/init.d/keepalived restart -- 启动 keepalived
 
#tail -fn 100 /var/log/messages -- 查看 keepalived 状态日志
 
 
 
 

使用keepalived做High Available(HA)的更多相关文章

  1. Nginx+keepalived做双机热备加tomcat负载均衡

    Nginx+keepalived做双机热备加tomcat负载均衡 环境说明: nginx1:192.168.2.47 nginx2:192.168.2.48 tomcat1:192.168.2.49 ...

  2. lvs+keepalived做高可用方案1

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

  3. http+mysql结合keepalived做热备

    preface 公司要求http+mysql+redis+二次开发的ldap要求做高可用,所以此处写写keepalived在这种 环境下的高可用.keepalived这个软件我就不啰嗦了,众所周知,基 ...

  4. keepalived+双主实践HA

    工作不怎么忙,搞点儿开发吧差点儿事,就想着弄点儿架构的事儿.正好前段时间看过关于keepalived+双主实现高可用的文章,也恰好身边的朋友所在的公司也部分用这个架构.没什么事儿就搞搞吧,正好对比下M ...

  5. Redis主从复制+Keepalived+VIP漂移实现HA高可用技术之详细教程

    1.大家可以先看我的单台Redis安装教程,链接在此点击Redis在CentOS for LInux上安装详细教程 2.第一台redis配置,是正常配置.作为MASTER主服务器,第二台redis的配 ...

  6. Nginx+Keepalived 做负载均衡器

    1.安装 keepalived   1 2 3 4 5 6 7 8 9 tar zxvf keepalived-XXXX.tar.gz ./configure --prefix=/usr/local/ ...

  7. centos7 lvs keepalived做DNS集群负载

    2LVS + keepalived 5 bind dns源站 yum -y install  ipvsadm keepalived lvs增加并发 echo "options ip_vs c ...

  8. Nginx系列篇三:linux中Nginx+keepalived做一个高可用的主从配置

    建议:先阅读搭建Nginx负载均衡之后再看此篇 备注: Nginx+keepalived的高可用有两种方式 一.主从配置 二.双主热备配置[下一篇] 准备: 标配四台服务器 Master:192.16 ...

  9. Nginx+Keepalived+VIP漂移实现HA高可用技术之详细教程

    https://www.cnblogs.com/zcc666/p/13141626.html  这个是nginx安装教程地址 https://www.cnblogs.com/zcc666/p/1313 ...

随机推荐

  1. GitHub 标星 1.6w+,我发现了一个宝藏项目,作为编程新手有福了!

    大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻... 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚.当时一方面是因为菜,看着这种全是 ...

  2. Tensorflow多层LSTM代码分析

    1.tf.Graph() 你一旦开始你的任务,就已经有一个默认的图已经创建好了.而且可以通过调用tf.get_default_graph()来访问到. 添加一个操作到默认的图里面,只要简单的调用一个定 ...

  3. 【转】Pandas常见用法总结

    关键缩写和包导入 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 s:任意的Pandas Series对象 raw:行标签 col:列标签 引入响应模块: im ...

  4. Caffe 图像分类

      本文主要描述如何使用 CAFFE 进行图像分类. 开发环境要求:windows 10 64位.Visual Studio 2017..NET framework 4.6.1     分类 在一个项 ...

  5. 关于vue中的videoPlayer的src视频地址参数动态修改(网上一堆错误方法,被误导很久,自己找到了正确的方法,供大家借鉴)

    方法很简单:相信大家的问题应该是改变src的值吧,动态赋值这一步简单.this.playerOptions['sources'][0]['src'] 就是这一步解决提取src问题,主要部分用绿色框起来 ...

  6. 运维与开发的开车现场之MySQL5.7创建触发器报错解决过程

    报错内容如下: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds ...

  7. 程序员的算法课(11)-KMP算法

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  8. centos7更新php5.4到php5.6/php7

    centos7系统yum安装的php版本为5.4. 因业务需求,开发可能需要php5.6环境. 本文应需而生,介绍从php5.4升级到php5.6. 如需更新到php7环境,步骤一样. 如果是线上应用 ...

  9. 第一次c语言作业。

    第一次c语言作业 作业1 2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样? 我认为计算机科学与技术是研究信息过程.用以表达此过程的信息结构和规则及其在信息处理系统中实现的学科.这门学科是为 ...

  10. ASP.NET Core3.X 终端中间件转换为端点路由运行

    引言 前几天.NET Core3.1发布,于是我把公司一个基础通用系统升级了,同时删除了几个基础模块当然这几个基础模块与.NET Core3.1无关,其中包括了支付模块,升级完后静文(同事)问我你把支 ...