Azure で Windows Server を実行している VM のインプレース アップグレード

インプレース アップグレードでは、設定、サーバーの役割、データを保持しながら、古いオペレーティング システムから新しいものに移行できます。 この記事では、インプレース アップグレードを使って Azure VM を Windows Server の新しいバージョンに移行する方法について説明します。 現在、Windows Server 2012、Windows Server 2016、Windows Server 2019、Windows Server 2022 へのアップグレードがサポートされています。

インプレース アップグレードを開始する前に:

  • ターゲット オペレーティング システムのアップグレード要件を確認します。

    • Windows Server 2008 (64 ビット) または Windows Server 2008 R2 から Windows Server 2012 へのアップグレード オプション

    • Windows Server 2012 または Windows Server 2012 R2 から Windows Server 2016 へのアップグレード オプション

    • Windows Server 2012 R2 または Windows Server 2016 から Windows Server 2019 へのアップグレード オプション

    • Windows Server 2016 または Windows Server 2019 から Windows Server 2022 へのアップグレード オプション

  • オペレーティング システム ディスクに、インプレース アップグレードを実行するのに十分な空き領域があることを確認します。 追加の領域が必要な場合、次の手順に従って、VM にアタッチされたオペレーティング システム ディスクを拡張します。

  • ウイルス対策ソフトウェア、スパイウェア対策ソフトウェア、ファイアウォールを無効にします。 これらのソフトウェアは、アップグレード プロセスと競合する可能性があります。 アップグレードが完了した後、ウイルス対策ソフトウェアとファイアウォールを再度有効にします。

VM をボリューム ライセンスにアップグレードする (KMS サーバーのアクティブ化)

Azure が提供するアップグレード メディアでは、VM が Windows Server のボリューム ライセンス用に構成されている必要があります。 これは、Azure の一般化されたイメージからインストールされたすべての Windows Server VM の既定の動作です。 VM が Azure にインポートされた場合、Azure が提供するアップグレード メディアを使うために、ボリューム ライセンスに変換する必要がある場合があります。 VM がボリューム ライセンスのアクティブ化用に構成されていることを確認するには、次の手順に従って、適切な KMS クライアント設定キーを構成します。 アクティブ化の構成が変更されている場合は、次の手順に従って Azure KMS サービスへの接続を確認します

Managed Disks へのアップグレード

インプレース アップグレード プロセスでは、アップグレード対象の VM 上で Managed Disks を使う必要があります。 Azure のほとんどの VM は Managed Disks を使っており、アンマネージド ディスクのサポートは 2022 年 11 月に廃止が発表されました。 VM が現在アンマネージド ディスクを使っている場合、次の手順に従って、Managed Disks に移行してください。

オペレーティング システム ディスクのスナップショットを作成する

インプレース アップグレード プロセスを開始する前に、オペレーティング システム ディスクとデータ ディスクのスナップショットを作成することをお勧めします。 これにより、インプレース アップグレード プロセス中に何か障害が発生した場合に、VM の以前の状態に戻すことができます。 各ディスクのスナップショットを作成するには、次の手順に従ってディスクのスナップショットを作成します

アップグレード メディア ディスクの作成

インプレース アップグレードを開始するには、アップグレード メディアがマネージド ディスクとして VM にアタッチされている必要があります。 アップグレード メディアを作成するには、次の Windows Server 2022 用 PowerShell スクリプトの変数を変更します。 アップグレード メディア ディスクは、複数の VM のアップグレードに使用できますが、一度に 1 つの VM のアップグレードにしか使用できません。 複数の VM を同時にアップグレードするには、同時アップグレードごとに複数のアップグレード ディスクを作成する必要があります。

パラメーター 定義
resourceGroup アップグレード メディアのマネージド ディスクを作成するリソース グループの名前です。 その名前のリソース グループが存在しない場合は、作成されます。
location アップグレード メディアのマネージド ディスクが作成される Azure リージョンです。 これは、アップグレードする VM と同じリージョンである必要があります。
ゾーン アップグレード メディア マネージド ディスクが作成される、選んだリージョンの Azure ゾーンです。 これは、アップグレードする VM と同じゾーンである必要があります。 リージョン VM (ゾーン以外) の場合、zone パラメーターは "" である必要があります。
diskName アップグレード メディアを格納するマネージド ディスクの名前です
sku Windows Server のアップグレード メディアのバージョンです。 server2016Upgradeserver2019Upgradeserver2022Upgradeserver2012Upgrade のいずれかである必要があります

複数のサブスクリプションがある場合は、Set-AzContext -Subscription '<subscription name or id> を実行して、使用するサブスクリプションを指定する必要があります。

PowerShell スクリプト

#
# Customer specific parameters


# Resource group of the source VM
$resourceGroup = "WindowsServerUpgrades"

# Location of the source VM
$location = "WestUS2"

# Zone of the source VM, if any
$zone = "" 

# Disk name for the that will be created
$diskName = "WindowsServer2022UpgradeDisk"

# Target version for the upgrade - must be either server2022Upgrade, server2019Upgrade, server2016Upgrade or server2012Upgrade
$sku = "server2022Upgrade"


# Common parameters

$publisher = "MicrosoftWindowsServer"
$offer = "WindowsServerUpgrade"
$managedDiskSKU = "Standard_LRS"

#
# Get the latest version of the special (hidden) VM Image from the Azure Marketplace

$versions = Get-AzVMImage -PublisherName $publisher -Location $location -Offer $offer -Skus $sku | sort-object -Descending {[version] $_.Version	}
$latestString = $versions[0].Version


# Get the special (hidden) VM Image from the Azure Marketplace by version - the image is used to create a disk to upgrade to the new version


$image = Get-AzVMImage -Location $location `
                       -PublisherName $publisher `
                       -Offer $offer `
                       -Skus $sku `
                       -Version $latestString

#
# Create Resource Group if it doesn't exist
#

if (-not (Get-AzResourceGroup -Name $resourceGroup -ErrorAction SilentlyContinue)) {
    New-AzResourceGroup -Name $resourceGroup -Location $location    
}

#
# Create Managed Disk from LUN 0
#

if ($zone){
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU `
                                   -CreateOption FromImage `
                                   -Zone $zone `
                                   -Location $location
} else {
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU `
                                   -CreateOption FromImage `
                                   -Location $location
} 

Set-AzDiskImageReference -Disk $diskConfig -Id $image.Id -Lun 0

New-AzDisk -ResourceGroupName $resourceGroup `
           -DiskName $diskName `
           -Disk $diskConfig  

アップグレード メディアの VM へのアタッチ

ターゲット Windows Server のバージョンに対応したアップグレード メディアを、アップグレードする VM にアタッチします。 これは、VM が実行中または停止中の状態で行うことができます。

ポータルの手順

  1. Azure portal にサインインします。

  2. [仮想マシン] を検索して選択します。

  3. 一覧からインプレース アップグレードを実行する仮想マシンを選びます。

  4. [仮想マシン] ページで、[ディスク] を選択します。

  5. [ディスク] ページ上で、[既存のディスクのアタッチ] を選びます。

  6. [ディスク名] のドロップダウンで、前の手順で作成したアップグレード ディスクの名前を選びます。

  7. [保存] を選んで、アップグレード ディスクを VM にアタッチします。

Windows Server 2016、2019、または 2022 へのインプレース アップグレードを実行する

インプレース アップグレードを開始するには、VM が Running 状態である必要があります。 VM が実行状態になったら、次の手順でアップグレードを実行します。

  1. RDP または RDP-Bastion を使って、VM に接続します。

  2. アップグレード ディスクのドライブ文字を決定します (通常は他にデータ ディスクがない場合、E: または F:)。

  3. Windows PowerShell を起動します。

  4. ディレクトリをアップグレード ディスク上の唯一のディレクトリに変更します。

  5. 次のコマンドを実行して、アップグレードを開始します。

    .\setup.exe /auto upgrade /dynamicupdate disable 
    
  6. Windows Server アップグレード マトリックスを参考に、VM の現在のバージョンと構成に基づいて適切な "アップグレード先" イメージを選びます。

アップグレード プロセス中、VM は自動的に RDP セッションから切断されます。 VM が RDP セッションから切断された後、Azure portal で使用できるスクリーンショット機能を通して、アップグレードの進行状況を監視できます。

Windows Server 2012 へのインプレース アップグレードのみ実行する

インプレース アップグレードを開始するには、VM が Running 状態である必要があります。 VM が実行状態になったら、次の手順でアップグレードを実行します。

  1. RDP または RDP-Bastion を使って、VM に接続します。

  2. アップグレード ディスクのドライブ文字を決定します (通常は他にデータ ディスクがない場合、E: または F:)。

  3. Windows PowerShell を起動します。

  4. ディレクトリをアップグレード ディスク上の唯一のディレクトリに変更します。

  5. 次のコマンドを実行して、アップグレードを開始します。

    .\setup.exe 
    
  6. Windows セットアップが起動したら、[今すぐインストール]を選びます。

  7. [Get important updates for Windows Setup] (Windows セットアップの重要な更新プログラムの取得) で、[No thanks] (今はやめておく) を選びます。

  8. Windows Server アップグレード マトリックスを参考に、VM の現在のバージョンと構成に基づいて、Windows Server 2012 の適切な "アップグレード先" イメージを選びます。

  9. [ライセンス条項] ページで、[ライセンス条項に同意する][次へ] の順に選びます。

  10. [What type of installation do you want?] (どのような種類のインストールが必要ですか?) で、[Upgrade: Install Windows and keep files, settings, and applications] (アップグレード: Windows をインストールし、ファイル、設定、アプリケーションを保持する) を選びます。

  11. セットアップにより互換性レポートが生成されます。警告をすべて無視して、[次へ] を選択できます。

  12. 完了すると、マシンが再起動され、RDP セッションから自動的に切断されます。 VM が RDP セッションから切断された後、Azure portal で使用できるスクリーンショット機能を通して、アップグレードの進行状況を監視できます。

アップグレード後の手順

アップグレード プロセスが正常に完了したら、次の手順でアップグレード プロセス中に作成された成果物をクリーンアップする必要があります。

  • OS ディスクとデータ ディスクのスナップショットが作成されている場合、それらを削除します。

  • アップグレード メディアのマネージド ディスクを削除します。

  • アップグレード プロセスの開始時に無効になっていたウイルス対策、スパイウェア対策、またはファイアウォール ソフトウェアを有効にします。

重要

イメージ プランの情報は、アップグレード プロセスの後では変更されません。

障害からの復旧

インプレース アップグレード プロセスが正常に完了しなかった場合、オペレーティング システム ディスクとデータ ディスクのスナップショットが作成されていれば、VM の以前のバージョンに戻すことができます。 スナップショットを使って VM を以前の状態に戻すには、次の手順を実行します。

  1. スナップショットからディスクを作成する」の手順に従って、OS ディスクのスナップショットと各データ ディスクのスナップショットから新しいマネージド ディスクを作成し、VM がゾーン内にある場合は VM と同じ可用性ゾーンにディスクを作成します。

  2. VM を停止します。

  3. VM の OS ディスクを交換します。

  4. VM からデータ ディスクをデタッチします。

  5. 手順 1 のスナップショットから作成したデータ ディスクをアタッチします。

  6. VM を再起動します。

次のステップ