Windows Server 2012研究所
ストレージ管理をシンプルにする新機能「記憶域プール」を使ってみる
(2013/1/28 06:00)
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接続のドライブを緊急避難的に利用することもできる。
耐障害性としては、記憶域プールはミラーリングとパリティの2つを設定することができる。
ミラーリングでは、RAID1のように物理ドライブを2台使ってミラー化するのではなく、複数の物理ドライブに同じデータブロック(スラブ)を複数保存することでミラー化している。また、同一のデータを2つミラーするようにも設定可能だ。もちろん、2つミラーする場合はその分多くの容量が必要になる。
一方のパリティでは、データと同時に保存されているパリティ情報を使って、データを再現する。パリティモードを使えば、ミラーリングよりも使用する容量は少なくなる。
また、ミラーリングとパリティを組み合わせて使用することもできるが、記憶域プールを構成するドライブ数によって、利用できるモードが制限されている。
さらに、ミラーリングやパリティなどのモードには、ホットスペア(自動的に切り替え)、スペア(手動で切り替え)のドライブを指定することもできる。
記憶域プールで最も期待される機能がシンプロビジョニング機能だ。シンプロビジョニング機能では、仮想ディスクを作成する場合、設定したディスク容量を作成するのではなく、容量の情報だけをOSに登録する。
多くの場合、ドライブの容量を目いっぱい消費することはない。このため、必要な容量だけを必要に応じて消費するように作られている。例えば、記憶域プールには1TB分しかドライブが登録されていない場合でも、シンプロビジョニングで作成する仮想ディスクでは、2TBのドライブを作成することができる。また、1TBの仮想ドライブを2ドライブ作成することもできる。
仮想ディスクを作成した時点は、ディスクの容量をほとんど使用していないため、仮想ディスクを使用して、実際にデータを保存していくにつれて、設定した容量まで自動的に仮想ディスクを拡張していく。
もし、複数の仮想ディスクの容量が、記憶域プールに登録されている物理ドライブの容量に近づいてくるとアラートが表示される。管理者はこのアラートを見て、新しいドライブを記憶域プールに追加すれば、問題なく利用し続けることができる。
Windows Server 2012のシンプロビジョニング機能では、容量の拡張は自動的に行うが、ディスク容量の縮小は行えない。つまり、いったん拡張した仮想ディスクは、空き容量があっても小さくはならない。このあたりは注意が必要だ。
記憶域プールを試す
それでは、実際に記憶域プールを使ってみよう。
続いて、仮想ディスク(Storage Space)を作成する。
次は、作成した仮想ディスクを実際に利用するための準備を行う。
最後に、アクセス性能を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 |
CrystalDiskMark 3.0.2 x64版
4000MBのデータを使って9回テスト
記憶域プールを使うとストライピングでドライブを使用するため、アクセス性能がアップする。NTFSとReFSでテストしたが、有意性のある差はないようだ。USB HDDを追加すると、やはり性能が低下する。
UIに一部難ありも、今後に期待が持てる機能
実際に記憶域プールを使ってみると、ストレージの扱いがフレキシブルになり非常に使いやすいと感じた。また性能に関しても、ストライピングにより高いアクセス性能を持っている。3台のHDDでストライピングを組んだが、シーケンシャルアクセスはHDD単体時の2倍の性能をマークしている。
ただし、操作するユーザーインターフェイスに関しては、不十分な部分が多いとも感じた。
例えば、一部に英語メッセージがそのまま残っているし、ミラーリングやパリティモードで仮想ディスクを構築する場合、どのくらいの容量の仮想ディスクが自動的に作成できるのかなどを、グラフィカルに表示してほしい。このあたりは、改善の余地があるだろう。
また当たり前の話だが、シンプロビジョニングで設定した仮想ディスクの容量が物理ディスクの合計の容量を超えている場合、データを物理ディスク容量を超えるまで書き込もうとすると、リムーバブルメディアと同じようなデータエラーが表示される。
容量不足のアラートも出してくれるのだが、サーバーマネージャーの記憶域プールに表示されるアラートは、あまり目立たない。やはり、ディスク容量の不足は重要な問題となるため、もう少し大きく表示してほしい。
記憶域プール自体に関しては、コアの機能としては十分な機能を持っているだけに、改善が進めば、さらに便利に使えるようになだろう。ファイルサーバーだけでなく、仮想マシンのストレージエリアなどとしても利用することができるし、将来的には、この機能を用いて複数のファイルサーバーをまとめ、サーバーやクライアントPCのデータドライブとして、利用するようになるかもしれない。