Кластер развернут и работает. В течение последнего года перешли с VMware, как и многие другие. Убрали несколько временных хостов, которые были в кластере с Ceph, всё работает нормально. Кластер работает по IP, а не по именам хостов, поэтому всё отлично. Сейчас Ceph работает на том же интерфейсе, пока не освобожу дополнительные порты, но всё на 10G и работает хорошо. Проблема в том, что при добавлении нового узла в кластер он сходит с ума и теряет кворум, пока новый узел не отключить или удалить из сети.
— Первая попытка: новый узел установил Ceph, но OSD не настроены – ох, кажется, разозлило. Все хранилища падают, когда кластер вылетает. Как только новый узел отключают из сети (выдергивают кабель), он стабилизируется, и можно удалить проблемный узел, и всё снова хорошо. Файл /etc/pve/nodes/PVE0<номер узла>/pve-ssl.pem не существует! (500), но узел временно появляется, просто закатывает истерику из-за разрешения DNS.
— Вторая попытка: перезагрузил узел с тем же IP, но предыдущим названием узла (перезацикленный). Ceph не установлен, пытается подключиться к кластеру – та же проблема (смерть кворума кластера). Та же ошибка: Файл /etc/pve/nodes/PVE0<номер узла>/pve-ssl.pem не существует! (500), но узел временно появляется, просто закатывает истерику из-за разрешения DNS. (не удалось выполнить поиск DNS или что-то подобное).
— Третья попытка: перезагрузил узел с новым IP и названием узла. Ceph не установлен, пытается подключиться к кластеру – та же проблема (смерть кворума кластера). Та же ошибка: Файл /etc/pve/nodes/PVE0<номер узла>/pve-ssl.pem не существует! (500), те же DNS-странности, поэтому четвертую попытку пока не предпринимал. Проверил множество сообщений в журнале кластера: journalctl -u pve-cluster -u corosync -b, но не уверен, что конкретно смотреть, чтобы понять причину отказа подключения. Добавил имена каждого узла в /etc/hosts и дополнительно добавил их в DNS. В данном случае имена узлов написаны с заглавной буквы, чтобы соответствовать /etc/pve/nodes и hostnamectl.
/etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.99.32 Node02.tld.local Node02 # Новый узел
192.168.99.33 Node03.tld.local Node03 # Существующий
192.168.99.34 Node04.tld.local Node04 # Существующий
192.168.99.35 Node05.tld.local Node05 # Существующий
Проверил с каждого хоста, что можно подключиться по ssh root@Node0x к каждому, и отпечатки пальцев совпадают, за исключением Node02, конечно. Но с Node5 можно подключиться и проверить, что в /etc/hosts всё настроено правильно, даже несмотря на хорошее разрешение DNS. Поддерживаю резервный файл hosts для случаев, когда DNS не работает – пока не настрою DNS вне кластера. Есть какие-нибудь другие идеи, как упростить процесс подключения? Существующие подключения выполнялись через графический интерфейс... или просто подключиться через CLI? Сейчас не уверен, что кластер в порядке, даже несмотря на то, что на 3-узловом существующем кластере всё зелено.
Заметили, что при подключении через графический интерфейс новый узел постоянно пытается использовать Node05, например, вместо текущего мастера кворума, указанного в HA. Не знаю, имеет ли это значение. Все узлы имеют правильное время NTP и синхронизированы.
По Ceph есть несколько настроек: два разных crush rules – один для SSD, а другой для HDD, чтобы разделять хранилище. Изначально пулы были смешанными, но раздельные crush rules, похоже, это исправили… Надеюсь, что проблема не в этом.
Изначально новый узел должен просто подключиться к кластеру и позже начать добавлять OSD в свои соответствующие пулы... Изначально "должен" участвовать и просто использовать существующее хранилище. Есть другие тестовые кластеры, настроенные таким образом в лабораторной среде, и всё работает отлично. Четвёртый узел не имеет хранилища, использует NFS / Ceph от других 3 узлов.
— Первая попытка: новый узел установил Ceph, но OSD не настроены – ох, кажется, разозлило. Все хранилища падают, когда кластер вылетает. Как только новый узел отключают из сети (выдергивают кабель), он стабилизируется, и можно удалить проблемный узел, и всё снова хорошо. Файл /etc/pve/nodes/PVE0<номер узла>/pve-ssl.pem не существует! (500), но узел временно появляется, просто закатывает истерику из-за разрешения DNS.
— Вторая попытка: перезагрузил узел с тем же IP, но предыдущим названием узла (перезацикленный). Ceph не установлен, пытается подключиться к кластеру – та же проблема (смерть кворума кластера). Та же ошибка: Файл /etc/pve/nodes/PVE0<номер узла>/pve-ssl.pem не существует! (500), но узел временно появляется, просто закатывает истерику из-за разрешения DNS. (не удалось выполнить поиск DNS или что-то подобное).
— Третья попытка: перезагрузил узел с новым IP и названием узла. Ceph не установлен, пытается подключиться к кластеру – та же проблема (смерть кворума кластера). Та же ошибка: Файл /etc/pve/nodes/PVE0<номер узла>/pve-ssl.pem не существует! (500), те же DNS-странности, поэтому четвертую попытку пока не предпринимал. Проверил множество сообщений в журнале кластера: journalctl -u pve-cluster -u corosync -b, но не уверен, что конкретно смотреть, чтобы понять причину отказа подключения. Добавил имена каждого узла в /etc/hosts и дополнительно добавил их в DNS. В данном случае имена узлов написаны с заглавной буквы, чтобы соответствовать /etc/pve/nodes и hostnamectl.
/etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.99.32 Node02.tld.local Node02 # Новый узел
192.168.99.33 Node03.tld.local Node03 # Существующий
192.168.99.34 Node04.tld.local Node04 # Существующий
192.168.99.35 Node05.tld.local Node05 # Существующий
Проверил с каждого хоста, что можно подключиться по ssh root@Node0x к каждому, и отпечатки пальцев совпадают, за исключением Node02, конечно. Но с Node5 можно подключиться и проверить, что в /etc/hosts всё настроено правильно, даже несмотря на хорошее разрешение DNS. Поддерживаю резервный файл hosts для случаев, когда DNS не работает – пока не настрою DNS вне кластера. Есть какие-нибудь другие идеи, как упростить процесс подключения? Существующие подключения выполнялись через графический интерфейс... или просто подключиться через CLI? Сейчас не уверен, что кластер в порядке, даже несмотря на то, что на 3-узловом существующем кластере всё зелено.
Заметили, что при подключении через графический интерфейс новый узел постоянно пытается использовать Node05, например, вместо текущего мастера кворума, указанного в HA. Не знаю, имеет ли это значение. Все узлы имеют правильное время NTP и синхронизированы.
По Ceph есть несколько настроек: два разных crush rules – один для SSD, а другой для HDD, чтобы разделять хранилище. Изначально пулы были смешанными, но раздельные crush rules, похоже, это исправили… Надеюсь, что проблема не в этом.
Изначально новый узел должен просто подключиться к кластеру и позже начать добавлять OSD в свои соответствующие пулы... Изначально "должен" участвовать и просто использовать существующее хранилище. Есть другие тестовые кластеры, настроенные таким образом в лабораторной среде, и всё работает отлично. Четвёртый узел не имеет хранилища, использует NFS / Ceph от других 3 узлов.
