知らなかったでは遅い? Hyper-V Serverは「インプレースアップグレード不可」という事実その知識、ホントに正しい? Windowsにまつわる都市伝説(138)

2018年10月初めにWindows 10 バージョン1809やWindows Server 2019とともにリリースされ、その後、配布が停止されていた「Hyper-V Server 2019」が、8カ月たった2019年6月15日にようやく再リリースされました。インストールメディア(ISOイメージ)は、MicrosoftのEvaluation CenterまたはVisual Studioサブスクリプションからダウンロード可能です。

» 2019年06月25日 05時00分 公開
[山市良テクニカルライター]
「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

こんなにも遅れた理由、それがはっきりしないモヤモヤ感

 「Microsoft Hyper-V Server 2019」の提供再開が大幅に遅れていることは、Hyper-V Serverの特徴や制約の説明とともに、本連載第131回で取り上げました。

 2018年10月の最初のリリース時にダウンロードしていて、その後の配布停止を知らない人がいるかもしれません。Hyper-V Server 2019は、同じビルドベースのWindows 10 バージョン1809(October 2019 Update)やWindows Server 2019とともに、2018年10月初めにリリースされましたが、その直後、Windows 10のファイル消失問題を受け、同じビルドベースの全てのOSについて、機能更新プログラムやインストールメディアの配布が停止されました。

 Windows 10やWindows Server 2019は2018年11月半ばに再リリースされましたが、Hyper-V Server 2019についてはその7カ月後(配布停止から8カ月後)にようやく再リリースとなりました。インストールメディアは「ビルド17763.557」ベース、つまり2019年6月定例の累積更新プログラム適用済み相当です(画面1)。

画面1 画面1 配布停止から8カ月後にようやく再リリースされたHyper-V Server 2019

 なぜ提供再開が大幅に遅れたのか、はっきりとした説明はありませんし、数カ月前からもうすぐリリースされるような情報を何度も目にしましたが、結局、提供再開のその日までリリース日が示されることはありませんでした。

 初期リリース版(ビルド17763.1ベース)には、Windows Updateが累積更新プログラムを検出しない問題や、リモートデスクトップサービスが機能しない問題がありました。リモートデスクトップサービスの問題は2019年3月1日の「KB4482887」(ビルド17763.348)以降で修正されましたが、Windows Updateの問題は修正されることはありませんでした。そのため、初期リリース版を利用し続けるには、Microsoft Updateカタログから累積更新プログラムをダウンロードしてインストールするか、「Windows Server Update Services(WSUS)」を利用する必要がありました。

 また、Windows Server 2019で「Hyper-Vの役割」を有効化する際に、一部のハードウェアで起動プロセスがループするという問題は、Hyper-V Server 2019にも影響しました。Windows Server 2019のこの問題は、2019年1月22日の「KB4476976」(ビルド17763.292)以降で修正されました。

 提供再開の遅れは、これらの問題が関係していることに間違いないでしょう。再リリース版では、Windows Updateの問題も修正されているはずです。しかし、本当に修正されているかどうかは、2019年7月の定例の累積更新プログラムを検出、インストールできることを確認するまで、筆者は信じられません。なぜなら、説明がないからです。

インプレースアップグレードできない問題、実は仕様だった

 古くからのWindowsやWindows Serverユーザーなら、新バージョンのリリースは「クリーンインストール」の良い機会と考える人が多いと思います。アップグレードではなく、クリーンインストールを選択することで、アップグレード時に発生するかもしれない問題を回避できるし、ディスク使用量の削減や安定性の向上を期待できるからです。Windows 10が登場したことで、クライアントOSについてはアップグレードが主流になったようですが、Windows Serverでは今でもクリーンインストールを選択する人が多いのではないでしょうか(画面2)。

画面2 画面2 再リリース版のHyper-V Server 2019のクリーンインストール

 その一方で、運用環境のシステム構成を維持しながら最新バージョンに移行したい、データ量が多い(例えば、仮想マシンの仮想ハードディスクなど)からデータ移動を必要としないアップグレードで済ませたいという人にとって、「インプレースアップグレード」(アップグレードインストール)もまた貴重な選択肢です。

 長期サービスチャネル(LTSC)のWindows Serverは、2世代前のバージョンからのインプレースアップグレードを正式にサポートしています。例えば、Windows Server 2016はWindows Server 2012/2012 R2から、Windows Server 2019はWindows Server 2012 R2とWindows Server 2016からアップグレード可能です。ただし、Windows Serverの役割やアプリケーションによっては、アップグレードに対応しておらず、クリーンインストールして役割やデータを移行するという手段しかない場合もあります。

 Windows Serverの「Hyper-Vの役割」はインプレースアップグレードをサポートしており、筆者はこれまでのリリースでそれが可能なことを実際に試してきました。Hyper-V Serverも同じだと、筆者を含め、多くの人が認識していると思います。しかし、Hyper-V Serverは違いました。先に言っておきますが、Hyper-V Server 2016以降、インプレースアップグレードはサポートされていません。

 筆者は、初期リリース版のインストールメディア(17763.1ベース)でクリーンインストールしたHyper-V Server 2019を、再リリース版でアップグレードすることで既存の問題を解決できるだろうと期待して、2019年6月まで累積更新プログラムを手動でインストールし、ビルド17763.557まで更新してきました。

 この環境を再リリース版のインストールメディア(17763.557ベース)を使用して、インプレースアップグレードしようとしたところ、アップグレードオプションである「個人用ファイルとアプリを引き継ぐ」を選択できず、「インストールしようとしているWindowsのエディションが、現在使用しているエディションと異なるため、ファイル、アプリ、設定を引き継ぐことができません」と表示されたのです(画面3)。

画面3 画面3 問題のある初期リリース版の環境を正常化するため、再リリース版でアップグレードしようとしたところ、アップグレードオプションを選択することができない

 Microsoftの公式アナウンスに投稿された会話の中では、アップグレードを開始できるものの、「0x80070490」エラーで失敗するという報告がありました。試しに、初期リリース版のメディアでクリーンインストールした直後、再リリース版でアップグレードしてみたところ、「100%完了しました」まで進み、最初の再起動が始まる手前のところで「Windows Server 2019のインストールが失敗しました」と表示され、ログファイル(C:\$WINDOWS.~BT\sources\panther\setupact.logおよびsetuperr.log)に「0x80070490」エラーが記録されました。

 その後、公式アナウンスの会話の中で、MicrosoftのBen Armstrong氏(「Virtual PC Guy」としても知られています)は、「We have never supported in-place upgrade with the stand alone Hyper-V server.(スタンドアロンのHyper-V Serverのインプレースアップグレードはサポートされていません)」と言っています。まさかと思い、公式ドキュメントを探したところ、次のページを見つけました。

 このドキュメントは、Windows Server 2012 R2とWindows Server 2016でサポートされるアップグレードパスについて説明したものですが、リストの中に対応するバージョンのHyper-V Serverも含まれます。Hyper-V Serverだけを抜き出したものが、以下の表1です。

アップグレード元 アップグレード先
Hyper-V Server 2012 Hyper-V Server 2012 R2
Hyper-V Server 2012 R2 Hyper-V Server 2016(クラスタOSローリングアップグレードを使用)
表1 サポートされるアップグレードパス(Hyper-V Serverのみを抽出したもの)

 つまり、Hyper-V Server 2012からHyper-V Server 2012 R2へのインプレースアップグレードはスタンドアロンでも可能ですが、Hyper-V Server 2012 R2からHyper-V Server 2016は「クラスタOSローリングアップグレード(Cluster Operating System Rolling Upgrade)」を使用する必要があると言っています。Hyper-V Server 2016からは、スタンドアロンはサポートされないということです。また、Hyper-V Server 2016については、1世代前のバージョンのみがサポートされています。

 現時点でHyper-V Server 2019の情報は反映されていませんが、この仕様に従うなら、Hyper-V Server 2019にアップグレード可能なのはHyper-V Server 2016のみで、さらにクラスタOSローリングアップグレードを使用する必要があるということになります。スタンドアロンのHyper-V Serverをインプレースアップグレードできたのは、Hyper-V Server 2012 R2へのアップグレードまでということです(画面4)。

画面4 画面4 スタンドアロンのHyper-V Serverのインプレースアップグレードのサポートは、Hyper-V Server 2012 R2へのアップグレードが最後

 実際に、Hyper-V Server 2012 R2からHyper-V Server 2016、Hyper-V Server 2016からHyper-V Server 2019へのインプレースアップグレード、つまりサポートされないアップグレードパスでのアップグレードを試してみました。

 いずれも、古いバージョンはインストール直後からのアップグレードで行いました。Hyper-V Server 2012 R2からHyper-V Server 2016は「個人用ファイルとアプリを引き継ぐ」を選択して続行できましたが、インストールを開始する画面が表示されないまま、無限ループに入ってしまったようです(画面5)。

画面5 画面5 Hyper-V Server 2012 R2からHyper-V Server 2016へのインプレースアップグレードは、インストール開始直前に無限ループに入り、何も表示されない状態に

 そのため、「×」ボタンをクリックしてキャンセルするしかありませんでした。Hyper-V Server 2016からHyper-V Server 2019も「個人用ファイルとアプリを引き継ぐ」を選択して続行できましたが、再起動が開始する手前で「Windows Server 2019のインストールが失敗しました」と表示され、ログファイルに「0x80070490」エラーが記録されました(画面6)。

画面6 画面6 Hyper-V Server 2016からHyper-V Server 2019へのインプレースアップグレードは「0x80070490」エラーで失敗

 同じくサポートされていないアップグレードパスであるHyper-V Server 2012 R2からHyper-V Server 2019へのインプレースアップグレードも試してみました。こちらは再起動まで問題なく進み、「更新プログラムを構成しています X%」まで進んだ後、次の再起動でインストールの修復処理が走り、元の状態にロールバックされました。

 そしてログオンすると、「Windows Server 2019をインストールできませんでした……0x80070490 - 0x2000E SET_PRODUCT_KEY 操作中にエラーが発生したため、インストールはSAFE_OSフェーズで失敗しました」と表示されました。この挙動の違いは、アップグレード元のバージョンによってアップグレードプロセスが異なるから(古い方法が使用されるから)だと思います。

クラスタOSローリングアップグレードが使えない場合

 クラスタOSローリングアップグレードは、Windows Server 2016からサポートされるようになった「フェールオーバークラスター」のアップグレード方法です。Hyper-V ServerはフェールオーバークラスタリングやActive Directoryドメイン参加機能をサポートしており、Hyper-Vホストクラスタに参加できます。

 Hyper-VホストクラスタはクラスタOSローリングアップグレードを使用することで、仮想マシンをライブマイグレーションでアクティブなノード(ホスト)に退避しながら、クラスタの各ホストを新バージョンのOSに入れ替えていくことができます。

  ホストの入れ替えは、クラスタからのホストの削除、新OSのホストの追加で行われます。ホストの新OSへの入れ替えは、インプレースアップグレードではなく、クリーンインストールで行うことになります(別のハードウェアでも構いません)。Hyper-V Server 2016のアップグレードがこの方法だけをサポートするということは、つまり、Hyper-V Server 2016はインプレースアップグレードそのものをサポートしていないということになります。おそらく、Hyper-V Server 2019も同様です。

 Hyper-V Serverを単に「無料のハイパーバイザー」としてスタンドアロンで利用している場合、クラスタOSローリングアップグレードは選択肢にならないでしょう。インプレースアップグレードはサポートされていませんし、強行してもおそらく失敗します。そして、サポートされないアップグレードパスについて、Microsoftに解決策や修正を求めることはできません。

 クラスタOSローリングアップグレード以外の方法でHyper-V Server 2016以前をHyper-V Server 2019にするには、仮想マシンを別の場所にエクスポート(またはファイルをコピー)し、Hyper-V Server 2019をクリーンインストールしてから、仮想マシンをインポートし、その後、仮想マシンの構成バージョンをアップグレードするという手順になります。

 初期リリース版のインストールメディアを使用してインストールしたHyper-V Server 2019の環境は、この手順で再リリース版に移行することをお勧めします。そして、初期リリース版のインストールメディアは、誤使用を避けるために削除してしまいましょう。

  • 初期リリース版のインストールメディアのファイル名(使用しないでください):17763.1.180914-1434.rs5_release_SERVERHYPERCORE_OEM_X64FRE_ja-jp.iso
  • 再リリース版のインストールメディアのファイル名:17763.557.190612-0019.rs5_release_svc_refresh_SERVERHYPERCORE_OEM_x64FRE_ja-jp.iso(Evaluation Center)、ja_microsoft_hyper-v_server_2019_x64_dvd_1847d206.iso(Visual Studioサブスクリプション)

 Hyper-V Server 2019のワークグループ環境におけるリモート管理のセットアップ方法、「Server Core App Compatibility Feature on Demand(Server Coreアプリ互換性オンデマンド機能)」(Microsoft管理ツール、エクスプローラー、Internet Explorer 11などの追加)のサポートなどについては、再リリース直後に筆者の個人ブログにまとめてあります。この個人ブログで遭遇した問題が、今回紹介したアップグレードの制約について知るきっかけになりました。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2018/7/1)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。