HOME > PC > RAID > RAID (Areca)



Discrepancy between the benchmark results and the effect of the DRAM cache on RAID  



i-RAMのRAID実験 part 2で i-RAM を 6個 ストライピングしベンチマークテストを行うと、CrystalDiskMark では Read の最大値が 501MB/s となり、HDTunePro のグラフの読み取り値では Read の最大値が 655MB/s となって結果が食い違う。
その時その理由として下記の@A2つを考えた。
その後、BNorthbridgeに接続するかsouthbridgeに接続するかで、内部システムバスの違うところに転送速度の律速段階(botteleneck)が存在することも、ベンチマークテスト結果に影響を及ぼす原因の一つかもしれないと思い始めてきた。

問題点:
@RAIDコントローラーの性能の限界。
Aベンチマークテストが正確に測定できていない。
BNorthbridgeに接続するかsouthbridgeに接続するかで、システムバスの違うところに転送速度の律速段階が存在する。

@については、Adaptec RAID 5805を購入して、i-RAMのRAID実験 part 2の結果とANS-9010を用いたICH10RでのRAID実験Adaptec RAID 5805でのRAID実験の結果を比較した結果、各種RAIDコントローラーの性能には限界があり、速度に上限があることについてはわかった。転送速度の上限については、原因がRAIDコントローラー・カード自体ではなくて内部システムバスにあることも考えられるので、これについてはBで考察した。

Aのベンチマークテストで正確に測定できていない可能性については、CrystalDiskMark の結果は測定するファイルのサイズを変えることによって結果が変わることがあることから、ドライブを複数でストライピングしてベンチマークテストを行うと、ベンチマークの測定用のファイルサイズとRAIDコントローラー・カードのキャッシュサイズの大小によってベンチマーク測定結果のデータが変わってくるのだとわかってきた。ベンチマークテストの種類が変われば書込みファイルのサイズが変わるわけであるから、結果に相違が出ても当然ということになる。

Bについては、northbridgeに接続するかsouthbridgeに接続するかで、内部システムバスの違うところに転送速度の律速段階(botteleneck)が存在し、内部システムバスの転送速度は、2006年のデータであるが、2009年2月時点でも同じで、右図の通りである。

もし、PCI Express 2.0 x8 でnorthbridgeに接続するRAIDコントローラー・カードがあった場合には、PCIe 2.0 レーンを通過する最大転送速度は4GB/sとなり、また、PCIe x8 の場合では最高2GB/sの転送速度がある。

オンボードRAIDなどのように motherboard のSATAポートに直接ドライブを接続してsouthbridgeを経由した場合には、northbridgeとsouthbridgeの間の最大転送レートが2GB/sなので、ここが律速段階となる可能性もあり、最高でも2GB/sとなるが、これは今回の実験での速度よりも充分速いので、今回はこのことについては考えなくてもよいことがわかった。

(cf. 2002年の段階でのchipsetの各chip間での最大転送速度は 1GB/sであった。)


ここからは実験についての話ですが、Aの原因を調べるために、DDR2DRAMを差し替えることによってRAIDコントローラー・カードのキャッシュサイズを変えることのできるAreca ARC-1231MLを購入して、RAIDコントローラー・カードのキャッシュサイズを変えてみることによって、CrystalDiskMark のベンチマーク結果どうなるかを調べてみた。Areca ARC-1231MLは Intel IOP341 I/O processor(800 MHz) を搭載し、Host Bus は PCI-Express x8 で、デフォルトのRAIDコントローラー・カードのキャッシュは256MBであり、SamsungM378T5663RZ3-CF7 DDR2 PC6400 2GB と交換してみても正常にこのRAIDコントローラー・カードは作動した。(電源を切って物理的にキャッシュメモリーを換装しても、何の設定もなしにキャッシュが増えてRAIDのarrayやvolumeやpartitionがそのまま使えるのはおもしろかった。)

価格.comのクチコミのSolareという方の2008/11/17の書込みで、「Arecaは1261MLまでは結構HDDを見落とすという事がありました」と記載され、ぴーけんという方の2008/11/17の書込みで、「ARC-1680ix-16 (SAS/RAID)でANS-9010を接続しRAID0を組んで見たんですが、アレイは組めるのですがそのときランダムにどれかのポートがtime outをおこしアレイがフェールになってしまいます。」と記載されているように、ArecaのRAIDカードは相性問題上のトラブルが多い。私の実験でも全く同様のトラブルがありましたが、RAIDコントローラー・カードのキャッシュサイズを変えるとベンチマークテストの結果がどう変化するかを知りたいという実験目的はなんとか達成することができました。

価格.comのクチコミに書かれているようにANS-9010については、私のシステムでも問題がありました。Areca RAID Controller の Main Menu の「Physical Drives」でANS-9010とそのドライブのサイズをちゃんと正しく認識しているのですが、実際にアレイを組む段になってANS-9010のドライブサイズを 0MBと認識してしまって「Create Raid set」以降の所に進むことができず、アレイ自体を組むことができませんでした。
2chではANS-9010Areca ARC-1231MLのSATA接続方法で、NCQをオフにするとよいとテンプレートやスレッドでたびたび記載されていますが、私の実験システムでは、ドライブの認識自体はNCQがオンでもオフでも全く同様に認識されていて、個々のドライブサイズ自体は正常に認識されているのに、アレイを組む際にドライブの総容量が 0MBと認識されてしまうという全く同じ所で躓くという結果でした。(Areca ARC-1231ML Firmware version v1.46 2008-08-06) ただし、NCQ自体はHDD用のシステムなのでANS-9010には元来不要であるので、接続方法はSATAU単独を選択するのが当然望ましい。
私が実験に用いたANS-9010 4台の基板はすべて Rev.3.3で、firmware は 3133_101 であるが、firmware を 3142_109 にすればよいという意見(123)と、firmware を 3142_109 にすると認識失敗が発生するという意見(123)があるので、さらに安定した firmware が出た時に、ANS-9010の firmware の更新を検討するのがよいかもしれない。
cached text

上記の小さなフォントで2009年1月17日〜3月4日頃書いた部分は後日(2009年4月15日)解決できました。
ANS-9010Areca ARC-1231MLでうまくいった報告はASUSのM/BでありましたがGIGABYTEでは見当たらなかったので、RAIDが組めないのはAreca ARC-1231MLGIGABYTE EP45-DS3Rの相性も関係しているのかと思っていました。しかし、ドライブ自体は正しく認識していて、ドライブの容量だけが0MBと認識されるのはおかしいなと思っていました。後日わかったことは、Areca ARC-1231ML Firmware version v1.46 では truncation の capacity がデフォルトで 10GBとなっていて、これがANS-9010に搭載していたメモリーよりも大きかったためにドライブの容量が0MBと認識されたので、「Capacity Truncation」の設定を「Multiples of 1G」もしくは「No Truncation」にすることによって、ANS-9010Areca ARC-1231MLで RAID実験を行うことが可能でしたので、その結果はこのページの一番下の「NEXT」をクリックして次のページをご覧下さい。


HDDとSSDでの実験結果を以下に記載します。

使用した実験用パソコンのスペックは次の通りです。
 CPU: Core 2 Duo E8600 3.33GHz, 1333MHz FSB, 6MB L2 cache
 RAM: Samsung M378T5663RZ3-CF7 DDR2 PC6400 2GB × 2枚
 Northbridge: Intel P45
 Southbridge: Intel ICH10R
 Motherboard: GIGABYTE EP45-DS3R
 Boot HDD: HDS721616PLAT80 (Hitachi 7200rpm 160GB UltraATA133)
 GFX: GIGABYTE GeForce 7300GS (nVIDIA 7300GS)
 Powered by: GOURIKI-P-550A


@2HDD: HDD 2台でのテスト
HDDはRAIDのページで実験に使用し全く問題のなかった320GBプラッターのSeagate640GB7200rpmのHDD (ST3640323AS) 2台を使おうと思ったが、価格.comのクチコミの書込みに記載されているようにドライブ認識上の相性問題がまたもや発生し、全く同一の同時に買った2台のST3640323ASを用いているにもかかわらず、1台だけ認識してもう1台は認識しませんでした。すべてのコネクターと電源をはずして再度電源を入れ直してみましたが全く同じで、今度はHDDのつなぐ場所を変えると認識するHDDの場所も変わったので、あきらめて1台だけ使うこととしました。手元にあった別の Hitachi 500GB7200rpmのHDD(HDP725050GLA360)は正しく認識して、RAIDアレイもST3640323ASと正常に組むことができたので、この2台のHDDで CrystalDiskMark を用いた4種類のベンチマーク測定をしました。まず、Areca ARC-1231MLのキャッシュをデフォルトの256MBにしたまま、CrystalDiskMark の計測サイズを100MBにした場合(@-1) と1000MBにした場合(@-2) を測定し、次に、ARC-1231ML のキャッシュをM378T5663RZ3-CF7 DDR2 PC6400 2GB と交換し、CrystalDiskMark の計測サイズを100MBにした場合(@-3) と1000MBにした場合(@-4) を測定しました。その結果を順番にお示しします。
@-1 256MB cache-100MB計測 @-2 256MB cache-1000MB計測

@-3 2GB cache-100MB計測  @-4 2GB cache-1000MB計測

@ ARC-1231ML のキャッシュがデフォルトで256MBあり CrystalDiskMark のベンチマーク計測サイズの100MBを上回っているため、CrystalDiskMark からの計測データ転送速度は ARC-1231ML のキャッシュとの転送速度が反映されて、HDDが2台しかないにも関わらず、@-1 Sequential Read で 1.532GB/sの計測値が得られた。この計測値は CrystalDiskMark のベンチマーク計測サイズを1000MBとして ARC-1231ML のキャッシュの256MBより大きくして測定することによって@-2 の178MB/sに落ちた。再度 ARC-1231ML のキャッシュを 2GB DDR2 に増やして CrystalDiskMark のベンチマーク計測サイズの1000MBを上回るようにして測定すると、やはり、また、@-4 Sequential Read で 1.532GB/sの計測値が得られた。

RAIDコントローラー・カードのキャッシュサイズがベンチマークソフトの計測サイズを上回る場合は、Intel P45とRAIDカードのキャッシュの間でデータの転送を終えるまでの速度が表示されるため、HDDが2台しかなくても Sequential Read で 1.532GB/sと高速になることがわかった。
2台のHDDで1.5GB/sを越えることができたが、24台のSSDで2GB/sを越えたという動画がYouTubeにあった。

(cf. これと同様のベンチマークテストは、バグがあるCrystalDiskMark2.1のテストのみの検証で、キャッシュサイズも256MBに固定されたままであるが、計測結果を2008年4月のblogに掲載している人もいます。)


A2SSD: プチフリSSDといわれるSSD2台(Silicon PowerSP032GBSSD650S25 を2台)用いて、上記@の2台のHDDのRAID実験と同様に CrystalDiskMark を用いた4種類のベンチマーク測定をしました。まず、Areca ARC-1231MLのキャッシュをデフォルトの256MBにしたまま、CrystalDiskMark の計測サイズを100MBにした場合(A-1) と1000MBにした場合(A-2) を測定し、次に、ARC-1231ML のキャッシュをM378T5663RZ3-CF7 DDR2 PC6400 2GB と交換し、CrystalDiskMark の計測サイズを100MBにした場合(A-3) と1000MBにした場合(A-4) を測定しました。その結果を順番にお示しします。
A-1 256MB cache-100MB test A-2 256MB cache-1000MB test

A-3 2GB cache-100MB test  A-4 2GB cache-1000MB test

A ARC-1231ML のキャッシュがデフォルトで256MBあり CrystalDiskMark のベンチマーク計測サイズの100MBを上回っているため、CrystalDiskMark からの計測データ転送速度は ARC-1231ML のキャッシュとの転送速度が反映されて、SSDが2台しかないにも関わらず、A-1 Sequential Read で 1.532GB/sの計測値が得られた。この計測値は CrystalDiskMark のベンチマーク計測サイズを1000MBとして ARC-1231ML のキャッシュの256MBより大きくして測定することによってA-2 の351MB/sに落ちた。再度 ARC-1231ML のキャッシュを 2GB DDR2 に増やして CrystalDiskMark のベンチマーク計測サイズの1000MBを上回るようにして測定すると、やはり、また、A-4 Sequential Read で 1.532GB/sの計測値が得られた。

RAIDコントローラー・カードのキャッシュサイズがベンチマークソフトの計測サイズを上回る場合は、Intel P45とRAIDカードのキャッシュの間でデータの転送を終えるまでの速度が表示されるため、SSDが2台しかなくても Sequential Read で 1.532GB/sと高速になることがわかった。


B3SSD: CrystalDiskMark の測定結果は、RAIDコントローラー・カードのキャッシュ容量が大きい場合にはIntel P45とRAIDカードのキャッシュ間の転送速度を反映しているように見えるので、末端にわざと種類の違う3種類のSSD(Silicon Power SP032GBSSD650S25OCZ OCZSSD2-2C30GMtron MSD-SATA3535016)を各1台ずつ接続し上記の@Aと同じような結果が出るのか試してみた。(この実験は、キャッシュサイズが大きければRAIDコントローラー・カードのペリフェリに接続した機器にベンチ結果が大きく左右されないことを確認するためのものです。)
B-1 256MB cache-100MB test B-2 256MB cache-1000MB test

B-3 2GB cache-100MB test  B-4 2GB cache-1000MB test

B ARC-1231ML のキャッシュがデフォルトで256MBあり CrystalDiskMark のベンチマーク計測サイズの100MBを上回っているため、CrystalDiskMark からの計測データ転送速度は ARC-1231ML のキャッシュとの転送速度が反映されて、SSD3台で、B-1 Sequential Read で 1.532GB/sの計測値が得られた。この計測値は CrystalDiskMark のベンチマーク計測サイズを1000MBとして ARC-1231ML のキャッシュの256MBより大きくして測定することによってB-2 の312MB/sに落ちた。再度 ARC-1231ML のキャッシュを 2GB DDR2 に増やして CrystalDiskMark のベンチマーク計測サイズの1000MBを上回るようにして測定すると、やはり、また、B-4 Sequential Read で 1.533GB/sの計測値が得られた。

RAIDコントローラー・カードのキャッシュより末端に上記@Aと違ってSSD3台を接続しても、測定結果は@Aとほぼ同様の結果となり、CrystalDiskMark の測定結果は、Intel P45とRAIDカードのキャッシュ間の転送速度を反映していると考えられた。


C6SSD: プチフリSSDの名誉のために、全く同じ転送速度で全く同じ容量のSilicon Power SP032GBSSD650S25 のSSD4台と OCZ OCZSSD2-2C30G のSSD2台の合計6台のSSDで、上記@ABのRAID実験と同様に CrystalDiskMark を用いた4種類のベンチマーク測定をしました。(2種のSSDを同一に扱っていいことの確認FAT32の理由。) まず、Areca ARC-1231MLのキャッシュをデフォルトの256MBにしたまま、CrystalDiskMark の計測サイズを100MBにした場合(C-1) と1000MBにした場合(C-2) を測定し、次に、ARC-1231ML のキャッシュをM378T5663RZ3-CF7 DDR2 PC6400 2GB と交換し、CrystalDiskMark の計測サイズを100MBにした場合(C-3) と1000MBにした場合(C-4) を測定しました。その結果です。
C-1 256MB cache-100MB test C-2 256MB cache-1000MB test

C-3 2GB cache-100MB test  C-4 2GB cache-1000MB test

C ARC-1231ML のキャッシュが、計測サイズ100MB・1000MB共々 CrystalDiskMark のベンチマーク計測サイズを上回っている場合には、 C-1 Sequential Read で 1.530GB/sの計測値が得られ、C-4 Sequential Read で 1.530GB/sの計測値が得られる点は全く上記@ABのRAID実験と同様の結果である。書込み速度についてはSSD6台になるとかなり速くなってきている。

私の場合は相性問題でRAIDアレイさえ組めなかったが、ANS-9010を4台8ポートでAreca ARC-1231MLに接続して1.5GB/s出たという報告が2chにあったが、Areca ARC-1231MLではキャッシュを2GB搭載すると、普通の速度のSSDやHDDを2台接続するだけでも CrystalDiskMark のベンチ結果で1.53GB/s出ることがわかった。また、Yahoo!知恵袋にも「2台のRAID0で転送速度1GB/sが出るのでしょうか」という質問があるが、この答えも、本ページ1番下の Block Diagram を見てデータが転送されている部位を考えると答えがわかりやすい。


話は本題とそれるが、プチフリSSDの名誉回復のために、この格安SSDを6台(計4.8万円)を集めれば、キャッシュの効果が薄い上図C-2のデータでさえ、SSDだけで計48万円の Intel の秋葉原のデモ展示品の「X25-M Mainstream SATA SSD 6台(Adaptec RAID 5805使用)のベンチマーク結果 (下図左) に匹敵し、RAIDコントローラー・カードの性能がよけれれば上図C-4のようにさらに高速となることもわかった。
(しかも、格安SSD6台の上図C-4 は Areca ARC-1680ix-16 使用の Intel X25-M x7台 より高速 (cache)

後日、OCZ OCZSSD2-2C30G がセール価格でさらに2個手に入ったので、JMicron製「JMF602」チップ採用のSSDを8台(計6.4万円)として、Areca ARC-1231MLでベンチをとってみた。(下図右)
Sequential Read は SSD2台でもSSD8台でも1.5GB/s越えとなるが、Sequential Write は SSD2台の時に270MB/s(上図A-4)しかなかったものが SSDを8台にすると864MB/s(下図右)に向上した。RAID controller card の cache の性能がベンチ結果に大きく影響すると言えども、元々のドライブ自体の数と能力も無視できるわけではなく重要であることがわかった。

Linuxのファイルの書込みはWindowsのファイルの書込みと違って、もともとサーバー用に多くのアクセスに対処できるように、同じ場所で上書きしないよう書き始めるように設定されているため読み書きの交錯が少なく、プチフリSSDを使ってもプチフリせずにこのすばらしいベンチマーク結果の性能を引き出せるので、RAIDのSSDはLinuxのサーバー用途に向いていると言える。(自鯖に、無料Linux+RAIDの格安SSDを使えば、WintelSSD鯖より安くて高速になる。)
起動時間も考慮して、2〜4ポートのANS-9010を読み書きの多いWindowsのOSに用い、RAIDの格安SSDをLinuxサーバーに用いるのが電気代も節約できて、データの高速処理が可能で、適材適所と言えそうです。
このように使い分ければ、せっかく高額で購入した Intel SSD が WindowsのOS用途に使い込んでいくうちに書込速度が落ちるという悩みから解放されます。


 Intel SSD 6台  JMF602chip採用 SSD 8台




GIGABYTE EP45-DS3Rに同梱されていた説明書のM/B基板のブロック図である。


ARC-1231ML のキャッシュサイズが CrystalDiskMark のベンチマーク計測サイズを上回っている場合には、この図の Dual Channel Memory にある CrystalDiskMark のプログラムで作られたデータは ARC-1231ML のキャッシュとの間で、Intel P45と PCIe x8 を介して転送されるデータの結果が反映されるが、ARC-1231ML のキャッシュサイズが CrystalDiskMark のベンチマーク計測サイズを下回っている場合、もしくはキャッシュ可能なサイズを超えた分は PCIe x8 スロット上にある RAIDコントローラー・カードと実際に接続されたドライブとのデータ転送速度が反映されると考えられる。

異なるベンチマークテストで異なるベンチマーク結果が得られるのは、テストの計測サイズが異ることによって、システムバスの異なる部位の転送速度を反映しているからであると考えられることがわかった。


ANS-9010とAreca ARC-1231MLを用いた実験結果については、下のNEXTをクリックして次のページをご覧下さい。


NEXT