ハードウェアRAIDとLinuxカーネルによるソフトウェアRAIDのベンチマーク比較:Validation Case Study(3/3 ページ)
ソフトウェアの処理で行うソフトウェアRAIDと、高価なハードウェアRAIDカードとではディスクアクセスの速度はどれほど向上するのだろうか。ベンチマーク結果を基に、すこし硬派な検証を行ってみよう。
RAID10のパフォーマンス評価
RAID10のパフォーマンス評価は、256Kバイトと1024Kバイトのチャンクサイズ、それにソフトウェアRAIDではデフォルトのn2レイアウトを使って実施した。RAID10で標準的なn2レイアウトを利用することでベンチマーク結果の違いが明確になる。
次のグラフは、チャンクを256Kバイトとした場合の評価結果である(グラフ7)。ブロック入力については、XFS使用時でハードウェアRAIDが312Mバイト/秒でソフトウェアRAIDの240Mバイト/秒を上回り、ext3使用時ではハードウェアRAIDが 294Mバイト/秒、ソフトウェアRAIDが232Mバイト/秒となっている。
ブロック出力ではあまり差が出なかったこと、またRAID10ではパリティ計算が不要なことから、ブロック再書き込みでの両者の差はもっと縮まるだろうと予想していた。しかし、少し意外なことに、パリティ計算の負荷がなくてもハードウェアRAIDの方がソフトウェアRAIDよりもかなり高速だった。RAID10でもやはり、リレーショナルデータベースサーバなど再書き込みのパフォーマンスが重視されるアプリケーションを実行するなら、ハードウェアRAIDカードの購入を検討した方がよさそうだ。
ブロックサイズを1024Kバイトにすると、ハードウェアRAIDとソフトウェアRAIDでのブロック転送速度の違いがあまり出なくなった(グラフ8)。また、ハードウェアRAID10におけるXFSのストライド割り当てには難があるらしく、ブロック入力のパフォーマンスが(デフォルトのXFSよりも)50Mバイト/秒ほど低下している。
チャンクサイズ1024KバイトでのRAID10の再書き込みパフォーマンスは、ハードウェアでもソフトウェアでもほとんど同じで最高値が99.5Mバイト/秒だが、チャンクサイズが256KバイトでXFS使用時のハードウェアRAID10では116Mバイト/秒のパフォーマンスが得られている。データベースサーバ向けには、やはりハードウェアRAIDでチャンクを256Kバイトとするのが最善である。主な関心がファイルサーバの実行にあるなら、ブロック入出力におけるソフトウェアRAID10(チャンクサイズが1024Kバイトの場合、入力:288Mバイト/秒、出力:219Mバイト/秒)とハードウェアRAID10(チャンクサイズが256Kバイトの場合、入力:312Mバイト/秒、出力:243Mバイト/秒)の速度の違いは、ハードウェアRAIDカードのコストからすると不十分といえそうだ。なお、両者のチャンクサイズが違うのは、ソフトウェアRAID(1024Kバイト)とハードウェアRAID(256Kバイト)でそれぞれ最善のパフォーマンスが得られる条件同士を比較したためである。
まとめ
RAID10で256Kバイトといった小さなブロックサイズを使う場合、再書き込みのパフォーマンスはハードウェアRAIDとソフトウェアRAIDで大きな違いが出る。パリティを用いるRAIDの出力ではハードウェアRAIDの方が圧倒的に高速であり、例えばRAID6でチャンクサイズ256Kバイトの条件の場合、ソフトウェアRAIDよりもブロック出力で66%、再書き込みで20%高速になる。そのため、パフォーマンスを求めるとともに複数のドライブの同時故障に対応できるようにするには、ハードウェアRAIDによるソリューションを検討するとよい。ベンチマーク結果とは関係ないが、評価に用いたハードウェアRAIDカードは、故障したドライブの交換に伴うダウン時間を短縮できるホットプラグリプレースメントにも対応している。これらのテスト結果から、ハードウェアRAIDカードを購入する代わりに同じ予算で、より安価なSATAポートを幾つかそろえ、2つのソフトウェアRAID6アレイの構成にしてもよいだろう。
今回のテストでは、ファイルシステムの選択がパフォーマンスに多大な影響を与えることも分かった。パリティを用いるRAIDの出力ではXFSの方がかなり高速だが、RAID10でチャンクサイズを256Kバイトとした場合のブロック入力など、一部の条件ではext3よりも遅くなることもある。
テストの条件を拡げてそのほかのファイルシステムの条件も追加し、読み取りや書き込みのパフォーマンスでどのファイルシステムが最も優れているかを確かめると面白いだろう。評価に用いたAdaptec製RAIDカードでは、RAID-50やRAID-60の実行が可能だ。そうしたハイエンドな構成(4つのRAID5アレイを基本形として16ポートのカードでRAID50を実行するなど)にソフトウェアRAIDがどこまで対抗できるかを調べるのも興味深い。
Ben Martinは10年以上もファイルシステムに携わっている。博士号を持ち、現在はlibferris、各種ファイルシステム、検索ソリューションを中心としたコンサルティングサービスを手掛けている。
関連記事
- RAIDで高速デスクトップ
RAIDを使用すればディスク性能はどのくらい向上させることができるのか。ここでは、3タイプのユーザーを想定して、日常的に繰り返し行う必要のある代表的な操作でパフォーマンスの検証を行った。 - ハイエンドNICは実際にどの程度ネットワークスループットを向上させるのか?
オンボードのNICとデスクトップ用のハイエンドNICはどの程度性能が違うのだろう。幾つかのベンチマークテストを通して、その性能差を検証してみよう。価格にふさわしい性能差はあるのだろうか。 - イーサネットのセカンドポートの有効な活用法
カタログスペックにだまされて2つのイーサネットポートを持つPCを購入したはいいが、結局1つしか使っていない――そんな読者のために、2つ目のイーサネットポートを活用する方法をお知らせしよう。 - マルチコアCPUを活用したファイル圧縮
マルチコアに対応しているmgzipとpbzip2を使えば、ファイルの圧縮/復元処理にマルチコアの真の実力を解放させることができる。ここでは、実際にそれぞれの処理に要する時間を計測してみた。 - LAMP vs. LAMP──mod_perlとmod_phpのパフォーマンス比較
ダイナミックWebサイトの構築ではPerlとPHPが広く使われている。では、mod_perlとmod_phpのパフォーマンスはどちらがよいのだろうか。ちょっとしたテストをしてみたので報告する。
Copyright © ITmedia, Inc. All Rights Reserved.