ZooKeeper cluster: кто-нибудь?

User avatar
timeau
Уже с Приветом
Posts: 17549
Joined: 15 Aug 2002 00:39
Location: Maryland

ZooKeeper cluster: кто-нибудь?

Post by timeau »

Здорово, отцы!
Люблюсь некоторое время с сим "чюдом", и что-то в конец запутался. Если кто связывался, ткните носом.
Дано: амазоновское облако. Поднимаем стек из 5 машин (стек 1) для организации на них ZooKeeper'ного кластера. Все проходит нормально, кластер слепливается без проблем, солары и кафки используют его в хвост и гриву. Пока полное счастье.
Спустя какое-то время поднимаем второй стек из 5 машин. Скрипт на каждой из них "обнюхивает" активные ноды, лепит из них конфигурацию для стека номер 2, машины одна за одной сначала прилепляются в виде observer'ов, потом конвертятся в participant'ов. Кластер какое-то время работает на 10 машинах.
После первый стек уже нафиг не нужен, и он спиливается: его ноды переводятся сначала в observer'ов, а потом стек тупо удаляется. Последний шаг - вычищение старых IP из стека 1 из конфигурации кластера. Лепота. Все работает.
Через день-два-неделю (не столь важно) поднимаем кластер номер 3. Желание простое: присоседить новый стек к кластеру точно также, как присоединяли стек номер 2. Первая машина стека 3 успешно запускает сервис ZooKeeper'a, подсоединяется к кластеру в роли observer'а и... Не может стать participant'ом. Команда reconfig через "zkCli" возвращает код ошибки. В логах ZooKeeper'a наблюдаю обращение к машине из стека номер 1, который давно снесли нахрен и вычистили!
{code}
2019-04-02 17:37:27,960 [myid:2557] - WARN [QuorumPeer[myid=2557]
(plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):QuorumCnxManager@660] -
Cannot open channel to 2336 at election address /XX.XX.XX.11:3888
java.net.NoRouteToHostException: No route to host (Host unreachable)
{code}
Анекдот в том, что такое случается не каждый раз, а в среднем 2 раза из 3. Иногда все проходит пучком.
Традиционный русский вопрос: что делать? Откуда он берет "старые" IP-адреса, если из однозначно нет в конфигурации кластера? Ну даже если они где-то закешились, кластер-то должен знать, что эти адреса "мертвые"?
В общем, буду признателен за помощь.
Не задираться, а то съем!..
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Re: ZooKeeper cluster: кто-нибудь?

Post by zVlad »

Пара народных мудростей:
- кошка скреб на свой хребет, и
- спасение утопающих дело самих.

Если на обидились объясните, пожалуйста, страсть к созданию и удалению стеков и кластеров вообще.
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: ZooKeeper cluster: кто-нибудь?

Post by Sergunka »

timeau wrote: 10 Apr 2019 01:21 Здорово, отцы!
Люблюсь некоторое время с сим "чюдом", и что-то в конец запутался. Если кто связывался, ткните носом.
Дано: амазоновское облако. Поднимаем стек из 5 машин (стек 1) для организации на них ZooKeeper'ного кластера. Все проходит нормально, кластер слепливается без проблем, солары и кафки используют его в хвост и гриву. Пока полное счастье.
Спустя какое-то время поднимаем второй стек из 5 машин. Скрипт на каждой из них "обнюхивает" активные ноды, лепит из них конфигурацию для стека номер 2, машины одна за одной сначала прилепляются в виде observer'ов, потом конвертятся в participant'ов. Кластер какое-то время работает на 10 машинах.
После первый стек уже нафиг не нужен, и он спиливается: его ноды переводятся сначала в observer'ов, а потом стек тупо удаляется. Последний шаг - вычищение старых IP из стека 1 из конфигурации кластера. Лепота. Все работает.
Через день-два-неделю (не столь важно) поднимаем кластер номер 3. Желание простое: присоседить новый стек к кластеру точно также, как присоединяли стек номер 2. Первая машина стека 3 успешно запускает сервис ZooKeeper'a, подсоединяется к кластеру в роли observer'а и... Не может стать participant'ом. Команда reconfig через "zkCli" возвращает код ошибки. В логах ZooKeeper'a наблюдаю обращение к машине из стека номер 1, который давно снесли нахрен и вычистили!
{code}
2019-04-02 17:37:27,960 [myid:2557] - WARN [QuorumPeer[myid=2557]
(plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):QuorumCnxManager@660] -
Cannot open channel to 2336 at election address /XX.XX.XX.11:3888
java.net.NoRouteToHostException: No route to host (Host unreachable)
{code}
Анекдот в том, что такое случается не каждый раз, а в среднем 2 раза из 3. Иногда все проходит пучком.
Традиционный русский вопрос: что делать? Откуда он берет "старые" IP-адреса, если из однозначно нет в конфигурации кластера? Ну даже если они где-то закешились, кластер-то должен знать, что эти адреса "мертвые"?
В общем, буду признателен за помощь.
А что мешает запустить сразу кластер из 15 машин? А все остатки декомисовать...
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
timeau
Уже с Приветом
Posts: 17549
Joined: 15 Aug 2002 00:39
Location: Maryland

Re: ZooKeeper cluster: кто-нибудь?

Post by timeau »

zVlad wrote: 14 Apr 2019 19:38 Если на обидились объясните, пожалуйста, страсть к созданию и удалению стеков и кластеров вообще.
Я не уверен, что именно было написано выше, особенно про кошку, похоже на бред. Отквотированнное имеет смысл, потому отвечу.
Согласно policy, мы не имеем права хранить стек дольше 1 месяца. Это предел, вызванный установкой патчей и прочими атрибутами безопасности. Реально многое завязано на Team City, когда запуск нового стека обусловлен элементарной зависимостью одного от другого, и потому смена стеков происходит раз в 7-10 дней.
Мне просто надоело (да и начальство озаботилось, что есть гуд), что после смены стеков что-то надо подпиливать, подковыривать и т.д. Надо, чтобы все ротейтилось само, без нашего участия от слова "совсем". Вот и выяснили "слабое звено", с которым и боремся.
Могу добавить, что после удаления observer'а сразу начинаются выборы, а я лично этого вообще понять не могу, ибо observer'ы есть прибалтийские неграждане: работать должны, а голосовать - нет. Но с ними, с observer'ами, считаются, и я опечален.
Sergunka wrote: 14 Apr 2019 22:10А что мешает запустить сразу кластер из 15 машин? А все остатки декомисовать...
А нахрен он нужен, на 15 машин-то? В нормальной ситуации должно работать 5. И они должны сохранять все записанные в них данные, ежу понятно.
Не задираться, а то съем!..
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: ZooKeeper cluster: кто-нибудь?

Post by Sergunka »

timeau wrote: 14 Apr 2019 23:59
Sergunka wrote: 14 Apr 2019 22:10А что мешает запустить сразу кластер из 15 машин? А все остатки декомисовать...
А нахрен он нужен, на 15 машин-то? В нормальной ситуации должно работать 5. И они должны сохранять все записанные в них данные, ежу понятно.
Тогда к чему все эти эксперименты? Из моего опыта с Амазоном они там любят что-то из бекапа восстанавливать возможно какие-то таблицы Вы хоть и почиститли, но они восстановили походу.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
timeau
Уже с Приветом
Posts: 17549
Joined: 15 Aug 2002 00:39
Location: Maryland

Re: ZooKeeper cluster: кто-нибудь?

Post by timeau »

Sergunka wrote: 15 Apr 2019 01:55Тогда к чему все эти эксперименты?
Не понял... Что значит "к чему?"? Я ж вроде объяснил. :pain1:
Sergunka wrote:Из моего опыта с Амазоном они там любят что-то из бекапа восстанавливать возможно какие-то таблицы Вы хоть и почиститли, но они восстановили походу.
Знаете, Сергунька, я бы все-таки предпочел более технически продвинутый разговор, чем "они какие-то таблицы почистили". Будьте добры, если не в курсе, не засоряйте тему.
Не задираться, а то съем!..
User avatar
mavr
Уже с Приветом
Posts: 5691
Joined: 01 Mar 2004 10:57
Location: Сибирь -> Aotearoa

Re: ZooKeeper cluster: кто-нибудь?

Post by mavr »

timeau wrote: 10 Apr 2019 01:21 Традиционный русский вопрос: что делать? Откуда он берет "старые" IP-адреса, если из однозначно нет в конфигурации кластера? Ну даже если они где-то закешились, кластер-то должен знать, что эти адреса "мертвые"?
В общем, буду признателен за помощь.
Ктож вам ответит?
У вас кластер похоже поднимается чем то своим а не AWS средствами.
Скрипты для конфигурирования всего этого огорода тоже свои. :pain1:
User avatar
timeau
Уже с Приветом
Posts: 17549
Joined: 15 Aug 2002 00:39
Location: Maryland

Re: ZooKeeper cluster: кто-нибудь?

Post by timeau »

mavr wrote: 15 Apr 2019 08:12У вас кластер похоже поднимается чем то своим а не AWS средствами.
А причем тут скрипты? Используется обычный salt. Какое это отношение к запоминанию ZooKeeper'ом старых адресов имеет?
Не задираться, а то съем!..
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: ZooKeeper cluster: кто-нибудь?

Post by Sergunka »

timeau wrote: 15 Apr 2019 16:17
mavr wrote: 15 Apr 2019 08:12У вас кластер похоже поднимается чем то своим а не AWS средствами.
А причем тут скрипты? Используется обычный salt. Какое это отношение к запоминанию ZooKeeper'ом старых адресов имеет?
Вам надо запостись терпением и логами какие ошибки выдает ваш кластер. После чего идти сдаваться в приличное место видимо https://stackoverflow.com/ с описанием всего процесса от и до включая логи. За одно проверьте у Вашего лигал департамента можете ли Вы публиковать логи?
"A patriot must always be ready to defend his country against his government." Edward Abbey
uncle_Pasha
Уже с Приветом
Posts: 19935
Joined: 30 Aug 2000 09:01
Location: WA

Re: ZooKeeper cluster: кто-нибудь?

Post by uncle_Pasha »

timeau wrote: 14 Apr 2019 23:59 Могу добавить, что после удаления observer'а сразу начинаются выборы, а я лично этого вообще понять не могу, ибо observer'ы есть прибалтийские неграждане: работать должны, а голосовать - нет.
Вы уверены, что он читает тот конфиг который вы думаете он читает, и в том формате, что понимается той версией, что сейчас работает?
User avatar
timeau
Уже с Приветом
Posts: 17549
Joined: 15 Aug 2002 00:39
Location: Maryland

Re: ZooKeeper cluster: кто-нибудь?

Post by timeau »

Sergunka wrote: 15 Apr 2019 18:35Вам надо запостись терпением и логами какие ошибки выдает ваш кластер.
Сергунька,
а Вы читали исходный пост? Фрагмент лога прямо там.
Sergunka wrote:После чего идти сдаваться в приличное место видимо https://stackoverflow.com/ с описанием всего процесса от и до включая логи.
Очень хочется съязвить, но не буду: скажу лишь, что я в не настолько уж дальней деревне живу. Вот топик, запостил еще до этого.
Sergunka wrote:За одно проверьте у Вашего лигал департамента можете ли Вы публиковать логи?
Спасибо, тоже давно сделано :D

Ну так по делу-то можете что-нибудь сказать? Или следующая рекомендация будет о соблюдении fat-free диеты?
uncle_Pasha wrote: 15 Apr 2019 22:57Вы уверены, что он читает тот конфиг который вы думаете он читает, и в том формате, что понимается той версией, что сейчас работает?
100%. Гарантирую.
Не задираться, а то съем!..
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: ZooKeeper cluster: кто-нибудь?

Post by Sergunka »

Хорошо, обычно всеж народ пишет, что нужно посмотреть конфиг фалы на каждом сервере

zoo.cfg under $ZOOKEEPER_HOME/conf

типо тут больше деталей

https://stackoverflow.com/questions/401 ... ter-on-aws

Просто тупо вручную установить сервера пробовали?
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
mavr
Уже с Приветом
Posts: 5691
Joined: 01 Mar 2004 10:57
Location: Сибирь -> Aotearoa

Re: ZooKeeper cluster: кто-нибудь?

Post by mavr »

timeau wrote: 15 Apr 2019 16:17
mavr wrote: 15 Apr 2019 08:12У вас кластер похоже поднимается чем то своим а не AWS средствами.
А причем тут скрипты? Используется обычный salt. Какое это отношение к запоминанию ZooKeeper'ом старых адресов имеет?
К непосредственно возникновению вашей проблемы скорее всего никакого.
К пониманию вашей проблемы сторонними людьми прямое.
Что такое "добавить новый стэк в Zookeeper" я например практически не понимаю.
Про скрипты вы начали сами.

А насчет адресов. Какие адреса имеют новые ноды когда возникает ошибка? Не пересекаются с теми адресами которые уже имели удаленные ноды?
User avatar
timeau
Уже с Приветом
Posts: 17549
Joined: 15 Aug 2002 00:39
Location: Maryland

Re: ZooKeeper cluster: кто-нибудь?

Post by timeau »

Sergunka wrote: 16 Apr 2019 00:52 Хорошо, обычно всеж народ пишет, что нужно посмотреть конфиг фалы на каждом сервере
Большое спасибо за ответы, Сергунька, но давайте на этом и закончим, если не возражаете.
mavr wrote: 16 Apr 2019 03:11Что такое "добавить новый стэк в Zookeeper" я например практически не понимаю.
Нда? Вот почему-то анекдот про Ржевского и кормление лошади с руки вспоминается... Ну ладно. Я попробую объяснить, а Вы попробуйте перефразировать, если сумеете.
Есть кластер, основанный на стеке 1, состоящем из трех машин 1-1, 1-2, 1-3. Запускается новый стек 2 с машинами 2-1, 2-2, 2-3. И эти машины 2-Х подсоединяются к кластеру, в котором становится 6 машин из 2 стеков. Вот только честно: неужто это дико сложно?
mavr wrote:А насчет адресов. Какие адреса имеют новые ноды когда возникает ошибка? Не пересекаются с теми адресами которые уже имели удаленные ноды?
Это 100% по делу. Нет, не пересекаются, особенно в Амазоне. Он раздает адреса весьма щедро, в отличие от GCP (Google Cloud Platform). Но даже в случае пересечения самое плохое, что могло бы случиться, это обращение к вновь образованным нодам, на которых зверушка еще не запущена. Этого не наблюдал ни разу.

Наткнулся на непонятную (снова?) вещь: любое изменение структуры кластера приводит к перевыборам. Ну как на Украине, чесслово, сорри, не удержался. Хотя почему удаление неголосующего нода приводит к обсуждению "царя горы" - мне совершенно непонятно.
Завтра попробую перезапустить сервисы ZooKeeper'а на всех нодах существующего кластера по очереди. Интересно, это выбьет из них дурь, т.е. знания об ушедшем кластере?
Не задираться, а то съем!..
User avatar
mavr
Уже с Приветом
Posts: 5691
Joined: 01 Mar 2004 10:57
Location: Сибирь -> Aotearoa

Re: ZooKeeper cluster: кто-нибудь?

Post by mavr »

timeau wrote: 16 Apr 2019 03:31
mavr wrote: 16 Apr 2019 03:11Что такое "добавить новый стэк в Zookeeper" я например практически не понимаю.
Нда? Вот почему-то анекдот про Ржевского и кормление лошади с руки вспоминается... Ну ладно. Я попробую объяснить, а Вы попробуйте перефразировать, если сумеете.
Есть кластер, основанный на стеке 1, состоящем из трех машин 1-1, 1-2, 1-3. Запускается новый стек 2 с машинами 2-1, 2-2, 2-3. И эти машины 2-Х подсоединяются к кластеру, в котором становится 6 машин из 2 стеков. Вот только честно: неужто это дико сложно?
Это не сложно, это ... странно.
Этот "стэк" существует только в вашем представлении и к делу совершенно не относится.
Ни zookeeper про эти стэки понятия не имеет ни AWS ни мы.
Было три ноды. Добавили еще три. Три старых хотите удалить. Кластер один. Никаких новых и/или множественных кластеров нет.
timeau wrote: 16 Apr 2019 03:31
mavr wrote:А насчет адресов. Какие адреса имеют новые ноды когда возникает ошибка? Не пересекаются с теми адресами которые уже имели удаленные ноды?
Это 100% по делу. Нет, не пересекаются, особенно в Амазоне. Он раздает адреса весьма щедро.
Еслив чего, то AWS их раздает ровно с той щедростью с которой вы (или кто то у вас) ему выделили в соответствующей VPC подсетке.
timeau wrote: 16 Apr 2019 03:31Наткнулся на непонятную (снова?) вещь: любое изменение структуры кластера приводит к перевыборам. Ну как на Украине, чесслово, сорри, не удержался. Хотя почему удаление неголосующего нода приводит к обсуждению "царя горы" - мне совершенно непонятно.
Ну наверное потому что так написана логика кластера

Return to “Вопросы и новости IT”