zoukankan      html  css  js  c++  java
  • 高可用工具keepalived学习笔记

    keepalived完全遵守VRRP协议包括竞选机制,至于VRRP是什么这里不说了参考http://wenku.baidu.com/link?

    url=1UbkmHuQlGECgC90P7zF6u2xYyifLK0F-G_7pehNVUitZZExISjZ-

    B22TJKKGyYIZXh9X7uULA8lA1nKw0NsyNGelrt_yQ317knkVyjwCqW,不同的是VRRP里的路由器在keepalive中变成服务器

    vrrp的术语:虚拟路由器、VRID、Master、Backup、VIP、VMAC、优先级、抢占式、非抢占式;

    HA Cluster的配置前提: 1、各节点时间要同步   (查看两台主机时间是否同步的命令date; ssh root@x.x.x.x 'date'  2、确保

    iptables及selinux不会成为障碍

    yum -y install keepalived

    /etc/keepalived/keepalived.conf 就是keepalived的主配置文件  配置文件的说明可以使用命令 man keepalived.conf

    vim /etc/keepalived/keepalived.conf

    global_defs 定义的是全局配置段, notification_email表示keepalived在发生诸如主从切换操作时需要发送email通知,以及email

    发送给哪些邮件地址,邮件地址可以多个每行一个

     notification_email_from 发件人邮箱地址 , smtp_server 表示发送email时使用的smtp服务器地址 , 

     smtp_connect_timeout:与邮件服务器建立连接的超时时长

    router_id LVS_DEVEL:物理节点的标识符;建议使用主机名

     

    vrrp_instance 配置虚拟服务器实例, state MASTER|BACKUP:在当前VRRP实例中此节点的初始状态, interface vrrp用于绑定vip

    的接口 , virtual_router_id 当前VRRP实例的VRID,可用范围为0-255,默认为51, priority 100 设置本节点的优先级优先级高的为

    master可用范围0-255, advert int 检查间隔默认为1秒, authentication 这里设置认证, auth type 认证方式 auth pass 认证密码

     virtual_ipaddress 配置虚拟ip地址  

     

    上图指的是lvs配置段

    配置一台backup:

    在两台主机上都启动keepalived  service keepalived start

     

    ip addr list, 可以看到master上已经配置了vip了

     

    如果把master停掉 vip就会漂移到backup, 根据上面的配置使用mail命令去查看本地邮件  f|from num 指针移动到指定邮件  查看

    backup是否转变为master,或者在backup主机上使用ip addr list 查看绑定的接口上是否有vip地址来决定状态是否转换,前提是还

    得写一个脚本来说明邮件的内容是什么

    接下来就写这个脚本

     

    脚本定义好了还得在配置文件中定义脚本怎么引用

    notify_master 如果该主机转换成master则执行哪个脚本   notify_backup  转换成backup执行哪个脚本  notify_fault 发生错误执

    行哪个脚本,notify这三条指令在master和backup都得给配置上

     

    一台master需要维护可以直接是用service keepalived stop  下面介绍另外一种方法当一台master主机需要维护时,通过脚本的方式

    使master降级为backup,不过默认情况下当原来的master恢复时会主动把master重新夺回

    vrrp_script 定义哪一个脚本名   script 执行什么脚本, interval 定义执行脚本的时间间隔, weight 如果script的执行状态结果为失

    败,则使priority减2

     

    接下来还得在vrrp实例中调用该脚本

    在track_script中调用前面定义过的脚本,脚本的目的是如果/etc/keepalived/目录下有down文件则使该keepalived主机的priority

    减2,现在在另外一台keepalived主机上也配置上

    接下来在两台keepalived主机上配置nginx并使nginx高可用,yum -y install nginx  

    rpm -ql nginx 查看一下网页根目录在哪   vim /usr/share/nginx/html/index.html

    在后面添加了HAA

     

    在后面添加了HA1,这样两nginx就配置上了

     

    master在172.16.238.176上,接下来把master down掉,在/etc/keepalived/下  touch down创建一个down文件

     

    master转移到了192.168.238.177上了,现在的需要是创建一个脚本,能自动识别nginx作为反代服务器是否在线,如果master上的

    nginx不在线立即降为backup,并使backup立即转为master,实现nginx的高可用

     

    killall -0 nginx  探测nginx是否在线,它不会杀死nginx进程,如果nginx在线则执行状态返回值为0,反之为1,如果为1 就会使该

    keepalived主机的priority减5,降级为backup,如果从前的master nginx服务又启动了,则会夺回master

    在vrrp实例中调用该脚本

     

    track_interface是监控网卡是否正常,它不需要定义脚本,有内置的脚本

     

  • 相关阅读:
    TCP之“3次握手,4次挥手”问题——实例分析
    TCP之“3次握手,4次挥手”问题
    IO
    select用法&原理详解(源码剖析)(转)
    select(),fd_set(),fd_isset()
    AF_INET与套接字SOCKET
    Socket 编程简介
    Spring 事务控制
    Spring-Profile详解
    Spring的常用使用场景
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5423100.html
Copyright © 2011-2022 走看看