Назад | Перейти на главную страницу

Ошибка запуска Ucarp на Centos 6: «Вы должны указать действительный идентификатор хоста»

Я пытаюсь заставить ucarp работать на 2 серверах Centos 6 под управлением Apache. Я настроил оба /etc/sysconfig/carp/vip-001.conf и / и т.д. / sysconfig / сетевые сценарии / eth0 и eth0: 0 как таковой на 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 в основном такой же, с небольшими изменениями, связанными с его IP. Но мне не удается запустить ucarp (запуск ucarp), и я продолжаю получать ошибку:

[ERROR] You must supply a valid virtual host id

Кто-нибудь знает, как это исправить? Заранее спасибо !

РЕДАКТИРОВАТЬ 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. Не могу понять, как это исправить ...

В vip-001.conf и т. Д. Вы не устанавливаете ID в файле, он берется из имени файла. Удалите эту строку, начиная с ID.

Serv2 также должен иметь немного другое значение k в файле .conf для установки приоритета.

Я нашел проблему.

Обратите внимание на строку 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 адрес", так что 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}