Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании пула в пакетной службе Azure с помощью конфигурации виртуальной машины необходимо указать образ виртуальной машины, предоставляющий операционную систему, для каждого вычислительного узла в пуле. Вы можете создать пул виртуальных машин либо с использованием поддерживаемого образа из Azure Marketplace, либо создать пользовательский образ с помощью образа из Azure Compute Gallery.
Преимущества Галереи вычислений Azure
При использовании Коллекции вычислений Azure для настраиваемого образа вы можете управлять типом и конфигурацией операционной системы, а также типами дисков данных. Общий образ может включать приложения и справочные данные, которые становятся доступными на всех узлах пула Batch, как только они настроены.
В зависимости от требований для вашей среды, у вас также может быть несколько версий образа. При использовании версии образа для создания виртуальной машины версия образа используется для создания новых дисков для виртуальной машины.
Использование общего образа помогает сократить время на подготовку вычислительных узлов пула для выполнения рабочей нагрузки пакетов. После подготовки можно использовать образ Azure Marketplace и установить программное обеспечение на каждый вычислительный узел, однако использование общего образа, как правило, более эффективно. Кроме того, можно указать несколько реплик для общего образа, поэтому при создании пулов с несколькими виртуальными машинами (более 600 виртуальных машин) вы сэкономите время на создание пула.
Использование общего образа, настроенного для конкретного сценария, дает определенные преимущества.
- Использование одних и тех же образов в разных регионах. Вы можете создавать реплики общих образов в разных регионах, чтобы все пулы использовали один и тот же образ.
- Настройка операционной системы (ОС). Можно настроить конфигурацию диска операционной системы образа.
- Предварительная установка приложений. Предварительная установка приложений на диск операционной системы — это более эффективный и безопасный способ, чем установка приложений после подготовки вычислительных узлов с помощью задачи запуска.
- Скопируйте большие объемы данных один раз. Включите статические данные в управляемый общий образ, скопировав их на его диски данных. Это необходимо сделать только один раз, и данные станут доступными в каждом узле пула.
- Увеличьте пулы до больших размеров. С помощью Azure Compute Gallery вы можете создавать более крупные пулы с вашими пользовательскими образами, а также дополнительными репликами общих образов.
- Более высокая производительность по сравнению с использованием только кастомного управляемого образа. При использовании пула настраиваемых образов Shared Image время достижения стабильного состояния сокращается до 25 %, а задержка простоя виртуальной машины уменьшается до 30 %.
- Версионирование и группировка образов для упрощенного управления. Определение группирования образа содержит сведения о том, с какой целью данный образ был создан и для какой ОС он предназначен, а также информацию о его использовании. Группирование образов позволяет упростить управление образами. Дополнительные сведения см. в разделе Определения образов.
Необходимые условия
- Учетная запись пакетной службы Azure. Чтобы создать учетную запись Batch, обратитесь к примерам быстрого начала работы с использованием портала Azure или Azure CLI.
Примечание.
Требуется проверка подлинности с помощью идентификатора Microsoft Entra. Если вы используете проверку подлинности общего ключа, вы получите ошибку проверки подлинности.
- Образ из Галереи вычислительных ресурсов Azure. Для создания общего образа необходимо иметь ресурс управляемого образа или создать его. Образ должен быть создан на основе моментальных снимков диска ОС виртуальной машины и, при необходимости, её подключённых данных дисков.
Примечание.
Если общий образ находится в подписке, отличной от учетной записи Batch, то необходимо зарегистрировать поставщика ресурсов Microsoft.Batch в подписке, в которой размещен общий образ. Обе подписки должны принадлежать одному клиенту Microsoft Entra.
Образ может находиться в другом регионе при условии, что он имеет реплики в том же регионе, что и ваша учётная запись Batch.
Если вы используете приложение Microsoft Entra для создания настраиваемого пула образов с изображением в Галерее вычислений Azure, этому приложению должна быть предоставлена встроенная роль Azure, которая дает ему доступ к коллективному образу. Такой доступ можно предоставить на портале Azure, перейдя к общему образу, выбрав Управление доступом (IAM) и назначив приложению соответствующую роль.
Примечание.
Разрешения читателя для образа в галерее вычислений Azure недостаточны, так как для получения соответствующего доступа необходимо выполнение минимального действия: Microsoft.Compute/disks/beginGetAccess/action.
Подготовка общего образа
Подготовить в Azure общий образ можно из управляемого образа, который можно создать из следующих компонентов:
- моментальных снимков ОС и дисков данных виртуальной машины Azure;
- обобщенной виртуальной машины Azure с управляемыми дисками;
- обобщенного локального виртуального жесткого диска, отправленного в облако.
Примечание.
Пакетная служба поддерживает только универсальные общие образы. Создать пул из специализированного общего образа невозможно.
Ниже приведены действия по подготовке виртуальной машины, созданию моментального снимка и созданию образа на основе моментального снимка.
Подготовка виртуальной машины
Если вы создаете новую виртуальную машину для образа, используйте образ Azure Marketplace, поддерживаемый Azure Batch, в качестве базового образа для вашего управляемого образа.
Чтобы получить полный список текущих ссылок на образы Azure Marketplace, поддерживаемых службой пакетной обработки Azure, используйте один из следующих API-интерфейсов для получения списка образов виртуальных машин Windows и Linux.
- PowerShell: поддерживаемые изображения Azure Batch
- Azure CLI: поддерживаемые образы пула Azure Batch
- API пакетной службы: API пакетной службы и поддерживаемые образы службы Azure Batch
При создании виртуальных машин следуйте рекомендациям ниже.
- Убедитесь, что виртуальная машина создается с управляемым диском. Это параметр хранилища по умолчанию при создании виртуальной машины.
- Не устанавливайте расширения Azure, такие как расширение пользовательского скрипта, на виртуальной машине. Если образ содержит предварительно установленное расширение, в Azure могут возникнуть проблемы при развертывании пула пакетной службы.
- При использовании подключенных дисков данных необходимо подключить и отформатировать диски в виртуальной машине, чтобы использовать их.
- Убедитесь, что предоставленный базовый образ операционной системы использует этот временный диск по умолчанию. В данный момент агент узла Batch ожидает диск по умолчанию для временных данных.
- Убедитесь, что диск ОС не зашифрован.
- После запуска виртуальной машины подключитесь к ней с помощью RDP (для Windows) или SSH (для Linux). Установите все необходимое программное обеспечение или скопируйте необходимые данные.
- Чтобы ускорить подготовку пула, используйте параметр кэширования дисков ReadWrite для диска ОС виртуальной машины.
Создание Azure Compute Gallery
Чтобы сделать пользовательский образ доступным, необходимо создать галерею вычислений Azure. Выберите эту коллекцию при создании образа на следующих шагах. Чтобы узнать, как создать Галерею вычислений Azure для ваших образов, см. Создание галереи вычислений Azure.
Создание образа
Сведения о создании образа из виртуальной машины на портале см. в статье Создание образа виртуальной машины на портале.
Сведения о создании образа с помощью источника, отличного от виртуальной машины, см. в статье "Создание образа".
Примечание.
Если базовый образ содержит сведения о плане покупки, убедитесь, что образ коллекции имеет идентичные сведения о плане покупки, как базовый образ. Чтобы получить более подробную информацию о создании образа с планом покупки, обратитесь к разделу "Предоставление сведений о плане покупки Azure Marketplace при создании образов".
Если базовый образ не содержит сведений о плане покупки, не указывайте сведения о плане покупки для образа коллекции.
Сведения о плане покупки этих образов Marketplace см. в руководствах по ВМ Linux или Windows.
Используйте Azure PowerShell Get-AzGalleryImageDefinition или Azure CLI az sig image-definition show, чтобы проверить, имеет ли образ в галерее правильные сведения о плане.
Создание пула из общего образа с помощью Azure CLI
Чтобы создать пул из общего образа с помощью Azure CLI, используйте команду az batch pool create. Укажите идентификатор общего образа в поле --image. Убедитесь, что тип ОС и номер SKU соответствуют версиям, указанным в параметре --node-agent-sku-id
Внимание
Идентификатор SKU агента узла должен соответствовать идентификатору издателя, предложения или SKU, чтобы узел был запущен.
az batch pool create \
--id mypool --vm-size Standard_A1_v2 \
--target-dedicated-nodes 2 \
--image "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}" \
--{node-agent-sku-id}
Создание пула из общего образа с помощью C#
Кроме того, можно создать пул из общего образа с помощью пакета SDK для C#.
private static VirtualMachineConfiguration CreateVirtualMachineConfiguration(ImageReference imageReference)
{
return new VirtualMachineConfiguration(
imageReference: imageReference,
nodeAgentSkuId: {});
}
private static ImageReference CreateImageReference()
{
return new ImageReference(
virtualMachineImageId: "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}");
}
private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfiguration vmConfiguration)
{
try
{
CloudPool pool = batchClient.PoolOperations.CreatePool(
poolId: PoolId,
targetDedicatedComputeNodes: PoolNodeCount,
virtualMachineSize: PoolVMSize,
virtualMachineConfiguration: vmConfiguration);
pool.Commit();
}
...
}
Создание пула из общего образа с помощью Python
Вы также можете создать пул из общего образа с помощью пакета SDK для Python:
# Import the required modules from the
# Azure Batch Client Library for Python
import azure.batch as batch
import azure.batch.models as batchmodels
from azure.common.credentials import ServicePrincipalCredentials
# Specify Batch account and service principal account credentials
account = "{batch-account-name}"
batch_url = "{batch-account-url}"
ad_client_id = "{sp-client-id}"
ad_tenant = "{tenant-id}"
ad_secret = "{sp-secret}"
# Pool settings
pool_id = "LinuxNodesSamplePoolPython"
vm_size = "STANDARD_D2_V3"
node_count = 1
# Initialize the Batch client with Azure AD authentication
creds = ServicePrincipalCredentials(
client_id=ad_client_id,
secret=ad_secret,
tenant=ad_tenant,
resource="https://batch.core.windows.net/"
)
client = batch.BatchServiceClient(creds, batch_url)
# Configure the start task for the pool
start_task = batchmodels.StartTask(
command_line="printenv AZ_BATCH_NODE_STARTUP_DIR"
)
start_task.run_elevated = True
# Create an ImageReference which specifies the image from
# Azure Compute Gallery to install on the nodes.
ir = batchmodels.ImageReference(
virtual_machine_image_id="/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}"
)
# Create the VirtualMachineConfiguration, specifying
# the VM image reference and the Batch node agent to
# be installed on the node.
vmc = batchmodels.VirtualMachineConfiguration(
image_reference=ir,
{node_agent_sku_id}
)
# Create the unbound pool
new_pool = batchmodels.PoolAddParameter(
id=pool_id,
vm_size=vm_size,
target_dedicated_nodes=node_count,
virtual_machine_configuration=vmc,
start_task=start_task
)
# Create pool in the Batch service
client.pool.add(new_pool)
Создание пула из общего образа или пользовательского образа с помощью портала Azure
Чтобы создать пул из общего образа на портале Azure, выполните указанные ниже действия.
- Откройте портал Azure.
- Перейдите в раздел Пакетные учетные записи и выберите свою учетную запись.
- Выберите Пулы, а затем — Добавить для создания нового пула.
- В разделе Тип образа выберите Коллекция вычислений Azure.
- Заполните оставшиеся разделы сведениями об управляемом образе.
- Нажмите ОК.
- После выделения узла используйте connect для создания пользователя и файла RDP для Windows ИЛИ использования SSH для Linux для входа в выделенный узел и проверки.
Рекомендации по созданию крупных пулов
Если вы планируете создать пул из сотен или тысяч виртуальных машин или более с помощью общего образа, используйте следующие рекомендации.
Число реплик Галереи вычислений Azure. Рекомендуем иметь хотя бы одну реплику для каждого пула, содержащего до 300 экземпляров. Например, если вы создаете пул из 3000 виртуальных машин, рекомендуется сохранить не менее 10 реплик вашего образа. Для повышения производительности рекомендуется хранить больше реплик, чем минимальные требования.
Тайм-аут изменения размера. Если в пуле содержится фиксированное число узлов (если он не выполняет автомасштабирование), увеличьте значение свойства
resizeTimeoutпула в зависимости от размера пула. Для каждых 1000 виртуальных машин рекомендуемое время ожидания изменения размера составляет не менее 15 минут. Например, рекомендуемое время ожидания изменения размера пула с 2000 виртуальными машинами составляет не менее 30 минут.
Следующие шаги
- Подробные сведения о пакетной службе см. в статье Рабочий процесс и ресурсы пакетной службы.
- Узнайте о Галерее вычислений Azure.