linux下网络负载均衡配置


Linux 下负载均衡安装与配置 1. LVS 介绍: LVS 的英文全称是 Linux Virtual Server,即 Linux 虚拟服务 器。它是我们国家的章文嵩博士的一个开源项目。在 linux 内核 2.6 中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译 内核。 1.1 LVS 的作用 LVS 主要用于多服务器的负载均衡。它工作在网络层,可以实 现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服 务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有 多种负载均衡的方法。它 稳定可靠,即 使 在集群的服务器中某台服务 器无法正常工作,也不影响整体效果。另外可扩展性也非常好。 1.2 LVS 的三种实现方式 LVS 采用的 IP 负载均衡技术是在负载调度器的实现技术中效率最 高的。目前有三种 IP 负载均衡技术(VS/NAT、VS/TUN 和 VS/DR); 十 种 调度算法(rrr | wrr | lc | wlc | lblc | lblcr | dh | sh | sed | nq)。 Ø 通过 NAT 实现虚拟服务器(VS/NAT) 即网络地址翻转技术实现虚拟服务器。当请求来到时,Diretor server 上处理的程序将数据报文中的目标地址(即虚拟 IP 地址)改成具体的某台 PDF pdfFactory Pro www.fineprint.cn Real Server,端口也改成 Real Server 的端口,然后把报文发给 Real Server。 Real Server 处理完数据后,需要返回给 Diretor Server,然后 Diretor server 将数据包中的源地址和源端口改成 VIP 的地址和端口,最后把数据 发送出去。由此可以看出,用户的请求和返回都要经过 Diretor Server, 如果数据过多,Diretor Server 肯定会不堪重负。 Ø 通过 IP 隧道实现虚拟服务器(VS/TUN) 即 IP 隧道技术实现虚拟服务器。它跟 VS/NAT 基本一样,但是 Real server 是直接返回数据给客户端,不需要经过 Diretor server,这大大降 低了 Diretor server 的压力。 Ø 通过直接路由实现虚拟服务器(VS/DR) 即用直接路由技术实现虚拟服务器。跟前面两种方式,它的报文转发方 法有所不同,VS/DR 通过改写请求报文的 MAC 地址,将请求发送到 Real Server, 而 Real Server 将响应直接返回给客户,免去了 VS/TUN 中的 IP 隧道开销。 这种方式是三种负载调度机制中性能最高最好的,但是必须要求 Director Server 与 Real Server 都有一块网卡连在同一物理网段上 三种 IP 负载均衡技术的优缺点归纳在下表中: VS/NAT VS/TUN VS/DR Server any Tunneling Non-arp device server network private LAN/WAN LAN server number Low (10~20) High (100) High (100) server gateway Load balancer Own router Own router 注:以上三种方法所能支持最大服务器数目的估计是假设调度器使用 100M 网卡,调度器的硬件配置与后端服务器的硬件配置相同,而且是对一般 Web 服务。 使用更高的硬件配置(如千兆网卡和更快的处理器)作为调度器,调度器所能调 度的服务器数量会相应增加。当应用不同时,服务器的数目也会相应地改变。所 以,以上数据估计主要是为三种方法的伸缩性进行量化比较。 1.3 LVS 的术语 Ø LVS( Linux Virtual Server): Linux 下的负载均衡器,支持 LVS-NAT、 LVS-DR、LVS-TUNL 三种不同 的方式,nat 用的不是很多,主要用的是 DR、TUNL 方式。DR 方式适 合所有的 RealServer 同一网段下,即接在同一个交换机上。TUNL 方 式就对于 RealServer 的位置可以任意了,完全可以跨地域、空间, 只要系统支持 Tunnel 就可以,方便以后扩充的话直接 Tunl 方式即可。 Ø Load Balancer(负载均衡器): PDF pdfFactory Pro www.fineprint.cn Load Balancer 是整个集群系统的前端,负责把客户请求转发到 Real Server 上。Backup 是备份 Load Balancer,当 Load Balancer 不可用 时接替它,成为实际的 Load Balancer。Load Balancer 通过 director 监测各 Real Server 的健康状况。在 Real Server 不可用时把它从群 中剔除,恢复时重新加入。 Ø Server Array(服务器群): Server Array 是一组运行实际应用服务的机器,比如 WEB, Mail, FTP, DNS, Media 等等。在实际应用中,Load Balancer 和 Backup 也可以 兼任 Real Server 的角色。 Ø Shared Storage(共享存储): Shared Storage 为所有 Real Server 提供共享存储空间和一致的数据 内容。 Ø Director: 前端负载均衡器 即运行 LVS 服务可以针对 web、ftp、cache、mms 甚至 mysql 等服务 做 load balances。Load Balancer 与 Director 在一定程度上可以看 作同一个东东。 Ø Real Server: 后端需要负载均衡的服务器,可以为各类系统,Linux、Solaris、Aix、 BSD、Windows 都可,甚至 Director 本身也可以作为 RealServer 使 用. Ø IPVS: 是 LVS 集群系统的核心软件,它的主要作用是:安装在 Load Balancer 上,把发往 Virtual IP 的请求转发到 Real Server 上。 PDF pdfFactory Pro www.fineprint.cn 1.4 LVS 的部署原理图 PDF pdfFactory Pro www.fineprint.cn 2. LVS 具体实现实验 2.1 实验方案: 我们此次验证的是 lvs+http 和 ftp 方式 一共准备四台机器: 负载均衡机器: Director1:172.17.13.81 #安装 LVS+piranha,真实的 ip 心跳地址:192.168.3.60 Director2:172.17.13.220 #安装 LVS,真实的 ip 心跳地址:192.168.3.50 VIP:172.17.13.211 #虚拟出来的 ip 地址 real-server1:172.17.13.210 #实际服务器,运行 http 和 ftp real-server2:172.17.13.135 #实际服务器,运行 http 和 ftp PDF pdfFactory Pro www.fineprint.cn 2.2 实验原理图 network Client DIP: Eth1: 172.17.13.220 心跳地址:Eth0:192.168.3.50 Real server 2 Eth0:172.17.13.135/24 交换机 Real server 1 Eth0:172.17.13.210/24 DIP: Eth1: 172.17.13.81 心跳地址:Eth0: 192.168.3.60 2.3 需要的安装包 ipvsadm-1.24-13.el5.x86_64.rpm piranha-0.8.4-25.e15_9.1.x86_64 php-5.3.3-3.e16_1.3.x86_64 php-cli-5.3.3-3.e16_1.3.x86_64 php-common-5.3.3-3.e16_1.3.x86_64 PDF pdfFactory Pro www.fineprint.cn 2.4 LVS 的安装 2.4.1 在 Director 上安装 ipvsadm 1.使用 yum 工具安装 ipvsadm 2. 验证 ipvsadm 安装是否成功 2.4.2 在 Director 上安装 piranha 1. 使用 yum 工具安装 piranha PDF pdfFactory Pro www.fineprint.cn 2. 给 lvs 图形界面设置密码: 3. 开启 LVS 图形界面: 【root@testkvm ~】# service piranha-gui start 2.5 LVS 服务器的配置 通过浏览器进入 piranha 服务所在的服务器 http://172.17.13.81:3636,单击“Login”使用用户名 piranha 及 设定的密码(如:123456)进行登录,如下图: PDF pdfFactory Pro www.fineprint.cn 2.5.1 配置 CONTROL/MONITORING 登录后看到 LVS 的监控界面,通过此界面可以设置监控数据的刷 新时间、修改管理密码等,如下图: 2.5.2 配置 GLOBAL SETTINGS 点击 GLOBAL SETTINGS 进入主服务器配置界面,如下图: PDF pdfFactory Pro www.fineprint.cn Primary server public IP:主服务器用于和应用服务器(Real server) 连接的 IP Primary server public IP:主服务器与备服务器连接的内部 IP Use network type:选用的 LVS 工作模式,我们这里采用 DR 直接静态 路由模式 2.5.3 配置 REDUNDANCY l 单击【REDUNDANCY】进入界面,点击【ENABLE】来启动备用服务 器。如下图: PDF pdfFactory Pro www.fineprint.cn l 配置备用服务器如下图: Redundant server public IP:备用服务器与应用服务器(Real Server) 连接的 IP Heartbeat interval (seconds):备用服务器对主服务器进行心跳检 测的轮询时间 Assume dead after (seconds):如果主服务器在指定的时间内没有回 复心跳,则宣告服务器失效并进行接管 PDF pdfFactory Pro www.fineprint.cn Heartbeat runs on port:使用心跳来检测所有端口 Monitor NIC links for failures:是否检测网卡的连接状态 2.5.4 配置 VIRTUAL SERVERS l 点击【VIRTUAL SERVERS】进入服务器集群配置,点击【ADD】添 加一个虚拟服务器,如下图: l 选中要编辑的虚拟服务器,点击【EDIT】进行其属性编辑,编辑 完成后点击【ACCEPT】进行保存,如下图: PDF pdfFactory Pro www.fineprint.cn Name:定义虚拟服务器的名称 Application port:指定此目标应用服务器的端口 Protocol:目标应用服务器的网络端口,TCP 或 UDP Virtual IP Address:定义目标应用使用的虚拟 IP Virtual IP Network Mask:定义目标应用所使用的虚拟 IP 的子网掩 码 Firewall Mark:当目标应用要使用多个 IP 端口时结合 IPTABLE 设定 防火墙标记 Device:虚拟 IP 所挂接的网卡设备名称 Re-entry Time:当发现有一个 Real Server 故障后,LVS Route 对这 个 Server 的检测间隔时间 Service timeout:LVS Route 对 Real Server 发送指令后,若超过此 时间没有响应则认为服务器发生故障。 Quiesce server:一旦有 Real Server 加入或恢复,则所有负载队列 均归“0”并重新进行分配 PDF pdfFactory Pro www.fineprint.cn Load monitoring tool:在 Real Server 中通过 ruptime 或 rup 命令 获得系统负载,以结合应用的 Scheduling 算法进行调度计算 Scheduling:此虚拟服务器使用的调度算法 Persistence:同一客户端长连接的保持时间 Persistence Network Mask:长连接保持的子网掩码范围 八种调度算法的介绍: Round-Robin Scheduling:轮询策略,IP 分发时逐个地对 Real Server 进行轮询。 Weighted Round-Robin :加权轮询策略,配合权值进行轮询策略计 算。 Least-Connection:最小连接优先策略,将新的 IP 请求分发到访问队 列较短的 Real Server. Weighted Least-connections:加权最小连接优先策略,配合权值进 行最小连接优先策略。 Locality-Based Least-Connection Scheduling:以下简称 LBLCS, 根据目标 IP 地址找出最近使用的服务器,若该服务器可用并且没有 超载(系统压力未达到一半),就将请求发送到该服务器,否则使用 最小连接优先策略。此策略主要针对的是 Cache 网关服务器。 Locality-Based Least-Connection with Replication Scheduling: 与 LBLCS 类似,在 LBLCS 的基础上加入复制调度策略,使得“热门” 网站使用时尽量 Cache 在同一台网关服务器中,进一步避免了在多台 服务器中保存相同的 Cache 信息。此 策略主要针对的边是 Cache 网关 服务器。 PDF pdfFactory Pro www.fineprint.cn Destination Hashing Scheduling:通过对目标地址的 Hash 计算来确 定目标服务器。此策略主要针对的是 Cache 网关服务器。 Source Hashing Scheduling:通过对源地址的 Hash 计算来确定目标 服务器。此策略主要针对的 是 Cache 网关服务器。 2.5.5 添加 Real Server 单击【REAL SERVER】并通过单击【ADD】添加两台 Real Server 服务器,如下图: l 编辑第一台 Real Server 服务器 : PDF pdfFactory Pro www.fineprint.cn l 同样方法编辑第二台 Real Server 服务器 : l 激活 Real Server 服务器,分别选中两台 Real Server 服务器点 击【(DE)ACTIVATE】进行激活 PDF pdfFactory Pro www.fineprint.cn 2.5.6 配置 Real Server 目标使用规则 点击【MONITORING SCRIPTS】进入配置界面:如下图 Sending Program:通过程序实现 Real Server 中对应用服务可用性的 判断(不能与 Send 同时使用) Send:直接通过 VIRTUAL SERVER 中指定的端口发送指令 Expect:Sending Program或Send后的返回值,如果与此返回值匹配, 则表明此应用服务器在当前 Real Server 中运行正常 PDF pdfFactory Pro www.fineprint.cn Treat expect string as a regular expression:将 Expect 中的值 作为正则表达式与返回值进行比对。 2.5.7 激活虚拟服务器 点击【VIRTUAL SERVER】进入界面,选择需要激活的虚拟服务器点击 【(DE)ACTIVATE】进行激活。如下图: 2.5.8 查看 LVS 配置文件 LVS 配置完成后可以在服务器查看/etc/sysconfig/ha/lvs.cf 配置文件内容 PDF pdfFactory Pro www.fineprint.cn 2.5.9 同步配置文件 将配置文件同步到 LVS 备机上 将配置文件/etc/sysconfig/ha/lvs.cf 拷贝一份到 LVS 的备机 上进行配置文件同步。 PDF pdfFactory Pro www.fineprint.cn 3. Real Server 服务器的配置 分别对 172.17.13.210 和 172.17.13.135 进行如下操作: 3.1 配置 VIP 地址: 编辑文件/etc/sysconfig/network-scripts/ifcfg-lo 注意:IPADDR 为虚拟 IP 地址 重启网络服务使配置生效: 【root@bohui-IPTV ~】# service network restart 3.2 配置 arp 编辑文件/etc/sysctl.conf 添加下图中红色框内容: PDF pdfFactory Pro www.fineprint.cn 并修改:net.ipv4.ip_forward = 1 编辑完成后执行【root@bohui-IPTV ~】# sysctl –p 使设置生效 3.3 编写测试网页 分别在 172.17.13.210 和 172.17.13.135 服务器上执行如下操作: 【root@bohui ~】# etho “This is the 210”> /var/www/html/index.html 【root@bohui-IPTV ~ 】# etho “This is the 135”> /var/www/html/index.html 删除 APACHE 的欢迎网页: 【root@bohui ~】# rm –rf /etc/http/conf.d/welcome.conf 【root@bohui-IPTV ~】# rm –rf /etc/http/conf.d/welcome.conf 开启 httpd 服务: 【root@bohui ~】service httpd start 【root@bohui-IPTV ~】# service httpd start PDF pdfFactory Pro www.fineprint.cn 4. 实验验证: 4.1 负载均衡实验验证 在负载均衡服务器上重启 lvs 服务 【root@testkvm ~】# service pulse restart 并在主节点查看 LVS 状态,如下图: PDF pdfFactory Pro www.fineprint.cn 浏览器测试 刷新浏览器查看是否切换到另外一台 WEB 服务器 4.2 负载均衡主备机切换实验验证: 在主机上重启 pulse 服务,使用 ipvsadm 命令查询。如下图显示主机工作正常: 步骤 1:主机工作正常情况: PDF pdfFactory Pro www.fineprint.cn 主机工作图: 备机工作图: PDF pdfFactory Pro www.fineprint.cn 步骤 2:主机出现故障情况(手动关闭主机 LVS 服务) 主机故障图: 备机正常工作图: PDF pdfFactory Pro www.fineprint.cn 4.3 vsftp 实验验证: 1. 在 real server 上安装 vsftp,并在配置文件中/etc/vsftpd/vsftpd.conf 中添加如下三行: pasv_min_port=50000 pasv_max_port=60000 pasv_address=172.17.13.211 #此处为 VIP 地址 2、此架构在 LVS-DR 基础上搭建,ipvsadm -C ,首先清空内核策略 iptables -t mangle -A PREROUTING -p tcp --dport 21 -j MARK --set-mark 123 iptables -t mangle -A PREROUTING -p tcp --dport 50000:60000 -j MARK --set-mark 123 ipvsadm -A -f 123 -s wlc -p 300 引用 iptables 中 mark 为 123 的所有数据 包,算法为 wlc。 ipvsadm -a -f 123 -r 172.17.13.210 -g ipvsadm -a -f 123 -r 172.17.13.135 -g 以上四条定义了在 client 访问 VIP 的 21 端口时,300S 之内第二次访问 VIP 的 50000-60000 之间的端口,则将其请求转发至同一个 Real server。 备注: 1. 【root@bohui~】chkconfig –-level 2345 pulse on #设置 pulse 为开机自启动 2. 【root@bohui~】ipvsadm -C #清空内核策略 PDF pdfFactory Pro www.fineprint.cn
还剩25页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

517439733

贡献于2014-05-14

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf