2011-07-09Freebsd Carp虚机配置详解 - 负载均衡
Leave a comment (0) 作者:小项-怪物猪
要让机器使用carp有两种方法实现:
1、加入内核
cd /usr/src/sys/i386/conf #进入内核目录
cp GENERIC NEWKERNEL #复制一个新文件
vi NEWKERNEL #编辑我们复制的新内核文件
在里面加入
device carp
开始编译{以前都用这种}
config NEWKERNEL
cd ../compile/NEWKERNEL
make cleandepend && make depend
make
make install
或者是{现在好像都用这种}
cd /usr/src
make buildkernel KERNXONF=NEWKERNEL
make installkernel KERNCONF=NEWKERNEL
各机配置:
Server1 机:
IP: 192.168.0.204
vi /etc/rc.conf
加入
cloned_ifterfaces="carp1"
#ifconfig_carp1="vhid 1 pass 123123 192.168.0.218/24"
ifconfig_carp1="vhid 1 pass 123123 192.168.0.204/24"
Server2 机:
IP: 192.168.0.226
vi /etc/rc.conf
加入
cloned_ifterfaces="carp2"
#ifconfig_carp2="vhid 2 pass 123123 192.168.0.234/24"
ifconfig_carp2="vhid 2 pass 123123 192.168.0.226/24"
Backup 机:
IP: 192.168.0.223
vi /etc/rc.conf
加入
cloned_ifterfaces="carp1 carp2"
ifconfig_carp1="vhid 1 pass 123123 192.168.0.204/24"
ifconfig_carp2="vhid 2 pass 123123 192.168.0.226/24"
#ifconfig_carp1="vhid 1 pass 123123 192.168.0.218/24"
#ifconfig_carp2="vhid 2 pass 123123 192.168.0.234/24"
经过测试发现,如果carp的ip设定跟本机ip不同的时候会出来Server1机断开后通过204不能访问到Backup机;但是通过218的就可以访问。
虚拟机里面测试为了区分个web的访问都加了不同的端口, 在Backup机的httpd.conf 里面必须加上两个Server机的访问端口{为这个问题折腾了一宿}。
/etc/sysctl.conf 加入
net.inet.carp.preempt=1 # 当主机中有一个 CARP 网络接口失去响应时, 这个选项将停止这台主机上所有的 CARP 接口。 默认禁用
net.inet.carp.arpbalance=1 # 使用 ARP 均衡本地网络流量。 默认禁用。
net.inet.carp.log=2 # 当值为 0 表示禁止记录所有日志。 值为 1 表示记录损坏的 CARP 包。任何大于 1 表示记录 CARP 网络接口的状态变化。默认值为 1。