创建 Windows 永久性磁盘快照

Compute Engine 提供增量快照供您用来备份永久性磁盘数据。由于是增量快照,与创建完整的永久性磁盘映像相比,您可获得更高的性能、更低的总存储费用。快照用于备份和归档。

如需了解如何配置 Windows Server 以便用它来为实例或实例模板创建自定义 Windows Server 映像,请参阅创建 Windows Server 映像

准备工作

创建 Windows VSS 快照

在大多数情况下,您可以使用卷影复制服务 (VSS) 来为挂接到 Windows 实例的永久性磁盘截取快照。您无需停止实例或分离永久性磁盘即可创建 VSS 快照。

VSS 快照用于备份和恢复包含 VSS 感知型应用的系统。请注意,只能将 VSS 快照用于备份永久性磁盘中的数据。利用正在运行的实例的快照创建虚拟机实例启动磁盘并不可靠。

VSS 快照的价格与普通永久性磁盘快照相同,并且仅依据快照的总大小计费。

限制

  • VSS 快照仅适用于映像版本为 v20160810 或更高版本的 Windows 实例。对于使用旧版映像的实例,请创建常规快照
  • 永久性磁盘必须使用 NTFS、exFAT 或 ReFS 文件系统。
  • VSS 快照不适合用于复制或备份永久性启动磁盘上的操作系统。
  • 当您创建 VSS 快照时,Windows Server 会在 VSS 过程中将快照中的卷标记为只读。此外,您通过 VSS 快照创建的任何磁盘也将处于只读模式。
  • 只有在您运行 VSS 感知型应用(可进行协调以创建一致的数据备份)时,VSS 快照才有助于保留数据。

创建快照

控制台

  1. 转到“创建新快照”页面
  2. 名称部分输入快照名称。
  3. (可选)在说明部分输入快照说明。
  4. 来源磁盘下方,选择要从中创建快照的现有磁盘。
  5. 如需使用默认快照存储位置,请跳过此步骤。否则,如需使用非默认存储位置,请执行以下操作:

    1. 位置下方,选择是要将快照存储在多区域位置还是区域位置。
    2. 选择要使用的特定区域或多区域。如需使用最靠近来源磁盘的区域或多区域,请选择基于磁盘的位置
  6. 选中启用 VSS 选项以指定此快照应使用卷影复制服务。

  7. 点击创建以创建快照。

gcloud

创建快照时,请添加 --guest-flush 标志以指示您想要创建 VSS 快照。如果您要创建区域永久性磁盘的快照,还应添加 --region 标志。

  • 如需创建地区永久性磁盘的 VSS 快照,请使用 gcloud compute disks snapshot 命令:

    gcloud compute disks snapshot [DISK_NAME] --guest-flush
        

    其中 [DISK_NAME] 是您要从中创建快照的地区永久性磁盘的名称。

  • 或者,如需创建区域永久性磁盘的 VSS 快照,请使用 gcloud compute disks snapshot 命令:

    gcloud compute disks snapshot [DISK_NAME] --guest-flush --region [REGION]
        

    其中:

    • [DISK_NAME] 是您要从中创建快照的区域永久性磁盘的名称。
    • [REGION] 是区域永久性磁盘所在的区域。

    gcloud 命令行工具将等待操作返回 READYFAILED 状态,或者等待操作达到超时时间上限并返回快照最新的已知详细信息。

API

创建快照时,请添加 ?guestFlush=true 参数以指示您想要创建 VSS 快照。

  • 如需创建地区永久性磁盘的 VSS 快照,请向 compute.disks.createSnapshot 方法发出 POST 请求:

    POST  https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/createSnapshot?guestFlush=true
        

    其中:

    • [PROJECT_ID] 是您的项目 ID。
    • [ZONE] 是地区永久性磁盘所在的地区。
    • [DISK_NAME] 是您要从中创建 VSS 快照的地区永久性磁盘的名称。
  • 如需创建区域永久性磁盘的 VSS 快照,请向 compute.regionDisk.createSnapshot 方法发出 POST 请求:

    POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]/createSnapshot?guestFlush=true
        

    其中:

    • [PROJECT_ID] 是您的项目 ID。
    • [REGION] 是区域永久性磁盘所在的区域。
    • [DISK_NAME] 是您要从中创建 VSS 快照的区域永久性磁盘的名称。

现在,您已拥有一个可用来创建新永久性磁盘的永久性磁盘快照。

创建常规快照

在某些情况下,您可能需要使用标准快照系统来为挂接到 Windows 实例的磁盘创建快照。

如需创建快照,请执行以下操作:

  1. 卸载文件系统
  2. 创建快照
  3. 重新装载您的磁盘

卸载文件系统

在创建永久性磁盘快照之前,请确保您要截取的快照与永久性磁盘的预期状态一致。如果您为处于“不干净”状态的永久性磁盘截取了快照,则系统可能会强制执行磁盘检查并可能导致数据丢失。请按照以下说明清空 Windows 实例的磁盘缓冲区。

  1. 登录您的 Windows 实例。

  2. 打开 PowerShell 命令提示符并运行 diskpart 工具,具体命令如下:

        PS C:\\> diskpart
        
  3. 确定您想要卸载并截取快照的磁盘,具体命令如下:

        PS C:\\> list disk
        
  4. 然后,使用您刚刚找到的磁盘编号选择磁盘,具体命令如下:

        DISKPART> select disk [DISK_NUMBER]
        

    其中:[DISK_NUMBER] 是您要重新装载的磁盘。

  5. 最后,卸载磁盘,具体命令如下:

        DISKPART> offline disk
        

如果无法卸载永久性磁盘(例如在应用可能正向磁盘写入数据的情况下),您可以同步文件系统以刷新磁盘缓冲区。如需同步您的文件系统,请执行以下操作:

  1. 登录您的 Windows 实例。
  2. 下载并安装同步工具。
  3. 使应用停止向永久性磁盘写入数据。
  4. 以管理员身份运行命令提示符,方法是右键点击命令提示符图标并选择以管理员身份运行
  5. 在命令行终端中,运行以下命令:

        PS C:\\> sync [DRIVE_LETTER]
        

    其中:[DRIVE_LETTER] 是您要同步的卷的盘符,例如 F:\` or G:。

创建快照

  1. 按照创建永久性磁盘快照的步骤操作。

  2. 创建快照后,重新装载永久性磁盘

重新装载磁盘

重新装载磁盘并将其标记为可读写。

  1. 登录您的 Windows 实例。

  2. 打开 PowerShell 命令提示符并运行 diskpart 工具,具体命令如下:

        PS C:\\> diskpart
        
  3. 确定您想要卸载的磁盘,具体命令如下:

        DISKPART> list disk
        
  4. 使用 select disk 命令重新选择磁盘,具体命令如下:

        DISKPART> select disk [DISK_NUMBER]
        

    其中:[DISK_NUMBER] 是您要重新装载的磁盘。

  5. 重新装载磁盘,具体命令如下:

        DISKPART> online disk
        

重新装载磁盘后,从磁盘中移除只读标志:

  1. 在您的 Windows 实例上,使用 diskpart 命令行工具选择脱机磁盘,具体命令如下:

        DISKPART> select disk [DISK_NUMBER]
        

    其中:[DISK_NUMBER] 是您要重新装载的磁盘。

  2. 将磁盘联机,具体命令如下:

        DISKPART> online disk
        
  3. 列出磁盘中的所有卷,具体命令如下:

        DISKPART> list volume
        
  4. 选择新的卷,具体命令如下:

        DISKPART> select volume [VOLUME_NUMBER]
        

    其中:[VOLUME_NUMBER] 是您需要配置为读写模式的卷。

  5. 检查卷属性,具体命令如下:

        DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
        
  6. 退出 diskpart 工具:

        DISKPART> exit
        
  7. 如果该磁盘是其他实例的启动磁盘,请将启动磁盘文件与新磁盘签名同步,具体命令如下:

        PS C:\\> bcdboot [DRIVE_LETTER]Windows /s [DRIVE_LETTER]
        

    其中:[DRIVE_LETTER] 是您要同步的卷的盘符,例如 F:\` or G:。

后续步骤