Проблема кластерного сервера Apache
Я использую скомпилированную версию ATS 4.1.2 в Debian Wheezy для распределенного кэширования. Оба узла, которые я пытаюсь кластеризовать, находятся в одном и том же vlan с одинаковым значением proxy.config.proxy_name. Однако в большинстве случаев ATS не может обнаружить этот конкретный узел и вручную добавляет IP-адрес другого узла. cluster.config (который является автоматически заполняемой конфигурацией и не должен редактироваться человеком)
root@fe4:/opt/trafficserver/etc# grep -i illegal
/opt/trafficserver/var/log/trafficserver/*
/opt/trafficserver/var/log/trafficserver/diags.log:[Feb 21 18:00:37.714]
Server {0x2b99c1e29700} NOTE: Illegal cluster connection from 10.65.130.31
/opt/trafficserver/var/log/trafficserver/diags.log:[Feb 21 18:35:59.686]
Server {0x2b99c1e29700} NOTE: Illegal cluster connection from 10.65.130.31
Однако второй хост 10.65.130.31 может кластеризоваться на другом сервере и имеет то же имя proxy.config.proxy_name. Так что это неясно, какие узлы смогут быть частью кластера.
Любая помощь с благодарностью.
1 ответ
После нескольких часов поиска и устранения неисправностей я обнаружил, что это произошло из-за заслонки на границе соединения. Иногда активный ведомый на интерфейсе связи на одном сервере переключался на eth1, который был подключен к другому физическому коммутатору, тогда как на другом сервере он оставался как eth0. Таким образом, это привело к тому, что 2 блока остались в 2 физических коммутаторах, даже если они находятся в одном и том же vlan и одном диапазоне IP, а также в подсети и в широковещательном режиме. Это было идентифицировано, когда дамп tcp был проанализирован на интерфейсе связи, где он вообще не показывал какую-либо широковещательную / многоадресную передачу на проблемный узел. Выход интерфейса связи был как
*server1:*
root@cdn-fe4:# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
====snip====
*server2:*
root@fe7:/opt/trafficserver/etc# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
====snip====
Протестировано снова после разрыва связи и ручной настройки ATS для кластеризации через eth0, и на этот раз все заработало.