Гибкость размера экземпляра (ISF)

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

Как работает гибкость размера экземпляра

Каждая служба с поддержкой резервирования определяет группы гибкости размера экземпляра, в которых поддерживается ISF. Только артикулы в той же группе гибкости могут использовать совместно преимущество резервирования. Например, несколько размеров виртуальных машин в одном семействе могут находиться в одной группе, а размеры в другом семействе — нет.

В группе гибкости каждый номер SKU имеет относительное соотношение:

  • Меньшие размеры имеют более низкие коэффициенты.
  • Большие размеры имеют более высокие коэффициенты.

При покупке бронирования вы обязываетесь на определенное количество. Корпорация Майкрософт применяет преимущество резервирования к запущенному правомочному использованию до его исчерпания. Коэффициенты являются относительными единицами, а не ценами.

Корпорация Майкрософт постоянно оценивает текущее использование и предоставляет скидки на резервирование подходящим ресурсам по принципу «первым пришел — первым получил» в рамках области резервирования. Если использование превышает приобретенное количество, остальные расходы выставляются по тарифам по мере использования. Назначение вручную не требуется.

Примеры

Пример виртуальной машины

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

Standard_DS1_v2 Standard_DS2_v2 Standard_DS3_v2 Standard_DS4_v2 Но скидка на резервирование не применяется к размерам виртуальных машин, которые перечислены в различных группах гибкости размеров экземпляров, таких как SKU серии DSv2 для высокопроизводительной памяти: Standard_DS11_v2, Standard_DS12_v2 и т. д.

В группе гибкости размеров экземпляров количество виртуальных машин, на которые применяется скидка на резервирование, зависит от выбранного размера виртуальной машины при покупке. Также оно зависит от размеров используемых виртуальных машин. Столбец коэффициента позволяет сравнить относительную занимаемую память для каждого размера виртуальной машины в этой группе гибкости размера экземпляра. Используйте значение коэффициента, чтобы вычислить, как скидка на резервирование применяется к используемым виртуальным машинам.

Пример Microsoft Foundry

Предположим, что вы покупаете глобальное резервирование на 300 PTU для зарезервированной пропускной способности Microsoft Foundry.

  • Если вы развертываете 250 глобальных ПТП для Azure OpenAI Service и 50 глобальных ПТП для DeepSeek в одном регионе, все 300 ПТП покрыты резервированием.

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

Другие службы

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

Извлечение коэффициентов гибкости размера экземпляра с помощью API каталогов Azure

В этом разделе описывается, как использовать API каталогов резервирования Azure для извлечения коэффициентов гибкости размера экземпляра (ISF) для резервирования Azure. ISF позволяет гибко применять преимущества резервирования для различных размеров в пределах одного семейства ресурсов и региона. Это относится к различным типам резервирования Azure, включая Virtual Machines, кэш Redis Azure и другие поддерживаемые службы.

Что вы узнаете

Использование API каталогов Azure с помощью PowerShell для извлечения коэффициентов гибкости размера экземпляров для различных типов резервирования Azure, создания CSV-файлов ISF и обработки различных типов ресурсов, поддерживающих ISF.

Необходимые условия

  • Подписка Azure с соответствующими разрешениями
  • Доступ к API управления ресурсами Azure
  • PowerShell с модулем Az.Reservations (примеры PowerShell)
  • Понимание типов ресурсов Azure, для которых вы хотите создать коэффициенты ISF

Структура CSV-файла ISF

Полученный CSV-файл содержит три столбца:

колонна Описание
InstanceSizeFlexibilityGroup Имя группы гибкости (например, Av2 Series, "General Purpose Gen5")
ArmSkuName Имя SKU Azure Resource Manager (например, "Standard_A1_v2", "GP_Gen5_2")
Ratio Коэффициент гибкости для SKU в рамках своей группы

Справочник по API

Для разработчиков, которые предпочитают использовать REST API напрямую, см. документацию по REST API каталога резервирования Azure.

Информация об ISF-коэффициенте содержится в ответе API в массиве каждого элемента каталога skuProperties. Найдите свойства со следующими именами:

  • ReservationsAutofitGroup — Содержит имя группы гибкости
  • ReservationsAutofitRatio — Содержит значение коэффициента для этого номера SKU

Нормализация коэффициентов ISF

Необработанные коэффициенты ISF из API и PowerShell не всегда начинаются с 1 наименьшего SKU в группе. Например, BS Series группа начинается с 0.25 и Ddsv5 Series начинается с 2. Чтобы упростить сравнение коэффициентов, можно нормализовать их так, чтобы наименьший номер SKU в каждой группе гибкости имеет отношение 1.

# Function to normalize ISF ratios so the smallest SKU in each group = 1
function Get-NormalizedISFRatios {
    param(
        [Parameter(Mandatory=$true)]
        [PSCustomObject[]]$ISFData
    )

    $NormalizedData = @()
    $groups = $ISFData | Group-Object InstanceSizeFlexibilityGroup

    foreach ($group in $groups) {
        # Find the minimum ratio in the group
        $minRatio = ($group.Group | ForEach-Object { [double]$_.Ratio } | Measure-Object -Minimum).Minimum

        foreach ($item in $group.Group) {
            $NormalizedData += [PSCustomObject]@{
                InstanceSizeFlexibilityGroup = $item.InstanceSizeFlexibilityGroup
                ArmSkuName                   = $item.ArmSkuName
                Ratio                        = [math]::Round([double]$item.Ratio / $minRatio, 4)
            }
        }
    }

    return $NormalizedData
}

# Normalize the extracted ISF data
$NormalizedRatios = Get-NormalizedISFRatios -ISFData $ISFRatios

# Export to CSV
$NormalizedRatios | Export-Csv -Path "isf-ratios-normalized.csv" -NoTypeInformation

# Display sample results
$NormalizedRatios | Select-Object -First 10 | Format-Table

Пример: до и после нормализации

Серия BS

ArmSkuName Исходное соотношение Нормализованное соотношение
Standard_B1ls 0.25 1
Standard_B1s 0,5 2
Standard_B2s 2 8

Серия Ddsv5

ArmSkuName Исходное соотношение Нормализованное соотношение
Standard_D2ds_v5 2 1
Standard_D4ds_v5 4 2
Standard_D8ds_v5 8 4
Standard_D16ds_v5 16 8
Standard_D32ds_v5 32 16
Standard_D48ds_v5 48 двадцать четыре
Standard_D64ds_v5 64 32
Standard_D96ds_v5 96 48

Нормализованная структура CSV-файла

колонна Описание
InstanceSizeFlexibilityGroup Имя группы гибкости
ArmSkuName SKU-имя в Azure Resource Manager
Ratio Нормализованное соотношение (наименьший номер SKU в каждой группе = 1)

Замечание

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

Использование PowerShell

Установка обязательного модуля

# Install the Az.Reservations module if not already installed
Install-Module -Name Az.Reservations -Force -AllowClobber

# Connect to Azure
Connect-AzAccount

Получение данных каталога с помощью PowerShell

# Set parameters
$SubscriptionId = "your-subscription-id"
$Location = "eastus"
$ResourceType = "VirtualMachines"  # Change for different resource types

# Set subscription context
Set-AzContext -SubscriptionId $SubscriptionId

# Get catalog data
$CatalogData = Get-AzReservationCatalog -SubscriptionId $SubscriptionId -Location $Location -ReservedResourceType $ResourceType

# Display results
$CatalogData | Select-Object Name, ResourceType | Format-Table

Извлечение коэффициентов ISF из ответа PowerShell

Ответ API каталогов содержит информацию о соотношении ISF в массиве skuProperties. Найдите свойства с именами InstanceSizeFlexibilityRatio и InstanceSizeFlexibilityGroup.

Пример синтаксического анализа PowerShell

# Function to extract ISF data from catalog response
function Get-ISFRatios {
    param(
        [Parameter(Mandatory=$true)]
        $CatalogData
    )
   
    $ISFData = @()
   
    foreach ($item in $CatalogData) {
        $flexGroup = ""
        $ratio = ""
       
        # Extract ISF properties
        foreach ($property in $item.SkuProperties) {
            if ($property.Name -eq "ReservationsAutofitGroup") {
                $flexGroup = $property.Value
            }
            elseif ($property.Name -eq "ReservationsAutofitRatio") {
                $ratio = $property.Value
            }
        }
       
        # Only include items with both group and ratio
        if ($flexGroup -and $ratio) {
            $ISFData += [PSCustomObject]@{
                InstanceSizeFlexibilityGroup = $flexGroup
                ArmSkuName = $item.Name
                Ratio = $ratio
            }
        }
    }
   
    return $ISFData
}

# Extract ISF data
$ISFRatios = Get-ISFRatios -CatalogData $CatalogData

# Export to CSV
$ISFRatios | Export-Csv -Path "isf-ratios.csv" -NoTypeInformation

# Display sample results
$ISFRatios | Select-Object -First 10 | Format-Table

Важные замечания

  • Пагинация: API возвращает пагинированные результаты. Используйте свойство nextLink для получения всех данных.
  • Региональные данные: коэффициенты ISF могут различаться в зависимости от региона Azure. Создайте отдельные файлы для каждого целевого региона.
  • Поддержка типов ресурсов: не все сервисы Azure поддерживают ISF. Проверьте ответ API для свойств InstanceSizeFlexibilityGroup.
  • Регулярные обновления: коэффициенты ISF могут изменяться при появлении новых размеров ресурсов. Регулярно обновляйте файлы.
  • Коэффициенты, относящиеся к службе: разные службы могут иметь различные методы вычисления и масштабы коэффициентов ISF.

Troubleshooting

Распространенные проблемы и решения

Проблема Решение
Ошибки проверки подлинности Убедитесь, что у вас есть Microsoft.Capacity/catalogs/read разрешение
Пустые результаты Убедитесь, что параметр расположения соответствует имени региона Azure, а тип ресурса поддерживает ISF.
Отсутствующие свойства ISF Некоторые семейства ресурсов могут не поддерживать ISF. Такое поведение ожидаемо.
Недопустимый тип ресурса Проверьте поддерживаемые значения типов зарезервированных ресурсов для целевой службы

Дальнейшие действия