使用Linux实现WEB服务的LVS负载均衡
实验说明:负载均衡,从字面意义来理解是多个后台服务器来支撑一个访问的服务正常运行,也就是说单个重负载的节点分担到多台设备上并行处理,减少用户等待的相应时间,也就是我们说的集群技术,但负载均衡不等于群集,这种技术主要针对企业中WEB服务器和FTP服务器等关键应用
实验原理:
LVS的全称Linux vitual system,
LVS工作在一台server上提供Directory(负载均衡器)的功能,本身并不提供服务,只是把特定的请求转发给对应的realserver(真正提供服务的主机),从而实现集群环境中的负载均衡。
LVS的核心组件ipvs工作在kernel中,是真正的用于实现根据定义的集群转发规则把客户端的请求转发到特定的realserver。而另一个组件ipvsadm是工作在用户空间的一个让用户定义ipvs规则的工具。故我们只要在server上装了ipvsadm软件包就可以定义ipvs规则,而在linux kernel的2.6版本之后kernel是直接支持ipvs的。
lvs 三种模型 (NAT DR TUN)
NAT 的架构的特点
工作原理:基于NAT机制实现。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,同时将报文的目标端口也改成选定的realserver的相应端口,最后将报文请求发送到指定的realserver。在服务器端得到数据后,realserver将数据返给director,而director将报文的源地址和源端口改成VIP和相应端口,然后把数据发送给用户,完成整个负载调度过程。
特点:
1,所有的realserver和director要在同一个网段内
2,RIP是私有地址,仅用于集群节点之间进行通信
3,director同时处理请求和应答数据包
4,realserver的网关要指向DIP
5,可以实现端口映射
6,readlserver可以是任意操作系统
7,director很可能成为系统性能瓶颈
TUN架构的优缺点
工作原理:这种方法通过ip隧道技术实现虚拟服务器。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址.然后,调度器采用ip隧道技术将用户请求发送到某个realserver,而这个realserver将直接相应用户的请求,不再经过director。此外,对realserver的地域位置没有要求。和director在不在同一网段都可以。
特点:
1,realserver和director可以不在一个物理网络中,可以跨越互联网
2,RIP一定不能是私有地址(因为要用到隧道传输)
3,director仅处理入站请求
4,realserver的网关不能指向DIP
5,不支持端口映射
6,支持ip隧道功能的操作系统才能作为realserver
DR架构的优缺点(生产环境用的最多)
工作原理:基于直接路由来实现。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,还要改写请求报文的mac地址,将请求发送到指定mac的realserver,而realserver将响应直接返回给客户端,不经过director。这个方式是三种调度中性能最好的,也是我们生产环境中使用最多的。
特点:
1,集群节点和director必须在一个物理网络内
2,RIP可以使用公网地址或私有地址
3,director仅处理入站请求
4,集群节点网关不指向director,故出站不经过director
5,不支持端口映射
6,大多数操作系统可以作为realserver,要支持隔离arp广播
7,director服务器的压力比较小
实验环境:RHEL5.5
实验所需安装包:http安装包 位于光盘server目录内 ipvsadm-1.24-10.i386.rpm 位于光盘Cluster目录内
实验前的准备:创建5台机器 分别为ROUTER LVS RS1 RS2 client 全部关闭防火墙!!
实验拓扑图如下
如图 要实现客户机访问
客户机访问http服务时是通过LVS服务器由两台服务器提供服务,客户机访问时只需要输入一个虚拟出来的IP地址就可以访问到了
在client中IP配置如下:
客户机的作用只起到访问服务并且验证作用 所以不做过多配置
ROUTER IP配置如下:
eth0网卡IP配置
eth1网卡IP配置
其他配置:
echo 1 > /proc/sys/net/ipv4/ip_forward 开启网卡转发功能
LVS的IP配置