連載
» 2015年05月29日 05時00分 UPDATE

vNextに備えよ! 次期Windows Serverのココに注目(16):注目のNano Server、その謎に迫る――コンテナー技術との関係はいかに?

次期Windows Serverとなる「Windows Server 2016」には、「Nano Server」という新しいインストールオプションが用意されます。5月上旬に公開されたTechnical Preview 2では、Nano Serverの初めてのプレビューが提供されました。今回は、Nano Serverの謎にぐっと迫ります。

[山市良,テクニカルライター]
「vNextに備えよ! 次期Windows Serverのココに注目」のインデックス

連載目次

Nano Serverは“NanoServer”フォルダーの中にある

 「Nano Server」は、フットプリントの極めて小さい、いくつかの役割を実行するために最適化されたWindows Serverの“リファクタリングバージョン”です。Nano Serverについては、本連載第14回でもちょっと紹介しました。

 Nano Serverには、通常のWindows Serverのインストールのような対話的なインストーラーが存在しません。そのため、「Windows Server Technical Preview 2」のDVDイメージから「Setup.exe」を起動しても、Nano Serverを導入することはできません。

 では、Nano Serverはどこにあるのかというと、Windows Server Technical Preview 2のDVDイメージの「NanoServer」フォルダーに格納されています。ここにあるわずか138MBの「NanoServer.wim」が、Nano Serverのインストールイメージになります(画面1)。

画面1 画面1 DVDの「NanoServer」フォルダーにある「NanoServer.wim」がNano Serverのインストールイメージ

 ちなみに、通常のWindows Server Technical Preview 2のインストールイメージ「¥Sources¥Install.wim」は3.32GBです。「Install.wim」には、エディションやインストールオプションが異なる四つのイメージが入っているため、単純に比較することはできませんが、圧倒的に小さいことはお分かりいただけるでしょう。

 この「NanoServer.wim」をどうやって物理コンピューターや仮想マシンにインストールすればよいのかについて、本連載では具体的な手順を説明することはしません。Nano Serverは現時点で初めてのプレビューが提供されたばかりで、今後、導入手順が変更される可能性が大きいからです。

 ざっとインストール手順の概要を説明すると、オフラインで編集するために「NanoServer.wim」をローカルPCにマウントし、役割や機能のパッケージや標準のドライバー(Hyper-V仮想マシン用のドライバーとOEM用ドライバーがあります)、サードパーティ製のドライバーを組み込み、管理者パスワードやコンピューター名など基本情報の設定を行い、イメージを更新します。後は、WIMイメージを物理コンピューターの空のボリュームに展開するか、Hyper-Vの仮想マシンとして実行するためにVHD(Virtual Hard Disk)化します。

 具体的な導入手順を知りたい方は、本連載の最後に紹介する筆者の個人ブログをご覧ください。

Nano Serverはとにかく小さい。容量はわずか500MB!

 以下の画面2は、Hyper-Vの仮想マシン用にカスタマイズした、Nano ServerのVHDファイルです。仮想マシンを起動する前の時点で、そのサイズはわずか513MBです(画面2)。仮想マシンを起動するとメモリのページファイルが作成されるため数GBに膨れますが、バイナリが使用するディスク領域は500MB程度、通常のWindows Serverの10分の1以下です。

画面2 画面2 Hyper-Vの仮想マシン用に構成したNano ServerのVHDファイル。サイズはわずか513MB

セットアップは40秒。起動がとにかく速い!

 カスタマイズしたイメージを展開した物理コンピューターや仮想マシンを起動すれば、初回起動時に対話なしでインストールが完了します。以下の二つの画面を見比べてください(画面3画面4)。

画面3 画面3 カスタマイズしたNano Serverのイメージを含む仮想マシンを開始する
画面4 画面4 開始後37秒で起動が完了。つまり、インストールが完了したということ

 今回、Hyper-V仮想マシン用のイメージには、初回起動の完了時に「Hello Nano Server !」と表示するように仕込んでおきました。仮想マシンを開始して、この文字が表示されるまで37秒。オフラインによるWIMイメージのカスタマイズ時間を含まなければ、インストールは40秒以内に完了します。

 当然、コールドブートや再起動にかかる時間はもっと短く、筆者の環境ではどちらも20秒以内に完了しました。筆者のHyper-V環境が高性能なハードウエアを使用しているということでは決してありません。

 実は、このHyper-V環境は筆者のノートPCをWindows 10 Enterprise Insider Previewの「Windows To Go」(USB 2.0外付けハードディスク)で起動したものです。ホストOSとNano ServerのVHDはUSB 2.0接続の外付けハードディスク上のものなので、通常の物理環境よりも性能は劣ります。

ローカルコンソールはなし。リモート管理が大前提!

 Nano Serverはヘッドレスサーバー用の軽量OSであり、対話的なローカルログオン機能やローカルコンソールは備えていません。Hyper-Vの仮想マシンで起動した場合、仮想マシンのコンソールは真っ黒な状態で(エラーメッセージなどを表示する場合はありますが)、キーボードやマウスの操作は一切受け付けません。

 Nano Serverは、最初からリモート管理が大前提となっています。その方法としては、WMI(Windows Management Instrumentation)、Windows PowerShell Remotingによるネットワーク経由でのリモート管理、およびシリアルポート経由で接続するWindowsの「緊急管理サービス」(Emergency Management Service:EMS)の「SAC」(System Administration Console)コンソールによる管理があります(画面5)。

画面5 画面5 Nano Serverをリモート管理しているところ。上からWinRSコマンド、WMICコマンド、Windows PowerShell Remoting、シリアルポート経由(仮想マシンのCOMポートの名前付きパイプを利用)のSACコンソール

 Windowsの基本設定をコマンドラインだけで行うのは、コマンドの扱いに慣れていたとしても結構大変です。Nano Serverは、Windowsの全てのコマンドやWindows PowerShellコマンドレットを備えているわけではありませんし、Windows Script Host(WSH)も利用できません。

 例えば、ドメイン参加設定は通常のWindowsでは「netdom」コマンドで行えますが、Nano Serverには「netdom」コマンドが存在しません。代わりに、「djoin」コマンドによるオフラインドメイン参加の方法で行うか、展開用の「応答ファイル」(Unattend.xml)にドメイン参加設定を含めて構成する必要があります。また、静的なIPアドレスを設定するには、「netsh」コマンドを使用しますが、インターフェース名を調べたりするのが結構面倒です。

 ただし、Nano Serverで行う必要がある基本設定のコマンドラインはある程度決まっているので、それさえ押さえておけば大丈夫です。筆者の個人ブログでは、いくつか設定例を示していますので参考にしてください。

マルウエア対策機能も標準で入っています

 Windows Server Technical Preview 2には、マルウエア対策機能として「Windows Server Antimalware」が標準でインストールされており、デフォルトで有効になっています(画面6)。Windows Server Antimalwareは、Windows 8.1の「Windows Defender」の“サーバー版”と思ってください。

画面6 画面6 Nano Serverにはマルウエア対策機能の「Windows Server Antimalware」が標準で組み込まれている

 Nano Serverでは標準のWindows Serverが備えている多くの機能がごっそり削除されていますが、Windows Server Antimalwareは最初から入っています。もちろん、定義ファイルの手動アップデートや手動スキャンはリモートの管理手法で行うことになりますが……。

恐れることなかれ、GUIでも管理できるのでご安心を

 Windows Server Technical Preview 2のNano Serverは「Hyper-Vの役割」「ファイルサーバーの役割」「フェイルオーバークラスタリング」の機能をサポートしており、カスタマイズ時に必要な役割や機能を組み込むことができます。Hyper-VのスタンドアロンサーバーやHyper-Vホストクラスター、スケールアウトファイルサーバーのノードとしても利用できます。

 Nano Serverのフットプリントはわずか500MB程度で、カーネルが消費するメモリも少なくて済みます。仮想化環境でファイルサーバーを展開する場合、通常のWindows Serverの仮想マシンなら仮想マシン1台ごとにOSだけで10GB程度のディスクを消費することになるでしょう。それをNano Serverに切り替えれば、ディスクリソースのほとんどをデータ領域に使えることになります。これは本当に夢のようなことです。

 “Nano Serverはコマンドラインでしか管理できないんでしょう?”“PowerShellは覚えるのが大変!”と思うかもしれませんが、それは初期設定や起動/終了操作の話です。今後、初期設定の部分は、さまざまな方法で自動化できるようになるはずです。

 次の画面を見てください。Nano Serverで動くHyper-Vは、リモートの「Hyper-Vマネージャー」からちゃんと管理できます(画面7)。Nano Serverで動くファイルサーバーも、リモートの「サーバーマネージャー」から操作できます(画面8)。Nano Serverは限定された役割と機能しかサポートしていませんが、「サーバーマネージャー」の「役割と機能の追加ウィザード」で有効化することが可能です(画面9)。

画面7 画面7 Nano Serverで動くHyper-Vは、リモートの「Hyper-Vマネージャー」から管理できる。画面はNano ServerのHyper-V仮想マシンにWindows 10 Insider Previewをインストールしようとしているところ
画面8 画面8 Server Managerに組み込まれたファイルと記憶域サービスの管理機能を使用して、Nano Serverに共有フォルダーを構成しているところ
画面9 画面9 「サーバーマネージャー」の「役割と機能の追加ウィザード」もNano Serverに対応

 いずれの操作も、Windows PowerShellのHyper-Vやファイルサーバー対応のコマンドレットでリモート管理することができます(「Get-VM」コマンドレットなど)。Hyper-Vホストクラスターやスケールアウトファイルサーバーのノードとして使用する場合は、「フェイルオーバークラスターマネージャー」やコマンドレットからリモート管理ができます。どうぞ、ご安心ください。

 ただし、現状は管理システムのエージェントをNano Serverに展開することができません。例えば、「System Center Virtual Machine Manager」のエージェントなどです。この辺りにどう対応するのか、今後、大いに気になるところです。

Windows版DockerとNano Serverの関係(筆者の想像)

 Windows Server 2016ではコンテナー管理技術である「Docker」をサポートし、マイクロソフトは「Windows Serverコンテナー」および「Hyper-Vコンテナー」を提供する予定です。

 このコンテナーサポートの件と、Nano Serverを混同している人がいるかもしれないので、ここであらためて指摘しておきます。現在、Nano Serverで動くHyper-Vは、Hyper-Vコンテナーではありません。Nano Serverがサポートするサーバーの役割の一つである、Hyper-Vです。

 おそらく、Nano ServerでもDockerエンジンは動くことになるのでしょう。しかし、Nano Serverでなければならないのではなく、Windows Serverでも動くはずです。多くのLinuxでDockerが動作しますが、CoreOSのようにDockerに最適化された軽量OSがいくつか登場しています。Nano Serverは、Windows版のDockerにも使用できる軽量OSという位置付けになるのではないでしょうか。

 最後に、筆者が想像しているNano Server、Windows Server 2016、およびDockerの関係を図にしてみました(図1)。

図1 図1 筆者が想像するNano Server、Windows Server 2016、Dockerの関係。青い部分はすでに利用可能、グレー部分は今後提供予定、黄色の部分は管理ツールを示す

 Windows版のDockerクライアントはすでにプレビュー版が提供されていますが、Dockerエンジンの方は現時点で利用できません。もちろん、Windows ServerコンテナーもHyper-Vコンテナーも、提供されるのはまだまだ先の話です。

 なお、Hyper-Vコンテナーを動かすには、ホストOS側でHyper-Vハイパーバイザーが動作している必要があるようです。一見すると「Hyper-Vの入れ子(ネスト)状態」のように見えますし、実際、Hyper-Vコンテナーはそのように動くようです。これは、コンテナー技術がそのように見せているだけで(見掛けだけでなく動作も)、ハイパーバイザーは物理的なハードウエアのすぐ上で動いていることに変わりはないと筆者は予想しています。

 現在、LinuxのDockerエンジン上ではUbuntuやCentOSなど、さまざまなOSコンテナーを動かせますが、これらのコンテナーが各OSのカーネルを実行しているわけではなく、ホストOSのカーネルの機能を利用しているのと同じことです。付け加えるなら、Windows版Dockerエンジンの上では、Linuxコンテナーは動かないと思います。あくまでも筆者の想像ですが……。

個人ブログでNano Serverの詳細な導入手順と管理方法を紹介

 筆者が成功したNano Serverの導入手順と基本的なリモート管理操作の詳細を個人ブログで紹介しています。Nano Serverを試用する際には、ぜひ参考にしてください。


「vNextに備えよ! 次期Windows Serverのココに注目」バックナンバー

筆者紹介

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

岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2015)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

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

メールマガジン登録

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