Windows Server 2012研究所

ストレージ管理をシンプルにする新機能「記憶域プール」を使ってみる

 Windows Server 2012がリリースされて5カ月ほどたつが、多くの企業にとってはまだ検討フェーズで、実際に導入が始まるのは今年となるだろう。そこで、企業でWindows Server 2012の導入を検討するための参考となるように、Windows Server 2012で新たに追加された機能をテストしていく。

 今回はその中でもストレージ関連の機能である「記憶域プール」をテストしたので、紹介する。

ディスク管理を簡素化する新機能「記憶域プール」

 記憶域プール(Storage Pool)の機能自体は、以前、こちらの記事で紹介済みだが、軽くおさらいしてみよう。

 これは、ストレージ(ディスクドライブ)をプールという考え方で一括管理する機能だ。Windows Server 2012上でドライブやボリュームを利用する時には、記憶域プールから一部の容量を割り当てる。

 記憶域プールから割り当てられるストレージは、単一の物理ドライブを割り当てるのではなく、複数の物理ドライブの容量を組み合わせて、仮想ディスク(Storage Space)を作成する。

 また記憶域プールでは、ローカルディスク、SANストレージ(iSCSI、FC、Shared SAS)、USBドライブ、マウントされた仮想ディスク(VHD、VHDXファイル)などを登録して利用できる。

 このため、ストレージの種類やインターフェイス別に管理を行う必要はなくなる点がメリットだ。例えば、SATAのドライブだけで記憶域プールを構成していても、容量が足りなくなればUSB接続のドライブを緊急避難的に利用することもできる。

記憶域プール(Storage Space)は、Storage Poolに登録されたディスクを論理的に集約・分割して使用する
Storage Spaceでは、自動的にボリュームの性能をセットすることはできないが、手動で設定することができる。これにより、企業ではストレージの用途を設定することも可能
MicrosoftによるStorage Spaceのパフォーマンス。ほとんど、物理ディスクと変わらない性能を示している

 耐障害性としては、記憶域プールはミラーリングとパリティの2つを設定することができる。

 ミラーリングでは、RAID1のように物理ドライブを2台使ってミラー化するのではなく、複数の物理ドライブに同じデータブロック(スラブ)を複数保存することでミラー化している。また、同一のデータを2つミラーするようにも設定可能だ。もちろん、2つミラーする場合はその分多くの容量が必要になる。

 一方のパリティでは、データと同時に保存されているパリティ情報を使って、データを再現する。パリティモードを使えば、ミラーリングよりも使用する容量は少なくなる。

 また、ミラーリングとパリティを組み合わせて使用することもできるが、記憶域プールを構成するドライブ数によって、利用できるモードが制限されている。

 さらに、ミラーリングやパリティなどのモードには、ホットスペア(自動的に切り替え)、スペア(手動で切り替え)のドライブを指定することもできる。

もし物理ディスクが故障しても、ホットスペアとして物理ディスクがStorage Poolに登録されていれば、自動的に再構成が行われる

 記憶域プールで最も期待される機能がシンプロビジョニング機能だ。シンプロビジョニング機能では、仮想ディスクを作成する場合、設定したディスク容量を作成するのではなく、容量の情報だけをOSに登録する。

 多くの場合、ドライブの容量を目いっぱい消費することはない。このため、必要な容量だけを必要に応じて消費するように作られている。例えば、記憶域プールには1TB分しかドライブが登録されていない場合でも、シンプロビジョニングで作成する仮想ディスクでは、2TBのドライブを作成することができる。また、1TBの仮想ドライブを2ドライブ作成することもできる。

 仮想ディスクを作成した時点は、ディスクの容量をほとんど使用していないため、仮想ディスクを使用して、実際にデータを保存していくにつれて、設定した容量まで自動的に仮想ディスクを拡張していく。

 もし、複数の仮想ディスクの容量が、記憶域プールに登録されている物理ドライブの容量に近づいてくるとアラートが表示される。管理者はこのアラートを見て、新しいドライブを記憶域プールに追加すれば、問題なく利用し続けることができる。

 Windows Server 2012のシンプロビジョニング機能では、容量の拡張は自動的に行うが、ディスク容量の縮小は行えない。つまり、いったん拡張した仮想ディスクは、空き容量があっても小さくはならない。このあたりは注意が必要だ。

記憶域プールを試す

 それでは、実際に記憶域プールを使ってみよう。

サーバーマネージャーのファイルサービスで、ストレージに関する設定が行える
サーバーマネージャー→ファイルサービスと記憶域サービス→ボリューム→ディスクで接続されているドライブが確認できる
サーバーマネージャー→ファイルサービスと記憶域サービス→ボリューム→記憶域プールで、記憶域プールを構築する
右クリックをして、記憶域プールの新規作成を選択する
記憶域プールの名前を設定する
記憶域プールに登録する物理ディスクを指定する。割り当てには、自動、ホットスペアが選択できる。ホットスペアを選択すると、記憶域プールに登録されている物理ドライブに障害が起こった時に、ホットスペアとして登録した物理ドライブが自動的に切り替えられる

 続いて、仮想ディスク(Storage Space)を作成する。

記憶域プールを作成後、仮想ディスクを作成する
仮想ディスクを作成する、記憶域プールを選択する
仮想ディスク名を設定する
仮想ディスクのレイアウト(モード)を選択する。シンプルはストライピング(RAID 0)、ミラーは二重化(RAID 1)、パリティはRAID 5に相当すると考えればよい。今回は、物理ドライブが3台しかないため、これだけのモードしかないが、5台以上接続すれば、ミラーとパリティの両方が利用できる
プロビジョニングとしては、固定(指定した容量を最初に消費する)と最小限(シンプロビジョニング)が利用できる。今回は、最小限を選択
仮想ディスクのサイズを設定。今回は最小限を使用しているため、記憶域プールが持つ以上の容量(記憶域プールの物理容量1.36TBだが、サイズに2TBを設定)を設定できた

 次は、作成した仮想ディスクを実際に利用するための準備を行う。

作成した仮想ディスクをボリュームとして使用できるように設定する
ボリュームとして使用する仮想ディスクを選択
ドライブとして使用するサイズを指定する
ドライブ名の設定を行う
ファイルシステムを選択する。NTFSとReFSが使用できる
複数の記憶域プールを作成することができる。この機能を使えば、SSDだけの高速ドライブのプール、ローコストなSATAドライブのプールなど、グレード別に分けることもできる

 最後に、アクセス性能をCrystalDiskMarkで計測してみた。

Windows Server 2012 記憶域プール ベンチマーク
NTFS ReFS USBドライブを追加
シーケンシャルリード 166.951 167.17 149.317
シーケンシャルライト 45.165 45.091 35.785
512KBランダムリード 45.634 46.734 38.143
512KBランダムライト 15.413 27.722 14.26
4KBランダムリード 0.588 0.59 0.55
4KBランダムライト 0.41 0.499 0.813
4KBランダムリード(NCQ) 1.744 1.735 1.748
4KBランダムライト(NCQ) 0.52 0.497 0.575

ドライブ3台をパリティ付きストライピングで設定(USBドライブ追加のみ4台)
CrystalDiskMark 3.0.2 x64版
4000MBのデータを使って9回テスト

 記憶域プールを使うとストライピングでドライブを使用するため、アクセス性能がアップする。NTFSとReFSでテストしたが、有意性のある差はないようだ。USB HDDを追加すると、やはり性能が低下する。

UIに一部難ありも、今後に期待が持てる機能

 実際に記憶域プールを使ってみると、ストレージの扱いがフレキシブルになり非常に使いやすいと感じた。また性能に関しても、ストライピングにより高いアクセス性能を持っている。3台のHDDでストライピングを組んだが、シーケンシャルアクセスはHDD単体時の2倍の性能をマークしている。

 ただし、操作するユーザーインターフェイスに関しては、不十分な部分が多いとも感じた。

 例えば、一部に英語メッセージがそのまま残っているし、ミラーリングやパリティモードで仮想ディスクを構築する場合、どのくらいの容量の仮想ディスクが自動的に作成できるのかなどを、グラフィカルに表示してほしい。このあたりは、改善の余地があるだろう。

 また当たり前の話だが、シンプロビジョニングで設定した仮想ディスクの容量が物理ディスクの合計の容量を超えている場合、データを物理ディスク容量を超えるまで書き込もうとすると、リムーバブルメディアと同じようなデータエラーが表示される。

 容量不足のアラートも出してくれるのだが、サーバーマネージャーの記憶域プールに表示されるアラートは、あまり目立たない。やはり、ディスク容量の不足は重要な問題となるため、もう少し大きく表示してほしい。

シンプロビジョニングで物理ディスクの容量いっぱいファイルをコピーした。物理ディスクの容量以上にコピーすると、このようなエラーが表示された

 記憶域プール自体に関しては、コアの機能としては十分な機能を持っているだけに、改善が進めば、さらに便利に使えるようになだろう。ファイルサーバーだけでなく、仮想マシンのストレージエリアなどとしても利用することができるし、将来的には、この機能を用いて複数のファイルサーバーをまとめ、サーバーやクライアントPCのデータドライブとして、利用するようになるかもしれない。

(山本 雅史)