LinuxForum.Fans
Тема

Q про кластерные IP

Автор: Cruiser78 4 сообщений 2099 просмотров
#293679

Итак очередной вопрос по кластеризации. Работаем с Pacemacker+Corosync. По базовым книжкам, на которые я и ссылаться не стану. Лень.

Итак, самые основы. Создаем кластерный, блуждающий между узлами IP-адрес. Примерно так:
[console]#pcs resource create ClusterIP1 ocf:heartbeat:IPaddr2 ip=192.168.41.2 nic="em1" iflabel="1" cidr_netmask=24 op monitor interval=30s[/console]
Ну и там разные подвязки под этот ресурс делаем, то не важно.
А важно следующее. Кластеризуем шлюз доступа в интернет. Ну там, squid (до него пока не добрался), openvpn... И вот здесь самое интересное. А именно - этот адрес ClusterIP1 поднимается на интефейсе ноды 1 как em1:1, все намано. И получает, при этом, MAC-адрес этой самой ноды (em1). Потом происходит нехорошее, нода отваливается и кластер перемещает этот интерфейс на другую ноду. С тем же именем, с тем же IP-адресом. А вот MAC там уже новый, от другой ноды. И на этом деле я, точнее мои роутеры (DLINK-804) и спотыкаются. Они запомнили в ARP-кэше старый MAC и пытаются гнать пакеты на него, а не на новое месторасположение. И такая висячка весьма длительна (пока роутер не решит ARP-таблицу перестроить) или пока роутер насильно не перегрузишь. Словом - это уже совсем не HA-кластер получается.

Вопрос простой - возможно ли, чтобы один физический интерфейс имел два MAC-адреса и кластерный ресурс ClusterIP1 ездил между нодами со своим персональным MAC'ом. В описании IPaddr2 есть параметры, связанные с MAC'ом, но как там лаконично всё описано. Теоретически не разодрать, а ставить эксперимент на установке - опасно. Если что подломается, то придется ехать через полгорода к консоли... А я этого не хочу. Поэтому вопрос знатокам - эти параметры (mac и arp_mac) то, что мне нужно и если то, что нужно, то как ими правильно воспользоваться?

#293680
"Cruiser78" написал:
Итак, самые основы. Создаем кластерный, блуждающий между узлами IP-адрес. Примерно так:

всегда делал так,
crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 params ip=1.2.3.4 cidr_netmask=24 op monitor interval=30s
без привяхки каких либо мак адресов, и привязки сетевых интерфейсов.

#293681
i2ks написал:

всегда делал так,
crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 params ip=1.2.3.4 cidr_netmask=24 op monitor interval=30s
без привяхки каких либо мак адресов, и привязки сетевых интерфейсов.

У меня на серверах 2 сетевых интерфейса и, при этом, возможно появление нескольких IP на одном интерфейса. Поэтому нужный ClasterIP надо определять подробно и тщательно. Чтобы привязать его к конкретным интерфейсам. А вот как сделать так, чтобы они ездили и со своими персональными MAC'ами - немного туплю. Надо что-то придумать, чтобы внешний роутер и коммутатор поняли, что ClusterIP перехал на новое место и сбросили в своих кэшах устаревшие ARP-записи... А вот как это сделать - не знаю.

Войдите или зарегистрируйтесь, чтобы ответить.