LINUX.ORG.RU

А как правильнее сделать?

 , ,


0

2

Имеется:

  • Дисковая полка Supermicro CSE-826BE1C-R741JBOD с подключенными в неё 4 дисками
  • серверА и серверБ подключенные к полке
  • Логически диски организованы как Raid6 и lvm поверх него
  • Оба сервера видят диски полки. И оба сервера на своей стороне собирают RAID и LVM
  • Пользуется внутренностями данных на данный момент только серверА (куча VM, логические диски которых на полке), он же периодически делает бэкапы используя LVM SNAP
  • серверБ на данный момент «просто подключен» к полке и логические lvm тома дисков полки «не трогает»

Надо:

  • подключить ещё один серверВ к полке
  • все сервера начнут активно использовать lvm тома от дисков на полке

Собственно, я уже примерно догадываюсь, что в том что сейчас есть нет ничего «кластерного» и то, что 2 сервера имеют параллельный доступ к дискам не есть хорошо. Но понимания как это объяснить кроме «возможных» проблем нет.

Вопрос: а как бы это всё разрулить чтобы оно физически осталось примерно также реализовано, но логически быть уверенным в консистентности данных?

Пример проблемы: Я создаю lvm том на серверА и серверБ его видит(lvs), но если создать lvm том на серверБ, то серверА его не видит

★★★
Ответ на: комментарий от Harliff

Нужны снапшоты для создания бэкапов VM, если верить http://xgu.ru/wiki/CLVM, то таковые не поддерживаются.

К тому-же на серверах debian11/12, apt не находит ничего с именем clvm, собирать из исходников и ставить будет проблемно

Flotsky ★★★
() автор топика
Ответ на: комментарий от Flotsky

Сколько не гуглю, похоже что clvm мертв или в каком-то роде не поддерживается. Для debian старше 9(stretch) уже не упоминается и в репозиториях отсутствует.

Зато наткнулся на lvm2-lockd, который как минимум есть доступный к установке в репозитории, но пока вообще без какой либо информации о его возможностях и/или документации

Flotsky ★★★
() автор топика

Пример проблемы: Я создаю lvm том на серверА и серверБ его видит(lvs), но если создать lvm том на серверБ, то серверА его не видит

хм, собрал стенд силами VM. Не могу повторить проблему. Но у меня и диски сильно меньше объёмом и система «актуальной версии».

Может это и не является уже проблемой. Ещё попробую всякое, что в голову придёт…

Flotsky ★★★
() автор топика
Ответ на: комментарий от Flotsky

А, хотя поспешил.

Хоть и на тестовом стенде lvs/vgs теперь всегда показывают актуальные данные, dmsetup «отстаёт», что логично, как он узнает, что другой сервер создал/удалил новый lvm.
Как без перезагрузки заставить систему обновить карту устройств чтобы файлики в /dev создались с наскока не понял, но сейчас наверное не важно.

Попробую запустить lvm2-lockd и посмотреть что поменяется…

Flotsky ★★★
() автор топика
Ответ на: комментарий от aol

Трогал когда-то давно, тогда не очень осилил. Сюда увы не применимо т.к. потребует замены полки на что-то умное в количестве несколько штук.

Да, если бы дисковая полка могла собой закрыть raid/lvm и отдавать нарезанные тома скажем по iscsi этой темы бы не было.

Flotsky ★★★
() автор топика
Ответ на: комментарий от Flotsky

Кажется я не понял что делает lvm2-lockd.

Следую инструкции из https://manpages.debian.org/testing/lvm2-lockd/lvmlockd.8.en.html

Этап «start VG on all hosts» комманда vgchange --lock-start выполняется только на одном из узлов.
Если её попробовать повторить на других узлах, то на первом sanlock ругается, что потерял lock и более вообще ни как не даёт работать с lvm

Т.е. только один узел может взять lock на всю VG, думал, что lock будет на LV.

И соотв без наличия lock нельзя даже активировать VG. Возможно я чего-то упускаю, перечитаю завтра ещё раз на свежую голову…

Flotsky ★★★
() автор топика
Ответ на: комментарий от Flotsky

Т.е. только один узел может взять lock на всю VG, думал, что lock будет на LV.

Всё заработало когда я убрал mdadm из тестового стенда и в lvm отдал напрямую диски.
Теперь работает как ожидается. На каждом сервере надо точечно активировать нужные ему LV и можно пользоваться. И SNAP в рамках узла активировавшего LV как минимум создаётся.

Но нужен raid поверх дисков, буду дальше копать…

Flotsky ★★★
() автор топика
Ответ на: комментарий от Flotsky

Но нужен raid поверх дисков, буду дальше копать…

lvm raid собирается и работает. Ранее такое не трогал, непривычно.

Наверное пока на этом остановлюсь. Мне достаточно для ответа на изначальный вопрос задачи.

Но всегда открыт для попробовать разное если кто решит предложить ещё какие-то способы реализации.

Flotsky ★★★
() автор топика
Ответ на: удаленный комментарий

может был не слишком подробен в комментариях выше, обобщаю:

Условно достаточно https://manpages.debian.org/testing/lvm2-lockd/lvmlockd.8.en.html

У меня получился такой список заметок:

  • raid придётся собирать силами lvm
  • соотв адаптировать под это мониторинг (т.к. я к примеру это не трогал, у меня везде mdadm)
  • для каждого узла потребуется написать некий сервис/скрипт, который после старта узла (или перед запуском VM) активирует нужные узлу LV тома (и потом соотв деактивирует)
    • соответственно следует ожидать, что активация «упадёт» если LV уже кем-то ещё активирован и тогда надо ругнуться куда-то в мониторинг

Я бегло покрутил это на тестовой стойке из VM, меня вроде устроило. Прям сейчас всё это делать не надо т.к. сервера пока ещё закупят, цель была найти способ и спланировать. Мне хватило.

PS. есть кнопка предпросмотра рядом с отправкой комментария

Flotsky ★★★
() автор топика
Ответ на: комментарий от Flotsky

Да, если бы дисковая полка могла собой закрыть raid/lvm и отдавать нарезанные тома скажем по iscsi этой темы бы не было.

я чисто на всякий случай спрошу, почему не сложилось с каким-нибудь TrueNAS?

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от gagarin0

Потому что дано JBOD дисковая полка и «надо ещё сервер и чтобы все 3 сервера крутили VM размещённые на этой одной дисковой полке».
Мне надо было или доказать что так нельзя(обосновать покупку СХД) или найти способ собрать из текущего.

PS. Любые решения с *nas в данном контексте приравниваю к «докупить/заменить оборудование» чего и пытался изначально избежать.

Flotsky ★★★
() автор топика
Ответ на: комментарий от Flotsky

Что в этих шагах заставит вас «докупить/заменить» оборудование?

  1. Установить TrueNAS на хостовую машину

  2. Подключаете дисковую полку к TrueNAS

  3. Настраиваете рейды, нарезаете ISCSI таргеты

  4. Машины при запуске виртуалок, подкладывают им смонтированный по iscsi диск с TrueNAS

gagarin0
()
Ответ на: комментарий от Flotsky

Дисковая полка Supermicro CSE-826BE1C-R741JBOD с подключенными в неё 4 дисками

Выключим хост прервётся всё.

Я может что не понимаю, но если выключится Supermicro CSE-826BE1C-R741JBOD хост с полкой, то тоже «прервется все» ?

gagarin0
()
Ответ на: комментарий от gagarin0

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

Но тут данный вопрос не рассматривается.

Flotsky ★★★
() автор топика
Ответ на: комментарий от gagarin0

если выключится Supermicro CSE-826BE1C-R741JBOD хост с полкой

Какой еще «хост с полкой»? Нет никакого хоста с полкой.

Есть просто дисковая полка, к которой равноценно подключены несколько машин. Сломается любой хост - не проблема, есть другие.

В самой полке зарезервированы компонетнты, которые выходят из строя чаще всего (БП, вентиляторы, и т.д.), потоэму вероятность ее поломки довольно низка.

bigbit ★★★★★
()