------------------------------------------------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. 胜利点组——“萌猿填词”微信小程序评价

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9860 1.根据(不限于)NABCD评论作品的选题; (1).你的创意解决了 ...

  2. Django--导出项目依赖库requirements.txt

    虚拟环境下: 1.导出项目依赖库: pip freeze > requirements.txt 2.使用 pip 一次性安装项目的所有依赖项,方法是在命令行中输入:  pip install - ...

  3. python3 之 面向对象(类)、继承、派生和多态

    类提供了一种 组合数据和功能 的方法.创建一个新类意味着:创建一个新 类型  的对象,从而允许创建一个该类型的新 实例. 每个类的实例可以拥有: 保存自己状态的属性. 一个类的实例也可以有改变自己状态 ...

  4. Rust 入门 (三)_上

    这部分我们学习 rust 语言的 变量.数据类型.函数.注释.流程控制 这五个方面的内容.本文我们介绍前两个内容,下一篇文章介绍后三个内容. 变量 默认情况下,rust 语言中声明的变量是不可变的,比 ...

  5. linux ftp配置及实操

    一.基础知识: 1.ftp:file transfer protocal 及文件传输协,工作与应用层. 2.ftp协议的实现: 服务器端实现软件:vsftpd,pureftpd,filezilla s ...

  6. Python模块——loguru日志模块简单学习

    Python loguru模块简单学习 首先安装模块:pip install logoru,然后引入模块: from loguru import logger 1.直接输出到console logge ...

  7. 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建

    7月4日任务 18.6 负载均衡集群介绍18.7 LVS介绍18.8 LVS调度算法18.9/18.10 LVS NAT模式搭建 扩展lvs 三种模式详解 http://www.it165.net/a ...

  8. Select下拉框onchange事件获取option的value值

    首先方法中使用到了jqury,首先导入jqury的插件: 如果jqury的小插件没有的话,就去网上下载一个吧,jqury比原生的js使用起来方便了很多,这里也提供一个我的jqury的下载地址: jqu ...

  9. Feign超时设置

    转-原文:https://xli1224.github.io/2017/09/22/configure-feign/ 在分析 Feign 源码的时候,我们看到 Feign 构建代理对象是分了几层的,一 ...

  10. Java泛型之上、下界通配符的理解(适合初学)

    泛型的由来 为什么需要泛型   Java的数据类型一般都是在定义时就需要确定,这种强制的好处就是类型安全,不会出现像弄一个ClassCastException的数据给jvm,数据安全那么执行的clas ...