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. バックアップとして Persistent Disk の標準スナップショットを作成します。
  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 の他の構成をアップグレードする場合や、BYOL(お客様所有ライセンスを使用する)VM インスタンスをアップグレードする場合は、Windows Server のインプレース アップグレードの実行をご覧ください。

費用

Windows Server のインプレース アップグレードは無料で実施できます。アップグレード中に消費したリソース(以下を含む)に対してのみ課金されます。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。

始める前に

アップグレードの開始

次のセクションでは、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 の横に表示されている URL をクリックします。
  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. RDP クライアントを使用してマシンに接続します。詳細については、インスタンスへの接続をご覧ください。

  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
    

次のステップ