Keepalived これは、両方のノードでnopreempt
オプションとBACKUP
状態を組み合わせることで実行できます。
[〜#〜] ucarp [〜#〜] はどうですか?
Name : ucarp
Arch : x86_64
Version : 1.5.2
Release : 1.el5.rf
Size : 81 k
Repo : installed
Summary : Common Address Redundancy Protocol (CARP) for Unix
URL : http://www.ucarp.org/
License : BSD
Description: UCARP allows a couple of hosts to share common virtual IP addresses in order
: to provide automatic failover. It is a portable userland implementation of the
: secure and patent-free Common Address Redundancy Protocol (CARP, OpenBSD's
: alternative to the patents-bloated VRRP).
: Strong points of the CARP protocol are: very low overhead, cryptographically
: signed messages, interoperability between different operating systems and no
: need for any dedicated extra network link between redundant hosts.
--preempt
オプションを使用せず、--advskew
を同じ値に設定すると、両方のノードがマスターになります。
/etc/sysconfig/carp/vip-010.conf
# Virtual IP configuration file for UCARP
# The number (from 001 to 255) in the name of the file is the identifier
# $Id: vip-001.conf.example 1527 2004-07-09 15:23:54Z dude $
# Set the same password on all mamchines sharing the same virtual IP
PASSWORD="pa$$w0rd"
# You are required to have an IPADDR= line in the configuration file for
# this interface (so no DHCP allowed)
BIND_INTERFACE="eth0"
# Do *NOT* use a main interface for the virtual IP, use an ethX:Y alias
# with the corresponding /etc/sysconfig/network-scripts/ifcfg-ethX:Y file
# already configured and ith ONBOOT=no
VIP_INTERFACE="eth0:0"
# If you have extra options to add, see "ucarp --help" output
# (the lower the "-k <val>" the higher priority and "-P" to become master ASAP)
OPTIONS="-z -k 255"
/etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
ONBOOT=no
BOOTPROTO=
IPADDR=192.168.6.8
NETMASK=255.255.255.0
USERCTL=yes
IPV6INIT=no
ノード1:
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether c6:9b:8e:af:a7:69 brd ff:ff:ff:ff:ff:ff
inet 192.168.6.192/24 brd 192.168.6.255 scope global eth0
inet 192.168.6.8/24 brd 192.168.6.255 scope global secondary eth0:0
inet6 fe80::c49b:8eff:feaf:a769/64 scope link
valid_lft forever preferred_lft forever
ノード2:
eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:30:48:f7:0f:81 brd ff:ff:ff:ff:ff:ff
inet 192.168.6.38/24 brd 192.168.6.255 scope global eth1
inet 192.168.6.8/24 brd 192.168.6.255 scope global secondary eth1:0
inet6 fe80::230:48ff:fef7:f81/64 scope link
valid_lft forever preferred_lft forever
UCARPの場合、トリックは--neutral
フラグを使用して「ニュートラル」モードで起動することだと思います。これにより、起動時に自動的にマスターの役割を引き受けたり、何かを試したりすることはありません。私のセットアップの1つを見て、これが完全なコマンドラインです。起動時とシャットダウン時にアップスクリプトとダウンスクリプトが適用されるため、おそらく--neutral
が適用されますが、試してみる価値はあります。
/path/to/ucarp0 -v 42 -p kitteh0 --interface=bond0 -a 192.168.100.250 -s 192.168.100.172 -b 5 -r 3 --upscript=/path/to/ucarp/upscript0 --downscript=/path/to/ucarp/downscript0 --neutral -z -B
(私が継承した)ucarpクラスターが自動的に切り替わるのを見たことがありません。
それらは確かにpreempt = noに設定されています。