Поделиться через


Развертывание кластеризованных приложений в Azure Elastic SAN

Тома Azure Elastic SAN можно одновременно подключить к нескольким вычислительным клиентам, что позволяет развертывать или переносить кластерные приложения в Azure. Необходимо использовать диспетчер кластеров для совместного использования тома Elastic SAN, например отказоустойчивого кластера Windows Server (WSFC) или Pacemaker. Диспетчер кластеров обрабатывает связь с узлом кластера и блокировку записи. Elastic SAN изначально не предлагает полностью управляемую файловую систему, доступ к которым можно получить через S МБ или NFS.

При использовании в качестве общего тома тома эластичные тома SAN можно совместно использовать между зонами доступности или регионами. Совместное использование тома в локально избыточном хранилище SAN между зонами снижает производительность из-за повышенной задержки между томом и клиентами.

Ограничения

  • Скрипты подключения elastic SAN можно использовать для подключения общих томов к виртуальным машинам в Масштабируемые наборы виртуальных машин или виртуальных машинах в группах доступности. Выравнивание домена сбоя не поддерживается.
  • Максимальное количество сеансов, поддерживаемых общим томом, равно 128.
    • Отдельный клиент может создать несколько сеансов для отдельного тома для повышения производительности. Например, при создании 32 сеансов на каждом из клиентов только четыре клиента могут подключаться к одному тому.

Сведения о поддержке функций служба хранилища Azure для других ограничений elastic SAN.

Принцип работы

Общие тома Elastic SAN используют постоянные резервирования SCSI-3, чтобы разрешить инициаторам (клиентам) управлять доступом к общему эластичному тому SAN. Этот протокол позволяет инициатору зарезервировать доступ к эластичному тому SAN, ограничить доступ на запись (или чтение) другими инициаторами и сохранить резервирование на томе за пределами времени существования сеанса по умолчанию.

SCSI-3 PR имеет ключевую роль в поддержании согласованности и целостности данных в общих томах в сценариях кластера. Вычислительные узлы в кластере могут считывать или записывать в подключенные тома эластичной сети SAN на основе резервирования, выбранного их приложениями кластера.

Поток постоянного резервирования

На следующей схеме показан пример приложения кластеризованной базы данных с 2 узлами, которое использует SCSI-3 PR для включения отработки отказа с одного узла на другой.

Схема с кластеризованным приложением.

Процесс выглядит следующим образом:

  1. Кластеризованное приложение, работающее как на виртуальной машине Azure 1, так и в VM2, регистрирует свое намерение считывать или записывать данные в эластичном томе SAN.
  2. Экземпляр приложения на виртуальной машине 1 затем принимает эксклюзивное резервирование для записи в том.
  3. Это резервирование применяется к вашему тому, и база данных теперь может выполнять исключительно запись в том. Все операции записи из экземпляра приложения на виртуальной машине 2 завершаются ошибкой.
  4. Если экземпляр приложения на виртуальной машине 1 исчез, экземпляр на виртуальной машине 2 может инициировать отработку отказа базы данных и взять на себя контроль над томом.
  5. Это резервирование теперь применяется к тому, и оно не будет принимать записи из VM1. Он принимает только записи из VM2.
  6. Кластеризованное приложение может завершить отработку отказа базы данных и обслуживать запросы от VM2.

На следующей схеме показана другая распространенная кластеризованная рабочая нагрузка, состоящая из нескольких узлов, считывающих данные из эластичного тома SAN для выполнения параллельных процессов, таких как обучение моделей машинного обучения.

Схема, на котором показан кластер машинного обучения.

Процесс выглядит следующим образом:

  1. Кластеризованное приложение, работающее на всех виртуальных машинах, регистрирует намерение считывать или записывать данные в том эластичной сети SAN.
  2. Экземпляр приложения на виртуальной машине 1 принимает эксклюзивное резервирование для записи в том при открытии тома на том из других виртуальных машин.
  3. Это резервирование применяется к тому.
  4. Все узлы в кластере теперь могут считываться из тома. Только один узел записывает результаты обратно в том от имени всех узлов в кластере.

Поддерживаемые команды для запросов на вытягивание SCSI

Следующие команды поддерживаются с томами Elastic SAN:

Чтобы взаимодействовать с томом, начните с соответствующего действия постоянного резервирования:

  • PR_REGISTER_KEY
  • PR_REGISTER_AND_IGNORE
  • PR_GET_CONFIGURATION
  • PR_RESERVE
  • PR_PREEMPT_RESERVATION
  • PR_CLEAR_RESERVATION
  • PR_RELEASE_RESERVATION

При использовании PR_RESERVE, PR_PREEMPT_RESERVATION или PR_RELEASE_RESERVATION укажите один из следующих постоянных типов резервирования:

  • PR_NONE
  • PR_WRITE_EXCLUSIVE
  • PR_EXCLUSIVE_ACCESS
  • PR_WRITE_EXCLUSIVE_REGISTRANTS_ONLY
  • PR_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY
  • PR_WRITE_EXCLUSIVE_ALL_REGISTRANTS
  • PR_EXCLUSIVE_ACCESS_ALL_REGISTRANTS

Постоянный тип резервирования определяет доступ к тому из каждого узла в кластере.

Тип сохраняемого резервирования Держатель резервирования Зарегистрировано Другие
БЕЗ РЕЗЕРВИРОВАНИЯ Н/П Чтение и запись Чтение и запись
ЗАПИСЬ ЭКСКЛЮЗИВНАЯ Чтение и запись Только чтение Только чтение
МОНОПОЛЬНЫЙ ДОСТУП Чтение и запись Нет доступа Нет доступа
ЗАПИСЬ ЭКСКЛЮЗИВНЫХ — ТОЛЬКО РЕЕСТРАНТЫ Чтение и запись Чтение и запись Только чтение
МОНОПОЛЬНЫЙ ДОСТУП — ТОЛЬКО РЕЕСТРАНТЫ Чтение и запись Чтение и запись Нет доступа
ЗАПИСЬ ЭКСКЛЮЗИВНЫХ — ВСЕ РЕЕСТРАНТЫ Чтение и запись Чтение и запись Только чтение
МОНОПОЛЬНЫЙ ДОСТУП — ВСЕ РЕЕСТРАНТЫ Чтение и запись Чтение и запись Нет доступа

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

  • PR_RESERVE
  • PR_REGISTER_AND_IGNORE
  • PR_REGISTER_KEY
  • PR_PREEMPT_RESERVATION
  • PR_CLEAR_RESERVATION
  • PR_RELEASE-РЕЗЕРВИРОВАНИЕ.