自動執行 Windows Server 2008 R2 就地升級


如果您有執行 Windows Server 2008 R2 的虛擬機器 (VM) 執行個體,可以使用 gcloud CLI 自動將這些執行個體升級到 Windows Server 2012 R2。

使用 gcloud CLI 執行就地升級,是手動升級的替代做法。透過自動升級程序,gcloud CLI 可協助您減少升級每個 VM 所需的作業。

在 VM 就地升級期間,gcloud CLI 會執行下列步驟:

  1. 停止 VM。
  2. 建立標準永久磁碟快照做為備份。
  3. 建立開機磁碟副本,並保留原始開機磁碟做為備份。
  4. 附加包含 Windows 2012 R2 安裝媒體的安裝磁碟。
  5. 從安裝磁碟啟動 Windows 安裝程式 (setup.exe),以自動安裝模式執行升級。
  6. 套用升級後設定
  7. 卸離安裝磁碟。
  8. 停止 VM。

限制

您可以使用 gcloud CLI,將 Windows Server 2008 R2 升級至 Windows Server 2012 R2。這種方法只支援以 Google 提供的公開作業系統映像檔為基礎的 VM 執行個體。如要升級其他 Windows Server 設定,或升級自備授權的 VM 執行個體,請參閱「執行 Windows Server 的就地升級」。

費用

執行 Windows Server 直接升級不需要付費。您只須針對升級期間所耗用的資源付費,包括:

使用 Pricing Calculator,根據您的預測使用量來產生預估費用。

事前準備

開始升級

以下各節將指導您完成升級 VM 執行個體的過程。

  1. 在 Google Cloud 控制台中,按一下「啟用 Cloud Shell」啟動 Cloud Shell。按鈕,開啟 Cloud Shell

    前往 Google Cloud 控制台

  2. 設定預設專案 ID。將 PROJECT_ID 替換為 Compute Engine 專案名稱:

    gcloud config set project PROJECT_ID
    
  3. 執行下列指令來啟動升級:

    gcloud beta compute os-config os-upgrade VM_NAME \
      --zone=ZONE \
      --source-os=windows-2008r2 \
      --target-os=windows-2012r2 \
      --async \
      --auto-rollback
    

    更改下列內容:

    • VM_NAME:要升級的 VM 執行個體名稱
    • ZONE:VM 執行個體執行的區域

    --async 標記會指示 gcloud CLI 使用 Cloud Build 在背景執行升級作業。在背景執行升級作業,可讓您平行升級多個 VM 執行個體,並確保即使關閉 Cloud Shell 工作階段,程序仍會繼續執行。您可以在指令輸出中找到 Cloud Build 工作的連結:

    Created [https://cloudbuild.googleapis.com/v1/projects/...].
    ...
    logUrl: https://console.cloud.google.com/build/builds/...
    ...
    status: QUEUED
    ...
    
    

觀察升級過程

視 VM 執行個體的設定而定,升級作業可能需要 40 到 90 分鐘才能完成。您可以開啟 Cloud Build 記錄,查看升級程序的狀態:

  1. 按一下 gcloud CLI 指令輸出內容中 logUrl 旁邊顯示的網址。
  2. 在「建構記錄」下方,您可以查看升級程序的目前狀態。

升級成功後,建構作業會標示為「成功」,且建構記錄中會顯示下列輸出內容:

Successfully upgraded instance 'projects/...!'

如果 gcloud CLI 在升級期間發生問題,就會將建構標示為「失敗」。如果指定 --auto-rollback 選項,gcloud CLI 也會啟動自動回溯。如要進一步瞭解建構記錄中遇到的問題,請參閱建構記錄。

如果升級程序在 90 分鐘後仍在執行,且您懷疑升級程序沒有進展,請使用「就地升級疑難排解」一文所述的方法,找出升級程序是否失敗或停滯。

完成升級

升級完成後,請啟動 VM 執行個體並執行 Windows Update,下載及安裝最新的安全性更新:

  1. 啟動 VM 執行個體:

    gcloud compute instances start VM_NAME --zone=ZONE
    

    更改下列內容:

    • VM_NAME:VM 執行個體名稱
    • ZONE:VM 執行個體執行的區域
  2. 使用遠端桌面通訊協定用戶端連線至電腦。詳情請參閱連線至執行個體

  3. 執行 Windows Update 安裝最新的 Windows 更新。 在此過程中,您可能必須多次重新啟動 VM 執行個體。

  4. 確認所有應用程式都能正常運作。

復原升級

如果升級失敗,gcloud CLI 會自動啟動回溯程序。如果升級成功,您可能仍會發現其中一個應用程式無法正常運作。在這種情況下,請將 VM 執行個體改回使用原始開機磁碟,藉此還原升級:

  1. 停止 VM 執行個體:

    gcloud compute instances stop VM_NAME --zone=ZONE
    

    更改下列內容:

    • VM_NAME:VM 執行個體名稱
    • ZONE:VM 執行個體執行的區域
  2. 在建構記錄中,找出指出原始開機磁碟名稱和附件名稱的行:

    4. Original boot disk: ORIGINAL_DISK_NAME
        - Device name of the attachment: DEVICE_NAME
    
  3. 從執行個體卸離含有故障作業系統的磁碟:

    gcloud compute instances detach-disk VM_NAME \
      --device-name=DEVICE_NAME \
      --zone=ZONE
    

    更改下列內容:

    • VM_NAME:VM 執行個體名稱
    • DEVICE_NAME:建構記錄中顯示的裝置名稱
    • ZONE:VM 執行個體執行的區域
  4. 重新連結原始開機磁碟:

    gcloud compute instances attach-disk VM_NAME \
      --disk=ORIGINAL_DISK_NAME \
      --device-name=DEVICE_NAME \
      --zone=ZONE
    

    更改下列內容:

    • VM_NAME:VM 執行個體名稱
    • ORIGINAL_DISK_NAME:建構記錄中顯示的原始開機磁碟名稱
    • DEVICE_NAME:建構記錄中顯示的裝置名稱
    • ZONE:VM 執行個體執行的區域
  5. 啟動 VM 執行個體:

    gcloud compute instances start VM_NAME --zone=ZONE
    

    更改下列內容:

    • VM_NAME:VM 執行個體名稱
    • ZONE:VM 執行個體執行的區域

清除所用資源

為避免產生額外費用,請移除 gcloud CLI 在升級前自動建立的備份:

  1. 在建構記錄中,找出指出磁碟快照名稱和原始開機磁碟的行:

    3. Snapshot for original boot disk: SNAPSHOT_NAME
    4. Original boot disk: DISK_NAME
       - Device name of the attachment: ...
       - AutoDelete setting of the attachment: true
    5. Name of the new boot disk: ...
    
  2. 返回 Cloud Shell 並刪除磁碟快照:

    gcloud compute snapshots delete SNAPSHOT_NAME
    
  3. 刪除原始開機磁碟,並將 ZONE 替換為 VM 部署所在的區域:

    gcloud compute disks delete DISK_NAME --zone=ZONE
    

後續步驟