LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
宗旨:
使用集群技术和Linux操作系统实现一个高性能、高可用的服务器.
很好的可伸缩性(Scalability)
很好的可靠性(Reliability)
很好的可管理性(Manageability)。
特点:
可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。
优点:
1、开源,免费
2、在网上能找到一些相关技术资源
3、具有软件负载均衡的一些优点
缺点:
1、最核心的就是没有可靠的支持服务,没有人对其结果负责;
2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等;
3、开启隧道方式需重编译内核;
4、配置复杂;
5、主要应用于LINUX,目前没有专门用于WINDOWS的版本,不过可以通过配置,使windows成为LVS集群中的real server(win2003、win2008中)。
环境:
Web-Server:Centos6.8 192.168.126.135
Web-Server:Centos6.8 192.168.126.134
在Web服务器上搭建web:
1、安装web系统,在centOS上可以使用命令yum install进行安装,-y 表示安装过程中全部选择yes,我这里做测试环境,所以简单安装
yum -y install httpd
2、设置httpd、mysqld为开机启动服务
chkconfig httpd on
3、启动服务、关闭防火墙
service httpd start
service iptables stop #为了测试方便,直接关闭防火墙
4、安装虚拟IP管理工具:ipvsadm
yum -y install ipvsadm
5、新建脚本:
#!/bin/bash VIP=192.168.126.100 #假设126.100是VIP RIP1=192.168.126.135 #web-1 RIP2=192.168.126.134 #web-2 case "$1" in start) echo "开始配置LVS Director Server" ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up route add -host $VIP dev eth0:0 echo "1">/proc/sys/net/ipv4/ip_forward ipvsadm -C ipvsadm -A -t $VIP:80 -s rr ipvsadm -a -t $VIP:80 -r $RIP1:80 -g ipvsadm -a -t $VIP:80 -r $RIP2:80 -g ipvsadm echo "配置成功" ;; stop) echo "正在关闭LVS Director Server" echo "0">/proc/sys/net/ipv4/ip_forward ipvsadm -C ifconfig eth0:0 down echo "关闭成功!" ;; *) echo "用法:$0 {start|stop}" exit 1 esac
6、赋予脚本权限并运行脚本
[root@localhost /]# sh lvs.sh start 开始配置LVS Director Server IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.126.100:http rr #虚拟IP -> 192.168.126.134:http Route 1 0 0 #WEB-1 -> 192.168.126.135:http Route 1 0 0 #WEB-2 配置成功
在另一台 Web服务器上搭建web:
1、安装web系统,在centOS上可以使用命令yum install进行安装,-y 表示安装过程中全部选择yes,我这里做测试环境,所以简单安装
yum -y install httpd
2、设置httpd、mysqld为开机启动服务
chkconfig httpd on
3、启动服务、关闭防火墙
service httpd start
service iptables stop #为了测试方便,直接关闭防火墙
4、安装虚拟IP管理工具:ipvsadm
yum -y install ipvsadm
5、新建脚本:
[root@localhost /]# vim lvs.sh #!/bin/bash VIP=192.168.126.100 #VIP case "$1" in start) echo "配置lvs Real Server开始..." ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up route add -host $VIP dev lo:0 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 ;; stop) echo "正在关闭lvs Real server" ifconfig lo:0 down echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce ;; *) echo "用法:$0 {start|stop}" exit 1 esac [root@localhost /]# sh lvs.sh start 配置lvs Real Server开始...
配置完成!
打开浏览器访问VIP地址:http://192.168.126.100 持续刷新网页看会不会出现访问到两个web服务器地址的页面
如果你需要进一步配置LVS+Keepalived,可以参考:LVS+keepalived配置