------------------------------------------------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. 2019-10-24:渗透测试,sqli-labe,less18,19关

    less19基于错误_POST_Referer_请求头注入 查看关键源码,跟18关不一样的只是,回显的是Referer不是User-Agent,判断INSERT语句结构:INSERT INTO tab ...

  2. 2019-10-24:伪静态,VULHUB搭建靶场,宽字节sql注入,笔记

    伪静态1,需要开启站点的重写机制,需要修改配httpd配置文件,将LoadModule rewrite_module modules/mod_rewrite.so注释取消,需要apache支持解析.h ...

  3. Gitlab用户信息批量导出

    前言 因运维体系中涉及到用户权限管理及统计,需将Gitlab用户数据提取出来并录入到公司内部自建的权限统计平台. 本文将对Gitlab的用户信息数据批量导出进行操作说明! 思路 A)要对数据进行批量的 ...

  4. java Random类详解

    java Random类位于java.util包下,主要用来生成随机数,本文详解介绍了Random类的用法,希望能帮到大家 Random类 (java.util) Random类中实现的随机算法是伪随 ...

  5. xmlhttp.readyState的值及解释

    xmlhttp.readyState的值及解释: 0:请求未初始化(还没有调用 open()). 1:请求已经建立,但是还没有发送(还没有调用 send()). 2:请求已发送,正在处理中(通常现在可 ...

  6. selenium无界面执行和反爬

    selenium无界面执行和反爬 无界面执行 from selenium import webdriver from selenium.webdriver.chrome.options import ...

  7. Oracle procedure 在命令行里面执行出错

    One procedure do well in SQL developer but error during exceute it under sqlplus command line: Remem ...

  8. Vue 一个注册页面有省市联动

    var vm = new Vue({ el: '#complete-info', data: { provinceList: [], selectedProvince: "", c ...

  9. python-14-文件操作

    前言 python中对文件的读写也是非常方便的,本章节将讲解读.写.读写等常用操作.下面讲师必要的参数: 1.文件路径:必须得知道文件的路径,不然怎样进行读写? 2.编码方式:utf-8,gbk,gb ...

  10. pyecharts实现星巴克门店分布可视化分析

    项目介绍 使用pyecharts对星巴克门店分布进行可视化分析: 全球门店分布/拥有星巴克门店最多的10个国家或地区: 拥有星巴克门店最多的10个城市: 门店所有权占比: 中国地区门店分布热点图. 数 ...