百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 网站模板(百分百源码网)>电脑软件>服务器> LVS(Linux Virtual Server)Linux 虚拟服务器介绍及配置(负载平衡
分享本文到:

LVS(Linux Virtual Server)Linux 虚拟服务器介绍及配置(负载平衡

发布时间:05/16 来源:未知 浏览: 关键词:
一,简介
LVS(Linux Virtual Server) 是Unix-like系统中的一个虚拟服务器,是国内奉献给开源组织的一个最优良的项目之一。LVS在Unix-like系统中
是作为一个前端(Director)存在的,又称为调度器,它自身不供给任何的服务,只是将通过互联网进来的请求承受后再转发给后台运转的真正的
服务器(RealServer)进行处置,然后相应给客户端。
LVS有两个重要的组件:一个是IPVS,一个是IPVSADM。ipvs是LVS的中心组件,它自身只是一个框架,相似于iptables,工作于内核空间中。
ipvsadm 是用来定义LVS的转发法则的,工作于会员空间中。
LVS有三种转发类型:
1.LVS-NAT模型,称为网络地址转换,实现起来比较简略。
2.LVS-DR模型,称为直接路由模型,利用比较宽泛。
3.LVS-TUN模型,称为隧道模型。
二、LVS的三种模型的工作属性:
1.LVS-NAT模型的工作属性或特:
(1).所有的RealServer集群节点和前端调度器Director都要在统一个子网中
(2).平常状况下RealServer的IP地址(下列简成RIP)为私有地址,便于RealServer集群节点之间进行通讯
(3).平常状况下前端的Director有两个IP地址,一个为VIP,是虚拟的IP地址,客户端向此IP地址发起请求。
一个是DIP,是真正的Director的IP地址,RIP的网关要指向Director的DIP。
(4).这种模型可以实现端口映射
(5).RealServer的操纵系统可以是任意操纵系统
(6).前端的Director既要处置客户端发起的请求,又要处置后台RealServer的相应信息,将RealServer相应的信息再转发给客户端
(7).前端Director很容易成为整个集群系统机能的瓶颈。
2.LVS-DR模型的工作属性或特征:此种模型通过MAC地址转发工作,怎样转发背面将会介绍。
(1).所有的RealServer集群节点和前端调度器Director都要在统一个物理网络中
(2).RIP可以运用公网的IP
(3).RIP的网关不能指向DIP
(4).前端的Director只处置客户端的请求,然后将请求转发给RealServer,由后台的RealServer直接相应客户端,不再经过Director
(5).此种模型不支撑端口映射
(6).RealServer可以运用大多数的操纵系统
(7).此种模型的机能要优于LVS-NAT
3.LVS-TUN模型的根本工作属性或特征
(1).RealServer服务器与前端的Director可以在不一样的网络中
(2).RIP一定不能是私有IP
(3).前端的Director只处置客户端的请求,然后将请求转发给RealServer,由后台的RealServer直接相应客户端,不再经过Director
(4).此种模型也不支撑端口映射
(5).RealServer只能运用哪些支撑IP隧道的操纵系统
三。LVS Scheduling Method LVS的调度要领:
1.Fixed Scheduling Method  静态调服要领
(1).RR     轮询
(2).WRR    加权轮询
(3).DH     指标地址hash
(4).SH     源地址hash
2.Dynamic Scheduling Method 动态调服要领
(1).LC     最少连贯
(2).WLC    加权最少连贯
(3).SED    最少奢望推迟
(4).NQ     从不排队调度要领
(5).LBLC   基于当地的最少连贯
(6).LBLCR  带复制的基于当地的最少连贯
 
四、ipvsadm组件定义法则的格局:
1.定义集群服务格局:
 (1).增加集群服务:
ipvsadm -A|E -t|u|f service-address [-s scheduler]
               [-p [timeout]] [-M netmask]
-A:                  表示增加一个新的集群服务
-E:                  编辑一个集群服务
-t:                  表示tcp协定
-u:                  表示udp协定
-f:                  表示firewall-Mark,防火墙标志
service-address:     集群服务的IP地址,即VIP
-s                    指定调度算法
-p                    耐久连贯时长,如#ipvsadm -Lcn ,查看耐久连贯状态
-M                    定义掩码
 
ipvsadm -D -t|u|f service-address      删除一个集群服务
ipvsadm -C                             清空所有的法则
ipvsadm -R                             从新载入法则
ipvsadm -S [-n]                        保留法则
 
2.向集群服务增加RealServer法则:
(1).增加RealServer法则
ipvsadm -a|e -t|u|f service-address -r server-address
               [-g|i|m] [-w weight] 
-a                 增加一个新的realserver法则
-e                 编辑realserver法则
-t                 tcp协定
-u                 udp协定
-f                 firewall-Mark,防火墙标志
service-address    realserver的IP地址
-g                 表示定义为LVS-DR模型
-i                 表示定义为LVS-TUN模型
-m                 表示定义为LVS-NAT模型
-w                 定义权重,背面跟具体的权值
ipvsadm -d -t|u|f service-address -r server-address          --删除一个realserver
ipvsadm -L|l [options]                                       --查看定义的法则
如:#ipvsadm -L -n  
ipvsadm -Z [-t|u|f service-address]                          --清空计数器
     
五、LVS-NAT模型实例

1。先配置好网络环境,要三个虚拟机(本次实验在虚拟机上完成),一台用作Director,其他两台离别为RealServer1 和RealServer2
其中Director要两个网卡,Eth0网卡为桥接(Birdged),Eth1网卡为仅主机(Host-only),RealServer1 和RealServer2的网卡也都是仅主机
类型的。
2.为了演示结果,将Director的两块网卡配置成不在统一个网段的IP地址,RealServer1 和RealServer2的IP地址为统一网段,计划如下图:

要注意的是:要将当地物理机的Vmnet1的IP地址配置成和Director的Eth1网卡的IP地址在统一个网段中,同时将RealServer1和RealServer2的网关指向Director主机的Eth1网卡的地址,如下图所示:

3.配置好网络环境之后就开端配置ipvsadm,确保在物理机上能ping通Eth0的IP地址,如下图所示:

能Ping通,注明物理主机已经可以和Director虚拟主机通讯了。
4.在Director虚拟主机上配置:
#echo 1 > /proc/sys/net/ipv4/ip_forward     --开启IP转发功能
#rpm -qa ipvsadm        --查看ipvsadm是否安装,要是没有安装则安装之,直接运用yum安装即可
#yum install ipvsadm -y
定义LVS-NAT模型法则
此处运用的是web服务器进行的演示,在192.168.24.44和192.168.24.45上都供给了nginx服务,其中
192.168.24.44供给的网页信息为“welcome realserver 1”,192.168.24.45供给的网页信息为“welcome realserver 2”
#ipvsadm -A -t 172.16.100.24:80 -s rr
#ipvsadm -a -t 172.16.100.24:80 -r 192.168.24.44 -m
#ipvsadm -a -t 172.16.100.24:80 -r 192.168.24.45 -m
#ipvsadm -L -n --查看定义的法则
这些法则都是临时法则,不会永恒生效的,要想永恒生效可以保留法则,下令如下:
#service ipvsadm save 
5.在Internet Explorer阅读器中访问172.16.100.24,会显示如下图所示信息:

而在google阅读器中访问172.16.100.24,会显示如下图所示信息:

要是刷新页面或者运用不一样的阅读器,会轮番显示页面,这就是最简略的服务器负载平衡啦!
 
六、LVS-DR模型的实现历程:
 
1.首先计划集群和网路环境,需要三台虚拟机,如下图所示:
此时Director可以只要一个网卡Eth0,连贯类型为桥接(Birdged),RealServer1和RealServer2 的网卡连贯类型也都为桥接(Birdged):

2.配置集群服务
(1).在Director服务器上配置:
#ifconfig eth0:1 172.16.100.100 broadcast 172.16.100.100 netmask 255.255.255.255 up 
#route add -host 172.16.100.100 dev eth0:1 
#echo 1 > /proc/sys/net/ipv4/ip_forward   --开启IP转发功能
(2).在realserve1服务器上进行配置:
# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
 
#ifconfig lo:0 172.16.100.100 broadcast 172.16.100.100 netmask 255.255.255.255 up 
#route add -host 172.16.100.100 dev lo:0
(3).在realserver2 服务器上进行配置
# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
 
#ifconfig lo:0 172.16.100.100 broadcast 172.16.100.100 netmask 255.255.255.255 up 
#route add -host 172.16.100.100 dev lo:0
(4).再在Director上配置ipvsadm法则:
 
#ipvsadm -A -t 172.16.100.100:80 -s rr -g
#ipvsadm -a -t 172.16.100.100:80 -r 172.16.24.34
#ipvsadm -a -t 172.16.100.100:80 -r 172.16.24.44
 
(5).在阅读器中进行验证:
进行第一次访问,如下图所示:

进行第二次访问,如下图所示:

3.基于ssl的访问
 
[root@mail ~]# ipvsadm -A -t 172.16.100.100:443 -s rr
[root@mail ~]# ipvsadm -a -t 172.16.100.100:443 -r 172.16.24.2 -g
[root@mail ~]# ipvsadm -a -t 172.16.100.100:443 -r 172.16.24.3 -g
 
二、LVS Persistence ,lvs的耐久连贯性
耐久连贯类型:
(1).Persistent Client Connections(PCC),耐久客户端连贯:就是无论客户端发起什么样的服
务(如80端口的web服务,3306端口的mysql服务)请求,都将经过Director被定位到统一个特定的real server上,
只有此real server 供给了这种服务,并且会延续连贯,要是客户端连贯超时,real server允许一定范畴内的
耐久连贯时长,默许耐久连贯时长为300m
 
#ipvsadm -A -t 172.16.100.100:0 -p 1200
#ipvsadm -a -t 172.16.100.100:0 -r 172.16.100.34 -g -w 10
#ipvsadm -a -t 172.16.100.100:0 -r 172.16.100.44 -g -w 5 
 
验证结果如下图:

(2).Persistent Port Connections(PPC),延续端口连贯:就是无论客户端发起什么样的端口请求(如80端口,是供给web服务的,23端口,是供给telnet服务的....),
都会经过Director将请求转发到统一个real server上,并延续连贯。假设一个客户端请求的是web服务,响应的是realserver1 ,当此会员退出后再次发起请求web服务的时候
仍然是realserver1 供给的web服务。
iptables:
[root@mail ~]# iptables -t mangle -A PREROUTING -i eth0 -p tcp -d 172.16.100.100 --dport 80 -j MARK --set-mark 20
[root@mail ~]# iptables -t mangle -A PREROUTING -i eth0 -p tcp -d 172.16.100.100 --dport 443 -j MARK --set-mark 20
[root@mail ~]# iptables -t mangle -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
MARK       tcp  --  0.0.0.0/0            172.16.100.100      tcp dpt:80 MARK set 0x14 
MARK       tcp  --  0.0.0.0/0            172.16.100.100      tcp dpt:443 MARK set 0x14 
 
把80端口和443 端口做成一个耐久防火墙标志,同时定向到统一个realserver上,即在访问80服务的时候是realserver1,
然后改为访问443服务的时候仍然定向到realserver1上
 
基于防火墙标志来定义集群服务,也称为端口的姻亲关系。
 
ipvsadm:
 
[root@mail ~]# ipvsadm -A -f 20 -s wlc -p 1200 
[root@mail ~]# ipvsadm -a -f 20 -r 172.16.24.2 -g -w 3
[root@mail ~]# ipvsadm -a -f 20 -r 172.16.24.3 -g -w 2
[root@mail ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
FWM  20 wlc persistent 1200
  -> 172.16.24.3:0                Route   2      0          0         
  -> 172.16.24.2:0                Route   3      0  

本文出自 “知识体系” 博客
热门标签:dede模板 / destoon模板 / dedecms模版 / 织梦模板
责任编辑:kGtQM
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有153人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助



订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板