LVS(Linux virtual server)

一.lvs(Linux virtual server)运行原理

1.1 lvs简介:

        LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩,阿里的四层SLB(Server LoadBalance)是基 于LVS+keepalived实现。

 LVS 相关术语 VS:

        Virtual Server,负责调度

        RS:RealServer,负责真正提供服务

1.2.LVS概念

        VS:Virtual Server

        RS:Real Server

        CIP:Client IP

        VIP: Virtual serve IP  VS外网的IP

        DIP: Director IP  VS内网的IP

        RIP: Real server IP

        访问流程:CIP VIP == DIP RIP

1.3.lvs集群的类型

        lvs-nat: 修改请求报文的目标IP,多目标IP的DNAT

        lvs-dr: 操纵封装新的MAC地址 lvs-tun: 在原请求IP报文之外新加一个IP首部

        lvs-fullnat: 修改请求报文的源和目标IP

二.lvs-nat模式与Dr模式相关介绍与实验

        2.1 lvs-nat模式介绍:

   Ivs-nat: 本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和 PORT实现转发

                RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP

                请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈

                支持端口映射,可修改请求报文的目标PORT

                VS必须是Linux系统,RS可以是任意OS系统

        2.2nat实验环境部署:

                2.1.1实验环境(基于红帽9.4):

                        1.webserver1 192.168.0.20 

                        2.webserver2 192.168.0.30

                        3.LVS  eth0:172.25.254.100(作为VIP)  eth1:192.168.0.100(作为DIP)

                2.1.2环境部署步骤:

                        1.LSV调度器网卡DIP网关eth1:

                        2.LSV调度器网卡外部VIPeth0:

                        3.webserver1:

                        4.webserver2:

                        

                2.1.3nat模式实验:

                        1.

                        2.

                        3.在两台服务器上下载http服务:

                                        yum install httpd

                          启动http服务:

                                        systemctl start httpd

                        4.lvs中编写策略:

                        5.

注意:

1.LSV,webserver1,webserver2是否httpd服务是否安装并启用,LSV是否安装ipvsadm.server服务。
2.每台虚拟机防火墙,selinux是否关闭
3.每台虚拟机下的/etc/hosts文件是否添加本地解析,要添加每台虚拟机的IP地址+主机名。

        2.2 Dr模式介绍:

                DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行 转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源 IP/PORT,以及目标IP/PORT均保持不变

2.2 Dr实验环境部署:

                2.1.1实验环境(基于红帽9.4):

                        1.webserver1 eth0:192.168.0.20 (仅主机模式,作为RIP)

                        2.webserver2 eth0:192.168.0.30 (仅主机模式,作为RIP)

                        3.LVS    eth1:192.168.0.50(仅主机模式,作为DIP)lo:192.168.0.200/32(作为VIP)

                        4.route(两张网卡均为网关) eth0:172.25.254.128(作为VIP)eth1:192.168.0.100(作为DIP)

                        5.client  eth0:172.25.254.200

                2.1.2环境部署:

                                client:网关配置为172.25.254.128

                                webserver1,webserver2,lvs:网关配置为192.168.0.100

                 2.1.3nat模式实验:

                                1.在两台web主机上安装http服务再安装mod_ssl:

                                                yum install httpd

                                                yum install mod_ssl

                                2.开启route路由功能 (vim /etc/sysctl.conf):

                                3.在LVS和server1和server2中配置vip:

                                4.

                                5.用server2ping通其它虚拟机实现了全网可达:

                                6.服务器1的网关为route的eth1作为的dip:

                                7.服务器2的网关为route的网卡eth1作为的dip:

           

                                8.客户端网关为route的eth0网卡作为的vip:

        

                                9.LVS中配置策略基于权重的轮询调度成功:

                                10.基于权重的轮询访问成功:

                              

三.火墙mark标记解决调度问题

                1.先将调度算法改为轮询调度:

                2.轮询调度成功:

                3.在两台服务器上下载mod_ssl变成https服务并重启服务:

                4.https访问成功:

                5.检查443端口是否开启成功:

                6.添加基于https的轮询调度:

                7.基于https的访问成功:

                8.将80和443端口打上mark标记形成一个整体:

                9.配置调度策略:

                10.mark标记成功分配到不同的服务器:

四. LVS持久链接

        lvs持久链接 在我们客户上网过程中有很多情况下需要和服务器进行交互,客户需要提交响应信息给服务器,如果单 纯的进行调度会导致客户填写的表单丢失,为了解决这个问题我们可以用sh算法,但是sh算法比较简单 粗暴,可能会导致调度失衡

解决方案

在进行调度时,不管用什么算法,只要相同源过来的数据包我们就把他的访问记录在内存中,也就是把 这个源的主机调度到了那个RS上

如果在短期(默认360S)内同源再来访问我仍然按照内存中记录的调度信息,把这个源的访问还调度到 同一台RS上。

如果过了比较长的时间(默认最长时间360s)同源访问再次来访,那么就会被调度到其他的RS上

       用到SH调度算法设置超时时间5s后调度到其它服务器,配置如下图:

                                     

                                

                                

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值