你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 计算舰队基于属性的 VM 选择(预览版)

重要

基于属性的 VM 选择目前为预览版。 需同意补充使用条款才可使用预览版。 在正式版 (GA) 推出之前,此功能的某些方面可能会有所更改。

通过基于属性的虚拟机 (VM) 选择功能,可以将实例要求配置为一组 VM 属性,例如内存、vCPU 和存储。 这些要求与所有合适的 Azure VM 大小相匹配,简化了 VM 配置的创建和维护。 此功能还让你能够在较新的 VM 代系可用时无缝利用它们。 你还可以通过 Azure 现成虚拟机访问更广泛的容量。 计算舰队服务可以选择并启动与指定属性匹配的 VM,无需手动选择 VM 大小。

显示基于属性的 VM 选择流程图的屏幕截图。

基于属性的 VM 选择非常适合无状态 Web 服务、大规模批处理、大数据群集或持续集成管道等方案。 财务风险建模、日志处理和图像渲染等工作负载可以利用运行数十万个并发核心或实例的功能。 利用现成虚拟机时,现在不需要单独指定大量 VM 大小和类型,而是可以通过简单的属性配置涵盖所有相关选项,包括新发布的选项。

先决条件

若要使用基于属性的 VM 选择,必须注册 Azure 计算舰队预览功能。 在你填写注册表并获得批准后,我们​​将与你联系,告知后续步骤和加入详情。

好处

  • 现成 VM 的最佳灵活性:计算舰队可从多种 VM 大小中进行选择,在部署现成虚拟机时提供最佳灵活性。 此过程符合现成使用的最佳做法,可确保 VM 大小选择的灵活性,从而提高 Azure 现成 VM 满足和分配所需计算容量的可能性。
  • 简化的 VM 类型选择:由于可用的 VM 大小种类繁多,因此找到最适合工作负载的 VM 可能是一项复杂的任务。 通过指定 VM 属性,Azure 虚拟机规模集可以自动选择满足工作负载要求的 VM 大小。 这种自动化可简化流程,并确保选择合适的资源。
  • 自动采用新的 VM 大小:Azure 虚拟机规模集可以在新一代 VM 大小可用时自动将其纳入。 如果这些新的 VM 大小可满足指定要求,并且与所选分配策略保持一致,规模集就可以无缝使用它们,确保部署从最新的改进中受益,而无需手动更新。

处理

基于属性的 VM 选择如何工作? 该过程涉及两个主要步骤:确定 VM 类型,然后是应用分配策略

  • 确定 VM 类型:基于属性的选择根据指定的属性、所选的 Azure 区域和可用区域生成 VM 类型列表。
  • 应用分配策略:计算舰队会将选定的分配策略应用于生成的 VM 列表。

对于 Azure 现成 VM,基于属性的选择支持容量优化和最低价格分配策略。 对于标准 VM,基于属性的选择支持最低价格分配策略。 计算舰队将属性配置解析为合适的 VM 类型列表,并首先启动价格最低的 VM 以满足容量请求的按需部分,然后根据需要继续启动下一个价格最低的 VM。

基于属性的选择功能可实现更灵活的 VM 类型配置,无需大量实例类型列表。 这样,就可以在所选 Azure 区域引入较新的 VM 代系时自动利用它们。 此外,基于属性的选择可增强通过现成请求高效访问更多容量的能力。

通过基于属性的选择,VM 大小配置的管理变得更加简单、更具可伸缩性,确保工作负载以优化的成本和性能顺利运行。

支持的 VM 属性

以下 VM 属性列表受支持并提供配置示例。

vCpuCount

  • 必须
  • 如果指定了 VMAttributes,则必须指定
  • 指定了 vCpuCount 的范围(从最小值到最大值)
  • 需要提供 min(uint)max(uint)(如果已指定)
"vCpuCount": {
	"value": {
		"min": 2, 
		"max": 24
	}
}

memoryInGiB

  • 必须
  • 如果指定了 VMAttributes,则必须指定
  • 指定了 memoryInGiB 的范围(从最小值到最大值)
  • 需要提供 min(double)max(double)(如果已指定)
"memoryInGiB": { 
	"value": {  
		"min": 0,
		"max": 1024
	}
}

memoryInGiBPerVCpu

  • 可选
  • 指定了 memoryInGiBPerVCpu 的范围(从最小值到最大值)
  • 需要提供 min(double)max(double)(如果已指定)
"memoryInGiBPerVCpu": { 
	"value": {  
		"min": 0,
		"max": 8 
	} 
}

localStorageSupport

  • 可选
  • 指定是否应使用支持本地存储的 VM 大小来构建计算舰队
  • 可能的值:
    • 已排除 - 不包括支持本地存储的 VM 大小
    • 必需 - 仅包括支持本地存储的 VM 大小
    • 已包含 - 包括支持和不支持本地存储的 VM 大小,如果未指定 localStorageSupport,则为默认值
"localStorageSupport": "Included"

localStorageInGiB

  • 可选
  • 指定了 localStorageInGiB 的范围(从最小值到最大值)
  • 需要提供 min(double)max(double)(如果已指定)
  • 应将 localStorageSupport 设置为“已包含”或“必需”以使用此 VM 属性
  • 如果将 localStorageSupport 设置为“已排除”,则无法使用此 VM 属性
"localStorageInGiB": { 
	"value": {  
		"min": 0,
		"max": 100 
	}
}

localStorageDiskTypes

  • 可选
  • localStorageDiskTypes 以列表形式指定
  • 有效值为“SSD”和“HDD
  • 应将 localStorageSupport 设置为“已包含”或“必需”以使用此 VM 属性
  • 如果将 localStorageSupport 设置为“已排除”,则无法使用此 VM 属性
  • 如果未指定,则 localStorageDiskTypes 的默认值为“任何”有效值
"localStorageDiskTypes": { 
	"value": [ 
		"SSD", 
		"HDD" 
	] 
}

dataDiskCount

  • 可选
  • 指定了 dataDiskCount 的范围(从 minmax
  • 需要提供 min(uint)max(uint)(如果已指定)
"dataDiskCount": { 
	"value": {  
		"min": 0, 
		"max": 10 
	} 
}

networkInterfaceCount

  • 可选
  • 指定了 networkInterfaceCount 的范围(从 minmax
  • 需要提供 min(uint)max(uint)(如果已指定)
"networkInterfaceCount": { 
	"value": {  
		"min": 0, 
		"max": 10 
	} 
}

networkBandwidthInMbps

  • 可选
  • 指定了 networkBandwidthInMbps 的范围(从 minmax
  • 需要提供 min(double)max(double)(如果已指定)
"networkBandwidthInMbps": { 
	"value": {  
		"min": 0, 
		"max": 500 
	} 
}

rdmaSupport

  • 可选
  • 指定是否应使用支持远程直接内存访问 (RDMA) 的 VM 大小来构建计算舰队
  • 可能的值:
    • 已排除 - 不包括支持 RDMA 的 VM 大小,如果未指定 rdmaSupport,则为默认值
    • 必需 - 仅包括支持 RDMA 的 VM 大小
    • 已包含 - 包括支持和不支持 RDMA 的 VM 大小
"rdmaSupport": "Included"

rdmaNetworkInterfaceCount

  • 可选
  • 指定了 rdmaNetworkInterfaceCount 的范围(从 minmax
  • 需要提供 min(uint)max(uint)(如果已指定)
  • 应将 rdmaSupport 设置为“已包含”或“必需”以使用此 VM 属性
  • 如果将 rdmaSupport 设置为“已排除”,则无法使用此 VM 属性
"rdmaNetworkInterfaceCount": { 
	"value": {  
		"min": 0, 
		"max": 10 
	} 
}

acceleratorSupport

  • 可选
  • 指定是否应使用支持加速器的 VM 大小来构建计算舰队
  • 可能的值:
    • 已排除 - 不包括支持加速器的 VM 大小,如果未指定 acceleratorSupport,则为默认值
    • 必需 - 仅包括支持加速器的 VM 大小
    • 已包含 - 包括支持和不支持加速器的 VM 大小
"acceleratorSupport": "Required"

acceleratorManufacturers

  • 可选
  • acceleratorManufacturers 以列表形式指定
  • 有效值为 AMDNVIDIAXilinx
  • 应将 acceleratorSupport 设置为“已包含”或“必需”以使用此 VM 属性
  • 如果将 acceleratorSupport 设置为“已排除”,则无法使用此 VM 属性
  • 如果未指定,则 acceleratorManufacturers 的默认值为“任何”有效值
"acceleratorManufacturers": { 
	"value": { 
		"Nvidia", 
		"Xilinx" 
	} 
}

acceleratorCount

  • 可选
  • 指定了 acceleratorCount 的范围(从 minmax
  • 需要提供 min(uint)max(uint)(如果已指定)
  • 应将 acceleratorSupport 设置为“已包含”或“必需”以使用此 VM 属性
  • 如果将 acceleratorSupport 设置为“已排除”,则无法使用此 VM 属性
"acceleratorCount": { 
	"value": {  
		"min": 0, 
		"max": 10 
	} 
}

acceleratorTypes

  • 可选
  • acceleratorTypes 以列表形式指定
  • 有效值为 GPU 和 FPGA
  • 应将 acceleratorSupport 设置为“已包含”或“必需”以使用此 VM 属性
  • 如果将 acceleratorSupport 设置为“已排除”,则无法使用此 VM 属性
  • 如果未指定,则 acceleratorTypes 的默认值为“任何”有效值
"acceleratorTypes": { 
	"value": { 
		"GPU", 
		"FPGA" 
	} 
}

vmCategories

  • 可选
  • vmCategories 以列表形式指定
  • 有效值是:
    • GeneralPurpose
    • ComputeOptimized
    • MemoryOptimized
    • StorageOptimized
    • GpuAccelerated
    • FpgaAccelerated
    • HighPerformanceCompute
  • 如果未指定,则 vmCategories 的默认值为 GeneralPurpose
"vmCategories": { 
	"value": { 
		"GeneralPurpose", 
		"ComputeOptimized" 
	}
}

architectureTypes

  • 可选
  • architectureTypes 以列表形式指定
  • 有效值为 X64 和 Arm64
  • 如果未指定,则 architectureTypes 的默认值为“任何”有效值
"architectureTypes": { 
	"value": { 
		"Arm64", 
		"x64" 
	} 
}

cpuManufacturers

  • 可选
  • cpuManufacturers 以列表形式指定
  • 有效值为 Intel、AMD、Microsoft 和 Ampere
  • 如果未指定,则 cpuManufacturers 的默认值为“任何”有效值
"cpuManufacturers": { 
	"value": { 
		"Microsoft", 
		"Intel" 
	} 
}

burstableSupport

  • 可选
  • 指定是否应使用支持可突发功能的 VM 大小来构建计算舰队
  • 可能的值:
    • 已排除 - 不包括支持可突发功能的 VM 大小,如果未指定 acceleratorSupport,则为默认值
    • 必需 - 仅包括具有可突发功能的 VM 大小
    • 已包含 - 包括支持和不支持可突发功能的 VM 大小
"burstableSupport": "Excluded"

excludedVMSizes

  • 可选
  • 指定在构建计算舰队时应排除的 VM 大小
  • 所有 excludedVMSizes 都将被忽略,即使它们与 VM 属性匹配也不例外
  • 指定 excludedVMSizes VM 属性时,无法指定 VMSizesProfile,反之亦然
  • 限制为 100 个 VM 大小
"excludedVMSizes": { 
	"value": { 
		"Standard_F1", 
		"Standard_F2" 
	} 
}

VMSizesProfile

  • 可选
  • 指定在构建计算舰队时应排除的 VM 大小
  • 所有其他 VM 大小都将被忽略,即使它们与 VM 属性匹配也不例外
  • 指定 VMSizesProfile 时,无法指定 excludedVMSizes,反之亦然
  • 限制为 100 个 VM 大小
"VMSizesProfile": { 
	"value": { 
		{"name": "Standard_F1"}, 
		{"name": "Standard_F2"} 
	} 
}

后续步骤