CARP issue with 2 Masters
frank.cam at webprophets.net.au
frank.cam at webprophets.net.au
Sun Oct 5 09:32:24 UTC 2008
Hi
I have CARP running on a master and a slave server and for some unknown reason
the slave continues to classify itself as a master, even though the advskew is
higher than on the master.
It appears that queries sent to the CARP ip address go to the master 50% of the
time and the slave 50% of the time when both servers are up. This plays havoc
with my databases as I synchronise them asynchronously.
When I take the carp interface down on the slave using 'ifconfig carp0 down &&
ifconfig carp0 up' it lists it's status as 'backup' for about 10 seconds and
then goes back to 'master'.
Both servers run identical versions of FreeBSD 7.0 with all the same installed
ports on identical hardware.
The kernel has the following differences from the standard amd64 kernel:
ident DBKERNEL
options SCHED_ULE
device carp
The standard kernel includes "options PREEMPTION" which is mentioned as a
possible problem in the handbook with the slave not relinquishing the ip
address when the master comes back, but that's not exactly what I'm getting
here.
Here are the relevant setup details for the boxes.
MASTER
uname -a
FreeBSD dbmaster.xxx.net 7.0-RELEASE-p5 FreeBSD 7.0-RELEASE-p5 #1: Fri Oct 3
13:54:35 EST 2008 xxx at dbmaster.xxx.net:/usr/obj/usr/src/sys/DBKERNEL amd64
/etc/rc.conf
ifconfig_em2="inet 192.168.2.11 netmask 255.255.255.248"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass mypassword 192.168.2.10/29"
ifconfig
em2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu
1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:14:22:20:b0:dc
inet 192.168.2.11 netmask 0xfffffff8 broadcast 192.168.2.15
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
carp0: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
inet 192.168.2.10 netmask 0xfffffff8
carp: MASTER vhid 1 advbase 1 advskew 0
SLAVE
uname -a
FreeBSD dbslave.xxx.net 7.0-RELEASE-p5 FreeBSD 7.0-RELEASE-p5 #1: Fri Oct 3
13:54:42 EST 2008 xxx at dbslave.xxx.net:/usr/obj/usr/src/sys/DBKERNEL amd64
/etc/rc.conf
ifconfig_em2="inet 192.168.2.12 netmask 255.255.255.248"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 advskew 200 pass mypassword 192.168.2.10/29"
ifconfig
em2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:14:22:1d:15:d0
inet 192.168.2.12 netmask 0xfffffff8 broadcast 192.168.2.15
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
carp0: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
inet 192.168.2.10 netmask 0xfffffff8
carp: MASTER vhid 1 advbase 1 advskew 200
With the advskew on the 'slave', I've tried values of 100, 200, 230, 240 and
250 with no difference in performance.
I've also tried ifconfig_carp0="vhid 1 advskew 200 pass mypassword backup
192.168.2.10/29" on the slave but this simply locks it into INIT.
I can't figure out if I missed a step in the documentation, made a silly
mistake in my setup, or found a bug. Any help would be greatly appreciated.
Thank you
--------------------------------------------------------------------
Come and visit Web Prophets Website at http://www.webprophets.net.au
More information about the freebsd-questions
mailing list