系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 网页制作 > 建站优化 > 详细页面

CentOS7构建LVS+Keepalived高可用方案

时间:2020-03-08来源:电脑系统城作者:电脑系统城

  • 负载均衡(LB)软件
    常见负载均衡软件有:LVS、Nginx、Haproxy
    LVS:
    1). 基于4层网络协议,几乎无流量产生,这个特点也决定这几个负载均衡软件里负载能力最强,内存、CPU占用资源也低。
    2). 应用范围广,不仅对Web服务做负载均衡,而且可结合其他应用做负载,如LVS+MySQL负载均衡。
    3). 配置简单, 可配置东西较少。
    4). 无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流量的影响。
    5). 有个虚IP概念。
    Nginx:
    1). 基于7层网络协议,对Http应用做分流策略,如配置域名。
    2). 高负载、稳定。支持上万高并发。负载能力小于LVS。
    3). 安装配置简单,支持的正则比Haproxy丰富。且对网络稳定性的依赖非常小。
    4). 可通过端口检测到服务器内部的故障,如根据服务器处理网页返回的状态码、超时等,把返回错误的请求重新提交到另一个节点。
    5). 作Web服务器。
    6). 反向代理\负载均衡。
    Haproxy:
    1). 支持虚拟主机,可工作在4层、7层。
    2). 负载均衡效率上来讲Haproxy比Nginx更出色,在并发处理上也是优于Nginx。
    3). 能够补充Nginx的一些缺点,如支持Session的保持,Cookie的引导。同时支持通过获取指定的url来检测后端服务器的状态。
    4). 支持负载均衡策略较多。如roundrobin简单轮询、leastconn最少服务器连接数、static-rr权重轮询、uri哈希、sourceIP哈希、url_param请求的URL参数等。
  • LVS+Keepalived
    LVS 是一个开源的软件,可实现 Linux平台下的负载均衡。LVS 是 Linux Virtual Server 的缩写,意思是 Linux 虚拟服务器。 Linux 内核2.4版本后,LVS 已经是 Linux 内核标准的一部分。
    LVS主要工作是提供调度算法,把客户端请求按照需求调度在Real Server上,Keepalived 主要工作是提供 LVS 控制器的一个冗余,并且对Real Server做健康检查,发现Real Server故障,就把它从 LVS 集群中剔除,Real Server只负责提供服务。如LVS+Keepalived+Nginx模式,Nginx作为Real Server。
    LVS转发模式
    VS/NAT(Virtual Server via Network Address Translation):通过网络地址转换,调度器重写请求报文的目标地址,请求到后端Real Server,后端Real Server的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。客户请求哪里来从哪儿返回。
    VS/TUN(Virtual Server via IP Tunneling):在使用上面的NAT 技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过 IP 隧道转发至Real Server,而Real Server将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN 技术后,集群系统的最大吞吐量可提高 10 倍。
    VS/DR (Virtual Server via Direct Routing):VS/DR 通过改写请求报文的 MAC 地址,将请求发送到Real Server,而后端的Real Server将响应直接返回给客户。同 VS/TUN 技术一样,VS/DR 技术可极大地提高集群系统的伸缩性。后面就按此VS/DR模式作为操作例子。
  • LVS(VS/DR)+Keepalived高可用集群实例
    OS环境:CentOS7
    CentOS7构建LVS+Keepalived高可用方案
    1). 在20、21上安装ipvsadm和keepalived软件
    yum -y install ipvsadm
    yum -y install keepalived

    启动keepalived服务

    systemctl start keepalived.service

    使用配置LVS的时候,不能直接配置内核中的ipvs,需使用ipvs的管理工具ipvsadm进行管理。用于查看lvs转发及代理情况的工具。
    2).修改keepalived配置文件
    20的Master配置文件如下:
    vim /etc/keepalived/keepalived.conf

    ! Configuration File for keepalived
    global_defs {
    notification_email {
     admin@localhost
    }
    notification_email_from root@localhost
    router_id LVS_01   #表示运行keepalived服务器的一个标识,发邮件时显示在邮件主题的信息
    vrrp_skip_check_adv_addr
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    }
    vrrp_instance VI_1 {
    state MASTER    #指定keepalived的角色Master
    interface ens192     #网卡,ip a查看
    virtual_router_id 100     #虚拟路由标识,主备两个节点的设置必须一样,以指明各个节点属于同一VRRP组 
    priority 100    #定义优先级,Master的priority要高于slave
    advert_int 1    #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位秒
    authentication {    #设置验证类型和密码
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.20.1.99/24 dev ens192    #设置VIP
    }
    }
    virtual_server 10.20.1.99 443 {    #设置虚拟服务器,需指定虚拟IP地址和服务端口
    delay_loop 3    #健康时间检查,单位秒
    lb_algo rr    #负载均衡调度算法wlc|rr
    lb_kind DR    #设置LVS实现负载均衡机制,有NAT、TUN、DR三个模式
    persistence_timeout 50    #会话保持时间,单位秒。此选项对动态网页是非常有用
    protocol TCP    #指定转发协议类型,有TCP和UDP
    real_server 10.20.1.22 443 {    #Real Server服务器,这里为Nginx服务器
        weight 1    #设置权重
        TCP_CHECK {    #设置检查方式,可以设置HTTP_GET | SSL_GET
            connect_port 443    #检测Real Server的侦听端口
            connect_timeout 5    #超时时间,单位秒。如果在这个时间内无返回,则说明一次监测失败
            retry 3    #设置多少次监测失败,就判断这个Real Server死掉
            delay_before_retry 3    #重试间隔
        }
    }
    real_server 10.20.1.23 443 {
        weight 1
        TCP_CHECK {
            connect_port 443
            connect_timeout 5
            retry 3            
            delay_before_retry 3
        }
    }
    }

    21的slave的/etc/keepalived/keepalived.conf配置,需更改state Backup和修改priority的值小于master的priority。
    Master服务器上查看IP,VIP在Master上。
    CentOS7构建LVS+Keepalived高可用方案
    ipvsadm命令查看规则。
    CentOS7构建LVS+Keepalived高可用方案
    3). Real Server配置
    因为VS/DR模式,在后端Real Server即Nginx服务器上配置脚本。配置两台Nginx服务器上为回环地址lo:0绑定VIP地址、ARP广播。
    vim /opt/scripts/lvs_rs.sh

    #!/bin/bash
    vip=10.20.1.99
    ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
    route add -host $vip dev lo:0
    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
    sysctl -p &>/dev/null

    在22、23服务器上分别执行。
    CentOS7构建LVS+Keepalived高可用方案
    4). 测试LVS+Keepalived高可用群集
    客户端的浏览器中,能够通过LVS+Keepalived群集的VIP地址漂移(10.20.1.99)正常访问web,验证群集构建成功。
    先在20Master上将keepalived.service服务器关闭,查看IP情况:
    CentOS7构建LVS+Keepalived高可用方案
    发现VIP没了。
    然后在21Slave上查看VIP是否漂移过来了:
    CentOS7构建LVS+Keepalived高可用方案
    发现VIP已经来到Slave上了。
    这时,将20Master上将keepalived.service服务又重新启动,VIP后回来了。

分享到:

相关信息

  • 今日头条 SEO 研究,值得深思的 5 个问题

    作者:蝙蝠侠IT来源:卢松松博客,欢迎分享。在做SEO的过程中,实际上,我并不是“技术挂”更多的是基于搜索原理与大量的实战,总结相关的经验,这么多年,经常养成一个小习惯,总是记录一些工作中遇到的一些小问题与小技巧。特别是201...

    2019-12-16

  • 如何构建网站URL,使其更加百度搜索友好?

    相当于搜索引擎而言,URL对于百度蜘蛛的抓取、索引、排名显得格外重要,合理的配置URL,往往使你的SEO工作,事半功倍,相反,则是事倍功半。...

    2019-12-16

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载