本篇文章给大家谈谈linux怎么做负载均衡,以及搭建负载均衡对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、基于linux 的负载均衡怎么做
- 2、如何在RedHat Linux上实现集群负载均衡
- 3、linux 路由的负载均衡的问题
- 4、Linux里面iptables怎么实现负载均衡?
- 5、如何运用lr工具对linux服务器做负载均衡测试
- 6、linux web负载均衡
1、基于linux 的负载均衡怎么做
如果是redhat的系统,安装RHCS套件,其中的lvs软件负责负载均衡。
配制程序是piranha-gui
lvs是一个开源GPL软件,也可以安装到其他linux系统当中。
lvs的官方网站有中文说明(lvs是中国人开发的):
2、如何在RedHat Linux上实现集群负载均衡
1.前言
先来简单说说负载均衡集群, 它是在应用服务器高负载的情况下,由多台节点提供可伸缩的,高负载的服务器组以保证对外提供良好的服务响应;而LVS就是实现这一功能的技术,它通过使内核支持ipvs来实现LVS/Direct Routing (DR)、LVS/IP Tunnel、LVS/NAT的功能。由于本文的着眼点在于如何利用LVS构建一个负载均衡集群,所以关于负载均衡集群、LVS的详细内容就不在这里阐述了,如果大家有兴趣可参考如下信息:
LVS的官方网站
LVS项目介绍
RedHat 7.3/8.0都把ipvs预先编译到了RedHat发行版的内核中,但使用的ipvs版本比较低是ipvs 0.9.7/1.0.4,从RedHat 9开始ipvs不再被预先编译到了RedHat发行版的内核中,本文介绍了如何把最新版的ipvs Version 1.0.9编译到内核中并配置负载均衡集群的方法和一些技巧。
不论是在哪个版本的RedHat Linux上安装ipvs,工作大都可以分为如下几步:
图1给出了最简单的负载均衡集群的网络拓扑,这里需要指出的是以上提到的安装ipvs/ipvsadm的工作都是在Director上进行的。
2.在RedHat Linux上实现ipvs
在RedHat 7.3/8.0已经预先打了ipvs的补丁,在预安装的内核中已将ipvs编译成模块,如果你能在目录/lib/modules/2.4.18-*/kernel/net/ipv4/ipvs中看到ip_vs_*文件,就证明你的系统已经支持ipvs,可以通过如下步骤安装ipvsadm并配置转发方式。
但系统预编译的ipvs是比较早的版本(version 0.9.7/1.0.4),本文把它升级到最新的版本Version 1.0.9。
2.1得到内核源码和相关的软件包
这里需要强调的是由于RedHat 7.3/8.0的内核源码中已经预先打了ipvs的补丁,所以在安装ipvs时不能使用RedHat光盘中的Kernel Source,而是需要去下载标准的内核。对于RedHat 9.0,虽然内核中没有预编译ipvs,但我还是提倡使用standard kernel,因为所有的ipvs的补丁包都是为标准内核开发的。从kernel ftp site得到standard kernel linux-2.4.18.tar.gz(RedHat 7.3/8.0), linux-2.4.20.tar.gz (RedHat 9.0), 从lvs homepage 得到ipvs-1.0.9.tar.gz、ipvsadm-1.21.tar.gz。(在下面的阐述中都以内核linux-2.4.18.tar.gz为例,对于内核linux-2.4.20.tar.gz做法是完全相同的)
2.2把ipvs补丁Patch到内核源码中
把linux-2.4.18.tar.gz解压到/usr/src目录,生成了/usr/src/linux目录;如果生成的是/usr/src/linux-2.4.18*目录,则要在/usr/src下建立一个连接 ln –s linux-2.4.18* linux,因为在ipvs-1.0.9中的makefile文件中默认指定Kernel Source的路径为:KERNELSOURCE = /usr/src/linux(当然,如果您直接修改makefile中的KERNELSOURCE值,使它指向源码的目录也可以)。
把ipvs-1.0.9.tar.gz解压缩到某个目录,如/usr/src/source,生成了/usr/src/source/ipvs-1.0.9目录;进入/usr/src/source/ipvs-1.0.9,依次执行如下命令:make patchkernel、make installsource,将ipvs的Patch加载到kernel的source中。当然您也可以用linux-2.4.20-ipvs-1.0.9.patch.gz直接patch到内核中,在/usr/src执行 gzip -cd linux-2.4.20-ipvs-1.0.9.patch.gz,然后进入/usr/src/linux执行patch -p1 ../linux-2.4.20-ipvs-1.0.9.patch
2.3重新编译支持ipvs的内核
进入/usr/src/linux目录,分别执行:
make mrproper 为创建新的内和配置做好准备
make menuconfig 进行配置
主界面--Networking options选项--IP:Virtual Server Configuration选项(如图2 图3)
IP:Virtual Server Configuration中的选项设定都用M
make dep 检测是否有相关的软件包被使用
make clean 为新内核结构准备源目录树
make bzImage 创建内核引导映像
make modules、make modules_install 生成模块
注意的问题:如果使用Standard Kernel,在make menuconfig时可能在Networking options选项中找不到IP:Virtual Server Configuration选项,这是因为没有选中Network packet filtering选项
IP:Virtual Server Configuration选项是基于Network packet filtering选项的。
技巧:在make menuconfig时,我们面对众多的选项常常不知道该如何选择,此时可以把安装时的配置文件copy到/usr/src/linux中:cp /boot/config-2.4.* /usr/src/linux/.config,再用make menuconfig编译,它会读取.config中原来的配置信息,这样只要对IP:Virtual Server Configuration中的新选项选择即可。
2.4启用新内核
mkinitrd /boot/initrd-2.4.18ipvs.img 2.4.18 创建initrd映像
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.18ipvs
cd /boot
rm vmlinuz
ln –s vmlinuz-2.4.18ipvs vmlinuz
cp /usr/src/linux/System.map /boot/System.map-2.4.18ipvs
cd /boot
rm System.map
ln –s System.map-2.4.18ipvs System.map
vi /etc/lilo.conf
添加启动选项:
image=/boot/vmlinuz-2.4.18ipvs
label=linux-ipvs
initrd=/boot/initrd-2.4.18ipvs.img
read-only
root=/dev/hda3
lilo
然后重新启动,选择新内核就可支持最新的ipvs
2.5安装ipvs管理工具ipvsadm
当使用了支持ipvs的内核后,就可以安装ipvsadm,ipvsadm是设置ipvs转发方式和调度算法的工具
tar xzvf ipvsadm-1.21.tar.gz
cd ./ipvsadm-1.21
make
make install
安装完成后,执行ipvsadm命令,如果有如下信息出现则说明安装成功了。
到现在为止,支持负载均衡功能的director就配置成功了,接下来我们可以通过ipvsadm来配置一个负载均衡集群。
3.配置LVS,构建负载均衡集群
LVS提供了三种转发方式:VS/NAT、VS/DR 、VS/TUN, 而不同的转发方式对后端的realserver要求也不同
构建负载均衡集群的工作主要涉及三个方面:
3、linux 路由的负载均衡的问题
要写track的脚本的,原理是“不断的去ping外网,一旦检测到断线,就把断线的wan口从均衡中去掉”。现在那么多成熟的软路由产品,干嘛还要自己配置?
4、Linux里面iptables怎么实现负载均衡?
1. iptables实现负载均衡的方式:
在Linux中使用iptables完成tcp的负载均衡有两种模式:随机、轮询
The statistic module support two different modes:
random:(随机)
the rule is skipped based on a probability
nth:(轮询)
the rule is skipped based on a round robin algorithm
2. example
5、如何运用lr工具对linux服务器做负载均衡测试
LVS的全称Linux vitual system,
LVS工作在一台server上提供Directory(负载均衡器)的功能,本身并不提供服务,只是把特定的请求转发给对应的realserver(真正提供服务的主机),从而实现集群环境中的负载均衡。
LVS的核心组件ipvs工作在kernel中,是真正的用于实现根据定义的集群转发规则把客户端的请求转发到特定的realserver。而另一个组件ipvsadm是工作在用户空间的一个让用户定义ipvs规则的工具。故我们只要在server上装了ipvsadm软件包就可以定义ipvs规则,而在linux kernel的2.6版本之后kernel是直接支持ipvs的。
lvs 三种模型 (NAT DR TUN)
NAT 的架构的特点
工作原理:基于NAT机制实现。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,同时将报文的目标端口也改成选定的realserver的相应端口,最后将报文请求发送到指定的realserver。在服务器端得到数据后,realserver将数据返给director,而director将报文的源地址和源端口改成VIP和相应端口,然后把数据发送给用户,完成整个负载调度过程。
特点:
1,所有的realserver和director要在同一个网段内
2,RIP是私有地址,仅用于集群节点之间进行通信
3,director同时处理请求和应答数据包
4,realserver的网关要指向DIP
5,可以实现端口映射
6,readlserver可以是任意操作系统
7,director很可能成为系统性能瓶颈
TUN架构的优缺点
工作原理:这种方法通过ip隧道技术实现虚拟服务器。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址.然后,调度器采用ip隧道技术将用户请求发送到某个realserver,而这个realserver将直接相应用户的请求,不再经过director。此外,对realserver的地域位置没有要求。和director在不在同一网段都可以。
特点:
1,realserver和director可以不在一个物理网络中,可以跨越互联网
2,RIP一定不能是私有地址(因为要用到隧道传输)
3,director仅处理入站请求
4,realserver的网关不能指向DIP
5,不支持端口映射
6,支持ip隧道功能的操作系统才能作为realserver
DR架构的优缺点(生产环境用的最多)
工作原理:基于直接路由来实现。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,还要改写请求报文的mac地址,将请求发送到指定mac的realserver,而realserver将响应直接返回给客户端,不经过director。这个方式是三种调度中性能最好的,也是我们生产环境中使用最多的。
特点:
1,集群节点和director必须在一个物理网络内
2,RIP可以使用公网地址或私有地址
3,director仅处理入站请求
4,集群节点网关不指向director,故出站不经过director
5,不支持端口映射
6,大多数操作系统可以作为realserver,要支持隔离arp广播
7,director服务器的压力比较小
6、linux web负载均衡
步骤:
1、Server8安装ipvsadm
2、在Server8中,新建一个文本文件,vim vip.sh
3、在Server8中的vip.sh,输入以下内容(目的为配置LVS):
#!/bin/bash
ifconfig lo:0 192.168.200.100 broadcast 192.168.200.255 netmask 255.255.255.255 up
route add -host 192.168.200.100 dev lo:0
route del -host default
ipvsadm -C
ipvsadm -A -t 192.168.200.100 -s rr
ipvsadm -a -t 192.168.200.100 -r 192.168.200.102 -g
ipvsadm -a -t 192.168.200.100 -r 192.168.200.103 -g
ipvsadm
4、在Server9中,新建一个文本文件,vim web.sh
5、在Server9中的web.sh,输入以下内容:
#!/bin/bash
ifconfig lo:0 192.168.200.100 broadcast 192.168.200.255 netmask 255.255.255.255 up
route add -host 192.168.200.100 dev lo:0
route del -host default
echo "1" /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" /proc/sys/net/ipv4/conf/all/arp_announce
6、在Server8中,chmod 777 vip.sh
在Server9中,chmod 777 web.sh
7、最后,在Server8中,./vip.sh
在Server9中,./web.sh
完了
我一边做一边打的,最后成功了,不知道你如何,如果有问题可以问,但我不一定能答,因为我昨天才学会的- -
关于linux怎么做负载均衡和搭建负载均衡的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。