В компании где я работаю имеется огромное сетевое хранилище на базе 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
То ленточное хранилище будет доступно и все статусы будут зелеными.
Если какая-то служба не запущена или валится в ошибку, то нужно разбираться по логам что мешает запуститься.
О других службах расскажу в следующей статье.