免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: @kang
打印 上一主题 下一主题

[FreeBSD] FreeBSD6.x(7.x) +CARP+IPVS双机热备份负载均衡Ver1.0 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2006-12-07 10:48 |只看该作者
原帖由 alabos 于 2006-12-6 17:48 发表
双机互备份,那么数据资料如何同步? 这个才是关键!

目前我只用雙機備份,就是說:由master主機提供正常的服務,只有當master出現問題無法正常提供服務時才由backup主機提供服務。
數據同步采用rsync工具,具體如下:
master端:
#cd /usr/ports/net/rsync
#make install clean
#rehash
#echo 'rsyncd_enable="YES"' >>/etc/rc.conf       #開機自啟動。
#vi /usr/local/etc/rsyncd.conf       #我只作郵箱及postfix 數據庫同步。其他數據同步類似。

pid file = /var/run/rsyncd.pid
uid = nobody
gid = nobody
use chroot = no
max connections = 4
syslog facility = local5
log file = /var/log/rsync.log

[mailbox]
        path = /var/mailbox
        comment = Mailbox Sync (approx 1024 MB)
        ignore errors = true
        uid = vmail
        gid = vmail
        read only = true
        list = false
        auth users = Mailboxsync
        secrets file = /usr/local/etc/Mailboxsync

        hosts allow = 192.168.2.30
        hosts deny = ALL
[mbox_bk]
        path = /backup/mbox
        comment = Mailbox Sync (approx 1024 MB)
        ignore errors = true
        uid = vmail
        gid = vmail
        read only = true
        list = false
        auth users = Mailboxsync
        secrets file = /usr/local/etc/Mailboxsync

[mysql_postfix]
        path = /var/db/mysql/postfix/
        comment = Mailbox Sync (approx 1024 MB)
        ignore errors = true
        uid = mysql
        gid = mysql
        read only = true
        list = false
        auth users = Mailboxsync
        secrets file = /usr/local/etc/Mailboxsync

#vi Mailboxsync
Mailboxsync:123456

backup主機端
#vi /usr/local/etc/rsync_mbox              #同步腳本
#!/bin/sh

/usr/local/bin/rsync -vzrlHtopgD --progress --delete-after Mailboxsync@192.168.2.133::mailbox /var/mailbox --password-file=/usr/local/etc/rsync.pw    #同一行
/usr/local/bin/rsync -vzrlHtopgD --progress --delete-after Mailboxsync@192.168.2.133::mbox_bk /backup/mbox --password-file=/usr/local/etc/rsync.pw      ##同一行
/usr/local/bin/rsync -vzrlHtopgD --progress --delete-after Mailboxsync@192.168.2.133::mysql_postfix /var/db/mysql/postfix/ --password-file=/usr/local/etc/rsync.pw      #同一行
killall -1 mysqld

#vi /usr/local/etc/rsync.pw
123456                            #Mailboxsync用戶密碼

#vi /etc/crontab                #設置每5分鐘同步一次。

*/5     *      *     *      *      root       sh /usr/local/etc/rsync_mbox


以上供參考,根據自己的具體情況修改。

论坛徽章:
0
42 [报告]
发表于 2006-12-07 14:48 |只看该作者
好文呀,如果只用多服务器的负载均衡呢? 比如三个以上,能否单独说说 ipvs??

在freebsd 如何安装,调试?

[ 本帖最后由 gxl-cn 于 2006-12-7 14:51 编辑 ]

论坛徽章:
0
43 [报告]
发表于 2006-12-07 21:00 |只看该作者
原帖由 gxl-cn 于 2006-12-7 14:48 发表
好文呀,如果只用多服务器的负载均衡呢? 比如三个以上,能否单独说说 ipvs??

在freebsd 如何安装,调试?

gxl-cn,3台機以上你可以參考31樓的帖:如下:
[
多機的原理也是一樣,如下:

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
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
SRV03
srv03# sysctl net.inet.carp.preempt=1
srv03# ifconfig carp0 create
srv03# 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:53 -s rr
srv01# ipvsadm -a -t 192.168.2.144:53 -r 192.168.2.133:53 -g
srv01# ipvsadm -a -t 192.168.2.144:53 -r 192.168.1.130:53 –g
srv01# ipvsadm -a -t 192.168.2.144:53 -r 192.168.1.134:53 –g            //srv03 ip: 192.168.2.134
在每台主機上同樣設置以上的IPVS部分。
這樣就能實現負載均衡。
]

調試過程中有什麼問題,可以貼出來大家一起看看。

论坛徽章:
0
44 [报告]
发表于 2006-12-08 11:48 |只看该作者
Sorry,剛才IE有點問題,連續帖了3次。

论坛徽章:
0
45 [报告]
发表于 2006-12-08 13:01 |只看该作者
可以自己删除。

论坛徽章:
0
46 [报告]
发表于 2006-12-09 08:26 |只看该作者

IPVS-Readme

關於IPVS,我也只是參考了Readme,如下:

LVS on FreeBSD Version 0.4.0

Install:
   1.        Patch the FreeBSD kernel:
          cp patch/OS-RELEASE/* /usr/src;
          cd /usr/src;
          patch -p0 < uipc_socket.c.patch
          patch -p0 < ip_input.c.patch
          patch -p0 < socketvar.h.patch
          patch -p0 < sys_conf_options.patch
          patch -p0 < sys_i386_conf_GENERIC.patch
   2.        Rebuilding FreeBSD kernel:
          cd /usr/src/sys/arch/i386/conf;
          config GENERIC;
          cd ../compile/GENERIC;
          make depend;
          make;
          make install;
   3.        Compile ipvs module:
          cd ipvs/
          make;
          cd ipvsadm/
          make install;
   4.        Compile ipvs scheduler module:
          cd ipvs/
          cd schedulers/
           cd SCHEDULER-NAME/
          make
   5.        Reboot with new kernel:
          reboot;

Let's assume your cluster has the following configuration:
Workstation with address:192.168.1.23 runs as dispatcher(FE:front end),
Workstations with address:192.168.1.33 and 192.168.1.38 run as real server(BE:back
end).
Thay all share address:192.168.1.36,which is saw by client.

Start:

Assume using 'rr' schedule algorithm(optional: dh, lblc, lblcr, lc, nq, rr,
sed, sh, wlc, wrr).

LVS/DR:
   1.        kldload ./ipvs.ko
   2.        kldload schedulers/rr/ip_vs_rr.ko
   3.        ./ipvsadm -A -t 192.168.1.36:80 -s rr
   4.        ./ipvsadm -a -t 192.168.1.36:80 -r 192.168.1.33:80 -g
   5.        ./ipvsadm -a -t 192.168.1.36:80 -r 192.168.1.38:80 -g

LVS/TUN:
   1.   kldload ./ipvs.ko
   2.        kldload schedulers/rr/ip_vs_rr.ko
   3.   ./ipvsadm -A -t 192.168.1.36:80 -s rr
   4.   ./ipvsadm -a -t 192.168.1.36:80 -r 192.168.1.33:80 -i
   5.   ./ipvsadm -a -t 192.168.1.36:80 -r 192.168.1.38:80 -i

Stop:
   1.        ./ipvsadm -C
   2.        kldunload ip_vs_rr
   3.        kldunload ipvs

Noteo not use other commands of ipvsadm,for maybe it is not implemented.        
Feedback
--------
Welcome your comments, bug reports, bug fixes, and ideas

Thanks,

Li Wang
dragonfly@linux-vs.org

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
47 [报告]
发表于 2006-12-09 11:31 |只看该作者
原帖由 cnhtml 于 2006-11-30 17:21 发表
楼主请教一下
我们公司的应用是工业级的,而且有一部分时实数据运算在内存中,。如果按此进行热备,内存中的运算数据怎么处理?

请教了。



如果有内存实时数据的话,不妨考虑memcached这样子的内存缓存。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
48 [报告]
发表于 2006-12-09 11:34 |只看该作者
原帖由 @kang 于 2006-11-30 12:43 发表
congli,今天發現一個問題,當我將master重啟後(此時backup機正常運作),sysctl -a |grep carp 顯示如下(原master):
net.inet.ip.same_prefix_carp_only: 0
net.inet.carp.allow: 1
net.inet.carp.preempt: 1 ...



可以考虑一下子ucarp,这个不是内核级别的。

我现在没有用ipvs,现在好像不怎么更新了,而且原来打算加入内核的不知道是否没有后果了。
如果以后不支持就不好办了。

ucarp这个可以在检测到master失败之后,把自己变为master,而且同时可以执行对应的处理脚本。
在master恢复之后,也可以通过预先的设置,让原有的master再次抢占主要地位。

论坛徽章:
0
49 [报告]
发表于 2006-12-09 11:57 |只看该作者
有時間試下ucarp。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
50 [报告]
发表于 2006-12-09 12:02 |只看该作者
原帖由 @kang 于 2006-12-9 11:57 发表
有時間試下ucarp。


  不需要时间,又不打系统补丁,5分钟之内即可测试,使用也很简单的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP