darthunix
@darthunix
Знаю PostgreSQL, Ubuntu, DICOM и медицину.

Как построить расширяемое хранилище из нескольких iscsi дисков?

Передо мной стоит задача построить легко расширяемое хранилище для DICOM снимков PACS'а. По факту - нужна обычная файлопомойка. Ресурсы для этого - пара NAS фирмы QNAP, на которых поднят raid5 и нарезано по iscsi диску на 5ТБ. Через полгода появится в отдельной серверной еще одна NAS того же производителя, от которой можно отрезать еще ~20ТБ. Из всего этого нужно создать некое хранилище данных, которое можно было бы легко расширить. Монтироваться оно будет в единую точку монтирования на PACS сервере (ubuntu 16.04). Хочется следующего поведения - если отвалилась одна из NAS, то ее файлы просто становятся недоступны, а файлы остальных NAS - доступны и новые снимки пишутся на доступные iscsi.
Я перебрал уже пару не устроивших меня вариантов:
  • iscsi загнать в JBOD через mdadm и поверх построить lvm
  • поверх iscsi построить lvm

Вариант не устроил тем, что при недоступности одной из NAS, все данные становятся недоступны или ведут себя непредсказуемо.
Пока прорабатываю вариант с монтированием iscsi устройств на сервер и объединение их посредством aufs с режимом записи на тот iscsi, где больше места. Пока все подключено, ее поведение идеально. Но при недоступности одного из iscsi дисков и попытке записать на него что-то, вся точка монтирования aufs переходит в read-only и требует перемонтирования. Кто-то знает, как это можно победить? Или, возможно, есть другие варианты?
  • Вопрос задан
  • 1238 просмотров
Решения вопроса 1
darthunix
@darthunix Автор вопроса
Знаю PostgreSQL, Ubuntu, DICOM и медицину.
Я понял, что aufs не умеет корректно обрабатывать ситуацию, когда один из слоев недоступен (iscsi отвалился). В этом случае вся совокупность слоев помечается сбойной и требует перемонтирования iscsi и пересоздания aufs. Мне этот вариант не подходит.
На замену нашел mergerfs. Он работает аналогично aufs с точки зрения использования (только через fuse, но это при моих нагрузках не важно), но в отличие от последней, при недоступности одной из точек монтирования, mergerfs продолжает нормально работать. Невозможно прочитать только файлы с недоступного iscsi, остальные отлично работают и даже пишутся... правда есть нюанс. Политики выбора точки записи могут быть типа: где меньше места, где больше, рандомно. И возможна ситуация, когда согласно политике надо писать на недоступный iscsi и тогда мы вываливаемся в честный read only. В принципе неплохо, но возможно я придумаю вариант, как обойти это ограничение. Проблема на текущий момент в том, что после того, как iscsi стал недоступен, его точка монтирования все еще знает его свободное место до факта недоступности. Если я узнаю, как убедить систему, что если диск отвалился, то его размер равен нулю, то в read only я уже не попадаю никогда и это полная победа. Отпишу по результату.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Не знаю как решить вашу задачу, т.к. не имею чёткого понятия как работает PACS сервер.
Выскажу костыльное решение - писать на выбранное по round-robin хранилище из доступных. Так возможно? Или система должна быть сконфигурирована на запись в конкретное место? Возможно ли стримить данные в некий демон-посредник, который уже разрулит куда записать снимок?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы