Windows Server のインプレース アップグレードの実行

以前のバージョンの Windows Server を実行している仮想マシン(VM)インスタンスがある場合は、それを新しいバージョンの Windows Server にアップグレードできます。

アップグレード前 アップグレード後
Windows Server 2008 R2(Desktop Experience) Windows Server 2012 R2(Desktop Experience)
Windows Server 2012 R2(Core) Windows Server 2016(Core)
Windows Server 2012 R2(Desktop Experience) Windows Server 2016(Desktop Experience)

Windows Server 2008 R2 を Windows Server 2012 R2 より後のバージョンにアップグレードする場合は、次の作業を行う必要があります。

  1. 最初に Windows Server 2012 R2 へのアップグレードを行います。
  2. その後、Windows Server 2016 または Windows Server 2019 へのアップグレードを行います。

目標

このガイドでは、Windows Server のインプレース アップグレードを行う方法について説明します。

  1. インプレース アップグレードの計画
  2. インプレース アップグレードの実施
  3. インプレース アップグレードのトラブルシューティング
  4. インプレース アップグレード後のクリーンアップ

料金

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

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

始める前に

このガイドでは、次の基本的な知識があることを前提としています。

インプレース アップグレードの計画

以前のバージョンの Windows Server を実行している仮想マシン(VM)インスタンスのインプレース アップグレードを実施することは、インフラストラクチャをモダナイズするだけでなく、Windows Server バージョンのサポート ライフサイクルが終了するというリスクを軽減する上で実用的です。

考慮すべき代替手段

インプレース アップグレードを使用して Windows Server の新しいバージョンに移行する前に、次の制限事項に注意してください。

  • ダウンタイム: 構成やインストールされているソフトウェアによっては、アップグレードに 1 時間以上かかることがあります。アップグレード中は、次の理由で、VM インスタンスへのアクセスが制限されます。

    • VM インスタンスで実行されているワークロードをユーザーは使用できない
    • リモート デスクトップ プロトコル(RDP)を使用できない
    • アップグレードの進行状況とアップグレードの残り時間を確認する方法が限られている
  • リスク: 既存のインスタンスの構成やインストールされているソフトウェアによっては、次のことが発生する可能性があります。

    • アップグレードに失敗する
    • 一部の構成オプションがオーバーライドされる
    • 互換性の問題により、アップグレードされたインスタンスでワークロードが誤動作する

Windows Server インスタンスで実行されているワークロードに応じて、さまざまな方法でダウンタイムやリスクを軽減できます。

ワークロード アプローチ
VM インスタンスが、次のようなレプリケーションをサポートするワークロードを実行している。
  • Active Directory ドメイン サービス
  • DNS
  • SQL Server
新しいバージョンの Windows Server を実行している新しい VM インスタンスを設定してから、レプリケーションを使用して既存の VM インスタンスから新しい VM インスタンスにワークロードを移行することを検討してください。
1 つの VM インスタンスで多数のワークロードを実行している 各 VM インスタンスが 1 つのワークロードのみを実行するように、これらのワークロードを別個の VM インスタンスに移行することを検討してください。すべてのワークロードを移行できない場合でも、1 つの VM インスタンスで実行されるワークロードの数を減らすことで、インプレース アップグレード中のリスクを軽減できます。

プロダクトキー

Windows Server のプロダクトキーは、特定のバージョンに対してのみ有効です。新しいバージョンの Windows Server にアップグレードする場合は、新しいプロダクトキーを指定する必要があります。主なシナリオは次の 2 つです。

  • Google が提供する公開オペレーティング システム イメージに基づく VM インスタンスをアップグレードする: このシナリオでは、アップグレードする Windows Server のバージョンに対応する事前定義済みの KMS クライアント セットアップ キーを使用する必要があります。このアップグレードに追加料金はかかりません。

  • 既存のライセンスを使用する VM インスタンスをアップグレードする: BYOL では、アップグレードを行うために、ライセンス ベンダーからプロダクトキーを取得する必要があります。Microsoft のドキュメントを確認して、アップグレードできるエディションと、ライセンス変更の資格があるかどうかを確認してください。

インストール メディア

アップグレードを行うには、インストール メディアが必要です。主なシナリオは次の 2 つです。

  • Google が提供する公開オペレーティング システム イメージに基づく VM インスタンスをアップグレードする: このシナリオでは、Google が提供するボリューム ライセンス インストール メディアを使用できます。このインストール メディアにアクセスする手順は、下記をご覧ください

  • インポートされたディスクまたはイメージに基づく VM インスタンスをアップグレードする: このシナリオでは、Google が提供するインストール メディアを使用できません。代わりに、インポートされたディスクまたはイメージに Windows Server をインストールした際と同じ種類のメディアをインストール メディアとして使用します。

その他の前提条件

アップグレードを開始する前に、アップグレードする Windows Server のバージョンに関する前提条件と制限事項について、Microsoft のドキュメントを確認してください。

2012 R2

2016

インプレース アップグレードの実施

次のセクションでは、VM インスタンスをアップグレードするプロセスについて説明します。

スナップショットの作成

アップグレードを開始する前に、なんらかのエラーが発生した場合に安全な状態に戻すことができるように、VM インスタンスのスナップショットを作成することをおすすめします。

Windows Server の構成の準備

Windows Server VM インスタンスの構成を確認します。

  1. RDP クライアントを使用して VM インスタンスに接続します。

  2. Windows Update を使用して Windows Server が最新であることを確認します。

  3. アップグレードを妨げる可能性がある、または Windows Server のバージョンと互換性のないウィルス対策、スパイウェア対策、その他のエージェントを無効またはアンインストールします。

インストール メディアの接続

アップグレードを行う前に、必要なインストール メディアを VM インスタンスに接続します。使用するのに適切なメディアは、シナリオによって異なります。

  • Google が提供する公開オペレーティング システム イメージに基づく VM インスタンスをアップグレードする: このシナリオでは、Google が提供するボリューム ライセンス インストール メディアのみを接続します。このメディアには、アップグレードに必要なスクリプトと新しいバージョンの Windows Server 用のファイルが含まれています。
  • インポートされたディスクまたはイメージに基づく VM インスタンスをアップグレードする: このシナリオでも、Google が提供するボリューム ライセンス インストール メディアを接続して必要なスクリプトにアクセスできるようにする必要があります。

    また、インポートされたディスクまたはイメージに Windows Server をインストールした際と同じ種類のメディアをカスタム インストール メディアとして接続する必要があります。

Google が提供するボリューム ライセンス インストール メディアを接続する手順は次のとおりです。

  1. Google Cloud Console で、[Cloud Shell をアクティブにする] Cloud Shell をアクティブにします。 ボタンをクリックして、Cloud Shell を開きます。

    Google Cloud Console に移動

  2. デフォルトのプロジェクト ID を設定します。PROJECT_ID は、Compute Engine プロジェクトの名前に置き換えます。

    gcloud config set project PROJECT_ID
    
  3. インストール メディアに基づいてディスクを作成します。ZONE は、VM インスタンスが配置されているゾーンの名前に置き換えます。

    gcloud compute disks create win-installers --image-family=windows-install-media --image-project=compute-image-tools --zone=ZONE
    

    このコマンドは、win-installers というディスクをプロジェクトに追加します。このディスクは VM インスタンスには接続されません。

  4. 必要に応じてディスクを複数の VM インスタンスに接続できるように、読み取り専用(ro)モードを使用して、ディスクを VM インスタンスに接続します。

    gcloud compute instances attach-disk VM_NAME --disk=win-installers --mode=ro --zone=ZONE
    

    以下を置き換えます。

    • VM_NAME: アップグレードする VM インスタンスの名前
    • ZONE: VM インスタンスが配置されているゾーンの名前

インポートされたディスクまたはイメージに基づく VM インスタンスをアップグレードする場合は、以下のとおりにカスタム インストール メディアを追加ディスクとして接続します。

  1. ISO ファイルからイメージを作成するの手順に従って、カスタム インストール メディアとして使用する ISO イメージからディスクを作成します。

  2. 必要に応じてディスクを複数の VM インスタンスに接続できるように、読み取り専用(ro)モードを使用して、ディスクを VM インスタンスに接続します。

    gcloud compute instances attach-disk VM_NAME --disk=CUSTOM_MEDIA_DISK --mode=ro --zone=ZONE
    

    以下を置き換えます。

    • VM_NAME: アップグレードする VM インスタンスの名前
    • CUSTOM_MEDIA_DISK: カスタム インストール メディアを含むディスクの名前
    • ZONE: VM インスタンスが配置されているゾーンの名前

アップグレードの開始

デフォルトでは、Windows セットアップにより、アップグレード中のさまざまな時点で入力を求めるプロンプトが表示されます。アップグレード中は RDP を使用して VM インスタンスに接続できないことから入力を提供できないため、無人モードでアップグレードを実行します。

  1. RDP クライアントを使用して VM インスタンスに接続します。詳細については、インスタンスへの接続をご覧ください。

  2. 管理者特権でのコマンド プロンプトを開きます。

    • Server Core を使用している場合は、管理者特権でのコマンド プロンプトがログイン後に自動的に開きます。
    • Windows Server with full Desktop Experience を使用している場合は、[スタート] ボタンを右クリックして [コマンドプロンプト(管理者)] を選択します。
  3. 作業ディレクトリをインストール メディアに変更します。どの作業ディレクトリを使用すべきかは、アップグレード後の Windows Server のバージョンによって異なります。

    2012 R2

    cd /d d:\*2012*
    

    2016

    cd /d d:\*2016*
    
  4. Windows のアップグレードを開始します。アップグレードを開始するために必要な手順は、アップグレード後の Windows Server のバージョンと、VM インスタンスが公開オペレーティング システム イメージとインポートされたディスク / イメージのどちらに基づくかによって異なります。

    2012 R2

    upgrade.ps1 を実行して Windows のアップグレードを開始します。このスクリプトは次の手順を実行します。

    • 最新の Google ドライバ パッケージをインストールします。このパッケージは、Windows Server のアップグレードを成功させるために重要です。
    • Compute Engine に必要な Windows の設定を適用します。
    • アップグレード中の緊急管理サービス(EMS)コンソールへのアクセスを有効にします。
    • Windows セットアップを無人モードで起動します。
    • インストールする Windows Server 2012 R2 の正しいエディションを選択します。
    • 新しいバージョンの Windows Server のプロダクトキーを指定します。
    powershell -ExecutionPolicy Bypass -File upgrade.ps1
    

    2012 R2(インポート)

    upgrade.ps1 を実行して Windows のアップグレードを開始します。このスクリプトは次の手順を実行します。

    • 最新の Google ドライバ パッケージをインストールします。このパッケージは、Windows Server のアップグレードを成功させるために重要です。
    • Compute Engine に必要な Windows の設定を適用します。
    • アップグレード中の緊急管理サービス(EMS)コンソールへのアクセスを有効にします。
    • Windows セットアップを無人モードで起動します。
    • インストールする Windows Server 2012 R2 の正しいエディションを選択します。
    powershell -ExecutionPolicy Bypass -File upgrade.ps1 -SetupExePath SETUP_PATH -Unattend UNATTEND_PATH
    

    以下を置き換えます。

    • SETUP_PATH: カスタム インストール メディア上の setup.exe へのパス
    • UNATTEND_PATH: 有効なプロダクトキーを含むカスタム unattend.xml ファイルへのパス

    -Unattend パラメータは、既存のライセンス(BYOL)を使用する VM インスタンスをアップグレードする場合にのみ必要です。

    2016

    upgrade.ps1 を実行して Windows のアップグレードを開始します。このスクリプトは次の手順を実行します。

    • 最新の Google ドライバ パッケージをインストールします。このパッケージは、Windows Server のアップグレードを成功させるために重要です。
    • Compute Engine に必要な Windows の設定を適用します。
    • アップグレード中の緊急管理サービス(EMS)コンソールへのアクセスを有効にします。
    • Windows セットアップをサイレント モードで起動します。
    • 新しいバージョンの Windows Server のプロダクトキーを指定します。
    powershell -ExecutionPolicy Bypass -File upgrade.ps1
    

    [イメージを選択] 画面で、現在の構成と一致する構成を選択します。

    • 現在 Server Core を使用している場合は、Windows Server 2016 Datacenter を選択します。
    • 現在 Windows Server with full desktop experience を使用している場合は、Windows Server 2016 Datacenter(Desktop Experience) を選択します。

    • [次へ] をクリックしてアップグレードを開始します。

    セットアップが初期化されるまで数分かかることがあります。

    2016(インポート)

    upgrade.ps1 を実行して Windows のアップグレードを開始します。このスクリプトは次の手順を実行します。

    powershell -ExecutionPolicy Bypass -File upgrade.ps1 -SetupExePath SETUP-PATH -ProductKey PRODUCT-KEY
    

    以下を置き換えます。

    • SETUP_PATH: カスタム インストール メディア上の setup.exe へのパス
    • PRODUCT_KEY: Windows Server 2016 の有効なプロダクトキー

    -ProductKey パラメータは、既存のライセンス(BYOL)を使用する VM インスタンスをアップグレードする場合にのみ必要です。

    [イメージを選択] 画面で、現在の構成と一致する構成を選択します。

    • 現在 Server Core を使用している場合は、Windows Server 2016 Datacenter を選択します。
    • 現在 Windows Server with full desktop experience を使用している場合は、Windows Server 2016 Datacenter(Desktop Experience) を選択します。

    • [次へ] をクリックしてアップグレードを開始します。

    セットアップが初期化されるまで数分かかることがあります。

    アップグレード プロセスでは、次の警告が表示されることがあります。その場合は無視してかまいません。

    [package name] or a newer version is already installed on the system
    

    約 5 分後、マシンが再起動し、RDP が切断されます。

アップグレード プロセスの確認

VM インスタンスのマシンタイプと Windows Server の構成によっては、アップグレードが完了するまでに 10 分から 60 分かかる場合があります。その間、シリアルポート出力でステータスを確認できます。

  1. Cloud Shell で、次のコマンドを実行して起動プロセスを確認します。

    gcloud compute instances tail-serial-port-output VM_NAME --zone=ZONE
    

    以下を置き換えます。

    • VM_NAME: VM インスタンスの名前
    • ZONE: VM インスタンスが配置されているゾーンの名前
  2. マシンが 4 回再起動するまで待ちます。VM インスタンスの構成によっては、これらの再起動が発生するまでに 30 分以上かかることがあります。次のような出力で再起動を確認できます。

    SeaBIOS (version 1.8.2-20190620_103534-google)
    Total RAM Size = 0x00000001e0000000 = 7680 MiB
    CPUs found: 2     Max CPUs supported: 2
    
  3. 4 回目の再起動後、GCEMetadataScripts: Finished running startup scripts または No startup scripts to run の出力が表示されるまで待ちます。

アップグレード後の手順の実施

VM インスタンスに接続して、アップグレードが正常に完了したことを確認できます。

  1. RDP クライアントを使用して VM インスタンスに接続します。詳細については、インスタンスへの接続をご覧ください。

  2. ローカル管理者権限を持つユーザー アカウントを使用してログインします。

  3. 管理者特権でのコマンド プロンプトを開きます。

    • Server Core を使用している場合は、管理者特権でのコマンド プロンプトがログイン後に自動的に開きます。
    • Windows Server with full Desktop Experience を使用している場合は、[スタート] ボタンを右クリックして [コマンドプロンプト(管理者)] を選択します。
  4. 次のコマンドを実行して、Windows Server のバージョンをクエリします。

    ver
    

    バージョンが、想定した Windows Server のバージョンと一致することを確認します。

  5. 作業ディレクトリをインストール メディアに変更します。どの作業ディレクトリを使用すべきかは、アップグレード後の Windows Server のバージョンによって異なります。

    2012 R2

    cd /d d:\*2012*
    

    2016

    cd /d d:\*2016*
    
  6. upgrade.ps1 を再度実行して、アップグレード中に失われた可能性がある特定の Compute Engine の設定を再適用します。

    powershell -ExecutionPolicy Bypass -File upgrade.ps1
    
  7. VM インスタンスを再起動して、すべての変更を有効にします。再起動が完了するまでに 1~2 分かかることがあります。その後、VM インスタンスに再度接続できます。

インストール ディスクの接続解除

VM インスタンスからインストール ディスクを接続解除できます。

  • Cloud Shell で、VM インスタンスからインストール ディスクの接続を解除します。VM_NAME は VM インスタンスの名前に置き換えます。

    gcloud compute instances detach-disk VM_NAME --disk=win-installers
    

更新プログラムのインストールとアクセスの復元

アップグレードが完了したら、Windows Update を実行して、セキュリティ更新プログラムをダウンロードしてインストールします。これらの更新プログラムをインストールする手順は次のとおりです。

  1. RDP クライアントを使用してマシンに接続します。詳細については、インスタンスへの接続をご覧ください。

  2. Windows Update を使用して最新の Windows の更新プログラムをインストールします。このプロセス中に、VM インスタンスを複数回再起動する必要がある場合があります。

  3. アップグレード前に無効にしたエージェント、ウィルス対策ソフトウェア、マルウェア対策ソフトウェアを再度有効にします。

インプレース アップグレードのトラブルシューティング

Windows セットアップの実行中は、RDP を使用して VM インスタンスに接続できません。アップグレードが失敗した、または進行していないと思われる場合は、次の方法を順番に使用して状況を診断します。

シリアルポート出力を確認する

Windows セットアップではシリアルポートのログは出力されませんが、シリアルポート出力を使用して、VM インスタンスの再起動と起動ステータスを確認できます。

アップグレード中は、再起動が 4 回発生します。最初の再起動から 30 分以上経過しても進行しない場合、アップグレードは失敗した可能性があります。

CPU と I/O の指標を確認する

Windows Server のアップグレードの実行は、CPU とディスク I/O に負荷がかかるオペレーションです。CPU と I/O の指標を確認すると、セットアップが進行中かどうかがわかります。

Google Cloud Console で CPU と I/O の指標を表示します。

  1. Cloud Console で、アップグレード中のインスタンスをクリックします。

    Cloud Console に移動

  2. [モニタリング] タブをクリックします。

緊急管理サービス コンソールに接続する

Windows セットアップの実行中と実行後の両方で、緊急管理サービス(EMS)コンソールに接続できます。EMS コンソールを使用して、Windows セットアップのログファイルイベントログを確認し、アップグレードが進行中であるか、発生した可能性のあるエラーに関する情報を確認します。

WinRM を使用してリモートで接続する

RDP または EMS を使用した接続が失敗した場合は、WinRM を使用してリモート PowerShell セッションを確立できます。

  1. 同じ VPC 内の別の Windows Server インスタンスに接続します。

  2. PowerShell を開きます。

  3. リモート PowerShell セッションを確立します。VM_NAME は、アップグレードするインスタンスの名前に置き換えます。

    Enter-PSSession -ComputerName VM_NAME -UseSSL -SessionOption (New-PsSessionOption -SkipCACheck) -Credential (Get-Credential)
    
  4. 認証情報の入力を求められたら、管理者ユーザー アカウントのユーザー名とパスワードを入力します。

  5. リモート PowerShell セッションを使用して、Windows セットアップのログファイルイベントログを確認します。

ログファイルをオフラインで分析する

Windows リモート管理(WinRM)を使用してインスタンスに接続できない場合は、アップグレードをキャンセルして、別の VM インスタンスからログファイルを分析できます。方法は次のとおりです。

  1. VM インスタンスを停止します。

    Windows Server が応答しない場合は、数分かかることがあります。

  2. インスタンスからブートディスクを接続解除します。

  3. 新しい一時的な Windows Server インスタンスを作成し、元のインスタンスのブートディスクを追加ディスクとして接続します。

  4. 一時的な Windows Server インスタンスを使用して、アップグレードしようとしたインスタンスのセットアップ ログファイルとイベント ログファイルを分析します。

  5. 分析が完了したら、ディスクを一時的なインスタンスから接続解除し、元の VM インスタンスにブートディスクとして再接続します。

RDP のトラブルシューティング

RDP のトラブルシューティングについては、RDP のトラブルシューティングをご覧ください。

Windows Server インスタンスのトラブルシューティング

Windows Server インスタンスのトラブルシューティングについては、Windows インスタンスのヒントとトラブルシューティングをご覧ください。

クリーンアップ

このプロセスの完了後に請求が発生しないようにするには、インストール ディスクを削除します。

インストール ディスクの削除

インストール ディスクは、Google が提供するイメージに基づいていつでも作成できます。同じゾーンでさらに VM インスタンスをアップグレードする予定がない場合は、インストール ディスクを削除します。

  • Cloud Shell で、前に作成した win-installers ディスクを削除します。

    gcloud compute disks delete win-installers
    

次のステップ