一、LVS简单介绍

LVSLinux Virtual Server)其实就是针对高可伸缩、高可用网络服务的需求,给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。所以,lvs需要内核有ipvs支持,linux-2.4.23以后ipvs都编译到内核里,如果你是之前版本确保你的内核支持ipvs后,只需安装ipvsadm就可以把一台服务器配置成负载调度器(Load Balancer)。对外提供服务的IP,也就是我们访问的IP称做VIP。调度器LB的任务主要是分发请求,真正处理的是真实服务器(Real Server)

二、LVS三种模式介绍
网络地址传输模式 、直接路由模式、ip遂道模式   
 

网络地址传输模式::LB收到用户请求包后,LB将请求包中虚拟服务器的IP地址转换为某个选定RSIP地址,转发给RSRS将应答包发给LBLB将应答包中RSIP转为虚拟服务器的IP地址,回送给用户。

lvs-nat模型特征

1、所有realserverdirector在同一个子网中
2rip真实服务器ip地址为私有地址,仅用于集群节点之间使
3、客户端的请求,响应都要经过director
4ripserver 网关指向dip
5、可以实现端口映射 80
6realserver可以是任何操作系统
7dirctor可能成为系统瓶颈
 
 

DR(Direct Routing)直接路由模式。LB收到请求包后,将请求包中目标MAC地址转换为某个选定RSMAC地址后将包转发出去,RS收到请求包后 ,可直接将应答内容传给用户。此时要求LB和所有RS都必须在一个物理段内,LBRS群共享一个虚拟IP

lvs-dr模型特征 (常用)

 
1、集群节点必须在一个物理网络上(mac)
2rip可以使用公网地址
3director处理入站请求,
4realserver网关不指向director
5、不支持端口映射
6、大多数操作系统支持realservers
7dr dirctor nat director性能优越
 

IP隧道 (IP Tunneling)模式。LB收到用户请求包后,根据IP隧道协议封装该包,然后传给某个选定的RSRS解出请求信息,直接将应答内容传给用户。此时要求RSLB都要支持IP隧道协议。

 
 

lvs-tun模型特征

集群节点可跨互联网
 
1directorrealserver不需要在一个网络中
2rip一定不是私有地址
3director 仅处理入站请求
4realserver网关不能指向director ip
5、不支持端口映射
6、仅有支持ip遂道功能操作系统才能用在realserver
 

三、lvs scheduling methods调度算法有10

静态调度4个轮叫RR

加权轮叫WRR
目标地址hash  DH
源地地址hash  SH

动态调度6

最少链接(Least Connections
加权最少链接(Weighted Least ConnectionsWLC linux默认的调度
shortest expected delay   SED
never queue  NQ 

基于本地的最少链接(Locality-Based Least ConnectionsDHLBLC

带复制的基于本地最少链接(Locality-Based Least Connections with ReplicationLBLCR

四、LVS/NAT实现过程
1、实验拓朴图

 

172.16.23.1LVS与互联网的虚拟server ip地址,简称为VIP

192.168.23.1LVS与内部真实服务器通信的ip地址,简称为DIP

192.168.23.2192.168.23.3就是LVS通过一些调度算法,选择服务器响应的真实服务器地址

LVS有两块网卡,一块是桥接方式即172.16.23.1,通与互联网通信。另一块网卡仅主机方式,192.168.23.1web1,web2都是仅主机方式。且xp里面的net1虚拟网卡设置ip192.168.23.9
 
2web1安装httpd,并使它能提供服务

   yum -y install httpd

  echo “server1” > /var/www/html/index.html

  service httpd start

 设置ip地址为192.168.23.2

 Elinks  http://192.168.23.2/index.html看能否正常访问
 Web2的配置与上类似 ,这里不多数
3LVS服务上设置

(1)sysctl -w net.ipv4.ip_forward=1  向内核传递参数开启ip转发功能,使立即生效

cat /proc/sys/net/ipv4/ip_forward 查看确保为1

(2)、安装ipvsadm
grep -i 'vs' /boot/config-2.6.18-164.el5
如果是CONFLIG_IP_VS_PROTO_TCP=y 则说明支持ipvs
(3)安装ipvsadm,可从网上下载
这里用本地yum源安装,yum源指向为Cluster
yum install ipvsadm
安装后可用rpm –ql ipvsadm 看生成那些文件及工具

4)、用ipvsadm设置规则

ipvsadm -A -t 172.16.23.1:80 -s rr   //这里定义一个集群服务 –s指调度算法为rr

ipvsadm -a -t 172.16.23.1:80 -r 192.16.23.2 –m   //向集群服务添加RS  -mnat方式

ipvsadm -a -t 172.16.23.1:80 -r 192.16.23.3 –m   //向集群服务添加RS  -mnat方式

可能这些命令你不太熟悉,下面将详细介绍。
ipvsadm –L –n 查看你定义的规则是否符合你的要求

53.web1web2上设置默认网关指向DIP的地址

  route add default gw 192.168.23.1
         ping 172.16.23.1  确保能ping

6)、测试是否成功

ab -c 10  -n 1000 http://172.16.23.1/index.html ab命令做测试
watch -n1 'ipvsadm -L -n' 每秒刷新一次来查看变化

xp操作系统打开浏览器 http://172.16.23.1/index.html
刷新网页将轮询出现web1,web2页面,说明成功!
 

7ipvsadm命令详细介绍

     1.定义集群服务
语法:
    ipvsadm -A|-E -t|-u VIPport -s scheduler   -s指调度算法

ipvsadm -D -t|-u VIP:port
      -A  在虚拟服务器表中添加新的虚拟服务器记录
      -E  编辑内核虚拟服务器表中虚拟服务器记录。
      -D  删除虚拟服务器表中虚拟服务器记录。
      -L 查看
      -t|-u 代表tcpudp服务

VIP指虚拟服务器ip地址,即LVSinternet通信的网卡地址
      2. 真实服务器的规则定义
           ipvsadm -a|e -t|u VIP:port -r REALSERVER -g|-i|-m [-w weight]
      ipvsadm -d -t|-u VIP:port -r REALSERVER
       -a 在虚拟服务器表的添加一条新的真实服务器
       -e 编辑虚拟服务器记录中真实服务器记录
       -d删除虚拟服务器记录的真实服务器记录
       -r 提供服务响应的真实服务器
       -g LVS 的工作模式为直接路由模式
       -i LVS 的工作模式为隧道模式
       -m LVS 的工作模式为NAT 模式
           -z 清空计数器
       -n 数字的方式来显示地址
        --stats   状态信息
        --rate    每秒速率

添加或修改集群服务:ipvsadm -A|E -t|u|f VIP:port -s 调度算法
删除一个集群服务:  ipvsadm -D -t|u|f VIP:port

添加或者修改REALSERVER:ipvsadm -a|e -t|u|f VIP:port -r REALSERVER[:port] -g|-i|-m [-w 权重]

删除一个REALSERVER:    ipvsadm -d -t|u|f VIP:port -r REALSERVER[:port]

 
 
五、课后知识补充 VMware三种网络模式区别 bridged nat host-only
VMware虚拟机技术,虚拟机技术在最近的几年中得到了广泛的发展,一些大型网络服务商都开始采用虚拟机技术,不仅节省了投资成本,更节约了能源的消耗。提到VMware大家就想起了虚拟机技术,虚拟机技术在最近的几年中得到了广泛的发展,一些大型网络服务商都开始采用虚拟机技术,不仅节省了投资成本,更节约了能源的消耗。
网络模式
我们首先说一下VMware的几个虚拟设备
VMnet0:用于虚拟桥接网络下的虚拟交换机
VMnet1:用于虚拟Host-Only网络下的虚拟交换机
VMnet8:用于虚拟NAT网络下的虚拟交换机

VMware Network Adepter VMnet1Host用于与Host-Only虚拟网络进行通信的虚拟网卡

VMware Network Adepter VMnet8Host用于与NAT虚拟网络进行通信的虚拟网卡

 
 

1桥接网络(Bridged Networking

桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位(虚拟网卡既不是Adepter VMnet1也不是Adepter VMnet8)。那么物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机。所以两个网卡的IP地址也要设置为同一网段。

2NAT模式

NAT网络中,会用到VMware Network Adepter VMnet8虚拟网卡,主机上的VMware Network Adepter VMnet8虚拟网卡被直接连接到VMnet8虚拟交换机上与虚拟网卡进行通信。

NAT网络模式

VMware Network Adepter VMnet8虚拟网卡的作用仅限于和VMnet8网段进行通信,它不给VMnet8网段提供路由功能,所以虚拟机虚拟一个NAT服务器,使虚拟网卡可以连接到Internet。在这种情况下,我们就可以使用端口映射功能,让访问主机80端口的请求映射到虚拟机的80端口上。

VMware Network Adepter VMnet8虚拟网卡的IP地址是在安装VMware时由系统指定生成的,我们不要修改这个数值,否则会使主机和虚拟机无法通信。

3Host-Only模式

Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。