Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Некоторые серии виртуальных машин Azure поддерживают использование временных дисков ОС, создающих диск ОС на локальном хранилище виртуальной машины узла. Конфигурация пула пакетной службы по умолчанию использует управляемые диски Azure для диска ОС узла, где управляемый диск похож на физический диск, но виртуализирован и сохранен в удаленном хранилище Azure.
Для пакетных рабочих нагрузок основными преимуществами использования временных ОС-дисков являются снижение затрат на пулы, возможность ускорения времени запуска узла и повышение производительности приложения благодаря более высокой производительности ОС-диска. При выборе того, следует ли использовать временные диски ОС для рабочей нагрузки, рассмотрите следующие последствия:
- Существует более низкая задержка чтения и записи на временные диски ОС, что может привести к повышению производительности приложения.
- Нет затрат на хранение для временных дисков ОС, в то время как для каждого управляемого диска ОС имеются затраты.
- Пересоздание образа для вычислительных узлов происходит быстрее для эфемерных дисков по сравнению с управляемыми дисками при поддержке пакетной службы.
- Время запуска узла может быть немного ускорено при использовании эфемерных дисков ОС.
- Временные диски ОС не являются очень устойчивыми и доступными; При удалении виртуальной машины по какой-либо причине диск ОС теряется. Поскольку рабочие нагрузки пакетной службы по своей природе являются безгосударственными и обычно не полагаются на сохранение изменений на диске ОС, эфемерные диски ОС подходят для большинства рабочих нагрузок пакетной службы.
- Временные диски ОС в настоящее время не поддерживаются всеми сериями виртуальных машин Azure. Если размер виртуальной машины не поддерживает временный диск ОС, необходимо использовать управляемый диск ОС.
Примечание.
Конфигурация временного диска ОС применима только к пулам virtualMachineConfiguration и не поддерживается пулами cloudServiceConfiguration. Мы рекомендуем использовать virtualMachineConfiguration для пулов пакетной службы, так как пулы cloudServiceConfiguration не поддерживают все функции, и новые возможности не планируются.
Поддержка серии виртуальных машин
Чтобы определить, поддерживает ли серия виртуальных машин временные диски ОС, изучите документацию для каждого экземпляра виртуальной машины. Например, серия Ddv4 и Ddsv4 поддерживает временные диски ОС.
Кроме того, можно программно отправить запрос о наличии поддержки EphemeralOSDiskSupported. Пример командлета PowerShell для запроса этой возможности приведен в часто задаваемых вопросах о временном диске ОС.
Создание пула, использующего временные диски ОС
Свойство EphemeralOSDiskSettings по умолчанию не задано. Для установки временного использования диска ОС на узлах пула необходимо задать это свойство.
Совет
Временные диски ОС нельзя использовать в сочетании с точечными виртуальными машинами в пулах Batch из-за политики вытеснения, управляемой службой.
В следующем примере показано, как создать пул Batch, где узлы используют эфемерные диски ОС вместо управляемых дисков.
Примеры кода
В этом фрагменте кода показано, как создать пул с эфемерными дисками ОС с помощью пакета SDK Python для azure-mgmt-batch, используя временный диск для кэширования.
virtual_machine_configuration = models.VirtualMachineConfiguration(
image_reference=image_ref_to_use,
node_agent_sku_id=node_sku_id,
os_disk=models.BatchOsDisk(
ephemeral_os_disk_settings=models.BatchDiffDiskSettings(
placement=models.DiffDiskPlacement.CACHE_DISK
)
)
)
def create_pool_with_ephemeral_os_disk():
client = BatchManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subscriptionId",
)
pool = client.pool.create(
resource_group_name="resourceGroupName",
account_name="accountName",
pool_name="ephemeralOSDiskPool",
parameters=BatchAccountPoolData(
vm_size="standard_ds1_v2",
deployment_configuration=DeploymentConfiguration(
virtual_machine_configuration=VirtualMachineConfiguration(
image_reference=ImageReference(
publisher="Canonical",
offer="UbuntuServer",
sku="22.04-LTS",
),
node_agent_sku_id="batch.node.ubuntu 22.04",
os_disk=OSDisk(
ephemeral_os_disk_settings=DiffDiskSettings(
placement=DiffDiskPlacement.CACHE_DISK
)
),
)
),
),
)
Это тот же фрагмент кода, но для создания пула с временными дисками ОС с помощью пакета SDK для Azure.ResourceManager.Batch и C#.
using Azure;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Batch;
using Azure.ResourceManager.Batch.Models;
//...
public async Task SetEphemeralOSDisk()
{
ArmClient client = new ArmClient(new DefaultAzureCredential());
ResourceIdentifier batchAccountResourceId =
BatchAccountResource.CreateResourceIdentifier("subscriptionId", "resourceGroupName", "accountName");
BatchAccountResource batchAccount = client.GetBatchAccountResource(batchAccountResourceId);
BatchAccountPoolCollection poolCollection = batchAccount.GetBatchAccountPools();
BatchAccountPoolData poolData = new BatchAccountPoolData()
{
VmSize = "standard_ds1_v2",
DeploymentConfiguration = new BatchDeploymentConfiguration()
{
VmConfiguration = new BatchVmConfiguration(
imageReference: new BatchImageReference()
{
Publisher = "Canonical",
Offer = "UbuntuServer",
Sku = "22.04-LTS"
},
nodeAgentSkuId: "batch.node.ubuntu 22.04")
{
OSDisk = new BatchOSDisk()
{
EphemeralOSDiskSettings = new DiffDiskSettings()
{
Placement = BatchDiffDiskPlacement.CacheDisk
}
}
}
}
};
ArmOperation<BatchAccountPoolResource> pool = await poolCollection.CreateOrUpdateAsync(
WaitUntil.Completed, "ephemeralOSDiskPool", poolData);
}
Следующие шаги
- Ознакомьтесь с эфемерными дисками ОС. Часто задаваемые вопросы.
- Узнайте подробнее о рабочем процессе и основных ресурсах пакетной службы, таких как пулы, узлы, задания и задачи.
- Узнайте о затратах, которые могут быть связаны с рабочими нагрузками пакетной службы Azure.