第2回 Windows Server 2012 R2の主要な改善点:Windows Server 2012 R2パワー(2/2 ページ)
リリースが開始された次期Server OSであるWindows Server 2012 R2の概要解説の後編。今回はワーク・フォルダや階層化記憶域、Hyper-Vの第2世代サポートなど主要な改善点を解説しておく。
Hyper-Vの改善点
Hyper-V関連の新機能は数多くあるが、今回は仮想マシンの「世代」と「拡張セッション・モード」機能だけ紹介しておく。
Windows Server 2012 R2のHyper-Vでは、新しく仮想マシンに「世代(Generation)」という概念が導入され、仮想マシンのアーキテクチャが一新された。以前の仮想マシン・アーキテクチャは「第1世代」と呼ばれ、互換性や古いOSなどのために残されているが、これとは別に新しく「第2世代」アーキテクチャが導入された。
従来の仮想マシン(第1世代)では過去との互換性を考え、非常に古いPC/ATアーキテクチャをエミュレーションしていた。IDEやPS/2キーボード/マウス・ポート、シリアルやパラレル・ポートなどの「レガシー・デバイス」もサポートされており、古いOSを使うには便利かもしれないが、機能やパフォーマンスは犠牲になっていた。これに対して第2世代アーキテクチャではレガシー・デバイスやBIOSなどを排除し、デバイスに対する要求はすべてVMBusを介してハイパーバイザ(ホストのWindows OS)へパスして処理するようになっている。またBIOSではなく「UEFI(Unified Extensible Firmware Interface)」を採用することにより、セキュア・ブート(ブート・コードの改ざんを防ぐ仕組み)や高速なブート、2Tbytes以上のディスクからのブート(詳細は「2Tbytes超ディスクをシステム用ディスクとして利用する」参照)などを実現している。
仮想マシンの世代指定
Windows Server 2012 R2のHyper-Vでは、仮想マシンを作成するときに世代を指定する。以前のHyper-Vの仮想マシンは第1世代になる。新しい第2世代ではレガシー・デバイスやBIOSなどを廃し、機能強化や性能向上を図っている。
(1)従来と互換性のあるモード。
(2)新しいモード。利用可能なのは64bit版のWindows 8以降か、Windows Server 2012以降のOSのみ。
もう1つ大きな機能強化として、「拡張セッション・モード」のサポートがある。これは、Hyper-Vを実行しているホスト・システムに接続されているデバイスをゲストの仮想マシンへマウントしたり、クリップボードなどをサポートする機能である。Hyper-V以外の仮想システムや、リモート・デスクトップなどでは昔からサポートされていた機能だが、Hyper-Vでもようやく使えるようになった。この機能は例えば(セキュリティなどのために)ネットワーク接続を無効にしている仮想マシンとホストの間でデータをやり取りするといったケースで役に立つだろう。
仮想マシンへ接続するデバイスの指定
ホストOS(この場合はWindows Server 2012 R2)に接続されているデバイスを仮想マシンに接続できる。
(1)どのデバイスを仮想マシンへ接続させるかを選択する。
ただしこの機能を使うためには、ゲストOSとしてWindows 8.1かWindows Server 2012 R2が要求される。
PowerShellのDSC機能
Windows Server 2012 R2ではPowerShellにもいくつか強化点があるが、ここでは「DSC(Desired State Configuration Service)」について紹介しておく。これはPowerShellに新しく導入された機能(記述方法)の1つで、今までの手続き的な記述とは違い、操作や設定変更対象の「状態を記述する」という、宣言的なプログラム機能である。
従来のPowerShellのスクリプトは、何らかの操作をするためのコマンドレットが順番に並んだ手続き的なものであったが、DSCではServer OSの設定(状態)などを記述するだけである。例えばIISを導入するDSCのスクリプトは次のようになる。
※PowerShell 4.0のDSCのスクリプト例
Configuration MyWebConfig
{
param($MachineName, $WebsiteFilePath)
Node $MachineName
{
WindowsFeature IIS
{
Ensure ="Present"
Name ="Web-Server"
}
File WebDirectory
{
Ensure = "Present"
Type = "Directory"
Recurse = $true
SourcePath = $WebsiteFilePath
DestinationPath = "C:\inetpub\wwwroot"
Requires = "[WindowsFeature]IIS"
}
}
}
見れば分かるように、手続き的な記述はどこにもない。最初の「WindowsFeature IIS」でIIS役割を導入する(有効にする)ことを指示し、次の「File WebDirectory」でIISのルートにファイルをコピーするように指示している。導入すべきServer OSの役割を宣言したり、ファイルのコピー処理を記述するだけでなく、レジストリの設定や環境変数の設定、サービスやユーザー、グループの設定、ZIPの展開など、ほかにもいくつかの書式が用意されている。
このようにDSCでは「何をするか」ではなく、「どのようになるか/どのように設定するか」を記述する。システムの状態を記述しているだけなので、何度適用しても結果は同じになる(間違えて複数回適用しても問題ない)。
DSCについては今後回を改めて詳しく取り上げるが、これは管理者にとって便利であるだけではなく、開発者にとっても有用な機能である。開発したシステムを動作させるためには、サーバをあらかじめ決められた状態にセットアップしておく必要があるが、このとき必要なServer OSの役割や機能の組み合わせなどが複雑だったり、設定項目が多数あると、その準備は簡単ではないし、日常の管理も非常に面倒である。だがDSCであらかじめ設定をスクリプト化しておけば運用管理者はそれを適用するだけでよく、その内容を深く理解する必要はなくなる。開発者と運用担当者のスムースな連携は円滑なシステム運用のためには必須であり、最近では「DevOps」などと呼ばれて注目されているが、PowerShell 4.0のDSCは、このDevOpsを支援するための重要な機能となるだろう。
階層化記憶域
記憶域プール関連でもいくつか機能が強化されているが、ここでは階層化記憶域について紹介しておこう。
「階層化記憶域」とは、ストレージ・デバイスのタイプをSSD(半導体ディスク)のような高速・小容量なものと、HDDのような非高速・大容量なものの2階層に分けて管理する機能のことである。ホット・データ(頻繁に書き換えられたり、多く参照されるもの)をSSDに、コールド・データ(更新や参照の頻度が少ないもの)をHDDに保存することにより、よく使われるデータには素早くアクセスできるようになる。さらに参照の頻度が少なくなったデータは随時HDD側へ移行させることにより、少ないSSDでも効率的に使える。
従来の記憶域プールではプール内のディスクはすべて同等に扱われていたが、階層化を有効にして仮想ディスクを作成すると、記憶域プール内のデバイスがハードディスクかSSDであるかが区別されるようになる。そしてアクセス頻度などに応じてSSD側を多く使うようにディスク・ブロックを割り当てたり、必要に応じてブロックを移動したり(最適化)する。またライトバック・キャッシュ(ディスクへの書き込み処理を高速化する機能)もSSD側に割り当てられるようになる(SSDにキャッシュされた内容は後でディスクへライトバックされる)。
ディスク階層のサポート
Windows Server 2012 R2の記憶域プールでは、SSDのような小容量で高速なディスクと、そうでない通常のハードディスクを区別して管理する。参照の多いホット・データはなるべくSSD側に、そうでないデータはHDD側に割り当てることにより、アクセス速度の向上を図っている。
(1)SSDのような高速なディスクを「高速階層」として扱う。
(2)非SSDディスクを「標準階層」として扱う。
Windows Server 2012 R2にはほかにもさまざまな新機能があるが、それらは今後順次解説していく。次回はHyper-Vの機能改善点について紹介する予定である。
Copyright© Digital Advantage Corp. All Rights Reserved.