yxixi 发表于 2019-1-4 10:29:24

LVS简介及配置案例

一、简介
  LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的
  服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由
  软件项目之一。LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很
  好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的
  故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的
  结构对客户是透明的,而且无需修改客户端和服务器端的程序。LVS/NAT、LVS/TUN
  和LVS/DR技术是LVS集群中实现的三种IP负载均衡技术。
  三种转发机制的优缺点
  ◆Virtual Server via NAT
  VS/NAT 的优点是服务器可以运行任何支持TCP/IP的操作系统,它只需要一个IP地址
  配置在LVS主机上,服务器组可以用私有的IP地址。缺点是它的扩充能力有限,当服务
  器结点数目升到20时,LVS主机本身有可能成为系统的新瓶颈,因为在VS/NAT中请求
  和响应封包都需要通过负载平衡LVS主机。
  ◆Virtual Server via IP Tunneling
  在VS/TUN 的集群系统中,负载平衡LVS主机只将请求分配到不同的实际服务器,实际
  服务器将应答的资料直接返回给用户。这样,负载平衡LVS主机就可以处理巨量的请
  求,而不会成为系统的瓶颈。即使负载平衡LVS主机只有100Mbps的全双工网卡,虚
  拟服务器的最大吞吐量可以达到几Gbps。所以,VS/TUN可以极大地增加负载平衡
  LVS主机分配的服务器数量,它可以用来构建高性能超级服务器。
  ◆Virtual Server via Direct Routing
  同VS/TUN 一样,VS/DRLVS主机只处理客户到服务器端的连接,响应资料可以直接
  从独立的网络路由返回给客户。这可以极大地提高LVS集群系统的伸缩性。同VS/TUN
  相比,这种方法没有IP隧道的开销,但是要求负载平衡LVS主机与实际服务器都有一块
  网卡连在同一物理网段上,服务器网络设备或者设备别名不作 ARP 响应。
  一般来说,LVS集群采用三层结构,其主要组成部分为:
  A、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的
  请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟
  IP地址)上的。
  B、服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务
  有WEB、MAIL、FTP和DNS等。
  C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样
  很容易使得服务器池拥有相同的内容,提供相同的服务。
  调度器是服务器集群系统的唯一入口点(Single Entry Point),它可以采用IP负
  载均衡技术、基于内容请求分发技术或者两者相结合。
  四种分配方法(Load-balancing Methods)
  Round robin (RR)
  将工作平均的分配到服务器 (用于实际服务主机性能一致)
  Least-connections (LC)
  向较少连接的服务器分配较多的工作(IPVS 表存储了所有的活动的连接。用于实际服务
  主机性能一致。)
  Weighted round robin (WRR)
  向较大容量的服务器分配较多的工作。可以根据负载信息动态的向上或向下调整。 (用
  于实际服务主机性能不一致时)
  Weighted least-connections (WLC)
  考虑它们的容量向较少连接的服务器分配较多的工作。容量通过用户指定的砝码来说
  明,可以根据装载信息动态的向上或向下调整。(用于实际服务主机性能不一致时)
二、案例一(NAT)
  拓扑图:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793036WKhs.jpg
  配置过程:
  虚拟服务器:
  打开路由转发功能:
  # vim /etc/sysctl.conf
  编辑结果:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793040N3tT.png
  # sysctl –p
  查看内核版本:
  # uname -r
2.6.18-164.el5
  挂载光盘:
  # mkdir /mnt/cdrom
  # mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
  # cd /mnt/cdrom
  编辑yum服务器:
  # vim /etc/yum.repos.d/rhel-debuginfo.repo
  编辑结果:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793042EfyM.png
  安装ipvsadm工具:
  # yum install ipvsadm
  定义虚拟服务器:
  # ipvsadm -A -t 192.168.100.100:80 -s rr
  定义realserver:
  # ipvsadm -a -t 192.168.100.100:80 -r 192.168.2.100 –m
  # ipvsadm -a -t 192.168.100.100:80 -r 192.168.2.101 –m
  # service ipvsadm save
Saving IPVS table to /etc/sysconfig/ipvsadm:               [确定]
  # service ipvsadm start
Clearing the current IPVS table:                           [确定]
Applying IPVS configuration:                               [确定]
  # ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port         Forward Weight ActiveConn InActConn
TCP192.168.100.100:80 rr
-> 192.168.2.101:80             Masq    1      0          0         
-> 192.168.2.100:80             Masq    1      0          0
  realser1配置:
  服务器的配置:
  安装web:
  # yum install httpd
  # cd /var/www/html/
  # echo “web1” > index.html
  重启web服务:
  # service httpd restart
  realserver2配置:
  安装web:
  # yum install httpd
  # cd /var/www/html/
  # echo “web2” > index.html
三、案例二(DR)
  拓扑图:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793047iXx3.png
  配置过程:
  diretor上的配置:
  ip信息:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793051Zuw4.png
  打开路由转发功能:
  # vim /etc/sysctl.conf
  编辑结果:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793053hj1a.png
  # sysctl –p
  查看内核版本:
  # uname -r
2.6.18-164.el5
  挂载光盘:
  # mkdir /mnt/cdrom
  # mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
  # cd /mnt/cdrom
  编辑yum服务器:
  # vim /etc/yum.repos.d/rhel-debuginfo.repo
  编辑结果:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793055xKbP.png
  安装ipvsadm工具:
  # yum install ipvsadm
  增加条目:
  # ipvsadm -A -t 192.168.10.100:80 -s rr
  # ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.2 –g
  # ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.3 –g
  # service ipvsadm save
Saving IPVS table to /etc/sysconfig/ipvsadm: [确定]
  # service ipvsadm start
Clearing the current IPVS table: [确定]
Applying IPVS configuration: [确定]
  web1服务器上的配置:
  Ip信息:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793057soZz.png
  安装web:
  # yum install httpd
  # cd /var/www/html/
  # echo “web1” >index.html
  重启web服务
  # service httpd restart
  添加下列条目到/etc/sysctl.conf
  # echo "net.ipv4.conf.eth0.arp_announce = 2" >>/etc/sysctl.conf
  # echo "net.ipv4.conf.eth0.arp_ignore = 1" >>/etc/sysctl.conf
  # sysctl –p
  # route add -host 192.168.10.100 dev lo:0
  web2服务器上的配置:
  Ip信息:
http://caoruijun.blog.运维网.com/attachment/201210/9/5544226_1349793059BqzU.png
  安装web服务器:
  # yum install httpd
  # cd /var/www/html/
  # echo “web2” >index.html
  重启web服务
  # service httpd restart
  添加下列条目到/etc/sysctl.conf
  # echo "net.ipv4.conf.eth0.arp_announce = 2" >>/etc/sysctl.conf
  # echo "net.ipv4.conf.eth0.arp_ignore = 1" >>/etc/sysctl.conf
  # sysctl –p
  # route add -host 192.168.10.100 dev lo:0



页: [1]
查看完整版本: LVS简介及配置案例