Windows Server 2012 R2 Essentials以降で可能になった「物理+仮想」展開
Windows Server 2012 R2 Essentialsでは、Windows Server 2012 Essentials以前では利用できなかったHyper-Vの役割とHyper-V Managerが利用できるようになっています
また、Windows Server 2012 R2 Essentials以降ではライセンスが拡張され、同一の物理サーバー上に以下のような展開をすることが可能になりました。
- 物理環境に対して「Hyper-Vホスト」として、Windows Server 2012 R2 Essentials以降をインストール
(ホストにはEssentials エクスペリエンス 役割と関連する役割サービスをインストールせず、Hyper-Vのみ構成する) - 仮想環境に対して「Hyper-Vゲスト」として、Windows Server 2012 R2 Essentials以降をインストール
(ゲストにEssentials エクスペリエンス 役割と関連する役割サービスをインストール)
Windows Server Essentials エクスペリエンスサービスを仮想インスタンスとして展開することで、ライブマイグレーションなどの仮想化による恩恵を受けることができます。
しかし、ライセンス面では上記の通りWindows Server EssentialsをHyper-Vホストとして利用することが認められてますが、実際にインストールしようとすると特殊な手順をつかって正しくインストールしなければ一定期間ごとにシャットダウンしてしまうようになります。
そのため、改めて「物理+仮想」展開を可能とするためのインストールメディア作成方法を紹介します。
「物理+仮想」展開をワンストップで実現するための、インストールメディアカスタマイズ
Windows Server 2012 R2 Essentials 以降では、この「物理+仮想」展開をより容易に展開することを可能とするために、OEM向けにイメージのカスタム方法が公開されています。このカスタマイズ方法は、
- Windows Server 2012 R2 Essentials
- Windows Server 2016 Essentials
共通の手法となります。
もちろんOEMだけでなく、DSP版として入手したイメージをカスタマイズしていただいても問題ありませんし、この方法はWindows Server 2012 R2 Standardや DataCenterなどのSKUで、Windows Server Essentials エクスペリエンスを展開する場合にも同様に利用できます。
インストールメディアのカスタマイズ方法
TechNetで公開されている、展開のカスタマイズ – Essentials に従って実行します。ここでは、同じことを実際に試してみます。
「物理+仮想」展開を実施するには、
- Hyper-Vゲスト用のイメージの準備
- Hyper-Vゲスト用イメージを含んだ、Hyper-Vホスト用のイメージの準備
が必要となります。
1. Hyper-Vゲスト用イメージの作成
クライアントコンピューターなどで、インストールイメージのカスタマイズを行います。作業を行うPCにはあらかじめ、Windows ADK(Windows アセスメント & デプロイメント キット)をインストールしておきます。
- 入手したインストールメディアをPCに挿入します。
- インストールメディア内のすべてのファイルを、PCのローカルフォルダーにコピーします。ここでは、C:\essentials-image フォルダーを作成し、コピーします。
- マウント用のフォルダーを作成し、2でコピーしたインストールイメージをマウントします。ここでは、C:\essentials-mount フォルダーを作成し、マウントします。
md c:\essentials-mount dism /Mount-Image /ImageFile:"C:\essentials-image\sources\install.wim" /Index:1 /MountDir:"C:\essentials-mount"
- OEMとしてファイルを追加したり、自社のサポート連絡先などの情報、その他のカスタマイズなどを実施したい場合などは、DISMを利用して、必要なカスタマイズを実施します。
カスタマイズできる内容と、具体的なカスタマイズ方法は、以下を参考にしてください。 - 複数の言語のサポートが必要な場合、DISMを利用して言語パックを追加します。具体的な方法を以下を参考にしてください。
- 仮想マシンが自動的にラインセンス認証されるよう、Automatic Virtual Machine Activation (AVMA)用のプロダクトキーを設定します。
Dism /Image:C:\essentials-mount /Set-ProductKey:12345-67890-12345-67890-12345
AVMA用のプロダクトキーは以下の通りとなります。
Windows Server 2012 R2 Essentials K2XGM-NMBT3-2R6Q8-WF2FK-P36R2 Windows Server 2016 Essentials B4YNW-62DX9-W8V6M-82649-MHBKQ - Essentialsエクスペリエンスのウィザードを自動応答させるには、Cfg.iniファイルを作成して、イメージのルートに配置します。
Cfg.iniファイルの書式は、以下を参考にしてください。
参考:Create the Cfg.ini File - DISMで実施したカスタマイズをコミットします。
dism /Unmount-Image /MountDir:"C:\essentials-mount" /Commit
- 作成したカスタマイズイメージから、ISOファイルまたはVHDXを作成します。ISOファイルでもインストールできますが、インストール時に仮想マシンの構成の時間にかかる時間を考慮すると、ISOファイルからVHDXを作成してVHDXをイメージに組み込むことが推奨されます。
- 以下のコマンドを実行してISOファイルを作成します。ここでは、Windows ADKをインストールしたWindows 10クライアントで実行する場合を例にとります。作業環境により、Windows ADKのインストールされるパスは異なりますので、自身の環境に合わせて適宜コマンドは修正してください。
cd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg" .\oscdimg -m -o -u2 -udfver102 -bootdata:2#p0,e,b"c:\essentials-image\boot\etfsboot.com"#pEF,e,b"c:\essentials-image\efi\microsoft\boot\efisys.bin" C:\essentials-image C:\OEMEssentials.iso
- VHDXにする場合はさらに、Convert-WindowsImageをダウンロードして、C:\scriptsに保存します。1でISO作成後、以下のコマンドを実行します。
powershell -c "Set-ExecutionPolicy Unrestricted; C:\scripts\Convert-WindowsImage.ps1 -VHDFormat vhdx -sizebytes 127GB –sourcepath C:\OEMEssentials.iso -vhdpath C:\OEMEssentials.vhdx"
- 以下のコマンドを実行してISOファイルを作成します。ここでは、Windows ADKをインストールしたWindows 10クライアントで実行する場合を例にとります。作業環境により、Windows ADKのインストールされるパスは異なりますので、自身の環境に合わせて適宜コマンドは修正してください。
- 以上で、カスタマイズしたHyper-Vゲスト用のISOイメージの作成は終了です。
2. Hyper-Vホスト用イメージ作成
- 入手したインストールメディアをPCに挿入します。
- インストールメディア内のすべてのファイルを、PCのローカルフォルダーにコピーします。ここでは、C:\essentials-host-image フォルダーを作成し、コピーします。
- マウント用のフォルダーを作成し、2でコピーしたインストールイメージをマウントします。ここでは、C:\essentials-host-mount フォルダーを作成し、マウントします。
md c:\essentials-host-mount dism /Mount-Image /ImageFile:"C:\essentials-host-image\sources\install.wim" /Index:1 /MountDir:"C:\essentials-host-mount"
- DISMコマンドを利用して、ホストOSからWindows Server Essentials エクスペリエンスの役割を削除します。
dism /Image:C:\essentials-host-mount /Disable-Feature:"wss-product-package"
Windows Server 2012 R2 StandardやDatacenterでWindows Server Esesentialsエクスペリエンスを利用する場合、Windows Server Essentiaksエクスペリエンスの役割を有効にします。
dism /Image:C:\essentials-host-mount /Enable-Feature:wss-product-package /all dism /Image:C:\essentials-host-mount /Enable-Feature:Microsoft-Windows-ServerEssentials-ServerSetup
- Hyper-VとHyper-V管理用のPowerShell、Hyper-V Management RSATツールを有効にします。
dism /Image:C:\essentials-host-mount /Enable-Feature:Microsoft-Hyper-V /All dism /Image:C:\essentials-host-mount /Enable-Feature:Microsoft-Hyper-V-Management-Clients /All dism /Image:C:\essentials-host-mount /Enable-Feature:Microsoft-Hyper-V-Management-PowerShell /All
- サーバーマネージャーが起動しないよう、レジストリキーを修正します。
reg load HKLM\test C:\essentials-host-mount\windows\system32\config\software reg add "HKLM\test\Microsoft\ServerManager" /v DoNotOpenServerManagerAtLogon /t REG_DWORD /d 1 /f
「物理+仮想」展開のウィザードが実行されるよう、レジストリキーを修正します。
reg add "HKLM\test\Microsoft\Windows Server\Setup\OEM" /v DeployAsVM /t REG_SZ /d C:\DeployAsVM\ICConfig.xml /f reg unload HKLM\test
- ICConfig.xmlをサンプルに従ってあらかじめC:\ICConfig.xmlとして保存しておき、これをイメージに組み込みます。
md C:\essentials-host-mount\DeployAsVM copy C:\ICConfig.xml C:\essentials-host-mount\DeployAsVM\ICConfig.xml
ICConfig.xmlファイルのサンプルは以下のような内容になります。
<?xml version="1.0" encoding="utf-8"?> <DeploymentSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WindowsServer/Essentials/2013/01/ServerDeployment/Virtualization"> <InstallationMedia>C:\DeployAsVM\OEMEssentials.iso </InstallationMedia> <VMBaseDirectory>%SYSTEMROOT%\vms</VMBaseDirectory> <VMProcessorCount>4</VMProcessorCount> <VMMemorySizeMB>4096</VMMemorySizeMB> <VMSystemDiskSizeGB>127</VMSystemDiskSizeGB> <VMDataDiskSizeGB>999</VMDataDiskSizeGB> </DeploymentSettings>
項目 説明 InstallationMedia Windows Server Essentials 仮想ゲスト インスタンスに使われるイメージへのパスを指定します。イメージは .iso 形式または .vhdx 形式で保存できます。 AllowDeployOnHost (省略可能) このメディアを利用して、通常通り物理インストール オプションも使うことができるかどうかを指定します。
値が “true” の場合は、物理インストールと仮想インストールのオプションがユーザーに表示され、どちらかを選ぶことができます。
値が “false” の場合は、仮想インストールのオプションだけがユーザーに表示されます。
VMBaseDirectory (省略可能) VM ファイルの場所を指定します。 VMProcessorCount (省略可能) VM に割り当てられた論理プロセッサ コアの数を指定します。 VMMemorySizeMB (省略可能) VM に割り当てられたメモリ サイズを指定します。既定では、使用可能なメモリの 80% が VM に使用されます。 VMSystemDiskSizeGB (省略可能) システム ドライブのサイズを指定します。既定では 127 GB です。 VMDataDiskSizeGB (省略可能) データ ドライブのサイズを指定します。ここで指定したサイズの仮想ディスクが作成され、データ用ドライブとして仮想マシンに接続されます。 既定では、ハード ディスクの利用可能な領域が使用されます。ハード ドライブの合計サイズがディスクの物理容量を超えないようにする必要があります。
- 先に作成しておいた、Hyper-Vゲストのイメージ(ISOまたはVHDX)をHyper-Vホストのイメージの中に組み込みます。
copy C:\OEMEssentials.iso C:\essentials-host-mount\DeployAsVM\OEMEssentials.iso
- 複数の言語のサポートが必要な場合、DISMを利用して言語パックを追加します。具体的な方法を以下を参考にしてください。
- コンピューター名などをカスタマイズする場合、unattend.xmlを作成してイメージの中に組み込みます。
- DISMで実施したカスタマイズをコミットします。
dism /Unmount-Image /MountDir:"C:\essentials-host-mount" /Commit
- 作成したカスタマイズイメージから、ISOファイルまたはVHDXを作成します。
- ISOファイルにする場合、以下のコマンドを実行します。ここでは、Windows ADKをインストールしたWindows 10クライアントで実行する場合を例にとります。作業環境により、Windows ADKのインストールされるパスは異なりますので、自身の環境に合わせて適宜コマンドは修正してください。
cd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\oscdimg" .\oscdimg -m -o -u2 -udfver102 -bootdata:2#p0,e,b"c:\essentials-host-image\boot\etfsboot.com"#pEF,e,bc:\essentials-host-image\efi\microsoft\boot\efisys.bin C:\essentials-host-image C:\OEMEssentialsHost.iso
- さらにISOファイルからVHDXを作成する場合は、Convert-WindowsImageをダウンロードして、C:\scriptsに保存。以下のコマンドを実行します。
powershell -c "Set-ExecutionPolicy Unrestricted; C:\scripts\Convert-WindowsImage.ps1 -VHDFormat vhdx -sizebytes 127GB –sourcepath C:\OEMEssentialsHost.iso -vhdpath C:\OEMEssentialsHost.vhdx"
- ISOファイルにする場合、以下のコマンドを実行します。ここでは、Windows ADKをインストールしたWindows 10クライアントで実行する場合を例にとります。作業環境により、Windows ADKのインストールされるパスは異なりますので、自身の環境に合わせて適宜コマンドは修正してください。
- 以上で、仮想インスタンスへのインストールを可能にするメディアの作成か完了です。作成したイメージをもとにインストールを実行します。
Hyper-Vのゲストのイメージも含むイメージは10GB近くのイメージとなりますので、8GB以上のUSBメモリーなどを利用する必要があります。
カスタマイズしたメディアからのインストール
これらの工程を経てカスタマイズしたメディアからWindows Server Essentialsをインストールすると、OSインストールフェーズの完了後に起動する[Windows Server Essentialsの構成]ウィザードの最初の画面が下記のようになります。
通常のインストールと異なり、[仮想インスタンスとしてインストールする]か[物理ハードウェアにインストールする]かを選択することができるようなっています。
Windows Server 2016 Essentialsの場合は以下のような画面です。
ここで、[仮想インスタンスとしてインストールする]を実行することで、物理OSをHyper-Vホストとして構成し、Hyper-VゲストにWindows Server Essentialsをインストールするように構成されます。
[物理ハードウェアにインストールする]を選択すると、従来通り物理環境にEssentialsサーバーがインストールされます。
unattend.xmlを利用していな場合で、Hyper-Vホストのサーバー名を変更したい場合は、ここで変更してから一度再起動します。再起動後、自動的にEssentialsの構成ウィザードが再実行されます。
仮想インスタンスとしてインストールする流れ
[次へ]を押下すると、Hyper-Vホストのセットアップが始まります。
Hyper-Vの構成が完了しゲストOSの準備に進むと、以下のような画面になります。バックグラウンドでは、Hyper-VのゲストOSのインストールが進行しています。
仮想マシンの準備ができると、ホストOS側にWindows Server Essentialsの構成ウィザードが表示されます。
以降は、通常のEssentials同様に、ウィザードに従って入力していくことで仮想ゲスト上のWindows Server Essentialsが構成されます。ドメイン名や、仮想マシンのコンピューター名もウィザード上で指定できます。
インストールが完了すると、以下の画面が表示されます。
あとは、クライアントコンピューターにコネクターをインストールして、ダッシュボードを通じてサーバーの管理をすることができるようになります。
またインストールが完了すると、ホストOSのデスクトップ上にもEssentialsサーバーへのリモートデスクトップ接続のショートカットが配置されます。ここからサーバーに接続することもできます。
なかなか作りこまれている感じなのですが、このメディア作成からの「物理+仮想」インストール方法もあまり知られていないのが残念です。これから導入を検討されている方の参考になれば幸いです。
なお、Windows Server Essentialsエクスペリエンスはこの2016で開発終了となりますが、2022年1月11日までのメインストリームサポートがありますし、延長サポートは2027年1月11日まで受けられます。