keepliave
keepalived的主要功能
 1. healthcheck:
           检查后端节点是否正常工作
           如果发现后端节点异常,就将该异常节点从调度规则中删除;
           如果发现后端的异常节点恢复正常了,就将该节点重新加入到调度规则中;
	2. failover:
                 是对调度器的主节点做健康检测。
                  将备用节点升级为主节点
                   接管主节点上的资源(vip、lvs规则)
3.keepalived实现故障切换的原理
                     1.keepalived是基于vrrp写于实现的故障切换
                      2.正常情况下,主节点会每隔一段时间向备节点发送一个心跳信息,这个就是告诉备节点自己正常。
                      3.当主节点发生故障,那么备节点无法接收都心跳信息,就认定主节点故障,那么就会接收主节点的业务和资源(包括vip)
                       4.当主节点又恢复的时候,那么备节点释放所接收到资源和业务
vrrp协议
                1. VRRP((Virtual Router Redundancy Protocol),虚拟路由冗余协议,为了解决静态路由的单点故障问题
                  2. VRRP的工作机制是基于竞选机制选择一个路由来完成任务处理
                 3. VRRP协议是通过发送多播数据包实现竞选的(Multicat)
                 4. 竞选出来主节点会一直发送广播包,backup节点一直监听这些广播包(处于监听状态)
                 5. 当备用节点无法接收到广播包的是时候,就会重新进行竞选,选出一个新的节点作为主节点
keepalived可以完成如下工作
                       1. 自动生成vip(vip给用户提供服务)
                        2. 自动配置lvs规则
                        3. 可以实现各种服务的高可用
                        4. failover的时候,做vip的漂移
案例:实现64(master) 和 65(backup) 两个主机上的web服务的高可用,提供服务的IP 233
第一步:在实现高可用的节点的上安装keepalived(都需要安装)
[root@ ~]# yum install keepalived -y
第二步:配置keepalived
[root@ ~]# vim /etc/keepalived/keepalived.conf
global_defs {                  <<<全局配置段
   notification_email {
   @qq.com
}
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout
   router_id LVS_DEVEL      <<< 当前主机的ID值,这个值必须是唯一的
  
}
vrrp_instance VI_1 {     <<< 指定实例的名称
    state MASTER         <<<指定节点的状态,MASTER表示主,BACKUP表示备用节点
    interface eth0       <<< 指定将VIP绑定在哪个网卡上
    virtual_router_id 51  <<< 虚拟路由ID,用于标识哪些个节点是一组,同一组的主机的虚拟id需要相同
    priority 100          <<< 指定该节点的优先级(主这节点的优先级大于备节点)
    advert_int 1          <<< 指定备节点在几秒之内没有接收到主节点的心跳信息,就接管其业务和资源
    authentication {
        auth_type PASS        <<< 指定keepalived集群中各个主备节点做认证的方式
        auth_pass
    }
    virtual_ipaddress {
    10.220.5.233              <<< 指定用于提供服务的ip地址(也就是VIP)
 }
}
virtual_server 10.220.5.233 {   <<<指定实例对应的VIP
    delay_loop 6                 <<<对后端节点做健康检查的时间间隔
    lb_algo rr                   <<<指定负载均衡调度算法
    lb_kind DR
    persistence_timeout 50        <<<同一IP的请求50秒内被分配到同一台真实主机
    protocol TCP                  <<<用TCP协议对真实节点做健康检查
    real_server 10.220.5.64  {  <<< 指定一台真实服务器的IP和端口
        weight 1                  <<<设置权重
     TCP_CHECK{                    <<<用建立tcp连接的方式做健康检测
              connect_timeout 10    <<<设置建立tcp连接的超时时间
              delay_before_retry 3   <<<超时后多久重试
               nb_get_retry 3         <<<重试次数
                 connect_port 80     <<<健康检查使用的端口号j 
real_server 10.220.5.65 80 {  <<< 指定一台真实服务器的IP和端口
        weight 1                  <<<设置权重
     TCP_CHECK{                    <<<用建立tcp连接的方式做健康检测
              connect_timeout 10    <<<设置建立tcp连接的超时时间
              delay_before_retry 3   <<<超时后多久重试
               nb_get_retry 3         <<<重试次数
                 connect_port 80     <<<健康检查使用的端口号
                }
                           }
} 解决监听的ip不存在的问题(nginx,httpd)
在/etc/sysctl.conf增加一个选项
net.ipv4.ip_nolocal_bind =1
这是在启动服务的时候不检查所绑定的vip是否存在
keepliave的更多相关文章
- Nginx - keepliave 相关知识点
		目录 - 1. 前言- 2. keepalive 介绍- 3. Nginx 与 keepalive 的关系 - 3.1 Nginx - keepalive_timeout - 3.2 Ng ... 
- Nginx学习总结:proxy与rewrite模块(三)
		斜体下划线,表示建议采用默认配置,无需显式的配置 一.ngx_http_upstream_module 此模块中可配置的指令并不是很多.nginx的负载均衡算法包括: 1)round-robin:轮询 ... 
随机推荐
- Base64字符 转图片乱码问题
			网站做了个随机验证码图片功能,遇到了一个奇怪的问题——Base64字符集转图片乱码问题,问题描述如下 1.用java画笔将随机验证码绘制成图片 2.再将图片的二进制代码转换成Base64字符集,返回给 ... 
- OpenStack控制节点上搭建Q版nova服务(step5)
			placement组件监听的端口号是:8778 nova组件监听的端口号是:6080.8774.8775 其中6080端口号是novncproxy监听的端口号. 1.安装服务组件 yum instal ... 
- SoapUI简介及下载地址
			SoapUI是一个开源测试工具,通过soap/http来检查.调用.实现Web Service的功能/负载/符合性测试.该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,mave ... 
- [ZZ] MATLAB曲线拟合
			MATLAB曲线拟合 http://blog.sina.com.cn/s/blog_5db2286f0100enlo.html MATLAB软件提供了基本的曲线拟合函数的命令: 多项式函数拟合: a ... 
- 上传本地代码到gitHub过程详解
			1.注册Github账号 2.创建自己的GitHub仓库 3.创建自己的Repository(项目的名字等) 4.复制创建仓库的地址到Git命令窗口并执行命令行(Git clone 仓库的复制地址) ... 
- PHP安装Eclipse与使用
			PHP有非常多相当不错的开发工具,如Zend Studio.NetBeans.phpdesigner等,但对于习惯Java编程的程序员们来说,最经常使用的还要属Eclipse. 那么Eclipse能用 ... 
- 无需脑图 无需思维导图 看Word大纲视图
			大纲视图可以帮助我们大纲视图可帮助您管理文档的结构和标题,就像现在的脑图,经过我的使用后,可以说Word的分级功能非常强大,只恨当时理解的不够,误会了Word. 当我们决定写一个文档的时候,第一步 ... 
- ActiveMQ(下载,启动,java程序中 如何操作)
			为了快速上手ActiveMQ 找个一个windows版本的mq来实现它的功能 1.http://activemq.apache.org/activemq-5158-release.html 下载 2. ... 
- MongoDB监控(常见监控方法及profile)-temp
			为什么要监控? 监控及时获得应用的运行状态信息,在问题出现时及时发现. 监控什么? CPU.内存.磁盘I/O.应用程序(MongoDB).进程监控(ps -aux).错误日志监控 1.4.1 Mong ... 
- 3阶马尔可夫链 自然语言处理python
			一.简介: 把每三个三个单词作为一个整体进行训练. 举一个例子: input: my dream is that I can be an engineer, so I desi ... 
