当前位置 主页 > 服务器问题 > nginx问题汇总 >

    Linux利用keepalived实现lvs的高可用性的操作方法

    栏目:nginx问题汇总 时间:2018-11-12 16:21

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。这篇文章主要介绍了Linux利用keepalived实现lvs的高可用性 ,需要的朋友可以参考下

    lvs+keepalived是什么?

    keepalived工作原理

    keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。 keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

     LVS简介

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR),十种调度算法。

    本文重点给大家介绍Linux利用keepalived实现lvs的高可用性的操作方法,感兴趣的朋友参考下吧。

    image

    单主模型IPVS示例

    配置keepalive

    高可用的ipvs集群示例:修改keepalived配置文件

    修改主机:192.168.234.27的keepalived配置文件

    [root@234c27 ~]# vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {notification_email {root@localhost //接受邮件地址}notification_email_from keepalived@localhost //发送邮件地址smtp_server 127.0.0.1 //发送邮件服务器IPsmtp_connect_timeout 30 //邮件连接超时时长router_id kptwo //路由idvrrp _mcast_group4 234.10.10.10 //指定vrrp协议的多播地址}vrrp_instance VI_1 { //vrrp协议的state MASTER //lvs的MASTER服务器interface ens37 //virtual_router_id 50 //虚拟路由priority 100 //权重为100.越大越先advert_int 1 //发送组博包的间隔authentication { //验证auth_type PASS //方式为pass( 明文)auth_pass 1111 //密码}virtual_ipaddress { //keepalived虚拟ip10.0.0.100/24}}virtual_server 10.0.0.100 80 { delay_loop 6 //检查后端服务器的时间间隔 lb_algo wrr //定义调度方法 lb_kind DR //集群的类型 #persistence_timeout 50 //持久连接时长 protocol TCP //服务协议,仅支持TCP real_server 192.168.234.47 80 { //后端real_server服务器地址  weight 1 //权重  HTTP_GET { //应用层检测   url {    path / //定义要监控的URL    status_code 200 //判断上述检测机制为健康状态的响应码   }   connect_timeout 3 //连接请求的超时时长   nb_get_retry 3 //重试次数   delay_before_retry 3 //重试之前的延迟时长  } } real_server 192.168.234.57 80 {  weight 2  HTTP_GET {   url {    path /    status_code 200   }   connect_timeout 3   nb_get_retry 3   delay_before_retry 3  } }}