首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux相关>其他unix>正文

FreeBSD6.1 +CARP+IPVS双机热备份负载均衡

http://www.oklinux.cn  2007-04-23  来源: oklinux收集整理 hlMiracle  会员收藏  游客收藏  【 】 
经过一个星期的找资料….测试….找资料….再测试……,终于测试成功Freebsd6.1+IPVS+CARP,实现双机热备份和负载均衡功能。其中:
IPVS: 实现负载均衡功能
CARP: 实现双机热备份

一 系统环境

FreeBSD 6.1 Release 最小化安装(完全安装也可以) + Kernel Source (ALL)

SRV01 192.168.2.133 255.255.255.0 (双机热备 主)
SRV02 192.168.2.130 255.255.255.0 (双机热备 辅)
Share IP 192.168.2.144 255.255.255.0 (主辅机器共享)

二 安装过程

a.在核心配置文件中添加对CARP的支持和options NF_SOCKOPT(ipvs需要) 选项
Srv01# cd /usr/src/sys/i386/conf/
Srv01# cp GENERIC LVS
Srv01# vi LVS
添加以下选项:
options NF_SOCKOPT
device carp

b. Freebsd6.1 的uipc_socket.c中没有#include "opt_nfsockopt.h" ,需手动添加否则编译将出错。
vi /usr/src/sys/kern/uipc_socket.c
找到#include "opt_compat.h"这一行,在下面加上 #include "opt_nfsockopt.h"

c. 打ipvs for freebsd6.1补丁(patch)。
Srv01# cd /usr/ports/net/ipvs
Srv01# make patch-system #具体说明可以查看当前目录下的Makefile

d. 编译核心
Srv01# cd /usr/src/sys/i386/conf
Srv01# config LVS
Srv01# cd ../compile/LVS
Srv01# make depend
Srv01# make
Srv01# make install
Srv01# reboot

以上操作在srv02上同样做一遍
三 具体配置

CARP 部分 (如果只需双机备份功能只配这部分就可以了)
SRV01
srv01# sysctl net.inet.carp.preempt=1
srv01# ifconfig carp0 create
srv01# ifconfig carp0 vhid 1 pass password 192.168.2.144/24 up #password随便输入,但srv01和srv02必需一致。
SRV02
srv02# sysctl net.inet.carp.preempt=1
srv02# ifconfig carp0 create
srv02# ifconfig carp0 vhid 1 advskew 100 pass yourpassword 192.168.2.144/24 up

IPVS 部分

srv01# kldload /boot/modules/ipvs.ko
srv01# kldload /boot/modules/rr/ip_vs_rr.ko
srv01# ipvsadm –A –t 192.168.2.144:80 -s rr
srv01# ipvsadm -a -t 192.168.2.144:80 -r 192.168.2.133:80 -g
srv01# ipvsadm -a -t 192.168.2.144:80 -r 192.168.1.130:80 –g

srv01# ipvsadm –A –t 192.168.2.144:22 -s rr
srv01# ipvsadm -a -t 192.168.2.144:22 -r 192.168.2.133:22 -g
srv01# ipvsadm -a -t 192.168.2.144:22 -r 192.168.1.130:22 -g
这里我只测试了http(80)和ssh(22)服务,其它的服务配置方法一样。

以上操作在srv02上同样做一遍


清除 IPVS配置命令如下:

srv01# ./ipvsadm -C
srv01# kldunload ip_vs_rr
srv01# kldunload ipvs

四 测试
Srv01# ifconfig

sk0: flags=8943 mtu 1500
options=8
inet6 fe80::217:31ff:fe62:be1b%sk0 prefixlen 64 scopeid 0x1
inet 192.168.2.133 netmask 0xffffff00 broadcast 192.168.2.255
ether 00:17:31:62:be:1b
media: Ethernet autoselect (100baseTX )
status: active
plip0: flags=108810 mtu 1500
lo0: flags=8049 mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
carp0: flags=49 mtu 1500
inet 192.168.2.144 netmask 0xffffff00
carp: MASTER vhid 1 advbase 1 advskew 0

Srv02# ifconfig

rl0: flags=8943 mtu 1500
options=8
inet6 fe80::217:31ff:fe62:be1b%sk0 prefixlen 64 scopeid 0x1
inet 192.168.2.130 netmask 0xffffff00 broadcast 192.168.2.255
ether 00:17:31:62:be:1b
media: Ethernet autoselect (100baseTX )
status: active
plip0: flags=108810 mtu 1500
lo0: flags=8049 mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
carp0: flags=49 mtu 1500
inet 192.168.2.144 netmask 0xffffff00
carp: BACKUP vhid 1 advbase 1 advskew 100
从ifconfig结果可以看到srv01 为master,srv02为backup.

客户端访问 http://192.168.2.144 ,不停刷新web页面时,web页面会在srv01,srv02上切换(为使切换效果明显srv01,srv02用内容不同的主页),说明负载均衡功能已成功。
客户端访问 192.168.2.144:22 (ssh) 每次连接一台不同Server(srv01,srv02)。

用ssh 到 192.168.2.144 可以看到主机名应为 srv01 。
在客户端上ping 192.168.2.144 –t 拔除 srv01 的网线,在丢失1个包后重新连通。
再次ssh 到 192.168.2.144 可以看到主机名应为 srv02,并且srv02自动提升为Master。
当重新连上srv02的网线时,srv02自动降为Backup。
这时说明双机热备份功能已经成功。

上一篇:HP-UX系统备份与恢复全功略   下一篇:Solaris有那些主要版本


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·HP-UX系统备份与恢复全功略
·Solaris有那些主要版本
·OpenSolaris, Solaris Express, Solaris 10的区别
·HPUX系统描述命令
·求一个获取linux所有已安装应用程序列表的shell scrip
·在solaris10上安装top
·F85安装AIX53停在E443后的微码升级
·SCO UNIX 5.0.7与UnixWare 7.1.4如何开启超线程
·一些奇怪的 unix 指令名字的由來
·新手求助!如何在RedHat里进行命令输入
·freebsd桌面字体美化
·FREEBSD:VSFTP的安装和配置
·FreeBSD 6.0-RELEASE下建立高速DNS缓存服务器
·安装solaris和dd备份磁盘出现I/Oerror的处理
·solaris下备份磁盘
·从Unix到黑客入门的探索及其思考
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Unix Shell程序编写的方法详解
·高手进阶:UNIX系统环境下高级编程一例
·freebsd目录架构
·Unix/Linux中Cron的用法
·Unix主流操作系统
·Unix环境高级编程一例
·Linux的NAPI和Solaris的GLDv3
·redbook 上的LVM
·HP 下db2定时备份脚本
·SUID和SGID的详细解
·NT和UNIX下FTP非交互方式文件传输
·Solaris系统性能监控之一:处理器监控
  阅读排行
·更改CDE GUI的分辨率和刷新率
·Solaris 10实现安全Kerberos身份验证
·简析Linux与FreeBSD的syscall
·Unix Shell程序编写的方法详解
·solaris下,添加静态路由的方法
·在Unix下用命令行中完成所有的工作
·NFSv4 提供无缝的网络访问
·HP-UX Glance的用法
·使用 m17n 实现各国语言间代码移植
·Informix-Online 7.30的安装及管理
·借助 UNIX 成为更优秀的博客
·dos2unix, unix2dos 对应的命令
·Gentoo 2005.1 完整的USE参数清单中文
·深度探索 OpenBSD操作系统
·新手入门:debian的一句话问答
网摘收藏: