ほんとはお買い得RAIDカードにずらっと並べていたのですが、あまりにもデータが多くて見づらくなったので分割しました。
PCブラウザで見ている場合、ブラウザをめいっぱい横に広げると多少グラフの比較がしやすくなります。購入時は99USDだったので送料を含めるとあまりやすいとも言えませんが、今後は安くなると思います。
NEC N8103-130 (Megaraid SAS 9264-8i)
スペック
- チップ PMC Sierra チップ不明
- メモリ 1GB、DDR3-1333MHz
- リンク速度 x8@PCI-E3.0
- FW 8.0.0
ML350eのP420iだと社外ディスク警告が鬱陶しいので、それを消すために買いました。また、チップはPCI-E3.0対応なのですが、実際に3.0でリンクしているかを確認するためにdebianを立ち上げ、lspci -vvをしてみましたが、LnkSta: Speed 8GT/sとのことなのでちゃんと3.0でリンクしているようです。
02:00.0 RAID bus controller: Hewlett-Packard Company Smart Array Gen8 Controllers (rev 01) Subsystem: Hewlett-Packard Company P420 ~~~~ Capabilities: [c0] Express (v2) Endpoint, MSI 00 ~~~ LnkCap: Port #0, Speed 8GT/s, Width x8, ASPM not supported, Exit Latency L0s unlimited, L1 <64us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 8GT/s, Width x8, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Via message DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis- ~~~
P420以降、SSD SmartPathという機能が組み込まれ、これを有効にするとディスクアクセスが以下のように変わるようです。アレイのドライブがSSDの場合、デフォルトで有効です。
- HP SSD Smart Path は、所定の要件を満たすサイズの小さい要求 (通常は任意の RAID レベルのボリュームに対するサイズの小さい読み取り要求、および RAID 0 に対するサイズの小さい書き込み要求) を処理します。
- サイズの大きい要求および大多数の書き込み要求は、通常の I/O パス経由で処理されます。
- 要求が HP SSD Smart Path 経由で処理された結果エラーとなった場合、その要求は通常の I/O パス経由で再試行されます。
- ボリュームの拡張、再構築、再構成、または RAID レベルの移行が進行中の場合は、すべての要求に通常の I/O パスが使用されます。
SmartPathについては、HPSSAのGUIから変更が出来なかったため(昔どっかから変更した記憶があるのですが見つけられず)、ssacliから変更しています。
=> ctrl slot=1 array a modify ssdsmartpath=disable =>
今回、1G-FBWCのみを搭載してバックアップキャパシタを搭載しなかったとろ、強制WBCが出来なかったため、今回はキャパシタを接続しています。
=> ctrl slot=1 modify nobatterywritecache=enable Warning: Enabling write caching on a cache module without a fully charged battery/capacitor could cause data loss in the event of power failure. Use of this feature is not recommended unless proper precautions are followed to maintain power to the controller. Continue (y/n)?y Error: This operation is not supported with the current configuration. Use the "show" command on devices to show additional details about the configuration. Reason: Not Applicable
また、SmartArrayについてはRAID5以上を作成する場合は512MB以上のキャッシュが必須のため、RAID5のWTは省略します。キャッシュの比は初期値のRead1:Write9になって、ディスクキャッシュは有効です。
LSIとはまた初期値などが違うので、一概には比較できませんが以下のモードを比較してみます。ちなみに、FW Version7くらいからJBOD機能も追加されているので、それも対象にしました。
- 1Disk-RAID0 WriteBack SmartPath Enable
- 1Disk-RAID0 WriteBack SmartPath Disable
- 1Disk-JBOD
- 4Disk-RAID0 WB SmartPath Enable
- 4Disk-RAID0 WB SmartPath Disable
- 4Disk-RAID5 WB SmartPath Enable
- 4Disk-RAID5 WB SmartPath Disable
ディスクのストライプサイズはデフォルトの256K固定です。
1Disk-RAID0 WriteThrough
何気にAHCIよりIO性能が高い…。SSD自体に256MBのDRAMが載っているので、そもそもカード自体のDRAMが不要な可能性があります。
CDMの4G、100MBリードの参考値です。ちなみにDiskcacheを無効にするとシーケンシャルでも書き込みが45MB/s程度まで落ちました。
1Disk-RAID0 WriteBack
5GBというキャッシュに乗り切らないサイズのせいか、違いがぜんぜんわからん!
WTモード時とのデータの向上率の比較をしてみる
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の対比が分からないので増分
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
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