四、IP负载均衡(LVS-NAT)
因为反向代劳办事器工作在HTTP层,其本身的开销就已经严重制约了可扩大性,大年夜而也限制了它的机能极限。那可否在HTTP层面以下实现负载均衡呢?
二、DNS负载均衡
NAT办事器:它工作在传输层,它可以修改发送来的IP数据包,将数据包的目标地址修改为实际办事器地址。
大年夜Linux2.4内核开端,其内置的Neftilter模块在内核中保护着一些数据包过滤表,这些表包含了用于控制数据包过滤的规矩。可喜的是,Linux供给了iptables来对过滤表进行插入、修改和删除等操作。加倍令人振奋的是,Linux2.6.x内核中内置了IPVS模块,它的工作性质类型于Netfilter模块,不过它更专注于实现IP负载均衡。
想知道你的办事器内核是否已经安装了IPVS模块,可以

有输出意味着IPVS已经安装了。IPVS的治理对象是ipvsadm,它为供给了基于敕令行的设备界面,可以经由过程它快速实现负载均衡体系。这就是大年夜名鼎鼎的LVS(Linux Virtual Server,Linux虚拟办事器)。
1、打开调剂器的数据包转发选项
- echo 1 > /proc/sys/net/ipv4/ip_forward
2、检查实际办事器是否已经将NAT办事器作为本身的默认网关,如不雅不是,如添加
3、应用ipvsadm设备
添加两台实际办事器(不须要有外网ip),-r后面是实际办事器的内网ip和端口,-m表示采取NAT方法来转发数据包
添加一台虚拟办事器,-t 后面是办事器的外网ip和端口,-s rr是指采取简单轮询的RR调剂策略(这属于静态调剂策略,除此之外,LVS还供给了系列的动态调剂策略,比如最小连接(LC)、带权重的最小连接(WLC),最短期望时光延迟(SED)等)
- ipvsadm -a -t 111.11.11.11:80 -r 10.10.120.210:8000 -m
- ipvsadm -a -t 111.11.11.11:80 -r 10.10.120.211:8000 -m
运行ipvsadm -L -n可以查看实际办事器的状况。如许就大年夜功告成了。
实验证实应用基于NAT的负载均衡体系。作为调剂器的NAT办事器可以将吞吐率晋升到一个新的高度,几乎是反向代劳办事器的两倍以上,这大年夜多归功于在内核中进行请求转发的较低开销。然则一旦请求的内容过大年夜时,不论是基于反向代劳照样NAT,负载均衡的┞符体吞吐量都差距不大年夜,这解释对于一睦开销较大年夜的内容,应用简单的反向代劳来搭建负载均衡体系是值推敲的。
这么强大年夜的体系照样有它的瓶颈,那就是NAT办事器的收集带宽,包含内部收集和外部收集。当然如不雅你不差钱,可以去花钱去购买千兆交换机或万兆交换机,甚至负载均衡硬件设备,但如不雅你是个屌丝,咋办?
一个简荡竽暌剐效的办法就是将基于NAT的集群和前面的DNS混淆应用,比如5个100Mbps出口宽带的集群,然后经由过程DNS来将用户请求均衡地指向这些集群,同时,你还可以应用DNS智能解析实现地区就近拜访。如许的设备对于大年夜多半营业是足够了,然则对于供给下载或视频等办事的大年夜范围站点,NAT办事器照样不敷出色。
五、直接路由(LVS-DR)
NAT是工作在收集分层模型的传输层(第四层),而直接路由是工作在数据链路层(第二层),貌似更屌些。它经由过程修改数据包的目标MAC地址(没有修改目标IP),将数据包转发到实际办事器上,不合的是,实际办事器的响应数据包将直接发送给客户羰,而不经由调剂器。
1、收集设置
这里假设一台负载均衡调剂器,两台实际办事器,购买三个外网ip,一台机一个,三台机的默认网关须要雷同,最后再设置同样的ip别号,这里假设别号为10.10.120.193。如许一来,精晓过10.10.120.193这个IP别号来拜访调剂器,你可以将站点的域名指向这个IP别号。
这是为了让实际办事器不要去寻找其他拥有这个IP别号的办事器,在实际办事器中运行:

别的还要防止实际办事器响应来自收集中针对IP别号的ARP广播,为此还要履行:
基于以上几点,DNS办事器并不克不及很好地完成工作量均衡分派,最后,是否选择基于DNS的负载均衡方法完全取决于你的须要。
- echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
- echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
- echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
- echo "1" > /proc/sys/net/ipv4/conf/all/arp_announce
设备完了就可以应用ipvsadm设备LVS-DR集群了