Windows Server 2008 R2 を実行している仮想マシン(VM)インスタンスがある場合は、gcloud CLI を使用して Windows Server 2012 R2 に自動的にアップグレードできます。
手動アップグレードを行う代わりに、gcloud CLI を使用してインプレース アップグレードを行うこともできます。gcloud CLI を使用すると、アップグレード プロセスを自動化することによって、アップグレードが必要な VM インスタンスそれぞれに対して行う作業に手がかからなくなります。
VM のインプレース アップグレード中に、gcloud CLI は次の処理を行います。
- VM を停止します。
- バックアップとして Persistent Disk の標準スナップショットを作成します。
- ブートディスクのコピーを作成し、元のブートディスクをバックアップとして保持します。
- Windows 2012 R2 インストール メディアを含むインストール ディスクをアタッチします。
- インストール ディスクから Windows セットアップ(
setup.exe
)を起動し、無人モードでアップグレードを行います。 - アップグレード後の構成が適用されます。
- インストール ディスクを切断します。
- VM を停止します。
制限事項
gcloud CLI ツールを使用して、Windows Server 2008 R2 から Windows Server 2012 R2 にアップグレードできます。この方法では、Google が提供する公開オペレーティング システム イメージをベースにした VM インスタンスのみがサポートされます。Windows Server の他の構成をアップグレードする場合や、BYOL(お客様所有ライセンスを使用する)VM インスタンスをアップグレードする場合は、Windows Server のインプレース アップグレードの実行をご覧ください。
費用
Windows Server のインプレース アップグレードは無料で実施できます。アップグレード中に消費したリソース(以下を含む)に対してのみ課金されます。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。
始める前に
- Windows Server のインプレース アップグレードの制限事項と代替手段を確認しておいてください。
- Windows Update を使用して Windows Server が最新の状態であることを確認します。
- アップグレードを妨げる可能性がある、または Windows Server のバージョンと互換性のないウイルス対策、スパイウェア対策、その他のエージェントを無効またはアンインストールします。
- Windows Server 2012 R2 の前提条件と制限事項については、Microsoft のドキュメントをご覧ください。
- VM インスタンスが Windows Server 2012 のシステム要件を満たし、十分な空きディスク容量があることを確認します。
- サーバーロールのアップグレードに関する推奨事項、既知の問題、Windows Server 2012 R2 のアップグレード プロセスを確認します。
- インプレース アップグレードの計画に関する推奨事項を確認します。
- Windows Server 2012 R2 で削除または終了された機能の影響を受けないことを確認します。
- カスタム ソフトウェアまたはサードパーティ ソフトウェアが Windows Server 2012 R2 に対応していることを確認します。
- 続行する前に、次の Cloud IAM のロールのいずれかが付与されていることを確認してください。
- このガイドでは、Cloud Shell を使用して gcloud CLI を実行します。代わりに、ローカルのパソコンで gcloud CLI を実行する場合は、まず最新の gcloud CLI をダウンロードしてインストールしてください。
アップグレードの開始
次のセクションでは、VM インスタンスをアップグレードするプロセスについて説明します。
Google Cloud コンソールで、[Cloud Shell をアクティブにする] ボタンをクリックして Cloud Shell を開きます。
デフォルトのプロジェクト ID を設定します。
PROJECT_ID
は、Compute Engine プロジェクトの名前に置き換えます。gcloud config set project PROJECT_ID
次のコマンドを実行してアップグレードを開始します。
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 ログで確認できます。
- gcloud CLI のコマンド出力で、
logUrl
の横に表示されている URL をクリックします。 - [ビルドログ] で、アップグレード プロセスの現在のステータスを確認できます。
アップグレードが正常に終了すると、ビルドは「成功」と表示されます。ビルドログに次の出力が表示されます。
Successfully upgraded instance 'projects/...!'
アップグレード中に gcloud CLI で問題が発生した場合、ビルドは「失敗」と表示されます。--auto-rollback
オプションを指定すると、gcloud CLI は自動ロールバックも開始します。発生した問題の詳細はビルドログで確認できます。
90 分経過してもアップグレードが完了せず、アップグレードが停止しているように見える場合、インプレース アップグレードのトラブルシューティングに記載されている方法のいずれかを使用して、アップグレード プロセスの状況を調べます。
アップグレードの完了
アップグレードが完了したら、VM インスタンスを起動します。Windows Update を実行し、最新のセキュリティ更新をダウンロードしてインストールします。
VM インスタンスを起動します。
gcloud compute instances start
VM_NAME
--zone=ZONE
以下のように置き換えます。
VM_NAME
: VM インスタンスの名前ZONE
: VM インスタンスが実行されているゾーン
RDP クライアントを使用してマシンに接続します。詳細については、インスタンスへの接続をご覧ください。
Windows Update を使用して最新の Windows の更新プログラムをインストールします。このプロセス中に、VM インスタンスの再起動が何回か必要になる場合があります。
すべてのアプリケーションが期待どおりに動作することを確認します。
アップグレードのロールバック
アップグレードが失敗した場合、gcloud CLI はロールバックを自動的に開始します。アップグレードが成功しても、いずれかのアプリケーションが期待どおりに動作しない場合があります。その場合は、元のブートディスクを使用するように VM インスタンスを変更して、アップグレードをロールバックします。
VM インスタンスを停止します。
gcloud compute instances stop
VM_NAME
--zone=ZONE
以下のように置き換えます。
VM_NAME
: VM インスタンスの名前ZONE
: VM インスタンスが実行されているゾーン
ビルドログで、元のブートディスクの名前とアタッチメントの名前を含む行を探します。
4. Original boot disk: ORIGINAL_DISK_NAME - Device name of the attachment: DEVICE_NAME
正常に動作しないオペレーティング システムを含むディスクをインスタンスから切断します。
gcloud compute instances detach-disk VM_NAME \ --device-name=DEVICE_NAME \ --zone=ZONE
以下のように置き換えます。
VM_NAME
: VM インスタンスの名前DEVICE_NAME
: ビルドログにあるデバイス名ZONE
: VM インスタンスが実行されているゾーン
元のブートディスクを再接続します。
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 インスタンスが実行されているゾーン
VM インスタンスを起動します。
gcloud compute instances start VM_NAME --zone=ZONE
以下のように置き換えます。
VM_NAME
: VM インスタンスの名前ZONE
: VM インスタンスが実行されているゾーン
クリーンアップ
追加料金が発生しないようにするため、アップグレード前に gcloud CLI が自動的に作成したバックアップを削除します。
ビルドログで、ディスク スナップショットの名前と元のブートディスクの名前を含む行を探します。
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: ...Cloud Shell に戻り、ディスク スナップショットを削除します。
gcloud compute snapshots delete SNAPSHOT_NAME
元のブートディスクを削除します。
ZONE
は、VM がデプロイされているゾーンで置き換えます。gcloud compute disks delete DISK_NAME --zone=ZONE
次のステップ
- Windows Server のインプレース アップグレードを手動で行う方法を確認する。
- インプレース アップグレードのトラブルシューティング方法を確認する。
- 永続ディスクのスナップショットについて学習する。