Linux虚拟服务器(LVS)是基于Linux内核的操作系统的负载平衡软件。
LVS提供了良好的可扩展性,可靠性和可服务性。
LVS项目的主要工作是开发先进的IP 负载平衡软件(IPVS),应用级负载平衡软件(KTCPVS)和集群管理组件。
- IPVS:在Linux内核中实现的高级IP负载平衡软件。
- KTCPVS:在Linux内核中实现应用级负载平衡
LVS可用于构建高可扩展性和高可用性的网络服务,如网络,电子邮件,媒体和VoIP服务,并将可扩展网络服务集成到大规模可靠的电子商务或电子政务应用中。基于LVS的解决方案已经部署在世界各地的许多实际应用中。
LVS组件依赖于Linux Netfilter框架,其源代码可在Linux内核源代码中的net/netfilter/ipvs子目录中使用。LVS能够通过检查第7层数据包来处理UDP,TCP第4层协议以及FTP被动连接。它提供目录中的计数器的层次结构。/proc调用用于配置LVS 的用户实用程序 ,这需要超级用户权限才能运行。
LVS实现了几个平衡调度器,下面列出了相关的源文件:
- 循环(ip_vs_rr.c)
- 加权循环(ip_vs_wrr.c)
- 最小连接(ip_vs_lc.c)
- 加权最小连接(ip_vs_wlc.c)
- 基于位置的最小连接(ip_vs_lblc.c)
- 基于位置的与复制的最小连接(ip_vs_lblcr.c)
- 目标散列(ip_vs_dh.c)
- 源哈希(ip_vs_sh.c)
- 预期延迟最短(ip_vs_sed.c)
- 不排队(ip_vs_nq.c)
示例
使用两个真实服务器设置虚拟HTTP服务器:
ipvsadm -A -t 192 .168.0.1:80 -s rr
ipvsadm -a -t 192 .168.0.1:80 -r 172 .16.0.1:80-m
ipvsadm -a -t 192 .168.0.1:80 -r 172 .16.0.2:80-m
第一个命令将IP地址192.168.0.1上的TCP端口80 分配给虚拟服务器。所选择的负载均衡调度算法是round-robin()。第二和第三个命令是将真实服务器的IP地址添加到LVS设置。转发的网络包将被masked()。
查询上述配置的LVS设置的状态:
#ipvsadm -L -n
IP虚拟服务器版本1.0.8(size = 65536)
Prot LocalAddress:端口调度器标志
- > RemoteAddress:端口正向重量ActiveConn InActConn
TCP 192.168.0.1:80 rr
- > 172.16.0.2:80 Masq 1 3 1
- > 172.16.0.1:80 Masq 1 4 0
原创文章,作者:HGG,如若转载,请注明出处:http://www.178linux.com/85252