手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

在Linux下构造高性能、高可用、高可伸缩性的服务集群(一)

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

用打过ipvs和hidden(for LVS-DR/LVS-Tun)补丁的新内核启动linux


cd / tmp/download/ipvs-1.0.9/ipvs/ipvsadm
make install

检查ipvsadm 探测到内核的ipvs的补丁能够运行


ipvsadm

假如成功您会看到类似于如下内容:


director: /usr/src# ipvsadm
IP Virtual Server version 0.2.7 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn


说明安装成功

运行lsmod | grep ip_vs 能够看到ip_vs模块已被插入内核运行。

2.6.3. 运行脚本( Run Scripts )

以下以最常用的LVS-DR模式来介绍相关的脚本配置

( 以Telnet服务, 轮叫(rr)策略为例 )

2.6.3.1 Director上:


#!/bin/bash
#---------------mini-rc.lvs_dr-director------------------------
#set ip_forward OFF for vs-dr director (1 on, 0 off)
cat /proc/sys/net/ipv4/ip_forward
echo 0 >/proc/sys/net/ipv4/ip_forward

#director is not gw for realservers: leave icmp redirects on
echo 'setting icmp redirects (1 on, 0 off) '
echo 1 >/proc/sys/net/ipv4/conf/all/send_redirects
cat /proc/sys/net/ipv4/conf/all/send_redirects
echo 1 >/proc/sys/net/ipv4/conf/default/send_redirects
cat /proc/sys/net/ipv4/conf/default/send_redirects
echo 1 >/proc/sys/net/ipv4/conf/eth0/send_redirects
cat /proc/sys/net/ipv4/conf/eth0/send_redirects

#add ethernet device and routing for VIP 192.168.7.110
#if use backup director ,pay any attention about bellow
/sbin/ifconfig eth0:0 192.168.7.110 broadcast 192.168.7.110 netmask 255.255.255.255 up
/sbin/route add -host 192.168.7.110 dev eth0:0
#listing ifconfig info for VIP 192.168.7.110
/sbin/ifconfig eth0:0

#check VIP 192.168.7.110 is reachable from self (director)
/bin/ping -c 1 192.168.7.110
#listing routing info for VIP 192.168.7.110
/bin/netstat -rn

#setup_ipvsadm_table
#clear ipvsadm table
/sbin/ipvsadm -C
#installing LVS services with ipvsadm
#add telnet to VIP with round robin scheduling
/sbin/ipvsadm -A -t 192.168.7.110:telnet -s rr

#forward telnet to realserver using direct routing with weight 1
/sbin/ipvsadm -a -t 192.168.7.110:telnet -r 192.168.7.11 -g -w 1
#check realserver reachable from director
ping -c 1 192.168.7.11

#forward telnet to realserver using direct routing with weight 1
/sbin/ipvsadm -a -t 192.168.7.110:telnet -r 192.168.7.12 -g -w 1
#check realserver reachable from director
ping -c 1 192.168.7.12

#displaying ipvsadm settings
/sbin/ipvsadm

#not installing a default gw for LVS_TYPE vs-dr
#---------------mini-rc.lvs_dr-director------------------------

该段运行脚本对于熟悉Linux网络配置的读者来说应该很容易理解。由于LVS是通过对标准内核打补丁,在内核级提供支持,所以在LVS-DR模式 下,首先是进行内核的相关配置。要关闭标准内核下的ip_forward转发方式,即置为0。同时因为LVS-DR模式下,集群的网关是外部网关,而不是 负载均衡器。所以要打开icmp包的重定向配置send_redirects 置为1。接着就是绑定集群的虚拟服务器的IP地址,并添加一条到该IP地址的主机路由。然后对该虚拟IP做一些必要的自我检测,同时列出路由表。最后是有 关ipvasdm的配置,首先清空ipvasdm表,然后添加需要提供负载均衡的服务及调度策略,这里例举的是telnet服务,也能够直接使用端口号, 调度策略为轮叫(rr)策略。最后添加转发到真实服务器的直接路由,假如有多台RealServer或需要提供多种服务的负载均衡,依次添加。再做一些到 RealServer的网络测试(也可不要),最后显示ipvasdm任何的配置信息。

注意:

ipvs-1.0.9.tar.gz中包含的ipvsadm是1.21版,安装后在/etc/rc.d/init.d/目录下自动生成了标准的 init服务脚本,假如您的Director没有安装备份服务器,您能够通过服务管理工具让他在相应的运行级里自动运行,假如Director是HA系 统,则由heartbeat控制运行。

另外该服务脚本提供了配置保存功能。配置文档为:/etc/sysconfig/ipvsadm 您必须手工建立。然后在其中输入规则和策略:

例如:


-A -t 192.168.7.110:telnet -s rr
-A -t 192.168.7.110:http -s rr
-a -t 192.168.7.110:telnet -r 192.168.7.11 -g -w 1
-a -t 192.168.7.110:http -r 192.168.7.11 -g -w 1

然后存盘。

或直接运行:

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

Google