Ucarp start error on Centos 6 : "You must supply a valid host id"
I'm trying to get ucarp working on 2 Centos 6 servers running Apache.I've configured both /etc/sysconfig/carp/vip-001.conf and /etc/sysconfig/network-scripts/eth0 and eth0:0 as such on serv1:
vip-001.conf:
# Virtual IP configuration file for UCARP
# The number (from 001 to 255) in the name of the file is the identifier
# $Id$
ID=001
# Set the same password on all mamchines sharing the same virtual IP
PASSWORD="MYPASSWD"
# 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="-k 128 -P"
eth0:
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:15:5D:09:16:0E"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="9cffb321-f06b-49ce-a075-72baecaa0395"
IPADDR=192.168.9.185
NETMASK=255.255.240.0
BROADCAST=192.168.15.255
NETWORK=192.168.0.0
GATEWAY=192.168.15.254
eth0:0:
DEVICE=eth0:0
BOOTPROTO=none
ONBOOT=no
IPADDR=192.168.9.190
NETMASK=255.255.240.0
USERCTL=yes
IPV6INIT=no
Serv2 is basicaly the same with the little modifications dues to its IP.But i can't manage to launch ucarp (ucarp start), and i keep on getting the error:
[ERROR] You must supply a valid virtual host id
Anyone has any idea of how to fix this? Заранее спасибо!
РЕДАКТИРОВАТЬ 1: Хорошо, после некоторых тестов, кажется, что ucarp не использует файл vip-001.conf, который я настроил. Когда я пытаюсь запустить его, настраивая с помощью командной строки: ucarp start --vhid=1 Он запрашивает пароль (который, я думаю, я могу установить с помощью параметра --password). Итак... Где я могу установить, какие файлы он использует? Я прошел /etc/init.d/carp, но, кажется, все в порядке, и я не изменил его так...
РЕДАКТИРОВАТЬ 2: я продолжаю получать ошибки "IPADDR не найден в файле интерфейса ifcfg-eth0:" при попытке запустить ucarp с помощью sh -x /etc/init.d/carp start. Я не могу понять, как это исправить...
2 ответа
Я нашел проблему.
Обратите внимание на строку 55 в скрипте инициализации:
BIND_ADDRESS="`ifconfig ${BIND_INTERFACE} | sed -n 's/.*inet addr:\([^ ]*\) .*/\1/p' | head -n 1`"
Это пытается получить IP-адрес от ifconfig eth0
выход. На английском языке работает нормально, потому что ifconfig eth0
возвращает что-то вроде:
eth0 Link encap:Ethernet HWaddr C6:9B:8E:AF:A7:69
inet addr:192.168.6.192 Bcast:192.168.6.255 Mask:255.255.255.0
inet6 addr: fe80::c49b:8eff:feaf:a769/64 Scope:Link
следовательно:
# ifconfig eth0 | sed -n 's/.*inet addr:\([^ ]*\) .*/\1/p' | head -n 1
192.168.6.192
Но на вашем языке (французском?) ifconfig eth0
возвращает:
eth0 Link encap:Ethernet HWaddr 00:15:5D:09:16:0E
inet adr:192.168.9.185 Bcast:192.168.15.255 Masque:255.255.240.0
adr inet6: fe80::215:5dff:fe09:160e/64 Scope:Lien
Обратите внимание, что это "inet adr" вместо "inet addr", поэтому ifconfig eth0 | sed -n 's/.*inet addr:\([^ ]*\) .*/\1/p' | head -n 1
ничего не возвращает Это причина, почему вы получаете no IPADDR found in interface file ifcfg-eth0:
при запуске UCARP.
Для исправления откройте сценарий инициализации и измените строку 55 на:
BIND_ADDRESS="`ifconfig ${BIND_INTERFACE} | sed -n 's/.*inet adr:\([^ ]*\) .*/\1/p' | head -n 1`"
(просто удалите символ "d")
или более простой способ получить значение $IPADDR
от /etc/sysconfig/network-scripts/ifcfg-eth0
:
BIND_ADDRESS=${IPADDR}
В vip-001.conf и т. Д. Вы не устанавливаете ID в файле, это происходит из имени файла. Удалить эту строку, начиная с ID.
Serv2 также должен иметь немного другое значение k в файле.conf для установки приоритета.