Высокопроизводительное хранилище в Azure DocumentDB

Azure DocumentDB использует Premium SSD версии 2 для обеспечения значительно более высокой производительности для рабочих нагрузок с интенсивным вводом-выводом, развязав емкость хранилища из параметров операций ввода-вывода и пропускной способности.

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

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

Ранее переход от 5000 операций ввода-вывода в секунду до 20 000 операций ввода-вывода в секунду требовал увеличение размера диска с 1 ТБ до 20 ТБ, даже в отсутствие более высоких потребностей в хранилище. При использовании дисков Premium SSD v2 можно достичь 20 000 операций ввода-вывода в секунду на том же диске объемом 1 ТБ, при условии, что вычислительный уровень кластера имеет возможность поддерживать выполнение 20 000 операций ввода-вывода в секунду. Кроме того, диски SSD уровня "Премиум" версии 2 могут поддерживать до 80 000 операций ввода-вывода в секунду — увеличение на 4x по сравнению с SSD уровня "Премиум".

Guidance

Производительность максимальная для кластера Azure DocumentDB теперь зависит только от уровня вычислений и не размера хранилища. Начните с выбора необходимого размера хранилища для кластера, а затем выберите вычислительный уровень, который предоставляет необходимые IOPS и пропускную способность (MBps) для рабочей нагрузки. В таблице ниже приведены высшие доступные и стабильные пределы операций ввода-вывода в секунду и пропускной способности для каждого уровня вычислительной мощности.

Ограничения IOPS и пропускной способности

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

Уровень вычислений Максимальное число операций ввода-вывода в секунду Максимальная пропускная способность (MBps)
M30 (2 ядра) 3,750 85
M40 (4 ядра) 6,400 145
M50 (8 ядер) 12 800 290
M60 (16 ядер) 25 600 600
M80 (32 ядра) 51 200 865
M200 (64 ядра) 80,000 1,200

Предпосылки

  • Существующий кластер Azure DocumentDB

Создание кластера с высокопроизводительными хранилищами

Настройте кластер с помощью хранилища SSD уровня Premium версии 2 (высокая производительность) в рамках этапа создания кластера.

  1. Войдите на портал Azure (https://portal.azure.com).

  2. В меню портала Azure или на главной странице выберите Создать ресурс.

  3. На новой странице найдите и выберите Azure DocumentDB.

    Скриншот поиска на портале Azure для нахождения Azure DocumentDB.

  4. На странице Создание кластера Azure DocumentDB и в разделе Основы выберите параметр Настройка в разделе Уровень кластера.

    Снимок экрана с вариантами настройки кластера Azure DocumentDB.

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

    Снимок экрана: параметр конфигурации, характерный для дисков SSD уровня

  6. Введите оставшиеся сведения и нажмите кнопку "Проверить и создать".

  7. Проверьте настройки, которые вы указали, и затем выберите Создать. Создание кластера занимает несколько минут. Дождитесь завершения развертывания ресурсов.

  8. Наконец, выберите "Перейти к ресурсу" , чтобы перейти к кластеру Azure DocumentDB на портале.

Снимок экрана: шаг завершения развертывания с параметром перехода к новому кластеру Azure DocumentDB.

  1. Откройте новый терминал.

  2. Войдите в Azure CLI.

  3. Создайте новый файл Bicep для определения роли. Назовите файл main.bicep.

  4. Добавьте этот шаблон в содержимое файла. Замените заполнители <cluster-name>, <location>, <username> и <password> соответствующими значениями.

    resource cluster 'Microsoft.DocumentDB/mongoClusters@2025-09-01' = {
      name: '<cluster-name>'
      location: '<location>'
      properties: {
        administrator: {
          userName: '<username>'
          password: '<password>'
        }
        serverVersion: '8.0'
        storage: {
          sizeGb: 32
          type: 'PremiumSSDv2'
        }
        compute: {
          tier: 'M30'
        }
        sharding: {
          shardCount: 1
        }
        highAvailability: {
          targetMode: 'Disabled'
        }
      }
    }
    
  5. Разверните шаблон Bicep с помощью az deployment group create. Укажите имя шаблона Bicep и замените заполнитель <resource-group> именем целевой группы ресурсов Azure.

    az deployment group create \
        --resource-group "<resource-group>" \
        --template-file main.bicep
    
  6. Дождитесь завершения развертывания. Просмотрите выходные данные развертывания.

  1. Откройте новый терминал.

  2. Войдите в Azure CLI.

  3. Проверьте целевую подписку Azure.

    az account show
    
  4. Определите кластер в новом файле Terraform. Назовите файловый кластер.tf.

  5. Добавьте эту конфигурацию ресурса в содержимое файла. Замените заполнители <cluster-name>, <resource-group>, и <location> соответствующими значениями.

    variable "admin_username" {
      type        = string
      description = "Administrator username for the cluster."
      sensitive   = true
    }
    
    variable "admin_password" {
      type        = string
      description = "Administrator password for the cluster."
      sensitive   = true
    }
    
    terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    data "azurerm_resource_group" "existing" {
      name = "<resource-group>"
    }
    
    resource "azurerm_mongo_cluster" "cluster" {
      name                   = "<cluster-name>"
      resource_group_name    = data.azurerm_resource_group.existing.name
      location               = "<location>"
      administrator_username = var.admin_username
      administrator_password = var.admin_password
      shard_count            = "1"
      compute_tier           = "M30"
      high_availability_mode = "Disabled"
      storage_size_in_gb     = "32"
      storage_type           = "PremiumSSDv2"
      version                = "8.0"
    }
    

    Tip

    Дополнительные сведения о параметрах использования ресурса azurerm_mongo_cluster смотрите в документации поставщика в Реестре Terraform azurerm.

  6. Инициализация развертывания Terraform.

    terraform init --upgrade
    
  7. Создайте план выполнения и сохраните его в файл с именем cluster.tfplan. Укажите значения для переменных admin_username и admin_password, когда будет предложено.

    ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv) terraform plan --out "cluster.tfplan"
    

    Замечание

    Эта команда временно задает ARM_SUBSCRIPTION_ID переменную среды. Этот параметр необходим для azurerm поставщика, начиная с версии 4.0, дополнительные сведения см. в azurermразделе "Идентификатор подписки".

  8. Примените план выполнения для развертывания кластера в Azure.

    ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv) terraform apply "cluster.tfplan"
    
  9. Дождитесь завершения развертывания. Просмотрите выходные данные развертывания.

  1. Откройте новый терминал.

  2. Войдите в Azure CLI.

  3. Создайте файл JSON с именем cluster.json.

  4. Добавьте этот документ в содержимое файла. Замените заполнители <location>, <username>, и <password> соответствующими значениями.

    {
      "location": "<location>",
      "properties": {
        "administrator": {
          "userName": "<username>",
          "password": "<password>"
        },
        "serverVersion": "8.0",
        "storage": {
          "sizeGb": 32,
          "type": "PremiumSSDv2"
        },
        "compute": {
          "tier": "M30"
        },
        "sharding": {
          "shardCount": 1
        },
        "highAvailability": {
          "targetMode": "Disabled"
        }
      }
    }
    
  5. Используйте команду az rest Azure CLI для создания нового кластера с конфигурацией, указанной в JSON-файле. Укажите имя JSON-файла в качестве body запроса и замените следующие заполнители:

    Description
    <subscription-id> Уникальный идентификатор целевой подписки Azure
    <resource-group> Имя целевой группы ресурсов Azure
    <cluster-name> Уникальное имя нового кластера Azure DocumentDB
    az rest \
        --method "GET" \
        --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.DocumentDB/mongoClusters/<cluster-name>/users?api-version=2025-09-01" \
        --body @cluster.json
    

    Tip

    Используйте az account show для получения уникального идентификатора целевой подписки Azure.

  6. Дождитесь завершения развертывания. Просмотрите выходные данные развертывания.

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

  • Управляемые клиентом ключи (CMK) не поддерживаются в хранилище SSD уровня Premium версии 2.

  • Параметры емкости хранилища на дисках SSD уровня "Премиум" версии 2 можно настроить до четырех раз в течение 24-часового периода. Для недавно созданных кластеров можно внести не более трех настроек емкости хранилища в течение первых 24 часов. 

  • Репликация из SSD уровня "Премиум" в SSD уровня "Премиум" версии 2 поддерживается только для сценариев миграции. Текущая репликация не поддерживается, так как SSD уровня "Премиум" не может соответствовать производительности SSD уровня Premium версии 2 и может привести к более высокой задержке.

  • В настоящее время миграция с SSD уровня "Премиум" на SSD уровня "Премиум" версии 2 не поддерживается. Чтобы обновить SSD уровня "Премиум" до SSD уровня "Премиум" версии 2, вы можете выполнить восстановление на новом сервере с помощью SSD уровня "Премиум" версии 2. В качестве альтернативы, можно создать реплику для чтения с сервера SSD премиум-класса на сервер SSD премиум-класса версии 2 и повысить её статус после завершения репликации.

  • При выполнении любой операции, требующей гидратации диска, может возникнуть следующая ошибка. Эта ошибка возникает, поскольку диски Premium SSD v2 не поддерживают любые операции, пока диск находится в процессе инициализации.

    • Сообщение об ошибке: не удалось завершить операцию, так как диск по-прежнему гидратируется. Повторите попытку через некоторое время.
    • К операциям, которые могут активировать это поведение, относятся:
      • Выполнение масштабирования вычислительных ресурсов, масштабирования хранилища и включение высокой доступности (HA) в быстрой последовательности.
      • Это также включает отработку отказа, инициированную службой, чтобы гарантировать высокий уровень доступности.
      • Использование PITR (на определенный момент времени восстановления) для создания нового кластера и немедленного включения высокой доступности во время гидратации диска.
    • При работе с дисками Premium SSD v2 рекомендуется распределять или выполнять операции последовательно, чтобы обеспечить завершение гидратации диска между действиями.