如果您的 VM 没有本地 SSD 并且不是托管实例组 (MIG) 的一部分,您可以在停止后更改 VM 的机器类型 如果您现有的机器类型不适合您在 VM 上运行的工作负载,请更改该 VM 的机器类型。您可以更改 VM 的机器类型,以随着工作负载的变化调整 vCPU 和内存的数量。例如,您可以在设置、开发和测试期间使用较小的机器启动 VM,并在准备好处理生产工作负载时将 VM 更改为使用较大的机器类型 对于没有本地 SSD 且不属于 MIG 的 VM,您可以更改机器类型而不影响以下资源: - 虚拟机的 SSH 密钥 - 虚拟机配置,例如虚拟机元数据 - VM 的永久磁盘数据,包括已安装的应用程序和应用程序数据 如果您需要更改 MIG 中虚拟机的机器类型,请阅读更新 MIG 如果您的 VM 具有本地 SSD,则您无法停止 VM 以更改其机器类型,除非您强制停止它,这会导致您丢失本地 SSD 上的所有数据。详情请参见添加本地SSD ## 在你开始之前 - 如果您想使用本指南中的命令行示例,请执行以下操作: - 安装或更新到最新版本的 Google Cloud CLI - 设置默认区域和区域 - 如果您想使用本指南中的 API 示例,请设置 API 访问 - 了解如何停止虚拟机 - 了解机器类型 - 如果您的 VM 使用临时外部 IP 地址,则当您修改 VM 的机器类型时,IP 地址可能会更改。要保留 IP 地址,请将其提升为静态外部 IP 地址 - 如果要使用机器系列中最新一代的 CPU,请参阅迁移到第三代机器系列。如果要将机器类型更改为 Arm 机器类型,请参阅将工作负载从现有 VM 迁移到新 VM ## 计费影响 每种机器类型都以不同的费率计费,因此请务必了解 换机对定价的影响 类型。例如,一个 e2-standard-2 机器类型的成本超过 e2-微型机器类型 更改机器类型也可能会影响该 VM 的持续使用折扣。同一地区不同品类的持续使用折扣分别计算。如果您更换机器类型,使新机器类型属于不同的类别,则虚拟机的后续运行时间将计入新类别的持续使用折扣 例如,假设您有一个 VM n2-standard-2 机器类型 运行半个月。然后您决定将机器类型更改为 m1-ultramem-40。进行更改后,Compute Engine 将启动 计算 VM 的运行时间对持续 使用内存优化 vCPU 和内存类别的折扣 在您的账单上,您会看到持续使用折扣适用于 更改机器类型之前的 n2-standard-2 机器类型,以及 单独的持续使用折扣 m1-ultramem-40,如果您的 VM 仍然存在 运行 m1-ultramem-40 用于至少 25% 的月份剩余时间 ## 最佳实践 以下是帮助您成功更改 VM 机器类型的一些最佳实践 使用快照定期备份永久性磁盘数据。考虑在更改机器类型之前拍摄永久性磁盘数据的快照。如果您想确保新机器类型能够支持现有 VM 上的数据,您可以拍摄永久性磁盘快照并使用它来启动第二个具有新机器类型的 VM,以确认 VM 成功启动。将额外的永久性磁盘添加到。如果您的虚拟机附加了额外的永久性磁盘,请确保将它们添加到 /etc/fstab文件 /etc/fstabfile 以便在 VM 重新启动时自动挂载它们 在更改机器类型之前创建预留。为避免与资源可用性相关的错误,请在可用时为新机器类型创建 Compute Engine 预留以在区域内预留它们。预订有助于确保资源在您需要时可用 要创建预订,请完成以下步骤: 创建与计划 VM 具有相同属性的预留(或标识现有预留)。预留的 VM 计数需要等于或大于要更改的 VM 数。或者,要防止其他虚拟机使用此预留,请使用 specificReservationRequired选项 验证计划的 VM 是否能够使用预留: - 验证所需的 VM 是否具有正确的预留亲和力 - 在更改 VM 之前,确保预留有足够的容量 ## 更改机器类型 您只能更改已停止 VM 的机器类型。虚拟机是 仅当 VM 处于 终止状态。你 无法更改正在运行的 VM 的机器类型 如果您要将机器类型升级到最新一代,请在继续之前查看迁移到第三代机器系列 此任务所需的权限 要执行此任务,您必须具有以下权限: 虚拟机上的 compute.instances.setMachineType 安慰 在 Google Cloud 控制台中,转到 虚拟机实例页面 在里面 名称栏,单击要更改机器类型的虚拟机的名称 来自 VM实例详情页面,完成以下步骤: - 如果 VM 正在运行,请单击 Stop 停止虚拟机 - 要编辑 VM,请单击 编辑 在里面 机器配置部分,选择您要使用的机器类型,或创建自定义机器类型 要保存更改,请单击 救 - 如果 VM 正在运行,请单击 云端 使用以下命令停止 VM gcloud 计算实例停止命令: gcloud 计算实例停止 VM_NAME 代替 使用包含要更改的机器类型的 VM VM_NAME 使用更改机器类型 gcloud compute instances set-machine-type命令: gcloud 计算实例集机器类型 VM_NAME\ --机器类型 NEW_MACHINE_TYPE 代替 使用 VM 的新机器类型。机器类型可以是以下之一: NEW_MACHINE_TYPE 预定义的机器类型 例如: e2-标准-2 例如,您可以指定 --machine-type e2-custom-4-2048 设置具有 4 个 vCPU 和 2 GB 内存的自定义机器类型 - 应用程序接口 使用以下命令停止 VM instances.stop方法: 发布 httpscompute.googleapis.com/compute/v1/projects/ PROJECT_ID/zones/ ZONE/instances/ VM_NAME/stop 替换以下内容: : 项目编号 项目编号 :包含虚拟机的区域 区 :包含要更改的机器类型的 VM VM_NAME - 使用更改机器类型 instances.setMachineType方法: 发布 httpscompute.googleapis.com/compute/v1/projects/ PROJECT_ID/zones/ ZONE/instances/ VM_NAME/setMachineType 在请求正文中,提供更新后的 机器的种类: { machineType:“区域/ MACHINE_TYPE_ZONE/machineTypes/ NEW_MACHINE_TYPE"} 替换以下内容: : 包含机器类型的区域 MACHINE_TYPE_ZONE : VM 的新机器类型 NEW_MACHINE_TYPE 机器类型可以是以下之一: 预定义的机器类型 例如: e2-标准-2 例如,您可以指定 --machine-type e2-custom-4-2048 设置具有 4 个 vCPU 和 2 GB 内存的自定义机器类型 - - ## 移动到更小的机器类型 如果您从资源较多的机器类型迁移到资源较少的机器类型 资源,例如从 e2-standard-8 机器类型到 a e2-standard-2,您可能会遇到硬件资源问题或性能问题 局限性,因为较小的机器类型不如较大的机器强大 类型。确保您的新机器类型能够支持任何应用程序 或当前在 VM 上运行的服务,或者您更新您的 在较小的机器类型上运行的服务和应用程序 回顾 *在更改机器类型之前调整规模建议*。为了 有关 Compute Engine 大小建议的信息, 看 为虚拟机实例应用机器类型建议 ## 迁移到第三代机器系列 当满足要求后,就可以在一台机器上使用新一代的VM 通过更改机器类型系列,例如,从 m1-ultramem-160 到 m3-ultramem-128 新一代机器类型可能不支持与当前机器类型相同的功能和接口。在开始迁移过程之前,请查看新一代的机器类型信息,例如 M3 新机器类型可能无法在与当前 VM 实例相同的所有区域和地区中使用。查看新一代机器系列的可用区域和可用区,并根据需要调整容灾计划 要将 VM 实例的机器类型更改为第三代机器类型,您可以使用以下任一方法 创建并迁移到新的 VM 实例 在此过程中,您创建一个新的 VM 实例,然后将您的工作负载移动到新的 VM 有关如何完成此过程的详细信息,请参阅将工作负载从现有 VM 迁移到新 VM 将机器类型更改为新机器类型 在此过程中,您验证当前的 VM 实例是否可以更新为使用新的机器类型,然后更改机器类型 验证您当前的 VM 实例使用受支持的操作系统版本。如果该版本不受支持,请按照将您的工作负载从现有 VM 迁移到新 VM 验证您的应用程序和程序可以支持不同的网络或存储接口,例如 gVNIC 或 NVMe - 要更新您的实例以使用 gVNIC,请参阅使用 Google 虚拟 NIC - 要准备使用 NVMe 接口和驱动程序,请参阅选择接口 将映像保存到启动盘 按照更改机器类型中描述的过程进行操作 ## 下一步是什么 - 了解机器类型建议 - 了解托管实例组 - 了解可扩展和弹性应用程序的模式。