treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

記憶域スペースを使ってみる

バックアップを取得するために大容量のボリュームが欲しい、バックアップジョブを時間内に完了させるために単体のHDDよりも速度が欲しい、これを満たすために記憶域スペースを作成してみましたのでご報告です。

発端

バックアップを取得するHDDを対象にして最初はRAID 0のボリュームを作成しようと考えていました。

バックアップの領域なのでそれほどの機能は必要とせず、Windows標準のソフトウェアRAIDを使って構成する方向で考えていました。Windows10でもRAID 0/1は構成可能ですし。

しかし、ちょっとした問題があってそれができないことに気づきました。

RAID=ダイナミックディスク

USB接続のHDDエンクロージャは複数のHDDを搭載して一台のケース内に格納する機器です。一本のUSBケーブルでPCと接続して、搭載した複数のHDDをWindows上で認識します。
USB接続のHDDはダイナミックディスクにしようとしても「この操作はオブジェクトによってサポートされません。」とエラーメッセージを出してダイナミックディスクに変更できません。WindowsのソフトウェアRAIDはダイナミックディスクにしないと構成できないので、USB接続のHDDエンクロージャ経由で接続しているHDDはRAID構成を取ることができない、ということになります。(内蔵SATA/SASじゃないとダイナミックディスクにできないからRAID構成もできないということのよう、じゃあeSATAならできるのかな?と思ったけど試していない。)

さらに「Windows クライアントの非推奨の機能」に記載があるように

https://learn.microsoft.com/ja-jp/windows/whats-new/deprecated-features

Windows10の2004(20H1的なバージョン)で、「ダイナミックディスクの機能は開発されなくなった」主旨と「将来のリリースで記憶域スペースに完全に置き換えられます」という記述があるので、ダイナミックディスクとそれをベースにしたOS標準でのソフトウェアRAIDは非推奨機能となっているのが現状らしいということを知りました。

そこで記憶域スペースを使って、ボリュームを構成することに予定変更し作業を進めることにしました。

記憶域スペースの事前知識

記憶域スペースはWindows Server 2012から新たに導入された機能と、結構前から提供されています。Windows Serverの機能だと思っていましたが、クライアントのWindows10/11でも提供されていたようです。

ボリュームはNTFSと次世代のReFSという二種類のファイルシステムから選択して構成することになります。
そして「回復性」という設定で、RAIDのような冗長性(フォールトトレランス)を提供するかどうかを指定して構成することになります。

種類は以下の通り。

  • シンプル:
    一台以上のディスクでRAID 0のようなストライピングを構成、ディスクは100%利用できて速度向上もあるが冗長性(フォールトトレランス)はなく、一台故障でデータ全損。
  • 双方向ミラー:
    二台以上のデイスクでRAID 1のようなミラーリングを構成する。デイスクは50%しか使用できないが、一台の故障でもデータは保護される。
  • 3方向ミラー:
    五台以上のディスクでRAID 1のミラーリングを(クォーラムを使って)三重化することで二台の故障を許容できるようにする。とにかく最大限保護したいデータの保管場所に。(※詳細:https://social.technet.microsoft.com/Forums/ja-JP/2e6955b7-b293-4880-8fb3-8b4ce0e02ec9/mirror-in-storage-pool?forum=winserver8gen
  • パリティ:
    三台以上のディスクでRAID 5のようなパリティを使った保護を構成することで一台の故障でもデータ保護ができる。ディスク効率は双方向ミラーより良いが読み書きの速度は(RAID5ほどじゃなくて)イマイチ。

ここではNTFSのボリュームを元々のRAID 0相当である「シンプル」で構成することにします。

記憶域スペース作成の手順

それでは実際に作成していく手順です。

※注意:各画面は実機の画面ではなく、後からHyper-Vのテスト用ゲストOSで取り直したものです。そのため、一部表示が異なる箇所がありますが参考にする際は読み替えてください。

まずディスクの接続を確認します。ディスクの管理(diskmgmt.msc)から確認しました。

初期化されていない状態のディスクが4台接続されている状況です。このディスクを記憶域として束ねて使えるようにしていきます。

コントロールパネルを起動して、

「記憶域」を選択します。「記憶域の管理」画面が表示されます。

記憶域の管理画面では「新しいプールと記憶域の作成」をクリックして作成を開始します。
次の画面で記憶域プールに参加させるディスクが一覧で表示されます。

※必ず空のディスクを選択する必要があります。既存の使用中ディスクを選択するとデータが消えます。
※画面には(今回テスト環境だったので)SASで接続と表示されていますが、ここが実環境では「USBで接続」となっていました。

ディスクの選択が完了したら「プールの作成」をクリックします。

クリックすると、記憶域の設定を実施する画面が表示されます。

ここで、ドライブの名前や割り当てるドライブレター、ファイルシステムのほかに、記憶域プールの構成(RAIDでいう0/1/5/6/10のようなもの)を決定することになります。

例えば、今回は冗長性なしの速度と容量の向上を狙っていますので「シンプル(回復性なし)」を選択します。冗長性が必要な場合には別の選択が必要です。

シンプルを選択すると、冗長性がなく容量を最大限使用できるため「サイズ」の表示が変化します。

他の回復性オプションを選択するとこの容量は選択した回復性オプションによって変わってきます。

選択し終わったら「記憶域の作成」ボタンをクリックして、実際に使用する記憶域を作成します。

作成が完了すると、以下の画面になります。

作成した記憶域が指定したオプションの通りに構成されたことを確認します。

作成が完了した後に「ディスクの管理」画面を確認すると、

もともと4台あったHDDは記憶域の構成をしたことによって、単一の(連結された)ディスクが1台で認識していました。

ディスクをまとめて使うのに便利

記憶域自体はRAIDよりも比較的構成の条件が緩く、Windows側のソフトウェアでよいようにやってくれる部分があって、従来のソフトウェアRAIDより融通が利く感じがします。

Windows標準でのソフトウェアRAIDがサポートされなくなっていることもあって、これから"記憶域"を上手く使いこなしていくことになりそうです。