共计 3134 个字符,预计需要花费 8 分钟才能阅读完成。
LVS 概念及使用方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
LVS 简介及使用
一.LVS 是什么?
LVS 的英文全称是 Linux Virtual Server,即 Linux 虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在 linux 内存 2.6 中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。
视频详解
二.LVS 能干什么?
LVS 主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外可扩展性也非常好。
三. 工作原理
如上图,LVS 可分为三部分:
1.Load Balancer:
这是 LVS 的核心部分,它好比我们网站 MVC 模型的 Controller。它负责将客户的请求按照一定的算法分发到下一层不同的服务器进行处理,自己本身不做具体业务的处理。另外该层还可用监控下一层的状态,如果下一层的某台服务器不能正常工作了,它会自动把其剔除,恢复后又可用加上。该层由一台或者几台 Director Server 组成。
2.Server Array:
该层负责具体业务。可有 WEB Server、mail Server、FTP Server、DNS Server 等组成。注意,其实上层的 Director Server 也可以当 Real server 用的。
3.Shared Storage:
主要是提高上一层数据和为上一层保持数据一致。
4. 视频详解
四. 负载均衡机制
前面我们说了 LVS 是工作在网络层。相对于其它负载均衡的解决办法,比如 DNS 域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的。LVS 的通过控制 IP 来实现负载均衡。IPVS 是其具体的实现模块。IPVS 的主要作用:安装在 Director Server 上面,在 Director Server 虚拟一个对外访问的 IP(VIP)。用户访问 VIP,到达 Director Server,Director Server 根据一定的规则选择一个 Real Server,处理完成后然后返回给客户端数据。这些步骤产生了一些具体的问题,比如如何选择具体的 Real Server,Real Server 如果返回给客户端数据等等。IPVS 为此有三种机制:
1.VS/NAT(Virtual Server via Network Address Translation)
即网络地址翻转技术实现虚拟服务器。当请求来到时,Diretor server 上处理的程序将数据报文中的目标地址(即虚拟 IP 地址)改成具体的某台 Real Server, 端口也改成 Real Server 的端口,然后把报文发给 Real Server。Real Server 处理完数据后,需要返回给 Diretor Server,然后 Diretor server 将数据包中的源地址和源端口改成 VIP 的地址和端口,最后把数据发送出去。由此可以看出,用户的请求和返回都要经过 Diretor Server,如果数据过多,Diretor Server 肯定会不堪重负。
2.VS/TUN(Virtual Server via IP Tunneling)
即 IP 隧道技术实现虚拟服务器。它跟 VS/NAT 基本一样,但是 Real server 是直接返回数据给客户端,不需要经过 Diretor server, 这大大降低了 Diretor server 的压力。
3.VS/DR(Virtual Server via Direct Routing)
即用直接路由技术实现虚拟服务器。跟前面两种方式,它的报文转发方法有所不同,VS/DR 通过改写请求报文的 MAC 地址,将请求发送到 Real Server,而 Real Server 将响应直接返回给客户,免去了 VS/TUN 中的 IP 隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求 Director Server 与 Real Server 都有一块网卡连在同一物理网段上。
五. 负载调度算法
前面我们都知道 Director Server 要选择不同的 Real server,那么它具体的如果选择 Real Server 以达到负载均衡的呢,IPVS 实现了八种调度方法, 具体算法可以查看官网或者百度,这里就不一一列出了。官网:www.linuxvirtualserver.org。
六、具体配置操作
首先我们这里有三台机子,IP 分别是 192.168.132.30(Diretor server),192.168.132.64(Real server 1),192.168.132.68(real server 2)。在 real server 1 和 2 上面,已经配置好了 web 服务,并且我们假设还有一个对外访问的虚拟 IP 是 192.168.132.254(VIP)。另外在 Diretor server 上面已经安装好了 ipvsadm。
下面我们 VS/DR 介绍详细的配置过程。
Diretor server 上面的配置:
// 首先在 Director Server 上绑定一个虚拟 IP(也叫 VIP),此 IP 用于对外提供服务:
Ifconfig eth0:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up
// 给设备 eth0:0 指定一条路由
route add -host 192.168.132.254 dev eth0:0
// 启用系统的包转发功能
echo 1 /proc/sys/net/ipv4/ip_forward
// 清楚 ipvsadm 以前的设置
ipvsadm -C
// 添加一个新的虚拟 IP 记录 192.168.132.254,其持续服务之间是 120 秒
ipvsadm -A -t 192.168.132.254:80 -s rr -p 120
// 在新增的虚拟 IP 记录中新增两天 real server 记录,- g 即为使用 VS/DR 模式
ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.64:80 -g
ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.68:80 -g
// 启用 LVS 服务 ipvsadm
两台 real server 上的配置:
/ 在回环设备上绑定了一个虚拟 IP 地址,并设定其子网掩码为 255.255.255.255,与 Director Server 上的虚拟 IP 保持互通 /
ifconfig lo:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up
route add -host 192.168.132.254 dev lo:0
// 禁用本机的 ARP 请求 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
之后在其他客户端机子上面,访问 http://192.168.132.254/,则可以看到结果了。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。