免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4899 | 回复: 2
打印 上一主题 下一主题

[FreeBSD] FreeBSD 双机热备CARP+负载均衡IPVS安装指导 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-14 14:10 |只看该作者 |倒序浏览
FreeBSD 双机热备+负载均衡
一、        系统环境

FreeBSD 5.4 Release 最小化安装 + Kernel Source
内核补丁 CARP  +  IPVS  for  5.4 Release
Load Balance Server     ipvs1  192.168.1.200    255.255.255.0   (双机热备 主)
Load Balance Server     ipvs2  192.168.1.243    255.255.255.0   (双机热备 辅)
Real Server            real1   192.168.1.156    255.255.255.0   http 80 telnet 23
Real Server            real2   192.168.1.133    255.255.255.0   http 80 telnet 23
Share IP                      192.168.1.160    255.255.255.0   (所有机器共享)

二、        逻辑拓扑结构
三、        安装过程

a、        安装 IPVS for 5.4 Release patch
Ipvs1# cd /home/vaio/
Ipvs1# tar –zxvf ipvs_freebsd-0.4.0.tar.gz
Ipvs1# mv ipvs-0.4.0 ipvs
Ipvs1# cd ipvs/patch/5.4-RELEASE
Ipvs1# cp * /usr/src/
Ipvs1# cd /usr/src/
Ipvs1# patch –p0 < uipc_socket.c.patch
Ipvs1# patch –p0 < ip_input.c.patch
Ipvs1# patch –p0 < socketvar.h.patch
Ipvs1# patch –p0 < sys_conf_options.patch
Ipvs1# patch –p0 < sys_i386_conf_GENERIC.patch
b、        添加对CARP的支持
   Ipvs1# cd /usr/src/sys/i386/conf/
Ipvs1# vi GENERIC
      在最下面 添加   “device                carp”    注意:中间是两个tab !
    c、Rebuild FreeBSD Kernel
Ipvs1# config GENERIC
Ipvs1# cd ../compile/GENERIC
Ipvs1# make depend
Ipvs1# make
Ipvs1# make install
Ipvs1# reboot
c、        编译 ipvs module
Ipvs1# cd /home/vaio/ipvs/ipvs
Ipvs1# make
Ipvs1# cd ipvsadm
Ipvs1# make install
    d、编译 ipvs scheduler module
Ipvs1# cd ../schedulers
Ipvs1# cd  rr                           (按照需求 编译相应规则)
Ipvs1# make
以上操作在ipvs2上同样做一遍

四、   配置方法
      
a、CARP配置
         ipvs1# sysctl net.inet.carp.preempt=1
         ipvs1# ifconfig carp0 create
         ipvs1# ifconfig carp0 vhid 1 pass yourpassword 192.168.1.160/24 up
         ipvs2# sysctl net.inet.carp.preempt=1
         ipvs2# ifconfig carp0 create
         ipvs2# ifconfig carp0 vhid 1 advskew 100 pass yourpassword 192.168.1.160/24 up
      b、IPVS配置
         ipvs1# cd /home/vaio/ipvs/ipvs/
         ipvs1# kldload ./ipvs.ko
         ipvs1# kldload schedulers/rr/ip_vs_rr.ko
         ipvs1# cd ipvsadm
         ipvs1# ./ipvsadm  –A  –t   192.168.1.160:80  -s  rr
         ipvs1# ./ipvsadm  -a   -t   192.168.1.160:80  -r  192.168.1.156:80  -g
         ipvs1# ./ipvsadm  -a   -t   192.168.1.160:80  -r  192.168.1.133:80  -g
         ipvs1# ./ipvsadm  –A  –t   192.168.1.160:23  -s  rr
         ipvs1# ./ipvsadm  -a   -t   192.168.1.160:23  -r  192.168.1.156:23  -g
         ipvs1# ./ipvsadm  -a   -t   192.168.1.160:23  -r  192.168.1.133:23  -g
以上操作在ipvs2上同样做一遍
      c、配置Real Server
         在所有 Real Server 上 添加
ifconfig_lo0_alias0="inet 192.168.1.160 netmask 255.255.255.0"
d、Clear IPVS配置
         ipvs1# ./ipvsadm   -C
ipvs1# kldunload  ip_vs_rr
         ipvs1# kldunload  ipvs

五、   测试
     
  a、IPVS 测试
通过同一客户端 访问 http://192.168.1.160访问的web页面在所有Real Server 上切换。
通过不同客户端访问 http://192.168.1.160访问的web页面在所有Real Server 上切换。
通过同一客户端 访问 192.168.1.160:23 每次连接一台不同的 Real Server。
  b、CARP 测试
     ssh 到 192.168.1.160 可以看到 主机名应为 ipvs1 (主)
     在客户端上ping 192.168.1.160 并断开 ipvs1 的网线 在丢失1个包后再次连通
     再次ssh 到 192.168.1.160 可以看到主机名应为 ipvs2 (辅->主)
     当 ipvs1网线连通后 192.168.1.160 再次切换到 ipvs1 上
     以上操作时 应不影响 对 192.168.1.160的 http 和 telnet 访问
六、        参考文档

        ipvs_freebsd-0.4.0.tar.gz 内 Readme
        man carp

[ 本帖最后由 芥末不辣 于 2006-7-17 08:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-07-14 14:20 |只看该作者
沙发~~~辛苦搂住~~!!!

论坛徽章:
0
3 [报告]
发表于 2006-07-15 12:06 |只看该作者
不错,支持
精华帖,占位先
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP