いろりおのメモ帳

気になったりしたことを確認して書いてます

Windowsの「シンプル」な記憶域でR/W速度をあげるならGUIから設定するな

結論

「シンプル」な記憶域を作る場合、GUI設定で作成すると並列に書き込みしない設定になり遅い。 理論値(約2倍)に近づくにはCUIから設定する必要がある。

CUIで記憶域を設定するpowershellコマンドは以下。

New-VirtualDisk -StoragePoolFriendlyName "記憶域プール" -FriendlyName "記憶域" -ResiliencySettingName Simple -ProvisioningType Fixed -NumberOfColumns 2 -WriteCacheSize 0 -UseMaximumSize

記憶域プールはGUIで作っても大丈夫です。コントロールパネルの記憶域から作ってください。

「ミラー」「パリティ」の場合は未調査です。

続きを読むでは、詳細説明や計測方法などを書いています。

記憶域とは

Windows公式の、複数ドライブをまとめて1つのドライブとして扱う機能のこと。 ソフトウェア的にRAIDを再現する機能と考えて大丈夫だと思います。

Microsoft公式の説明ページはここ

support.microsoft.com

GUIも用意されており、比較的手軽にRAIDのようなものを組むことができます。 が、GUI設定だと設定項目が少ないという問題点がある。

CUIGUIでの速度差検証

2台のHDDで記憶域を作るときを想定して検証を行いました。 事前準備(記憶域プール作成)の手順は省略します。

使用するHDD2台

それぞれのHDDは以下のようなスペックである。

HDD1の速度

HDD2の速度

RAID1を組んだら300[MB/s]は超えそうですね。

GUIから記憶域を作成する

GUIで「シンプル」設定で記憶域を作成する。

GUIで記憶域を設定している様子

作られた記憶域のR/W速度を計測した結果がこちら。

GUI設定した記憶域の速度

少し物足りない速度になっているのがわかる。 HDD1とHDD2の平均速度に近い値で、事前に想定したRAID1程度の速度より遅いです。 これは記憶域の仕様上の問題ではないようです。

CUIから記憶域を作成する

似た設定でCUIを使って「シンプル」設定で記憶域を作成する。

CUIで記憶域を設定している様子

作られた記憶域のR/W速度を計測した結果がこちら。

CUI設定した記憶域の速度

このようになぜかCUIから設定すればもう少し早くなる。 補足: GUIから記憶域を作るとNumberOfColumnsが1になるからのようです。CUIでNumberOfColumnsを2に指定することで、2台同時に書き込みをするようになりR/W速度が向上します

結論

2台(以上)のHDDで「シンプル」の記憶域を作成する場合、 CUIから設定したほうがR/W性能が良い。

その他

記憶域プールの挙動に関してメモ代わりに書いておきます。

  • 2TB/1TBのHDDで[NumberOfColumns 2]の記憶域を作ったとき
    • ProvisioningTypeがfixedだと、2TBまでしか作れない
    • ProvisioningTypeがthinだと、3TBでも作れるが実際に動かすと2TBで容量不足になる
  • 2TB/1TBのHDDで[NumberOfColumns 1]の記憶域を作ったとき

    • ProvisioningTypeがfixedで3TBまで作れる。実際に3TB書き込み可能
  • 2TB/1TBのHDDでfixed2TB,thin2TB

    • 固定側を先に作れば一応作成はできる
    • ただし、thinのフォーマットに失敗する。固定2フォーマットは完了する
  • 2TB/1TBのHDDでthin2TB,thin2TB
    • 作れる
    • ただし、2つの記憶域合計で3TB程度になると書き込めなくなる