treedown’s Report

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

ハードウェアRAIDとソフトウェアRAID

一部自分ルールですがたまに忘れることがあるので、備忘録がてら。
本日はソフトウェアRAID(一部ハードウェアRAID)について、(うっかり忘れた未来の自分に向けた)ご報告です。

個人的にRAIDの使い分けとして

  • ハードウェアRAIDは同一の型番HDDを複数用意して、高速かつ安全なRAIDボリュームを構成して使うために採用
  • ソフトウェアRAIDは異なるHDDが複数ある場合に、パーティション(ボリューム)単位でRAID1やRAID5を構成して使うために採用

という使い分けをしています。

RAIDは同じHDDじゃないとダメ?

これはよく見る話しで、実際ハードウェアRAIDやRAID対応のケースなんかを利用する場合には同一HDDを複数台用意します。
この辺、誤解があってたまに質問されることがあるのですが、RAIDで同一メーカ&同一型番のHDDが必要とされるのは、あくまで「高品質なハードウェアRAIDでデータを保護するとき」であって、ソフトウェアRAIDでは同一HDDである必要はありません。(同一のほうがメリットがある、という側面はありますが)
ソフトウェアRAIDは異なるHDDを束ねて利用することが可能、という点がハードウェアRAIDにないメリットとなります。(その分遅くて低品質ですが)

ソフトウェアRAID、実際やってみた。

変な話、Windowsのディスクマネージャから設定するRAIDは必ず同一容量である必要がありません。例えば、80GBのディスク×2台と64GBのディスク×2台の計4台のハードディスクを用意して、

f:id:treedown:20171203210246p:plain
こういう感じで、20GBのミラーリング(RAID1)したボリュームを1パーティションとして利用しつつ、残りの60GBをストライプ(RAID0)して高速なデータ用ボリュームを1パーティション用意する、ということも可能です。しかも容量バラバラでも(余剰する分を捨てるか単一ボリュームで利用するかという妥協だけで)最大限使えます。ハードウェアRAIDだとこの余剰する分は諦めることになりますが、ソフトウェアRAIDなら余剰する分は単一ボリュームとしてパーティションを作成することも可能です。

これだとミラーリングの領域にはOSをインストールして保護しつつ、データ領域は(ソフトウェアRAIDなりの速度ではありますが)そこそこ速度が稼げて単一ドライブとして利用するよりは容量も多く(例では239.62GB)利用できることになります。

選べない「新しいRAID-5ボリューム」

作っているとチラチラと見えて気になるのですが、「新しいRAID-5ボリューム」という表記が気になります。できるのならRAID-5ボリュームで作りたい、と思うのですが、「Windows10やWindows8.1のようなクライアントOSでは、ソフトウェアRAIDでRAID-5ボリュームを構成できない」という制限があるためです。

f:id:treedown:20171203210404p:plain
ソフトウェアRAIDでRAID-5ボリュームを構成するためにはサーバOSであるWindows Serverが必要、ということ。評価版で見てみたら、

f:id:treedown:20171203210420p:plain
確かに、Windows ServerだとRAID-5ボリュームを選択できます。
試しに作ってみましたが、フォーマットに多少時間が掛かったのとディスクの同期の時間(たぶんパリティ計算とかじゃないかと)以外には特に気になる点もありませんでした。あまり意識せず使えそうです。(復旧はハードウェアRAIDよりちょっと手間がかかりますが)

f:id:treedown:20171203210436p:plain
ホントは、Windows10でOSだけミラーリングのボリュームでデータ領域をRAID-5ボリュームで構成し、4台のHDDで1台のPCのストレージを担当できると、なんとなくすっきりまとまっててよさそうの思えますけど、クライアントOSではRAID-5ボリュームが構成できないという仕様によってRAID-5ボリュームの部分はRAID-0ストライピングで速度を稼ぎつつ、同一容量の別HDDにこまめにバックアップ、みたいな構成が現実的な選択肢になりそうに思えます。

意外と悪くないソフトウェアRAID

追加投資なく余ったHDDを気軽に束ねてRAIDを試すことができる、という点でソフトウェアRAIDはときに役に立つ存在です。とはいえ、クライアントOSではRAID1のミラーリング以外にはフォールトトレラントが有効じゃないからRAID5の検証もできませんし、OSとしてWindows Serverを導入するようなサーバならそもそもRAIDカード(ボード)くらい使ってるでしょうからソフトウェアRAIDの出番はないかな、と思うとこ。

そうなると、ソフトウェアRAIDの出番とくれば、LinuxかWindows Server Essentialあたりかなぁ、と思いました。