ここまでの手順で4つの記憶域を作成後、管理ツールで記憶域プールの状態を見ると次のようになっている。
記憶域は作成したが、まだ何も書き込んでいないので、プールの表示は、ほとんど未使用状態になっている。実際にデータが書き込まれるまで、プールのディスクは消費されない。例えばTIPS「巨大なサイズのファイルを簡単に作る方法」の「fsutil file createnew <ファイル名> <サイズ>」コマンドでボリュームいっぱいにファイルを作成しても、このコマンドで作成したファイルは実際にはデータをディスクに書き込むわけではないので、プールは消費されない。
将来、ボリュームのサイズが不足したら、物理ディスクをプールに追加したり、ボリューム・サイズを変更したりすればよい。記憶域は拡大のみが可能だが、拡大してもその中にあるボリューム(パーティション)のサイズは拡大されないので、必要なら手動でボリューム・サイズも拡大する。
作成したボリュームをエクスプローラで確認すると次のように表示される。
ディスクの管理ツールでは次のように表示される。システムに接続した物理ディスクは、記憶域プールに追加する前は単独のディスクとして認識されているが、記憶域プールに追加するとユーザーからは見えなくなる。そして記憶域を作成すると、それが仮想的なディスクとしてシステムにマウントされる。なおこれらのディスクはGPT形式でフォーマットされているので、2Tbytesを超えるようなサイズでも問題なく利用できる。
ではディスクに障害が発生したことを想定し、1台のディスクをオフラインにしてみる(環境の都合上、以下の画面はWindows Server 2012のHyper-V上の仮想マシンで動作している。ディスクをオフラインにするには、仮想マシンの設定画面でディスクを1台削除するだけだが、実機でもディスクを取り外したり、USBケーブルを抜いたりすればよい)。
ディスクを1台削除して再起動すると、記憶域の画面は次のようになる。
記憶域プールをPowerShellで操作すると、GUIの画面では設定できないようないくつかのパラメータも操作できる。例えば、デフォルトではプール内の全ディスクがストライプ化の対象となるが(例:ディスク6台のプールなら、常に6台セットでストライプ化される)、ディスク・インターフェイスのパフォーマンスなどを考えて、4台セットでストライプ化したいといった用途では、PowerShellを使えば手動で台数を設定/変更できる。以下、PowerShellによる操作をいくつか紹介しておく。
記憶域プールを作成したり、内容を確認したりするには、New-StoragePoolやGet-StoragePoolコマンドレットを利用する。
※記憶域プールの一覧を見る
PS C:¥> Get-StoragePool
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly
------------ ----------------- ------------ ------------ ----------
pool1 Degraded Warning False False
Primordial OK Healthy True False
仮想ディスクを作成したり、内容を確認したりするには、New-VirtualDiskやGet-VirtualDiskコマンドレットを利用する。
※仮想ディスクの一覧を見る
PS C:¥> Get-VirtualDisk
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
------------ --------------------- ----------------- ------------ -------------- ----
vdisk2-2way Mirror OK Healthy False 3 TB
vdisk3-3way Mirror OK Healthy False 3 TB
vdisk1-simple Simple Detached Unhealthy False 3 TB
vdisk4-parity Parity OK Healthy False 3 TB
※各仮想ディスクの詳細を調べる
PS C:¥> Get-VirtualDisk | fl
ObjectId : {12811c5f-a608-11e2-93ee-00155d02690b}
PassThroughClass :
PassThroughIds :
PassThroughNamespace :
PassThroughServer :
UniqueId : 5F1C811208A6E21193EE00155D02690B
Access : Read/Write
AllocatedSize : 3221225472
DetachedReason : None
…(以下省略)…
※割り当て方法を調査する
PS C:¥> Get-VirtualDisk | ft FriendlyName,ResiliencySettingName,NumberOfColumns,NumberOfDataCopies -AutoSize
FriendlyName ResiliencySettingName NumberOfColumns NumberOfDataCopies
------------ --------------------- --------------- ------------------
vdisk2-2way Mirror 3 2
vdisk3-3way Mirror 2 3
vdisk1-simple Simple 6 1
vdisk4-parity Parity 6 1
PS C:¥>
最後に示した「NumberOfColumns」「NumberOfDataCopies」に注目していただきたい。これは、各仮想ディスク内で物理ディスクがどのように割り当てられているかを示す値である。今回の例で示している記憶域プールには6台のディスクが含まれているが、仮想ディスクの形式(レイアウト)に応じて、3コラム×2セット、2コラム×3セット、6コラム×1セットという3つのパターンが使われている。各パラメータの意味は次の通りである。
項目 | 意味 |
---|---|
ResiliencySettingName | 割り当て方法。Simpleならシンプル記憶域、Mirrorなら双方向/3方向ミラー記憶域、Parityならパリティ記憶域 |
NumberOfColumns | 1つのストライプの中に含まれるディスクの台数。コラム数と呼ばれている。例えば「2」なら1つのデータを2台のディスクへ分散(インターリーブ)し、「6」なら6台のディスクへ分散させる。「1」ならインターリーブなし。台数が多いほど多くのディスクへ同時アクセスできるので、パフォーマンスが向上する可能性がある |
NumberOfDataCopies | 冗長性のために、同じデータをいくつ保存するかという値。「1」なら冗長性なし、「2」なら双方向ミラー、「3」なら3方向ミラー。パリティはデータのコピーを保存しているわけではないので、この値は「1」となる |
VirtualDiskに関するパラメータ |
図にすると、次のようになる。
デフォルトでは(GUIの記憶域プール作成画面では)、プール内に存在するすべてのディスクを使ってストライプを構成しようとするが、PowerShellのNew-VirtualDiskコマンドレットを使えば、例えば2台×2セットというミラー記憶域や、ディスク3台だけを使ったパリティ記憶域を作成することができる。
※例1:1コラム=ディスク3台のシンプル記憶域の作成
PS C:¥> New-VirtualDisk -StoragePoolFriendlyName pool1 -FriendlyName MyVdisk1 -ProvisioningType Thin -ResiliencySettingName Simple -NumberOfColumns 3 -Size 1TB
※例2:1コラム=ディスク2台の双方向ミラー記憶域の作成
PS C:¥> New-VirtualDisk -StoragePoolFriendlyName pool1 -FriendlyName MyVdisk1 -ProvisioningType Thin -ResiliencySettingName Mirror -NumberOfColumns 2 -NumberOfDataCopies 2 -Size 1TB
※例3:ディスク3台だけを使ったパリティ記憶域の作成
PS C:¥> New-VirtualDisk -StoragePoolFriendlyName pool1 -FriendlyName MyVdisk2 -ProvisioningType thin -NumberOfColumns 3 -ResiliencySettingName Parity -Size 1TB
今回はWindows Server 2012の記憶域プールについて解説した。記憶域プールを使えば、複数のディスクを組み合わせて仮想的な大きなディスクを作成したり、耐障害性に優れたストレージ・システムを簡単に構築できる。物理的なディスクの容量や構成方法などに左右されず、管理の手間もほとんど不要なこの機能は非常に期待できる。システムのブート・ドライブとしては使えないとか、作成した仮想ディスクのバックアップや復元、移行などの機能はない、物理ディスク構成を意識した細かい管理(割り当て)ができないなど、いくつか機能不足は否めないが、将来に期待したい。
Copyright© Digital Advantage Corp. All Rights Reserved.