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

はじめに

最近、RAIDをサポートするチップセットも増えてきて、RAIDが一般的な機能となりました。RAIDにはOSなどのソフトウェアで実現する方法と、専用のチップなどを使ってハードウェア的に実現する方法と2種類あります。前者をソフトウェアRAID、後者をハードウェアRAIDと呼び、それぞれ利点と欠点があります。

ハードウェアRAID

ハードウェアRAIDには大きく分けて二種類あって、RAID処理を専用のプロセッサにより行うタイプとCPUが行うタイプがあります。

前者はRAID処理を専用プロセッサが行うために、処理が高速化して書き込み時のCPU占有率が低く抑えられるのが利点ですが、その分かなり高価になるのが欠点です。後者はハードウェアでRAIDを実現する点は前者と同様なのですが、RAID処理をCPUに行わせるためにRAIDカード上にはインターフェースチップとRAIDのBIOS程度しか必要ではなく安価なのが利点ですが、書き込み時のCPU占有率が高くなるのが欠点です。このため、本格的なRAIDシステムには使われません。一般に一万円程度の安価なRAIDシステムやAdaptecのHostRAIDなんかもこれにあたります。

よく、ソフトウェアRAIDに比べてハードウェアで処理するのでアプリケーションを利用している時の処理に差が出るという話を聞きますが、この差がでるのは前者の専用のRAIDプロセッサーが搭載されているタイプの話で、後者の場合はさほど変わりません。恐らくハードウェアレベルでRAID処理にCPUを占有する分、ソフトウェアRAIDよりかは(相性などを除けば)安定性の面で有利になるかと思われます。

両タイプともに、OS格納ドライブにできるのがソフトウェアRAIDとの最大の利点と思われますが、最近のLinuxではソフトウェアRAIDを格納ドライブにできるようで…。

ソフトウェアRAID

ソフトウェアRAIDはOS等のソフトウェアでRAIDを実現するタイプで、最大の利点はRAIDカードを必要とせずに安価な点でしょう。また、柔軟な組み合わせ(例えば、SCSIドライブとIDEドライブのような感じに)ができ、相性なども起きにくいなど手軽に作れる点でしょう。

逆に、ソフトウェア処理なので高度なRAIDを実現すると書き込み時のCPU占有率が高くなるのとOSの格納ドライブにすることが通常出来ないのが欠点です。(原理的に考えれば、起動ドライブさえ別のドライブを用意すればOSをソフトウェアRAIDのドライブ上に格納することも可能と思われますが。)

RAIDのインターフェース

以前はRAIDには通例、SCSIを使うものが主流でした。これはRAIDのような高度な冗長性や高速性を求める分野にはSCSIのようにパフォーマンスが高いインターフェースがマッチしていたためです。

しかし、最近IDEのRAIDシステムが急激に広まりつつあります。これはIDEの性能面での進歩と低価格化によってSCSIのメリットが薄れてしまったかと思われます。とはいえ、今でもSCSIの方がIDEより高速でCPU占有率や信頼性の面で上を行くため、大規模なRAIDシステムにはSCSIによるRAID5を、小規模なRAIDシステムや個人レベルではIDEによるRAID1(又はRAID0)をというすみわけが行われているようです。RAID自体はインターフェースによる規定はなくUSBHDDでも問題はないと思われます。(ソフトウェアRAIDならば現時点でも可能だと思われます。