Общий доступ к управляемому диску Azure между виртуальными машинами

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы ✔️ Унифицированные масштабируемые наборы

Общие диски Azure — это функция управляемых дисков Azure, которая позволяет одновременно подключать управляемый диск к нескольким виртуальным машинам. Эта возможность позволяет развертывать новые или переносить существующие кластеризованные приложения в Azure без изменения архитектуры. Общие диски обеспечивают высокий уровень доступности кластеризованных приложений, так как другие виртуальные машины в кластере сохраняют полный доступ к диску, если одна виртуальная машина завершается ошибкой.

Для общих дисков требуется диспетчер кластеров, например отказоустойчивый кластер Windows Server (WSFC) или Pacemaker, который управляет связью между узлами кластера и блокировкой записи для них. Общие управляемые диски изначально не предлагают полностью управляемую файловую систему, доступ к которой можно получить с помощью SMB/NFS.

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

Виртуальные машины в кластере могут считывать с или записывать на свой подключенный диск на основе резервирования, выбранного кластеризованным приложением. Виртуальные машины, использующие контроллер дисков SCSI, координируют доступ с помощью постоянных резервирований SCSI (SCSI PR). Виртуальные машины, использующие контроллер диска NVMe, координируют доступ с помощью резервирований NVMe. Оба протокола позволяют кластеризованному приложению регистрировать каждый узел, резервировать доступ к диску и перемещать резервирование на другой узел во время отработки отказа.

Общие управляемые диски предлагают общее хранилище блоков, к которому может получить доступ несколько виртуальных машин. Общий диск предоставляется в виде логического номера устройства (LUN) для виртуальных машин, использующих SCSI, и в качестве пространства имен для виртуальных машин, использующих NVMe. В обоих случаях диск отображается как хранилище с прямым подключением (DAS) или локальный диск на виртуальной машине. Дополнительные сведения об интерфейсах контроллера см. в разделе преобразования SCSI в NVMe.

Ограничения

Общие ограничения

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

  • В настоящее время в качестве общего диска можно использовать только диски ценовой категории "Ультра", SSD уровня "Премиум" версии 2, SSD уровня "Премиум" и "Стандартный"
  • Общие диски можно подключить к отдельным масштабируемым наборам виртуальных машин, но нельзя определить в моделях масштабируемого набора или развернуть автоматически.
  • Ускоритель записи не поддерживается для общих дисков
  • Кэширование хоста не поддерживается для общих дисков

Для каждого управляемого диска, для которого включены общие диски, также действуют следующие ограничения (список упорядочен по типам дисков):

Диски категории "Ультра"

Диски категории "Ультра" имеют собственный список ограничений, не связанных с общими дисками. Сведения об ограничениях дисков категории "Ультра" см. в статье "Использование дисков Azure Ценовой категории "Ультра".

При совместном использовании дисков ценовой категории "Ультра" они имеют следующие дополнительные ограничения:

Премиум SSD версии 2

Управляемые диски SSD уровня "Премиум" версии 2 имеют собственный список ограничений, не связанных с общими дисками. Сведения об этих ограничениях см. в разделе Ограничения SSD (цен. категория "Премиум") версии 2.

При совместном использовании дисков SSD (цен. категория "Премиум") версии 2 применяются следующие дополнительные ограничения:

SSD ценовой категории «Премиум»

Стандартные SSD

Требования к операционной системе

Общие диски поддерживают несколько операционных систем. Сведения о поддерживаемых операционных системах см. в разделах Windows или Linux.

Последствия для выставления счетов

Когда вы делитесь диском, ваш счет может измениться двумя способами, в зависимости от типа диска.

Для общих SSD уровня "Премиум" в дополнение к стоимости уровня диска взимается дополнительная плата, которая увеличивается с каждой виртуальной машиной, к которой подключен SSD. Дополнительные сведения см. в разделе цен на управляемые диски.

Подключение общих дисков «Ультра» и общих дисков SSD «Премиум» версии 2 к виртуальным машинам не требует дополнительной платы. Плата взимается в общей сумме операций ввода-вывода в секунду и МБ/с, на которые настроен диск. Как правило, диски ценовой категории "Ультра" и SSD уровня "Премиум" версии 2 имеют два ограничителя производительности, которые определяют их общую производительность в IOPS/МБ/с. Однако при настройке в качестве общего диска предоставляются еще два регулирования производительности, в результате чего их становится четыре. Эти два дополнительных дросселя позволяют увеличить производительность за дополнительную плату. Каждый параметр имеет значение по умолчанию, которое повышает как производительность, так и стоимость диска.

У общего Ultra Disk и общего Premium SSD v2 есть четыре параметра регулирования производительности: diskIOPSReadWrite, diskMBpsReadWrite, diskIOPSReadOnly и diskMBpsReadOnly. Каждый дроссель производительности можно настроить для регулирования производительности вашего диска. Производительность общих дисков ценовой категории "Ультра" и дисков SSD уровня "Премиум" версии 2 вычисляется следующим образом: общая подготовленная пропускная способность операций ввода-вывода в секунду (diskIOPSReadWrite + diskIOPSReadOnly) и общая подготовленная пропускная способность в МБ/с ().diskMBpsReadWrite + diskMBpsReadOnly

Определив общий объем подготовленных операций ввода-вывода в секунду и общую подготовленную пропускную способность, вы можете использовать их в калькуляторе цен , чтобы определить стоимость общего диска ценовой категории "Ультра" или общего диска SSD уровня "Премиум" версии 2.

РАЗМЕР ДИСКА

На данный момент только диски ценовой категории "Ультра", SSD уровня "Премиум" версии 2, SSD уровня "Премиум" и "Стандартный" могут включать общие диски. В зависимости от размера диски могут иметь различные пределы maxShares, которые не могут быть превышены при установке значения maxShares.

Для каждого диска можно определить maxShares значение, представляющее максимальное число узлов, которые могут одновременно совместно использовать диск. Например, если планируется настроить отказоустойчивый кластер из двух узлов, вы задаете значение maxShares=2. Максимальное значение — это верхняя граница. Узлы могут присоединиться к кластеру или выйти из него (подключить или отключить диск), если число узлов ниже указанного maxShares значения.

Примечание.

maxSharesЗначение может быть задано или изменено только при отсоединении диска от всех узлов.

Линейки SSD премиум-класса

В следующей таблице показаны допустимые максимальные значения для maxShares размеров SSD класса Premium:

РАЗМЕР ДИСКА Ограничение «maxShares»
P1,P2,P3,P4,P6,P10,P15,P20 3
P30, P40, P50 5
P60, P70, P80 10

Значение maxShares не влияет на количество операций ввода-вывода в секунду и ограничение пропускной способности для диска. Например, максимальное число операций ввода-вывода (IOPS) для диска P15 составляет 1100, независимо от того, равно ли значение maxShares 1 или maxShares > 1.

Диапазоны стандартных SSD

В следующей таблице показаны допустимые максимальные значения для maxShares стандартных размеров SSD.

РАЗМЕР ДИСКА Ограничение «maxShares»
E1,E2,E3,E4,E6,E10,E15,E20 3
E30, E40, E50 5
E60, E70, E80 10

Значение maxShares не влияет на количество операций ввода-вывода в секунду и ограничение пропускной способности для диска. Например, максимальное число операций ввода-вывода для диска E15 — 500, если maxShares = 1 или maxShares > 1.

Диапазоны дисков категории "Ультра"

Минимальное значение maxShares — 1, максимальное значение maxShares — 15. Нет ограничений на размер дисков Ultra, диски любого размера Ultra могут использовать любое значение для maxShares, вплоть до максимального значения.

Линейка SSD Premium v2

Минимальное значение maxShares — 1, максимальное значение maxShares — 15. Нет ограничений на размер дисков SSD уровня "Премиум" версии 2: любой диск SSD уровня "Премиум" версии 2 может использовать любое значение для maxShares, до и включая максимальное значение.

Примеры рабочих нагрузок общего диска Windows

Общие диски Azure поддерживаются в Windows Server 2008 и более поздних версиях. Большинство кластеров на основе Windows используют платформу WSFC, которая обеспечивает всю основную инфраструктуру для обмена данными с узлами кластера, позволяя приложениям использовать шаблоны параллельного доступа. WSFC поддерживает как общие тома кластера (CSV), так и варианты без использования CSV, в зависимости от версии Windows Server. Дополнительные сведения см. в разделе Создание отказоустойчивого кластера.

Ниже перечислены некоторые популярные приложения, работающие в WSFC:

  • Создание FCI с общими дисками Azure (SQL Server на виртуальных машинах Azure)
  • Файловые серверы. Вы можете использовать функции Scale-Out файлового сервера, развернутые в отказоустойчивом кластере Windows Server, который использует общий диск в активно-активном режиме. Ресурсы-свидетели кластера хранятся на общих дисках Azure, а все общие папки одновременно находятся в сети на всех узлах. См. пример в шаблоне файлового сервера с функцией масштабирования (SoFS)
  • Серверы приложений SAP используют кластеризованные общие диски для хранения файлов глобального узла SAP Central Services (ASCS для ABAP и SCS для Java). SAP ASCS/SCS шаблон
  • Файловый сервер для общего использования (рабочая нагрузка IW) — общие диски обеспечивают высокий уровень доступности файловых серверов в целом
  • диск профиля пользователя сервера удаленных рабочих столов (RDS UPD);

Примеры рабочих нагрузок общего диска Linux

Общие диски Azure поддерживаются в следующих ОС:

Кластеры Linux могут использовать диспетчеры кластеров, например Pacemaker. Pacemaker построен на основе Corosync и обеспечивает связь с кластером для приложений, развернутых в средах с высокой доступностью. Некоторые распространенные кластерные файловые системы включают ocfs2 и gfs2. Вы можете использовать модели кластеризации на основе постоянного резервирования SCSI (SCSI PR) и STONITH Block Device (SBD) для арбитража доступа к диску. При использовании SCSI PR можно управлять резервированиями и регистрацией с помощью таких служебных программ, как fence_scsi и sg_persist.

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

На следующих схемах показаны распространенные шаблоны резервирования для кластеризованных приложений. Тот же процесс применяется, используют ли виртуальные машины постоянное резервирование SCSI или резервирования NVMe. Контроллер диска определяет, какой протокол и команды использует кластеризованное приложение.

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

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

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

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

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

Схема четырех виртуальных машин Azure, использующих общий диск данных, при этом все ВМ регистрируются и читают, а VM1 резервирует доступ на запись.

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

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

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

Для виртуальных машин, использующих контроллер дисков SCSI, кластеризованное приложение выполняет описанные выше операции с помощью операций регистрации SCSI PR, резервирования, вытеснения и освобождения общего диска LUN.

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

Резервирования NVMe предоставляют ту же модель координации доступа для общих управляемых дисков, подключенных к виртуальным машинам через контроллер NVMe. NVMe использует пространства имен вместо SCSI LUN и использует команды Reservation Register, Reservation Acquire, Reservation Release и Reservation Report для управления регистрациями и резервированиями.

Следующая схема иллюстрирует аварийное переключение для кластеризованного приложения с двумя узлами:

  1. Кластеризованное приложение на vm1 и VM2 регистрирует уникальный ключ резервирования для каждой виртуальной машины с помощью команды "Регистрация резервирования".
  2. Приложение на виртуальной машине 1 получает резервирование с требуемым типом резервирования с помощью команды Reservation Acquire.
  3. Общий диск обеспечивает резервирование. Доступ из VM2 ограничен выбранным типом резервирования.
  4. Если приложение на виртуальной машине 1 перестаёт работать, приложение на виртуальной машине 2 инициирует аварийное переключение. VM2 использует команду Reservation Acquire с действием вытеснения для замены резервирования VM1.
  5. Общий диск применяет новое резервирование и отклоняет конфликтующий доступ со стороны VM1.
  6. Кластеризованное приложение завершает аварийное переключение и обслуживает запросы из VM2. Если резервирование больше не требуется, владелец удаляет его с помощью команды «Снятие резерва».

Поток резервирования Ultra Disk и SSD уровня 'Премиум' версии 2

Управляемые диски ценовой категории "Ультра" и SSD уровня "Премиум" версии 2 предоставляют два дополнительных регулирования, что дает каждому из них всего четыре регулирования. В результате поток резервирования может использовать постоянные резервации SCSI или резервации NVMe для координации доступа к диску между кластеризованными виртуальными машинами, как описано в потоке постоянных резерваций, или использовать четыре ограничителя для распределения операций ввода-вывода в секунду и пропускной способности более детально.

Таблица с доступом только для чтения и записи для владельца резервирования, зарегистрированных узлов и других узлов для каждого постоянного типа резервирования.

Ограничение производительности SSD категории "Премиум"

При использовании премиум SSD дисков IOPS и пропускная способность фиксированы, например, показатель IOPS для P30 составляет 5000. Это значение сохраняется независимо от того, используется ли диск для 2 виртуальных машин или 5 виртуальных машин. Ограничения диска могут быть достигнуты с одной виртуальной машины или разделены между двумя или более виртуальными машинами.

Регулирование производительности диска и SSD уровня "Премиум" версии 2

Управляемые диски ценовой категории "Ультра" и SSD уровня "Премиум" версии 2 имеют уникальную возможность, позволяя настроить производительность, предоставляя изменяемые атрибуты и позволяя изменять их. По умолчанию есть только два изменяемых атрибута, но общие диски ценовой категории "Ультра" и общие управляемые диски SSD уровня "Премиум" версии 2 имеют два дополнительных атрибута. Диски категории "Ультра" и SSD уровня "Премиум" версии 2 разделяют эти атрибуты по каждой подключенной виртуальной машине. См. раздел Примеры для некоторых примеров того, как распределяются емкость, операции ввода-вывода в секунду и пропускная способность.

Атрибут Описание
diskIOPSReadWrite (Операции ввода-вывода диска при чтении и записи в секунду) Общее разрешенное количество IOPS (операций ввода-вывода в секунду) у всех виртуальных машин, подключенных к общему диску с правами на запись.
diskMBpsReadWrite (Пропускная способность диска чтения и записи) Общая разрешенная пропускная способность (МБ/с) на всех виртуальных машинах, подключенных к общему диску с доступом на запись.
diskIOPSReadOnly* (IOPS диска только для чтения) Общее количество IOPS, разрешенное для всех виртуальных машин, которые монтируют этот общий диск в качестве ReadOnly.
diskMBpsReadOnly* (пропускная способность диска только для чтения) Общая пропускная способность (МБ/с), разрешенная для всех виртуальных машин, подключающих общий диск как ReadOnly.

* Применяется только к общим дискам Ценовой категории "Ультра" и общим управляемым дискам SSD уровня "Премиум" версии 2

В следующих формулах объясняется, как можно задать атрибуты производительности, так как пользователи могут их изменять.

  • diskIOPSReadWrite (Дисковые IOPS (чтение/запись)):
    • Имеет базовый минимальный объем операций ввода-вывода в секунду 100 для дисков размером 100 ГиБ и меньше.
      • Для дисков размером более 100 ГиБ базовый минимальный объем операций ввода-вывода в секунду увеличивается на 1 за каждый ГиБ. Таким образом, минимальное значение, которое можно установить для diskIOPSReadWrite для диска объёмом 101 GiB, составляет 101 IOPS.
    • Максимальное значение этого атрибута определяется размером диска, формула составляет 300 * ГиБ, не более 400 000.
  • diskMBpsReadWrite (Пропускная способность диска чтения и записи)
    • Минимальная пропускная способность (МБ/с) этого атрибута определяется вашими IOPS, формула составляет 4 КиБ в секунду на одно IOPS. Таким образом, если у вас было 101 операций ввода-вывода в секунду, минимальное количество МБ/с можно задать 1.
    • Максимальное значение этого атрибута определяется количеством операций ввода-вывода в секунду (IOPS), которое вы задаете, по формуле 256 КиБ в секунду на один IOPS, до максимума 10 000 МБ/с.
  • diskIOPSReadOnly (IOPS диска только для чтения)
    • Минимальное базовое число операций ввода-вывода в секунду для этого атрибута равно 100. Для diskIOPSReadOnly базовый показатель не увеличивается с увеличением размера диска.
    • Максимальное значение этого атрибута определяется размером диска, формула составляет 300 * ГиБ, не более 400 000.
  • diskMBpsReadOnly (пропускная способность диска только для чтения)
    • Минимальная пропускная способность (МБ/с) для этого атрибута составляет 1. Для diskMBpsReadOnly базовый уровень не увеличивается с ростом IOPS.
    • Максимальное значение этого атрибута определяется количеством операций ввода-вывода в секунду (IOPS), которое вы задаете, по формуле 256 КиБ в секунду на один IOPS, до максимума 10 000 МБ/с.

Примеры

В следующих примерах показано несколько сценариев, в которых показано, как регулирование может работать с общими дисками Ultra, в частности.

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

Ниже приведен пример кластера WSFC с двумя узлами, использующего кластеризованные общие тома. В этой конфигурации обе виртуальные машины имеют одновременный доступ для записи на диск, в результате чего регулятор рабочей нагрузки ReadWrite распределяется между двумя виртуальными машинами, а регулятор ReadOnly не используется.

Схема двухузлового кластера Windows с использованием общих томов кластера, в котором операции ввода-вывода в секунду (IOPS) и пропускная способность чтения/записи равномерно распределены между обеими виртуальными машинами.

Кластер с двумя узлами без общих томов кластера

Ниже приведен пример двухузлового кластера WSFC, не использующего общие тома кластера. В такой конфигурации только одна виртуальная машина имеет доступ на запись к диску. Это приводит к тому, что регулятор рабочей нагрузки ReadWrite используется исключительно для первичной виртуальной машины, а регулятор рабочей нагрузки ReadOnly — только для вторичной.

Схема двухузлового отказоустойчивого кластера Windows без общих томов кластера, где VM1 использует ограничения чтения/записи, а VM2 — ограничения только на чтение.

Кластер с четырьмя узлами Linux

Ниже приведен пример кластера Linux с 4 узлами с одним модулем записи и тремя модулями чтения с горизонтальным масштабированием. В такой конфигурации только одна виртуальная машина имеет доступ на запись к диску. Это приводит к тому, что регулятор рабочей нагрузки ReadWrite используется исключительно для первичной виртуальной машины, а регулятор рабочей нагрузки ReadOnly делится между вторичными виртуальными машинами.

Схема четырехузлового кластера Linux, где VM1 использует ограничения на чтение/запись, а ограничения только на чтение распределены между VM2, VM3 и VM4.

Цены на общий диск категории "Ультра" и SSD уровня "Премиум" версии 2

Общие диски ценовой категории "Ультра" и общие управляемые диски SSD уровня "Премиум" версии 2 оцениваются на основе подготовленной емкости, общего объема подготовленных операций ввода-вывода в секунду (diskIOPSReadWrite + diskIOPSReadOnly) и общей подготовленной пропускной способности в МБ/с ().diskMBpsReadWrite + diskMBpsReadOnly Дополнительная плата за каждую дополнительную виртуальную машину не взимается. Например, за диск Ultra с общим доступом со следующей конфигурацией (diskSizeGB: 1024, diskIOPSReadWrite: 10000, diskMBpsReadWrite: 600, diskIOPSReadOnly: 100, diskMBpsReadOnly: 1) плата взимается из расчёта 1024 ГиБ, 10100 IOPS и 601 МБ/с независимо от того, подключён ли он к двум или к пяти виртуальным машинам.

Следующие шаги

Сведения о включении и использовании общих дисков для управляемых дисков см. в статье Включение общего диска

Если у вас есть дополнительные вопросы, ознакомьтесь с разделом "Общие диски" в разделе часто задаваемых вопросов .