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

如何在GCE平台将Standard Snapshot转换为Archive Snapshot?

解决方案:自动化转换GCP Standard快照到Archive快照

目前GCP确实没有提供直接将Standard类型快照转换为Archive类型的原生功能,但可以通过脚本自动化完成「临时磁盘中转」的流程,避免手动逐个操作。

核心思路

利用GCP命令行工具gcloud,批量执行以下步骤:

  • 筛选出所有Standard类型的快照
  • 为每个快照创建临时磁盘
  • 从临时磁盘生成Archive类型快照
  • 删除临时磁盘(清理资源)

自动化脚本示例(Shell)

#!/bin/bash

# 替换为你的GCP项目ID
PROJECT_ID="your-project-id"
# 可选:指定要处理的区域,留空则处理所有区域
TARGET_ZONES=""

# 设置项目
gcloud config set project $PROJECT_ID

# 获取所有Standard类型快照的名称和存储区域
SNAPSHOTS=$(gcloud compute snapshots list \
  --filter="snapshotType=STANDARD" \
  --format="value(name,storageLocations)" \
  ${TARGET_ZONES:+--zones=$TARGET_ZONES})

while read -r SNAP_NAME SNAP_LOCATION; do
  # 生成可用区(取存储区域+后缀,比如us-central1-a)
  ZONE="${SNAP_LOCATION}-a"
  TEMP_DISK_NAME="temp-disk-${SNAP_NAME}"
  ARCHIVE_SNAP_NAME="archive-${SNAP_NAME}"

  echo "开始处理快照:${SNAP_NAME}"

  # 1. 创建临时磁盘
  gcloud compute disks create $TEMP_DISK_NAME \
    --source-snapshot=$SNAP_NAME \
    --zone=$ZONE \
    --quiet

  # 2. 创建Archive快照
  gcloud compute snapshots create $ARCHIVE_SNAP_NAME \
    --source-disk=$TEMP_DISK_NAME \
    --zone=$ZONE \
    --storage-location=$SNAP_LOCATION \
    --snapshot-type=ARCHIVE \
    --quiet

  # 3. 删除临时磁盘
  gcloud compute disks delete $TEMP_DISK_NAME \
    --zone=$ZONE \
    --quiet

  echo "快照${SNAP_NAME}已转换为Archive快照:${ARCHIVE_SNAP_NAME}"
done <<< "$SNAPSHOTS"

注意事项

  • 运行脚本前确保gcloud CLI已完成身份验证(gcloud auth login),且拥有compute.snapshots.create、compute.disks.create/delete等权限
  • 临时磁盘会占用对应区域的存储资源,建议在业务低峰期执行脚本
  • 若脚本中生成的可用区不可用,可替换为区域内其他可用区(比如-b/-c)
  • 可添加错误捕获逻辑(如set -e),避免单个快照处理失败中断整个脚本
  • 转换完成后,建议先验证Archive快照可用性,确认无误后再删除原Standard快照

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:35:01