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


Используйте эфемерные узлы диска ОС для пулов Batch Azure

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

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

  • Существует более низкая задержка чтения и записи на временные диски ОС, что может привести к повышению производительности приложения.
  • Нет затрат на хранение для временных дисков ОС, в то время как для каждого управляемого диска ОС имеются затраты.
  • Пересоздание образа для вычислительных узлов происходит быстрее для эфемерных дисков по сравнению с управляемыми дисками при поддержке пакетной службы.
  • Время запуска узла может быть немного ускорено при использовании эфемерных дисков ОС.
  • Временные диски ОС не являются очень устойчивыми и доступными; При удалении виртуальной машины по какой-либо причине диск ОС теряется. Поскольку рабочие нагрузки пакетной службы по своей природе являются безгосударственными и обычно не полагаются на сохранение изменений на диске ОС, эфемерные диски ОС подходят для большинства рабочих нагрузок пакетной службы.
  • Временные диски ОС в настоящее время не поддерживаются всеми сериями виртуальных машин Azure. Если размер виртуальной машины не поддерживает временный диск ОС, необходимо использовать управляемый диск ОС.

Примечание.

Конфигурация временного диска ОС применима только к пулам virtualMachineConfiguration и не поддерживается пулами cloudServiceConfiguration. Мы рекомендуем использовать virtualMachineConfiguration для пулов пакетной службы, так как пулы cloudServiceConfiguration не поддерживают все функции, и новые возможности не планируются.

Поддержка серии виртуальных машин

Чтобы определить, поддерживает ли серия виртуальных машин временные диски ОС, изучите документацию для каждого экземпляра виртуальной машины. Например, серия Ddv4 и Ddsv4 поддерживает временные диски ОС.

Кроме того, можно программно отправить запрос о наличии поддержки EphemeralOSDiskSupported. Пример командлета PowerShell для запроса этой возможности приведен в часто задаваемых вопросах о временном диске ОС.

Создание пула, использующего временные диски ОС

Свойство EphemeralOSDiskSettings по умолчанию не задано. Для установки временного использования диска ОС на узлах пула необходимо задать это свойство.

Совет

Временные диски ОС нельзя использовать в сочетании с точечными виртуальными машинами в пулах Batch из-за политики вытеснения, управляемой службой.

В следующем примере показано, как создать пул Batch, где узлы используют эфемерные диски ОС вместо управляемых дисков.

Примеры кода

Этот фрагмент кода демонстрирует, как создать пул с эфемерными дисками ОС, используя пакет Azure Batch Python SDK и временный диск (кэш).

virtual_machine_configuration=batch.models.VirtualMachineConfiguration(
    image_reference=image_ref_to_use,
    node_agent_sku_id=node_sku_id,
    os_disk=batch.models.OSDisk(
        ephemeral_os_disk_settings=batch.models.DiffDiskSettings(
            placement=batch.models.DiffDiskPlacement.cache_disk
        )
    )
)

Это тот же фрагмент кода, но для создания пула с временными дисками операционной системы с помощью пакет SDK Azure Batch для .NET и C#.

VirtualMachineConfiguration virtualMachineConfiguration = new VirtualMachineConfiguration(
        imageReference: imageReference,
        nodeAgentSkuId: nodeAgentSku
        );
virtualMachineConfiguration.OSDisk = new OSDisk();
virtualMachineConfiguration.OSDisk.EphemeralOSDiskSettings = new DiffDiskSettings();
virtualMachineConfiguration.OSDisk.EphemeralOSDiskSettings.Placement = DiffDiskPlacement.CacheDisk;

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