Linux集群LVS负载均衡配置


作者:潜小生 open.source.niche@gmail.com LINUX 集群集群集群集群 LVS 负载均衡配置负载均衡配置负载均衡配置负载均衡配置 基础基础基础基础原理篇原理篇原理篇原理篇:::: LVS 是 Linux Virtual Server 的缩写,意思是 Linux 虚拟服务器。 负载均衡一般是指一群计算机的集合,通过一个虚拟 ip 去根据某种算法,去不停分配 到这集合的计算机当中,假如有 主机 A 主机 B 主机 C 主机 A 作为一个负载均衡机,主机 B 和主机 C 都是 web 应用服务器,主机 A 是负载均衡机,主机 A 会虚拟一个 IP 出来作为这 个负载均衡的 IP,假定主机A 的 IP 192.168.1.1 主机B的 IP 是 192.168.10.2 主机C 的 IP 192 。 168.10.3 这个负载均衡虚拟 IP 的 192.168.1.10 就是访问这 web 服务器的 IP 地址 当外部来 访问 web 站点的时候,主机 A( 负载均衡机)会把这个虚拟 IP 通过作为 NAT 地址转换,分发 主机 A 和主机 B,采用一种算法,通常一般采用轮询的方式,当外部网络来访问时候,主机 A( 负载均衡机)首先任意分开给主机 A ,有主机 A 把页面访问给来至外部网络的访问,当有 下一个来外部网络的访问,主机 A( 负载均衡机)在分发给主机 B, 按照这样的机制,一次分发 给主机 A, 一次分发给主机 B。 LVS 有三种负载均衡的模式,分别是 VS/NAT(nat 模式) VS/DR( 路由模式) VS/TUN (隧 道模式) VS/NAT 模式模式模式模式介绍介绍介绍介绍 这种模式当来访问这个网络的时候,负载均衡机会会通过 NAT 的转换分别分发给应用服 务器 A 或应用服务器 B。应用服务器返回给来至外部的访问,要在次通过负载机访问给来至 外部的访问。这种模式通常是应用服务器是 IP 是私有 IP 地址,需要通过 NAT 地址来转换成 公网 IP 地址。 VS/DR 模式介绍模式介绍模式介绍模式介绍 路由模式,负载均衡机和应用服务器同属于一个 IP 范围,并且负载均衡虚拟的 IP 也属于 这个 IP 范围,通常都是配置的公网 IP 地址,这种方式我们可以采用路由模式。当外部网络 来访问时候,首先肯定是通过负载均衡机来分发给这个集合的应用服务器,但是应服务器, 返回给外部网络的不在通过这个负载均衡机出去,而且自己通过路由返回给外部网络,自己 去查路由,去返回。 vs/tun 模式介绍模式介绍模式介绍模式介绍 隧道模式,负载均衡机和集群集合的服务器和负载均衡虚拟出来IP 不属于同一个网段, 分别分布在不同网段,这时候我需要隧道模式,好比这个负载均衡机和这个集群集合的服务 器建议一条用来专门用来负载均衡隧道,隧道模式首先外部网络访问时候,经负载均衡机来 分发到应用服务器,应用服务器也是和路由模式一样的方式,自己路由出去返回结果给来至 外部的访问,也不经在过负载均衡机出返回给来至外部网络的访问。 VS/NAT、、、、VS/DR、、、、 VS/TUN 、、、、这三种模式区别这三种模式区别这三种模式区别这三种模式区别 VS/NAT 这种模式返回给来至外部的访问的数据时候,需要在经过负载均衡的那台服务器, 这种模式给负载均衡服务器带来负重,如果集群集合的服务器效果,访问量过大,这样负载 均衡服务器这样有所谓负担,而另外 2 种模式不在通过负载均衡机,自己本身通过路由出去, 这样也给负载均衡服务器,降低了负担。 配置篇配置篇配置篇配置篇:::: lvs 需要 2.4.24 以后版本的内核源代码才能支持 下载地址:http://www.kerner.org 不过 在通常版本都支支持 lvs 功能 需要下载ipvsadm 用户工具 下载地址http://www.linuxvirtualserver.org/software/ipvs.html 这里使用的是 ipvsadm-1.24. 的版本 安装 ipvsadm tar -zxvf ipvsadm-1.24.tar.gz cd ipvsadm-1.24 make all make install ln –s /usr/src/kernels/2.6.18-194.el5-xen-i686 /usr/src/linux VS/NAT 模式模式模式模式配置配置配置配置 200.200.200.1 这台机 192.168.10.2 这台机网卡配置: DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.10.2 NETNASK=255.255.255.0 GATEWAY=192.168.10.1 192.168.10.3 这台机网卡配置: DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.10.3 NETNASK=255.255.255.0 GATEWAY=192.168.10.1 回到 200.200.200.1 这台机 首先 echo "1" >/proc/sys/net/ipv4/ip_forward 开启路由功能 ipvsadm –C 清楚配置信息 设置这个 IP 为负载均衡的 IP -s rr 为轮询的方式负载均衡 添加这个负载集群 IP 的成员 -m 伪装(NAT 转换) -w 权重值 ipvsadm –ln 查询集群情况 测试效果 代表访问的负载均衡次数 VS/DR 配置模式配置模式配置模式配置模式 200.200.200.101 这台机网卡配置 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=200.200.200.101 NETNASK=255.255.255.0 GATEWAY=200.200.200.254 200.200.200.102 这台机网卡配置 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=200.200.200.102 NETNASK=255.255.255.0 GATEWAY=200.200.200.254 200.200.200.103 这台机网卡配置 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=200.200.200.103 NETNASK=255.255.255.0 GATEWAY=200.200.200.254 200.200.200.101 这台机 vi /ect/sysctl.conf 添加或修改如下配置 net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.eth0.send_redirects = 1 执行 sysctl –p 命令 立即生效 设置这个 IP 为负载均衡的 IP -s rr 为轮询的方式负载均衡 # ipvsadm -A -t 200.200.200.200:80 -s rr 添加这个负载集群 IP 的成员 -g 路由模式 -w 权重值 # ipvsadm -a -t 200.200.200.200:80 -r 200.200.200.102 -g -w 1 # ipvsadm -a -t 200.200.200.200:80 -r 200.200.200.103 -g -w 1 配置负载均衡虚拟 IP 地址 # ifconfig eth0:0 200.200.200.200 broadcast 200.200.200.200 netmask 255.255.255.255 up 配置主机路由 # route add -host 200.200.200.200 dev eth0:0 200.200.200.102 和 200.200.200.103 这两台机配置(配置相同) vi /ect/sysctl.conf 添加或修改如下配置 net.ipv4.ip_forward = 0 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 执行 sysctl –p 命令 立即生效 配置负载均衡虚拟 IP 地址 # ifconfig lo:0 200.200.200.200 broadcast 200.200.200.200 netmask 255.255.255.255 up 配置主机路由 # route add -host 200.200.200.200 dev lo:0 测试效果 VS/TUN 模式模式模式模式配置配置配置配置 192.168.10.2 这台机网卡配置: DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.10.2 NETNASK=255.255.255.0 GATEWAY=192.168.10.1 200.200.200.101 这台机网卡配置 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=200.200.200.101 NETNASK=255.255.255.0 GATEWAY=200.200.200.254 200.200.200.102 这台机网卡配置 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=200.200.200.102 NETNASK=255.255.255.0 GATEWAY=200.200.200.254 200.200.200.101 这台机 vi /ect/sysctl.conf 添加或修改如下配置 net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.eth0.send_redirects = 1 执行 sysctl –p 命令 立即生效 配置负载均衡虚拟 IP 地址 #ifconfig tunl0 200.200.200.200 broadcast 200.200.200.200 netmask 255.255.255.255 up ipvsadm –C 清楚ipvsamd 设置这个 IP 为负载均衡的 IP -s rr 为轮询的方式负载均衡 ipvsadm -A -t 200.200.200.200:80 –s rr 添加这个负载集群IP 的成员 –i 隧道模式 –w 权重值 ipvsadm –a -t 200.200.200.200:80 –r 200.200.200.102 –i –w 1 ipvsadm –a -t 200.200.200.200:80 –r 192.168.10.2 –i –w 1 200.200.200.102 和 200.200.200.103 这两台机配置(配置相同) vi /ect/sysctl.conf 添加或修改如下配置 net.ipv4.ip_forward = 0 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 执行 sysctl –p 命令 立即生效 配置负载均衡虚拟 IP 地址 #ifconfig tunl0 200.200.200.200 broadcast 200.200.200.200 netmask 255.255.255.255 up 测试效果
还剩12页未读

继续阅读

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

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

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

下载pdf

pdf贡献者

hahabaker

贡献于2014-02-13

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