Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (3,838)  
HandBrake Japanese Language Version  (3,050)  
CrystalDiskInfo  (1,689)  
CrystalDiskMark  (932)  
Tera Term  (905)  
和田研細丸ゴシック  (712)  
FFFTP  (598)  
BathyScaphe  (561)  
SMPlayer  (548)  
10  えこでこツール  (524)  
11  ffdshow  (516)  
12  Cabos  (495)  
13  mixfont-mplus-ipa  (481)  
14  ギコナビ  (448)  
15  MergeDoc  (435)  
More >>

最近ブックマークされた記事

ハードウェアRAIDとLinuxカーネルによるソフトウェアRAIDのベンチマーク比較

2008年07月17日 10:55 Ben-Martin(2008年7月15日(火)) 1 2 3 4 5
 新しいサーバに高価なハードウェアRAIDカードを付けることで、ディスクアクセスの速度はどれほど向上するのだろうか。LinuxカーネルによるソフトウェアRAIDとハードウェアRAIDカードのパフォーマンスの違いはベンチマークで評価できる。私の環境でこの2つの条件を評価したところ、いくつか興味深い結果が得られた。

 ソフトウェアRAIDとハードウェアRAIDの双方について、750GBのSamsung SATAドライブ6台を使ってRAIDレベル5610の各構成を評価した。パフォーマンスの測定にはBonnie++IOzoneの各ベンチマークを用いた。また、チャンクサイズがハードウェアまたはソフトウェアのRAID構成に与える影響を確かめるために、チャンクの大きさを変えてベンチマークを実行した。

 ハードウェアRAIDの評価には、12ポートのAdaptec製SAS-31205 PCI Express RAIDカード(市価800ドル)を用いた。ソフトウェアRAIDのほうは、64ビット版Fedora 9システムのLinuxカーネルによるソフトウェアRAID機能を対象とした。評価用マシンにはAMD Athlon X2(2.2HGz)プロセッサと2GBのRAMが載っている。ソフトウェアRAIDを使ったファイルサーバなら、クアッドコアCPUや8GBか16GBのRAMを搭載していてもよさそうだが、上記マシンで得られたハードウェアRAIDとソフトウェアRAIDのパフォーマンスの相対的差異は、他のマシンにおける両者のパフォーマンスの違いを知るうえでも参考になるはずだ。評価は、各パーティションのサイズが同じ6台のハードディスクに分散させた100GBほどの領域に対して行った。RAID作成の時間を短縮するために、空きディスクスペース全体を使うことはしなかった。

 テストマシンのマザーボードにはSATAコネクタが4つしかなかったので、6台のSATAドライブで評価を行うにはある部分で妥協が必要だった。そこで、1台のドライブをマザーボードのSATAコントローラで評価したうえで、AdaptecのRAIDカード経由でシングルディスクとしてエクスポートし、AdaptecのRAIDカードが単独ディスクへのアクセスに与える影響を確認した。その後、6台のHDDをAdaptecのRAIDカードに接続し、それぞれを単独の非RAIDボリュームとしてLinuxカーネルにエクスポートした。ソフトウェアRAIDの評価は、Adaptecカード経由でアクセスされる、これら6つの単独ボリューム上にRAIDを作成することによって行った。6つのディスクボリュームをAdaptecカード経由で用いる利点は、RAIDの実行にハードウェアRAIDチップを使った場合とLinuxカーネルを使った場合を直接比較できることにある。どちらの場合も、各ドライブが接続しているSATAコントローラは同じものだからだ。マザーボードのSATAコントローラを使用する場合とAdaptecカードのものを使用する場合のそれぞれでシングルディスクアクセスのベンチマークを取れば、SATAコントローラの違いによる影響がわかる。幸いなことに、単独ディスクへのアクセスに関しては、どちらのコントローラにも特に大きな利点はない。よって、6台のディスクに個別にアクセスし、その上でソフトウェアRAIDを実行した場合の数値は、ほかのSATAコントローラを使った場合と大きく異なることはなさそうだ。Adaptecカードを使って単独のボリュームにアクセスした場合とオンボードのSATAコントローラを利用した場合のパフォーマンスの違いがわかったので、以降ではハードウェアRAIDとソフトウェアRAIDのベンチマークの差に注目することができる。

 今回の評価には、ext3とXFSの両方のファイルシステムを使った。これらのファイルシステムの作成は、可能な場合にはRAIDのチャンクとストライドを指定して行った。また、マウント時のオプションとしてext3にはwritebackとnobh、XFSにnobarrierをそれぞれ使用した。書き込みバリアを使うとAdaptecカードの時間的ペナルティが非常に大きくなりそうなので、AdaptecカードでXFSを使用するなら、書き込みバリアは使わずに、UPSとバッテリバックアップを使ってメタデータを保護するのが賢明だ。こうした割り当てオプションに加えて、XFSファイルシステムの作成では「lazy-count=1」を指定した。これにより、ファイルシステムのスーパーブロックに対する書き込み競合が減少する。

 以下に示すグラフの凡例を理解するには、各ファイルシステムの作成条件について知っておく必要がある。“hard”で始まっているものはすべてハードウェアRAID構成である。たとえば、“hardext3aligndef”は「-E stride」を使って作成され、特別なオプションを使わずにマウントされたext3ファイルシステムであり、“hardext3alignwb”は「data=writeback,nobh」オプションを使った点だけが“hardext3aligndef”と異なる。また、“xfsdefaultnb”というXFSファイルシステムは「lazy-count=1」で作成され、「nobarrier」オプションでマウントされたもの、“hardxfsalign”は特定のRAID構成に対してストライドとチャンクサイズを指定した点以外は“xfsdefaultnb”と同じもの、“xfsdlalign”はXFSジャーナルにストライプ割り当てを使用した点が“hardxfsalign”とは異なる。ソフトウェアRAIDの場合は、“ext3”がハードウェアRAIDの“ext3alignwb”の構成に相当し、“xfs”、“xfslogalign”はそれぞれハードウェアRAIDの“hardxfsalign”、“hardxfsdlalign”にあたる。

 各グラフからわかるように、XFSファイルシステムをストライプ境界に割り当てると、作成や削除といったファイルシステムのメタデータ操作の速度がかなり違ってくる。構成のバリエーションをブロック転送のグラフでも示したのは、こうしたファイルシステムのパラメータの影響がメタデータ操作だけでなくブロック転送速度にも現れるからだ。なお、グラフは載せてあるが、本稿ではメタデータ操作のベンチマークについては詳しく取り上げない。明らかにわかるのは、ハードウェアRAIDの場合はext3でのランダム生成および削除の操作がかなり高速なことだ。

関連トピック

最終更新:2008年09月16日 17:07