66 подписчиков

Восстановление кластера quantum xcellis (xnode1, xnode2)

В компании где я работаю имеется огромное сетевое хранилище на базе quantum xcellis, раньше я не задавался вопросом как там все устроено ведь было много других задач, но внезапно оказалось что все пол года что я работаю в компании данное хранилище функционировало на половину. Объясняю что это значит.

Ошибки вторичной ноды.
Ошибки вторичной ноды.

Есть два физических сервера объединенных в кластер, и как выяснилось что один из серверов просто не был в кластере и выдавал ошибку. Начал изучать информацию в инете по данному вопросу и понял что практически ничего нет. Вся документация официальная на английском и форумы молчат на тему quantum xcellis.

Вооружившись переводчиком, начал выяснять что не так с сервером.

Первое что я сделал это проверил запущенные службы на рабочем сервере и не рабочем, командой:

systemctl list-units --type=service --state=active

Да, к слову, ОС стоит Rad Hat.

После изучения списка, начал смотреть статусы важных на мой взгляд служб:

snhamgr.service
stornext_msm.service
stornext_mysql.service
stornext_snfs.service
stornext_srvclog.service
stornext_tsm.service
stornext_wsar_agent.service

Первое что меня смутило это недоступность stornext_mysql.service.

Выясняя в чем дело, увидел что mysql установлен не корректно. Обычным способом через yum install его не переустановить из-за того что кластерные машины не подключены к интернету т.к. в этом нет необходимости.

Начал копаться на самих серваках в поисках собранного архива mysql и нашел файл mysql_setup, решил попробовать воспользоваться им и ничего не вышло, получил вот такие ошибки

Выяснил что не так и удалил проблемные файлы, точнее символьные ссылки.

Проблемные файлы
Проблемные файлы

Затем удалил папку в которую вела символьная ссылка для файла mysql.sock

rm -Rf /var/lib/mysql/

Теперь можно повторно делать установку базы. В данной конфигурации сервера база данных должна храниться в /adic/mysql/

Происходит автоматическая настройка базы данных с уже предустановленными таблицами внутри базы и так же создаются автоматически нужные символьные ссылки.

Снова пробуем запустить сервер mysql командой:

systemctl start mysqld
либо
systemctl start stornext_mysql.service

В этот раз все запускается корректно и при проверке статуса командой:

systemctl status stornext_mysql.service

Мы получаем ответ:

stornext_mysql.service - StorNext mysql
Loaded: loaded (/usr/lib/systemd/system/stornext_mysql.service; enabled; vendor preset: disabled)
Active: active (exited) since Thu 2022-08-18 03:13:29 MSK; 1 day 11h ago

Если получаем ошибки, то читаем все в журнале:

journalctl -xe

Еще важный момент, два сервера должны быть в правильных режимах, для проверки используем команду:

snhamgr status

она выводит такую информацию если все хорошо:

LocalMode=default – эта строка говорит о том что сервер настроен по умолчанию как основной.
LocalStatus=primaryэта строка говорит что сервер работает в режиме основного
RemoteMode=peerdownэта строка говорит второй сервер настроен в режиме резервного
RemoteStatus=unknown – эта строка говорит что второй сервер отключен (при включенном будет Secondary)

Если что-то пошло не так, то данная команда snhamgr status будет выдавать:

LocalMode=failed_startup
LocalStatus=unknown
RemoteMode=failed_startup
RemoteStatus=unknown

И при таком раскладе нужно обязательно потушить один сервер. На том что остался включен сделать следующее:

snhamgr clear
snhamgr mode=default
service cvfs start

Таким образом вы переведете сервер в режим основного и на веб интерфейсе сможете наблюдать такую картину

Да, это только часть сервиса отвечающего за доступ к хранилищу в виде массива жестких дисков, все что в статусе недоступно это сервисы отвечающие за доступ к массиву ленточного хранилища.

Если все из этого списка корректно работает:

snhamgr.service
stornext_msm.service
stornext_mysql.service
stornext_snfs.service
stornext_srvclog.service
stornext_tsm.service
stornext_wsar_agent.service

То ленточное хранилище будет доступно и все статусы будут зелеными.

Если какая-то служба не запущена или валится в ошибку, то нужно разбираться по логам что мешает запуститься.

О других службах расскажу в следующей статье.