Я хочу использовать хранилище SAN в качестве общего диска для двух активных узлов, работающих в Linux, и хочу использовать его в качестве необработанного устройства (без файловой системы).

Сначала я подумал, что не будет проблем, если диск виден обоим узлам. Но во время поиска я увидел, что одновременный доступ с обоих узлов к общему хранилищу недоступен, если не используется глобальная файловая система (например, GFS). (Как сообщается в разделе Может ли SAN разрешить одновременный доступ на запись в один и тот же файл с нескольких серверов?). У меня есть еще несколько вопросов, связанных с моей ситуацией.

  1. Какова область блокировки, которая достигается узлом, когда он пытается записать на совместно используемое устройство? Получает ли он блокировку блока? или каждый диск (LUN) получает блокировку?
  2. Нужно ли иметь кластерное ПО, такое как VCS или CLVM, чтобы получить активно-активный кластер с SAN? Есть ли альтернативные способы?
  3. Я думаю, что функция кластеризации программного обеспечения, упомянутая выше, заключается в планировании операций ввода-вывода с использованием распределения блокировки. Достаточно ли для поддержки активно-активного кластера?

1 ответ1

0

С точки зрения SAN/Storage вы можете сопоставить LUN нескольким хостам без ограничений. Но хост, ОС и приложения (обычно это кластерное программное обеспечение / менеджер томов / файловая система) обязаны позаботиться о том, где и как читать / записывать данные на совместно используемом устройстве, чтобы, по крайней мере, не:

  • Запись данных в одни и те же блоки одновременно
  • Чтение данных из блока диска, который был изменен другим хостом, асинхронно, поэтому обновления все еще находятся в кэше ОС / файловой системы на этом другом узле, но не на самом диске

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .