ほんとはお買い得RAIDカードにずらっと並べていたのですが、あまりにもデータが多くて見づらくなったので分割しました。
PCブラウザで見ている場合、ブラウザをめいっぱい横に広げると多少グラフの比較がしやすくなります。
NEC N8103-130 (Megaraid SAS 9264-8i)
スペック
- チップ LSI SAS2108
- メモリ 256MB、DDR2-800MHz
- リンク速度 x8@PCI-E2.0
RAID5/6 用キー付きのモデルです。購入時はバッテリ付きで1枚3000円程度でした。手元にあった物はFW 2.0.43-0991の物ですが、何故か最初からSATA6Gでリンクしており、実際にそれに近い速度が出ています。Webの伝聞を見る限り SATA3Gでしか使えないらしいのですが、何故そうなっているのか謎です。
NEC のファームウェア更新履歴には特に6G対応について記述はありませんが、「SSDを正しく認識するにはバージョン14.00.1026以降のドライバが必 要」とあり、ドライバはWindows 10のInboxドライバを使っているのですが、この辺で何か変わったのでしょうか。
BBUもあるのですが、充電を待つのが面倒だったのでBBU無しでForce WBで検証しています。また、過去の経験により、LSIのカードの設定については
- SSDの場合、NoReadAhead,Direct IOにした方が大体良い結果が出る
- SSDの場合は性質上先読みが無くても十分早い上、先読みが外れるコストの方がRAIDコントローラにとっては大きいらしい
- Cached IOにすると、読み込み時に ディスク→キャッシュメモリ→OS と言う順になるらしく、SSDの場合はキャッシュへ載せるオーバーヘッドの方が大きい
- SSDの場合、NoReadAhead,Direct IOにした方が大体良い結果が出る
- SSDの場合、Diskcacheを有効にしてあげないと書き込み最適化が出来ず寿命にも影響する
- エンプラ向けSSDはでかいキャパシタを持っているので電源断でもSSD上のDRAMのデータは消失せずにすむけど…
と言う傾向があるので、それを踏まえた上で個人的に気になった以下のパターンを確認しています。
- 1Disk-RAID0 WriteThrough
- 1Disk-RAID0 WriteBack
- 4Disk-RAID0 WT
- 4Disk-RAID0 WB
- 4Disk-RAID5 WT
- 4Disk-RAID5 WB
ディスクのストライプサイズはデフォルトの64K固定です。
1Disk-RAID0 WriteThrough
何気にAHCIよりIO性能が高い…。SSD自体に256MBのDRAMが載っているので、そもそもカード自体のDRAMが不要な可能性があります。
CDMの4G、100MBリードの参考値です。ちなみにDiskcacheを無効にするとシーケンシャルでも書き込みが45MB/s程度まで落ちました。
1Disk-RAID0 WriteBack
5GBというキャッシュに乗り切らないサイズのせいか、違いがぜんぜんわからん!
WTモード時とのデータの向上率の比較をしてみる
Access Specification Name | 対WT比Read IOps 増分(%) | 対WT比Write IOps増分(%) |
---|---|---|
512 B; 100% Read; 0% random_QD1 | -44.2784 | 0 |
512 B; 100% Read; 0% random_QD32 | -2.24602 | 0 |
512 B; 50% Read; 0% random_QD1 | 103.7055 | 102.828 |
512 B; 50% Read; 0% random_QD32 | 181.8043 | 183.2034 |
512 B; 0% Read; 0% random_QD1 | 0 | 101.8742 |
512 B; 0% Read; 0% random_QD32 | 0 | -39.6489 |
4 KiB; 100% Read; 0% random_QD1 | -34.7772 | 0 |
4 KiB; 100% Read; 0% random_QD32 | -29.6001 | 0 |
4 KiB; 50% Read; 0% random_QD1 | -0.77824 | -1.62854 |
4 KiB; 50% Read; 0% random_QD32 | -9.38483 | -9.62174 |
4 KiB; 0% Read; 0% random_QD1 | 0 | 90.90597 |
4 KiB; 0% Read; 0% random_QD32 | 0 | -41.4706 |
256 KiB; 100% Read; 0% random_QD1 | -1.21428 | 0 |
256 KiB; 100% Read; 0% random_QD32 | 3.831043 | 0 |
256 KiB; 50% Read; 0% random_QD1 | 7.140573 | 8.666481 |
256 KiB; 50% Read; 0% random_QD32 | -21.9534 | -21.8982 |
256 KiB; 0% Read; 0% random_QD1 | 0 | 12.71637 |
256 KiB; 0% Read; 0% random_QD32 | 0 | -0.00466 |
1M-Seq-100%R_QD1 | 0.183323 | 0 |
1M-Seq-100%R_QD32 | 4.469601 | 0 |
1M-Seq-50%R_QD1 | -3.69594 | -5.69608 |
1M-Seq-50%R_QD32 | -7.78602 | -8.20952 |
1M-Seq-100%W_QD1 | 0 | -0.63321 |
1M-Seq-100%W_QD32 | 0 | 0.440793 |
1M-rand-100%R_QD1 | -7.9101 | 0 |
1M-rand-100%R_QD32 | -25.5283 | 0 |
1M-rand-50%R_QD1 | -10.3011 | -14.8897 |
1M-rand-50%R_QD32 | -18.1436 | -17.3741 |
1M-rand-100%W_QD1 | 0 | -7.48275 |
1M-rand-100%W_QD32 | 0 | -5.91396 |
0%でキャッシュ無し時と同じなので、512 B; 100% Read; 0% random_QD1の-44%というのは、キャッシュを有効にすると逆に性能劣化が起きてキャッシュ無しの半分の性能になっているパターンです。
512BアクセスのRead50%/Write50%時はキャッシュを有効にすると無しに比べて+200%になるので、WTの3倍近い性能向上を得られますが、それ以外の場合は大体性能劣化が起きているようです。
WBの効果が出ているかCDMも走らせてみましたが、キャッシュに収まる100MBでテストしたところキャッシュ速度はずいぶんと速いようです。
4Disk-RAID0 WT
IOPS的にいえば1ディスク構成時の90kからあまり増加はないので、コントローラ的には90kIOPSくらいが限界のようです。
一方、ディスクの読み込みについては1ディスク構成時に最大450MB/sだったのが4本構成で約1800MB/sなので、順当に伸びているようです。
こ れらから、最大90kIOPSか2GB/sまでの帯域のどちらかがに触れない範囲で使う事になりそうです。いずれにしても、IOPSについてはHDDでは 間違いなく到達できない範囲なので、HDDで運用する限りRAIDカードがネックになると言うことはないと思われます。
HDDを16台くらいぶら下げれば、帯域の方はシーケンシャルIOで上限にあたる可能性がありますが、それなりにがんばらないと到達できないと思います。
4Disk-RAID0 WB
例によってWT/WBの対比が分からないので増分
Access Specification Name | 対WT比Read IOps 増分(%) | 対WT比Write IOps増分(%) |
---|---|---|
512 B; 100% Read; 0% random_QD1 | -38.3926 | 0 |
512 B; 100% Read; 0% random_QD32 | -10.4696 | 0 |
512 B; 50% Read; 0% random_QD1 | 105.3036 | 105.2979 |
512 B; 50% Read; 0% random_QD32 | 182.4146 | 183.829 |
512 B; 0% Read; 0% random_QD1 | 0 | 100.2315 |
512 B; 0% Read; 0% random_QD32 | 0 | -31.7521 |
4 KiB; 100% Read; 0% random_QD1 | -15.3525 | 0 |
4 KiB; 100% Read; 0% random_QD32 | -9.96226 | 0 |
4 KiB; 50% Read; 0% random_QD1 | 4.451638 | 3.060278 |
4 KiB; 50% Read; 0% random_QD32 | -5.8848 | -5.67845 |
4 KiB; 0% Read; 0% random_QD1 | 0 | 78.77088 |
4 KiB; 0% Read; 0% random_QD32 | 0 | -44.7767 |
256 KiB; 100% Read; 0% random_QD1 | -13.1805 | 0 |
256 KiB; 100% Read; 0% random_QD32 | 1.193501 | 0 |
256 KiB; 50% Read; 0% random_QD1 | 17.66127 | 15.54095 |
256 KiB; 50% Read; 0% random_QD32 | 0.809517 | 2.130234 |
256 KiB; 0% Read; 0% random_QD1 | 0 | -7.04535 |
256 KiB; 0% Read; 0% random_QD32 | 0 | -18.4334 |
1M-Seq-100%R_QD1 | -2.46664 | 0 |
1M-Seq-100%R_QD32 | 2.463172 | 0 |
1M-Seq-50%R_QD1 | -3.53151 | -4.23811 |
1M-Seq-50%R_QD32 | -2.97517 | -3.60646 |
1M-Seq-100%W_QD1 | 0 | -20.8247 |
1M-Seq-100%W_QD32 | 0 | -12.7551 |
1M-rand-100%R_QD1 | -1.11088 | 0 |
1M-rand-100%R_QD32 | 4.778021 | 0 |
1M-rand-50%R_QD1 | -4.51558 | -6.17381 |
1M-rand-50%R_QD32 | 4.055717 | 3.391034 |
1M-rand-100%W_QD1 | 0 | -10.4651 |
1M-rand-100%W_QD32 | 0 | -13.909 |
CDMでも似た傾向がみれます。
4Disk-RAID5 WT
読み込みはRAID0の1.8GB/sに対して、RAID5でも最大約1.6GB/sと優秀なのですが、書き込みは最大でも300MB/sと残念なことに。
RAID0の時は512BQD32の書き込みが66kIOPSあったのに対して、RAID5の時は26kIOPSまで落ちたので、やはりパリティー計算が必要なRAIDのオーバーヘッドは大きいです。
4Disk-RAID5 WB
Access Specification Name | 対WT比Read IOps 増分(%) | 対WT比Write IOps増分(%) |
---|---|---|
512 B; 100% Read; 0% random_QD1 | -80.9008 | 0 |
512 B; 100% Read; 0% random_QD32 | -24.7416 | 0 |
512 B; 50% Read; 0% random_QD1 | 0.374355 | 0.015933 |
512 B; 50% Read; 0% random_QD32 | 67.39728 | 67.56659 |
512 B; 0% Read; 0% random_QD1 | 0 | 482.0557 |
512 B; 0% Read; 0% random_QD32 | 0 | 66.55948 |
4 KiB; 100% Read; 0% random_QD1 | -77.3743 | 0 |
4 KiB; 100% Read; 0% random_QD32 | -10.1411 | 0 |
4 KiB; 50% Read; 0% random_QD1 | -7.2077 | -5.82038 |
4 KiB; 50% Read; 0% random_QD32 | 46.44116 | 46.29059 |
4 KiB; 0% Read; 0% random_QD1 | 0 | 479.8198 |
4 KiB; 0% Read; 0% random_QD32 | 0 | 98.44912 |
256 KiB; 100% Read; 0% random_QD1 | 11.12418 | 0 |
256 KiB; 100% Read; 0% random_QD32 | 6.039454 | 0 |
256 KiB; 50% Read; 0% random_QD1 | 59.67971 | 61.75022 |
256 KiB; 50% Read; 0% random_QD32 | 8.059076 | 7.317294 |
256 KiB; 0% Read; 0% random_QD1 | 0 | 159.8849 |
256 KiB; 0% Read; 0% random_QD32 | 0 | 130.9874 |
1M-Seq-100%R_QD1 | 3.951161 | 0 |
1M-Seq-100%R_QD32 | 5.272636 | 0 |
1M-Seq-50%R_QD1 | 60.79148 | 61.17785 |
1M-Seq-50%R_QD32 | 14.32811 | 16.1741 |
1M-Seq-100%W_QD1 | 0 | 174.7787 |
1M-Seq-100%W_QD32 | 0 | 94.76335 |
1M-rand-100%R_QD1 | 1.722071 | 0 |
1M-rand-100%R_QD32 | 8.186769 | 0 |
1M-rand-50%R_QD1 | 57.84206 | 61.04148 |
1M-rand-50%R_QD32 | 16.93755 | 16.22543 |
1M-rand-100%W_QD1 | 0 | 147.958 |
1M-rand-100%W_QD32 | 0 | 19.62272 |
通説通り、RAID5の時はWBキャッシュがあると性能向上があります。512BQD32の書き込みがWT時には26kIOPSでしたがWB時には44kIOPSまで上がりました。
また、RAID0の時と違い、大体の場合において性能が上がりました。
CDMでも似た傾向は出ましたが、たとえば4KQD32時の書き込みがIOMeterだとWB時に121MB/s出ているのに対して、CDMだと35MB/sになっているなど、結構違いが出ているので参考値です。
まとめ
4000円前後で買える割にはそこまで悪くないと思います。RAID5で運用する際にはBBU+キャッシュを、0で運用する際にはキャッシュしない設定にする、と言うのがベストのようです。
Related articles
コメントの追加