今天没事顺手就来测试一下LVS负载均衡,呵呵。说不定以后业务量大了可以应用到。我两台实体机和一台虚拟机。都是安装的centos5。2的系统。 IP分别为: 192.168.0.10 (MASTER) VIP:192.168.0.13 192.168.0.12 192.168.0.205 说明一下,LVS的三种包转发方式 LVS提供了三种包转发方式:NAT(网络地址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)。不同的转发模式决定了不同的cluster的网络结构,下面对三种转发方式分别介始: NAT(网络地址映射) NAT方式可支持任何的操作系统,以及私有网络,并且只需一个Internet IP地址,但是整个系统的性能受到限制。因为执行NAT每次需要重写包,有一定的延迟;另外,大部分应用有80%的数据是从服务器流向客户机,也就是用户 的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新的瓶颈。 IP Tunneling(IP隧道) director分配请求到不同的real server。real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接。IP Tunneling技术极大地提高了director的调度处理能力,同时也极大地提高了系统能容纳的最大节点数,可以超过100个节点。real server可以在任何LAN或WAN上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。服务器必须拥有正式的IP地址用于与客户机直接通 信,并且所有服务器必须支持IP隧道协议。 Direct Routing(直接路由) 与IP Tunneling类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。Direct Routing与IP Tunneling相比,没有IP封装的开销,但由于采用物理层(修改MAC地址)技术,所有服务器都必须在一个物理网段。 3. LVS的八种调度算法 LVS已实现了以下八种调度算法: 注:如果想了解关于以上几点的技术细节,LVS的主页查询。LVS的主页是: 了解了LVS的三个要点之后,接下来我们来配置一个采用Direct Routing包转发方式、轮循方式。 我先配置192.168.0.10 的DR 先检查一下是否要加载到LVS支持的内核IPVS [root@hehe ~]# modprobe -l | grep ipvs /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_dh.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_ftp.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_lblc.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_lc.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_nq.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_rr.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_sed.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_sh.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_wlc.ko /lib/modules/2.6.18-92.el5xen/kernel/net/ipv4/ipvs/ip_vs_wrr.ko 如果这样显示就对了。说明已经支持了。如果不支持的话就要重新编译内核了。 具体就不再详细说明了。 linux-2.6.22.1.tar.bz2 [http:///pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2] 内核下载地址 然后得安装LVS的主要软件ipvsadm ipvsadm-1.24.tar.gz [http://www./software/kernel-2.6/ipvsadm-1.24.tar.gz] 我是直接在官网下载的。 ipvsadm 安装: # tar zxvf ipvsadm-1.24.tar.gz -C /usr/src/ # cd /usr/src/ipvsadm-1.24 # make all # make install # ipvsadm --version 这样就OK再编写脚本来启动DR如下: #!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects #echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects LVSADM='/sbin/ipvsadm' $LVSADM -C $LVSADM -A -t 192.168.0.13:80 -s rr $LVSADM -a -t 192.168.0.13:80 -r 192.168.0.12:80 -g -w 1 $LVSADM -a -t 192.168.0.13:80 -r 192.168.0.205:80 -g -w 1 -a 表示往一个服务内增加一个real server -r 指定real server的IP地址 -w 表示权重 -g 表示使用DR方式,-m表示NAT方式,-i表示tunneling方式。 不知道这些参数什么意思的话也可以直接使用ipvsadm -h查看 Commands: Either long or short options are allowed. Options: |