真面目に48TBファイルサーバを構築してみる(4) SATA3I10-PCIE(SATA10ポート)の実力は?

今回の48TBファイルサーバを構築するときに最重要となるパーツであるSATAインタフェイスカードです。何回も紹介しますが、こちらです。

玄人志向 キワモノシリーズ SATA3 10ポート増設インターフェースボード SATA3I10-PCIE

キワモノシリーズと書いてあるとおり、かなり使い方が難しいパーツだと思います。私も今回のような用途でもない限り使わないようなものですし、使ってみた感想もその設定についてもあまり書かれていないので今回調べてみてわかったことも書いていきたいと思います。

 

SATA3I10-PCIEの簡単な仕様紹介

10PortのSATAカードです。もちろん、キワモノシリーズだけあって取り出し方が特殊で、SATA2PortのASM1062からSATAを取り出し、各ポートをポートマルチプライヤのチップであるJMB575で5Portずつ分割することで10Port確保しています。ネットワークで例えるならルータが外部1Port内部2Portで内部ポートをハブで10Portに分割しているようなものです。そのため、内部の接続方法によっては速度を全く確保できない状態となります。接続はPCI Express x2なので、そのくらいの速度と思ってください。

ちなみに2014年の発売ですが、今でも使えます。8TBのHDDでも扱えるようですので、複数台のHDDを扱うにはかなりよい製品のようです。ほかの製品だと2Portばっかりでマザーボード上のSATA端子数を気にしたりするか、かなり値が張るポート数が多いものを探す必要があったりしますので。

ただし、あまりに新しいマザーボードだとUEFIの関係か、このボードに接続しているHDDなどからOSが起動できない(というか認識の画面が出てこない)になっています。さらに、今回のような用途で使うにはちょっと困った特性があるようで。

 

SATAのポート番号について

この特性から考えると、複数台のHDDを接続する場合はできる限り同じ数のHDDがJMB575の下につながるように構成しなければ速度が大幅に低下することに注意します。そして、RAIDなどを組む場合はどのHDDが何番に当たっているか確実にわかるようにして故障時にどのHDDが交換対象かを素早く判定できなければなりません。今回問題になったのは後者について。

なんとこのカード。ポートがPCの内部的に認識する順番について、その番号がコネクタの配置順になっていない、というなかなか困ったカードなのです。組み立てる前に接続テストをして8TBが扱えるかどうかを調べていたときにわかりました。しかもその説明が説明書(1枚の紙です)に書いてあるような書いてないような、まさにキワモノシリーズらしい物体でした。

説明書に書いてあるのは「BIOS Boot Sequence」という項目で書いてあり、「On BIOS」と「On PCB」で示されている、というでした。どういう意味かというと、

  • On BIOS:BIOS上の認識番号のこと。これがポート番号扱いになる。AとBが入っているが、16進数だと思えばOK。マザーボード上にATA端子がある場合はその端子番号の後から来る。
  • On PCB:基板の実装順番のこと。基板の手前(PCIのブラケットに近い側)の上側(基板から離れている側)が0、下側が1、…のような順番になる。
  • 例えば「On BIOSが4、On PCBが0」ならば、基板の手前上側の端子はBIOS上ではPort4という状態

となります。実装順番とBIOS上の番号がずれており、PC上でのHDDの順番と配線上でのHDDの順番が異なるため、ちゃんとタグをつけて管理する必要が出てきます。さらに言うならBIOS上の認識番号の順番はポートマルチプライヤの状態とは関係がない部分が1箇所あるため、転送試験などをするときに注意がいります。基板の配線を見た上で上記の指示を確認すると「Port0とPort1の2つは基板の実装順番通りではなく、さらにはそれぞれを別のチップが担当している」がそれになります。それ以外であれば私の持っているカードでは順番通りなのですが…

 

転送速度について

一応ファイルサーバを組み立てている途中で一度転送試験をやって速度をチェックしています。調べるとこんな感じでした。なお、ベンチマークについてはLinuxでもCrystalDiskMarkぽいディスクベンチマークしたいを参考にさせていただきました。この場を借りて御礼申し上げます。

単独転送(1台) 異なるポートマルチプライヤチップへのアクセス(同時に1台ずつ) 同じポートマルチプライヤチップへのアクセス(同時に1台ずつ)
Seq-Read 194.216
Seq-Write 186.679
Rand-Read-512K 58.859
Rand-Write-512K 107.249
Rand-Read-4K 0.61
Rand-Write-4K 1.333
Rand-Read-4K-QD32 1.898
Rand-Write-4K-QD32 1.411
(1台目)
Seq-Read 198.068
Seq-Write 191.171
Rand-Read-512K 59.054
Rand-Write-512K 106.098
Rand-Read-4K 0.609
Rand-Write-4K 1.39
Rand-Read-4K-QD32 1.891
Rand-Write-4K-QD32 1.406
 
(2台目)
Seq-Read 194.324
Seq-Write 180.571
Rand-Read-512K 57.667
Rand-Write-512K 105.916
Rand-Read-4K 0.586
Rand-Write-4K 1.279
Rand-Read-4K-QD32 1.829
Rand-Write-4K-QD32 1.314
(1台目)
Seq-Read 116.702
Seq-Write 166.018
Rand-Read-512K 30.742
Rand-Write-512K 97.135
Rand-Read-4K 0.3
Rand-Write-4K 1.235
Rand-Read-4K-QD32 0.607
Rand-Write-4K-QD32 1.261
 
(2台目)
Seq-Read 183.992
Seq-Write 165.782
Rand-Read-512K 30.927
Rand-Write-512K 97.279
Rand-Read-4K 0.302
Rand-Write-4K 1.246
Rand-Read-4K-QD32 0.574
Rand-Write-4K-QD32 1.247

1GBでのベンチマークとなります。なお、「同時に」と書いてあるのは別々のターミナルから入ってベンチマークを実行する、という意味です。

上の表から素の性能では「同じポートマルチプライヤチップへのアクセスを行うと明らかに速度が低下する」という現象が見て取れまるとおもいます。まあ、2台程度では影響は少ないかもしれませんが、台数が増えてくると無視できなくなるでしょう。あと、ここでは「インタフェースについているHDD間での転送試験」はやっていません。今回のNASサーバでそのような動作はほとんどしないので検証対象にはしませんでした。

転送速度に絡む問題としては「PCI Express x2」の転送限界による速度の制限があります。こちらも測定はしていますので紹介。ZFSを使って8台でRAID0を組むという速度の限界に挑戦してみた試験だとこうなりました。

単独転送(1台、再掲) ZFSによるRAID0での転送
Seq-Read 194.216
Seq-Write 186.679
Rand-Read-512K 58.859
Rand-Write-512K 107.249
Rand-Read-4K 0.61
Rand-Write-4K 1.333
Rand-Read-4K-QD32 1.898
Rand-Write-4K-QD32 1.411
Seq-Read 309.542
Seq-Write 593.169
Rand-Read-512K 44.064
Rand-Write-512K 585.633
Rand-Read-4K 0.707
Rand-Write-4K 17.824
Rand-Read-4K-QD32 0.729
Rand-Write-4K-QD32 17.046

なおZFSは転送時にメモリキャッシュを使うように設定されているため、あまりに小さいサイズで転送するとメモリキャッシュの転送速度が見られる、という現象が表れますので注意します。私も結果を見てびっくりしました。そのため、検証では4GBのファイルにて転送試験をやっています。

で、見た感じだとだいたい600MB/sのレベルでの転送が上限で、PCI Express x2 は片方向で500MB/sが限界らしいので、メモリキャッシュなども含めて考えると妥当なラインかな、という感想でした。このあたりは気になってみたからテストをやってみてこういう結果だった、というものですので参考にする程度にしてください。

 

結論、なかなか面白いカード

自作PCレベルで10Portを使う人がどのくらいいるのか気にならなくはないです。私のようにNASを大量のHDDで組み立てる以外に使い道があまりなさそうですし。その用途であれば「設定や使い方を誤らなければ強い味方になってくれそう」というところですね。

 

次回はサーバ構築編

いよいよサーバを構築していきます。いつも安定したサーバのOSはCentOS、テスト用にFedoraを使うのですが、今回はとある理由から別のディストリビューションを使うことになりました。ちょっと使い勝手が違いますが、頑張って設定していきます。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この記事のトラックバック用URL