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

转载 2007年09月24日 10:41:00

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


经过一个星期的找资料….测试….找资料….再测试……,终于测试成功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<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        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 <full-duplex,flag0,flag1>)
        status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 
        inet 127.0.0.1 netmask 0xff000000 
carp0: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
        inet 192.168.2.144 netmask 0xffffff00 
        carp: MASTER vhid 1 advbase 1 advskew 0

 

Srv02# ifconfig

rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        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 <full-duplex,flag0,flag1>)
        status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 
        inet 127.0.0.1 netmask 0xff000000 
carp0: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
        inet 192.168.2.144 netmask 0xffffff00 
        carp: BACKUP vhid 1 advbase 1 advskew 100
从ifconfig结果可以看到srv01 为master,srv02为backup.

 

IPVS 测试

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

 

CARP 测试

用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。
这时说明双机热备份功能已经成功。


 
举报

相关文章推荐

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上。于是设计了如下的架构。 ...
  • llzif
  • llzif
  • 2016-08-09 18:37
  • 572

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

架构简介 实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上。于是设计了如下的架构。 双机ha架构图 此架构主要是由kee...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上。于是设计了如下的架构。 架构简介 此架构主要是由ke...
  • zqtsx
  • zqtsx
  • 2015-03-23 13:09
  • 1111

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计 架构简介 前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,...

基于centos7.3 3.10-514的LVS双机负载均衡部署方案

基于centos7.3 3.10-514的LVS双机负载均衡部署方案 主机:192.168.1.51 备机:192.168.1.52 LVS VIP: 192.168.1.50 0、制作系统本地的光盘...

负载均衡和双机热备

负载均衡中的单网卡模式:要求网卡支持MAC可写,由负载均衡管理器将虚拟的MAC(对应虚拟IP)写到网卡中,但是服务器会因此而丧失内部网络的通讯; 负载均衡中的双网卡模式:一块网卡用来绑定虚拟IP(不...

LVS+Keepalived实现负载均衡和双机热备

1. 说明          在《双机热备——Keepalived实现》中主要讲述如何安装及配置Keepalived来实现双机热备,主要功能是:MASTER和BACKUP两台服务器处于热备状态,对用户...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)