You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以编程方式映射GCP实例类型与兼容磁盘类型?

GCP实例类型与磁盘类型兼容性映射方案

1. 官方API/数据集查询方式

Google Cloud Compute Engine提供了直接查询实例类型支持磁盘类型的API:

  • 使用machineTypes.get接口,请求指定区域/可用区的实例类型详情,响应中的allowedDiskTypes字段会列出该实例类型支持的所有磁盘类型的完整URI(例如https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-central1-a/diskTypes/pd-standard),提取URI末尾的名称即可得到磁盘类型标识。

示例操作

gcloud命令行示例

gcloud compute machine-types describe e2-medium --zone us-central1-a

在输出结果中查找allowedDiskTypes字段,即可看到该实例支持的磁盘类型列表。

Python SDK示例(使用google-cloud-compute)

from google.cloud import compute_v1

def get_instance_supported_disks(project_id: str, zone: str, instance_type: str):
    machine_types_client = compute_v1.MachineTypesClient()
    machine_type = machine_types_client.get(
        project=project_id, zone=zone, machine_type=instance_type
    )
    # 解析URI提取磁盘类型名称
    supported_disks = [uri.split("/")[-1] for uri in machine_type.allowed_disk_types]
    return supported_disks

# 调用示例
print(get_instance_supported_disks("your-project-id", "us-central1-a", "e2-medium"))

2. 基于机器系列的推导方案

如果无法实时调用API(如离线场景),可基于机器系列推导,同一系列的实例磁盘兼容性基本一致,官方的通用规则如下:

  • E2系列:支持pd-standard、pd-balanced、pd-ssd
  • N1/N2/N2D系列:支持pd-standard、pd-balanced、pd-ssd、local-ssd(部分机型默认支持,部分需额外配置)
  • T2D系列:支持pd-standard、pd-balanced、pd-ssd
  • A2系列:支持pd-balanced、pd-ssd、local-ssd
  • M2/M3系列:仅支持pd-balanced、pd-ssd、local-ssd

示例实现(Python)

# 机器系列与支持磁盘类型的映射字典
series_disk_compatibility = {
    "e2": ["pd-standard", "pd-balanced", "pd-ssd"],
    "n1": ["pd-standard", "pd-balanced", "pd-ssd", "local-ssd"],
    "n2": ["pd-standard", "pd-balanced", "pd-ssd", "local-ssd"],
    "n2d": ["pd-standard", "pd-balanced", "pd-ssd", "local-ssd"],
    "t2d": ["pd-standard", "pd-balanced", "pd-ssd"],
    "a2": ["pd-balanced", "pd-ssd", "local-ssd"],
    "m2": ["pd-balanced", "pd-ssd", "local-ssd"],
    "m3": ["pd-balanced", "pd-ssd", "local-ssd"],
}

def derive_supported_disks(instance_type: str):
    # 提取实例类型的系列前缀(如e2-medium -> e2)
    machine_series = instance_type.split("-")[0].lower()
    # 返回对应系列的磁盘类型,默认返回通用支持的类型
    return series_disk_compatibility.get(machine_series, ["pd-standard", "pd-balanced", "pd-ssd"])

# 测试
print(derive_supported_disks("e2-medium"))  # 输出: ['pd-standard', 'pd-balanced', 'pd-ssd']
print(derive_supported_disks("n2-standard-4"))  # 输出: ['pd-standard', 'pd-balanced', 'pd-ssd', 'local-ssd']

注意事项

  • 优先使用API查询保证准确性,部分特殊机型可能存在例外情况;
  • 基于系列的映射需定期同步官方文档更新,避免因GCP产品迭代导致兼容性规则变化。

内容的提问来源于stack exchange,提问作者SKowshik92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:13:13