------------------------------------------------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. ganglia 服务端

    #!/bin/bash #配置参数 serverIP=192.168.1.16 network=ens32 #关闭selinux setenforce sed -i 's/SELINUX=enforc ...

  2. 转载 :c# 获取net framework 版本(Environment 类)

    源链接:http://www.cnblogs.com/tobecrazy/p/3362446.html 根据自己使用情况,添加了部分备注 1.获取当前操作系统版本信息 使用Environment.OS ...

  3. 数据降维-NMF非负矩阵分解

    1.什么是非负矩阵分解? NMF的基本思想可以简单描述为:对于任意给定的一个非负矩阵V,NMF算法能够寻找到一个非负矩阵W和一个非负矩阵H,使得满足 ,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积 ...

  4. 英语口语考试资料Friendships

    Friendships Remember Friendships can be complicated. When you want to get to know someone, it helps ...

  5. 鲲鹏云实验-Python+Jupyter机器学习基础环境

    [摘要] 介绍Ubuntu 18.04环境下Python3常用科学计算和数据分析包(numpy, scipy, matplotlib, sklearn, pandas)的安装,以及Jupyter No ...

  6. python让你再也不为文章配图与素材发愁,让高清图片占满你的硬盘! #华为云·寻找黑马程序员#

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  7. webpack入门指南(基于webpack v4.41.2)

    2019年12月5日初稿,目前webpack已经更新到v4.41.2,本文正是基于该版本,在windows8.1操作系统下进行的demo编译,适用于想入门webpack的前端开发人员. webpack ...

  8. 一道随机函数题:由rand5()生成rand7()

    题目:已知rand5()函数能随机等概率的生成0, 1, 2, 3, 4,利用rand5()函数编写一个rand7()函数实现相似的功能. 分析:其实就是利用rand5()组合成一个更大范围的数,之后 ...

  9. android 点击无效验证

    背景 在写一个东西滑动删除列表的时候,出现了一个问题.我的需求是,左滑然后出现delete,然后点击delete,让该滑块消失. 我在点列表的第一行的时候,左滑,出现delete,点击删除,ok的,完 ...

  10. Mysql的查询语句的使用

    1. 简单查询 查询所有字段: SELECT * FROM 表名 查询特定字段: SELECT 字段列表 FROM 表名 2. 查询显示行号 - 在字段列表中加入(@rownum := @rownum ...