你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
超量分配产能预留
适用于:✔️ Linux VM ✔️ Windows VM ✔️ 统一规模集 ✔️ 灵活规模集
Azure 允许在超出容量预留数量之外关联额外的 VM。 这些 VM 可用于支持突发和其他横向扩展方案,而不受预留容量量的限制。 唯一的区别是,超出预留数量的 VM 不会获得容量可用性 SLA 权益。 只要 Azure 具有满足虚拟机要求的可用容量,额外分配就会成功。
产能预留组的实例视图提供每个成员产能预留使用情况的快照。 可以使用实例视图来查看超量分配的工作原理。
本文假设你已创建产能预留组 (myCapacityReservationGroup
)、成员产能预留 (myCapacityReservation
) 和与该组关联的虚拟机 (myVM1)。 有关详细信息,请转到创建产能预留和将 VM 关联到产能预留。
产能预留组的实例视图
容量预留组的实例视图将如下所示:
GET
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/myCapacityReservationGroup?$expand=instanceview&api-version=2021-04-01
{
"name": "myCapacityReservationGroup",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/myCapacityReservationGroup",
"type": "Microsoft.Compute/capacityReservationGroups",
"location": "eastus",
"properties": {
"capacityReservations": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/MYCAPACITYRESERVATIONGROUP/capacityReservations/MYCAPACITYRESERVATION"
}
],
"virtualMachinesAssociated": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/myVM1"
}
],
"instanceView": {
"capacityReservations": [
{
"name": "myCapacityReservation",
"utilizationInfo": {
"virtualMachinesAllocated": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/myVM1"
}
]
},
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"time": "<time>"
}
]
}
]
}
}
}
假设创建了另一个名为 myVM2 的虚拟机,并将其与上述产能预留组相关联。
容量预留组的实例视图现在将如下所示:
{
"name": "myCapacityReservationGroup",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/myCapacityReservationGroup",
"type": "Microsoft.Compute/capacityReservationGroups",
"location": "eastus",
"properties": {
"capacityReservations": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/MYCAPACITYRESERVATIONGROUP/capacityReservations/MYCAPACITYRESERVATION"
}
],
"virtualMachinesAssociated": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/myVM1"
},
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/myVM2"
}
],
"instanceView": {
"capacityReservations": [
{
"name": "myCapacityReservation",
"utilizationInfo": {
"virtualMachinesAllocated": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/myVM1"
},
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/myVM2"
}
]
},
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"time": "<time>"
}
]
}
]
}
}
}
请注意,virtualMachinesAllocated
(2) 的长度大于 capacity
(1)。 这种有效状态称为“超量分配”。
重要
Azure 不会因为产能预留已完全使用而停止分配。 只要 Azure 有可用容量并满足其他约束(例如可用配额),自动缩放规则、临时横向扩展和相关要求所用的容量就会超出预留容量。
状态和注意事项
给定产能预留有三种有效状态:
状态 | 状态 | 注意事项 |
---|---|---|
预留容量可用 | virtualMachinesAllocated <capacity 的长度 |
是否需要所有预留容量? (可选)减少容量以降低成本。 |
预留已使用 | virtualMachinesAllocated == capacity 的长度 |
除非解除分配某些现有 VM,否则其他 VM 不会收到容量 SLA。 (可选)尝试增加容量,以便额外计划的 VM 可收到 SLA。 |
预留已超量分配 | virtualMachinesAllocated >capacity 的长度 |
其他 VM 不会收到容量 SLA。 此外,如果解除分配,相应数量的 VM(virtualMachinesAllocated - capacity 的长度)将不会收到容量 SLA。 (可选)增加容量,将容量 SLA 添加到更多现有 VM。 |