HA_keepalived基础配置篇(一)

集群有三种:

  •      LB:负载均衡集群,load balancer

         实现:传输层有ipvs,或者叫lvs;应用层有nginx

  •      HA:高可用,high avilable

        实现:keepalived

        衡量高可用性公式:  Avilability=平均无故障时间/(平均无故障时间+平均修复时间),不能保证无故障,但是可以减少平均修复时间来提高高可用性

  •      HP:高性能
            主要是一些科研机构,宇航局之类的高逼格的土豪单位使用的,通过横向扩展,增加服务器的数量,聚集众多性能好的服务器来计算达到解决一些复杂的问题

      其它:分布式存储和分布式计算集群,

Preface

          LB中的ipvs不具有健康监测的机制,而nginx却拥有健康监测机制,通过ngx_http_upstream_modules中的health_check功能实现,但是其只是针对后端的主机进行检查的,如果前端的反向代理的调度器,即nginx出现故障怎么破,即所谓的单点故障SPOF(single  points of failure),于是keepalived就是解决这一问题的。。。keepalived是基于VRRP协议在linux上实现的,具体的VRRP协议的介绍可以参考华三的《VRRP技术白皮书》



Conditions

          keepalived使用之前的需要注意的事项有:
  • 各节点必须时间同步
  • /etc/hosts 和hostname最好能对应上,各主机之间基于密钥认证
  • iptables和selinux关闭


Install

          keepalived从centos6.4开始被收录进base源中,因此,在centos6.4以上可以直接通过yum源直接安装,安装命令为

         ~]#yum  install -y  keepalived


Configuration

       keepalived主要有两种配置模式:主备模式和主主模式
       keepalived的组成主要有,在网上下载了一个图片:可以看出,由四个部分组成,分别是:核心组件、控制面板(配置文件分析器)、调度器(I/O复用器)、内存管理器
      


       准备:

        host1: 
             172.16.52.59
              hostname:   node2
        host2:    172.16.52.60
               hostname: node3


         配置文件: /etc/keepalived/keepalived.conf
       


  • 主备模式:
host1:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
    root@localhost
   }

   notification_email_from ka@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node2
   vrrp_mcast_group4 224.52.0.1
}


///global_defs  即为全局配置,notification_email为邮件接受者,notification_email_from为邮件发送者,smtp_server为邮件发送的服务器,router_id建议填写主机名,vrrp_mcast_group4 为指定一个组播地址,在这里可以省略,但是省略会造成全网广播,因此还是填上吧。。。



vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 1
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 38b5e5cd
    }
    virtual_ipaddress {
       172.16.52.10 
    }
}


///vrrp_instance 为指定一个虚拟实例,后面的VI_1为自定义的一个虚拟实例的名称,state指定首次的状态,可以为主MASTER,可以为备BACKUP,vitual_router_id 是指定虚拟的id号,用于区别不同的虚拟ip,因此每一组的虚拟实例的id号必须为不同的,priority是指定此主机的优先级的,和nice值不同的是,值越大,优先级越高,advert_int(advertise,int为interval)是设置通告的间隔时长的,即MASTER向其它虚拟主机的通过自己健康状态的间隔时长,默认为1秒。auth_type 可以有其它的选择,但是建议使用pass,即简单的字符认证,auth_pass最多只能有8个字符,可以使用openssl rand   -hex  4命令随机生成一个,auth_pass在同一个虚拟实例的两个节点主机上面应当是一样的。virtual_ipaddr即为设置一个虚拟ip地址

host2:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
    root@localhost
   }


   notification_email_from ka@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node3
   vrrp_mcast_group4 224.52.0.1
}


vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736 
    virtual_router_id 1
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 38b5e5cd
    }
    virtual_ipaddress {
    172.16.52.10
    }


}



测试:
     1.先启动服务:  systemctl  start keepalived.service  
     2.查看详细信息:  systecctl  -l   status  keepalived.service
     3.查看地址:  ip  addr  list   这里最好不要用ifconfig查看,除非virtual_ipaddress指定了dev   enoxxxx:n   即指定了网卡别名或许能看到
     4.停掉主服务器MASTER,观察BACKUP的ip  addr list  ,这里默认的是抢占模式下的
     5.然后再启动服务,继续观察

  • 主主模式:

host1:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
    root@localhost
   }


   notification_email_from ka@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node2
   vrrp_mcast_group4 224.52.0.1
}


vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 1
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 38b5e5cd
    }
    virtual_ipaddress {
       172.16.52.10 
    }
}






vrrp_instance V_2 {
    state BACKUP
    interface eno16777736
    virtual_router_id 2
    priority 99 
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 0cad2f81 
    }
    virtual_ipaddress {
       172.16.52.11
    }
}


host2:

]# cat keepalived.conf
! Configuration File for keepalived


global_defs {
   notification_email {
    root@localhost
   }


   notification_email_from ka@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node3
   vrrp_mcast_group4 224.52.0.1


}


vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736 
    virtual_router_id 1
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 38b5e5cd
    }
    virtual_ipaddress {
    172.16.52.10
    }


}


vrrp_instance V_2 {
    state MASTER
    interface eno16777736
    virtual_router_id 2
    priority 100 
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 0cad2f81
    }   
    virtual_ipaddress {
       172.16.52.11
    }  
}



测试方法和主备模式一样的





说明:组播地址的介绍:

组播组可以是永久的也可以是临时的。 组播组地址中,有一部分由官方分配的,称为永久组播组。永久 组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久 组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久 组播组使用的ip组播地址,可以被临时组播组利用。
224.0.0.0~224.0.0.255为预留的 组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供 路由协议使用;
224.0.1.0~224.0.1.255是公用 组播地址,可以用于Internet;
224.0.2.0~238.255.255.255为用户可用的 组播地址(临时组地址),全网范围内有效;
239.0.0.0~239.255.255.255为本地管理 组播地址,仅在特定的本地范围内有效。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置 keepalived 的 real_server,需要进行以下步骤: 1. 在 real_server 上安装 LVS 相关的软件,如 ipvsadm 工具等。 2. 配置 real_server 的网络参数,包括 IP 地址、子网掩码、网关等。 3. 在 real_server 上启动 LVS 相关的服务,如 lvs 服务、lvs agent 服务等。 4. 配置 LVS 的虚拟 IP 地址和端口。 5. 配置 real_server 的权重,以及其它相关参数。 6. 测试配置是否正确,确保 LVS 能够将请求正确地转发到 real_server 上。 下面是一个实例,假设 LVS 的虚拟 IP 地址为 192.168.1.100,real_server 的 IP 地址为 192.168.1.101: 1. 在 real_server 上安装 ipvsadm 工具: ``` yum install ipvsadm -y ``` 2. 配置 real_server 的网络参数,编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件: ``` DEVICE="eth0" BOOTPROTO="static" IPADDR="192.168.1.101" NETMASK="255.255.255.0" GATEWAY="192.168.1.1" ONBOOT="yes" ``` 3. 启动 LVS 相关的服务: ``` systemctl start lvs systemctl start lvs-agent ``` 4. 配置 LVS 的虚拟 IP 地址和端口,编辑 /etc/sysconfig/network-scripts/ifcfg-eth0:0 文件: ``` DEVICE="eth0:0" BOOTPROTO="static" IPADDR="192.168.1.100" NETMASK="255.255.255.0" ONBOOT="yes" ``` 5. 配置 real_server 的权重和其它参数,编辑 /etc/sysconfig/ipvsadm 文件: ``` -A -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 1 ``` 其中,-A 表示新增一个虚拟服务器,-t 指定虚拟 IP 地址和端口,-r 指定 real_server 的 IP 地址和端口,-g 表示启用 DR 模式,-w 指定 real_server 的权重。 6. 测试配置是否正确,可以使用 curl 命令测试: ``` curl 192.168.1.100 ``` 如果配置正确,你会看到 real_server 返回的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值