新世代のRAID「RAID-Z」で高速ストレージを構築しよう(1)
現在、ストレージシステムで広く利用されているRAID-5には、以下の欠点があります。
・「RAID5書き込みホール」問題
→データとパリティの間で不整合が起きた状態。サイレントクラッシュと呼ばれる障害が発生し、データが破壊されてしまいます。
(※ただし、これはバッテリバックアップ(大容量キャパシタ)つきキャッシュ搭載のハードウェアRAIDカードを使用することで、防ぐことができます)
・パフォーマンス
パリティの計算が必要なので、特にソフトウェアRAIDの場合は書き込み速度が低下します
(※ただし、ハードウェアRAIDカードを搭載することで、ある程度高速に処理することができます)
これらの問題を解決するのが、新世代のRAID「RAID-Z」です。
RAID-Zの特徴
RAID-Zには、以下の特徴があります。
・ストライプ全体への書き込み
RAID-5と違い、常にストライプ全体へデータを書き込みます。
ZFSのコピーオンライトと組み合わせることで、「RAID5書き込みホール」問題を回避することが可能です。
・高速
RAID-Zは、リードモディファイライトを行いません。
RAID-5ではリードモディファイライトが必須なため、HDDを1回余分に回す必要があります。RAID-Zではこれを行わないため、パフォーマンスが上がっています。
すでに仕組み自体が古くなったRAID-5を見直し、CPUやメモリがリッチになった現代的なサーバにあわせてチューニングすることで、
実際にベンチマークを取り、パフォーマンスを測定してみました。
RAID5の場合
RAID-Z (メモリ8GB)の場合
(参考)メモリ1GBの場合
(参考)メモリ512MBの場合
iSCSI接続での書き込み速度ベンチマーク | |||||
---|---|---|---|---|---|
Seq/Read | Seq/Write | Random (512k) |
Random (4k) |
Random (4k/QD32) |
|
RAID5 | 58.03 | 22.30 | 18.42 | 0.699 | 0.278 |
RAID-Z 8GB RAM |
91.99 | 62.47 | 43.44 | 4.206 | 0.753 |
RAID-Z 1GB RAM |
81.12 | 44.49 | 23.96 | 0.811 | 0.419 |
RAID-Z 512MB RAM |
68.35 | 16.76 | 9.187 | 0.652 | 0.366 |
メモリ8GBの場合は、読み書きがすべて大きく高速化されています。
メモリ512MBの場合は、逆に速度が落ちてしまいました。RAID-ZはZFSを使用するため、大容量のメモリが必要となることがわかります。
(ちなみに、一般的には「最低2GBのメモリが必要」と言われているようです)
RAID-Zの導入には、以下の環境が必要です。
・ZFS対応のOS
Solaris10,Open Solaris,FreeBSD,FreeNASなど。
Windows Server ではご利用いただけません(2010年現在)。クライアントとしての利用は可能です。
・大容量メモリ
最低512MB以上のメモリがないと、カーネルパニックを起こしてしまい、使用できません。旧型サーバで利用する場合には注意が必要です。
ZFS自体が高速CPUと大容量メモリの搭載を前提に設計されたファイルシステムですので、メモリ容量が少ないと性能を発揮しません。
当店で検証を行った場合、512MBの場合はソフトウェアRAID-5と同等の書き込み速度。1GBで約2倍、8GBで約3倍でした。大容量メモリを搭載することで、より高いパフォーマンスを発揮することができます。
64bit OS
必須ではありませんが、ZFSコードの多くが64bitで書かれているため、32bit OSでRAID-Zを運用すると、パフォーマンスが大きく低下します。そうなってはRAID-Zを導入する意味がありませんので、64bit OSでの運用を強く推奨します。
また32bit OSでは扱えるメモリに限りがあるため「大容量メモリを搭載すると大きくパフォーマンスが伸びる」ZFSのメリットを引き出すことができません。
FreeNASもx64(amd64)版がありますので、こちらの利用をおすすめします。
仮想環境で運用する場合は、VTテクロノジ対応のサーバが必要です。
高速なCPU
ZFS/RAID-Zは、CPUへの負荷が高めです。
テスト環境のPRIMERGY TX100 S1 (Pentium Dual Core E5200/2.5GHz) でも50%を大きく超え、75%にせまる勢いでCPUを使用しています。
しかも、これは1クライアントでテストした場合なので、クライアント数が増えると、さらに負荷が増す可能性があります。おそらく、PRIMERGY TX100 S1のスペックが最低ラインと言えるでしょう。
ファイルサーバとはいえ、あまりに非力なCPUだと、パフォーマンスを発揮できません。
今回の記事を簡単にまとめると、以下のようになります。
・RAID-Zは、RAID5を改良したもの。
・RAID5よりも高速で、しかも信頼性が高い。
・比較的高いスペックが必要。
次回は、VMWareにFreeNASで構築したRAID-ZストレージをiSCSIで接続し、iSCSIストレージに仮想マシンをインストールします。