Apricorn PCIe Drive Array

November 2, 2012
やっと仕事がひと段落しました。次の仕事の先行きがやや不透明な状態になってしまって、ちょっと不安なんですけど、とりあえずひと休みということで。

ちょっと前にFacebookのページで「ELSAが日本国内で「Fusion-io ioFX」の取り扱いを開始してた...」ということを書いたんですが、「ioFX」はこれまでFusion-ioの日本サイトにも出てなくて、海外から購入するしかなったんです。価格的にも20万くらいしましたし、しかも話題になっていた当時(2012年の初めくらい)は製品の納期が未定で予約販売だったりですっかり諦めていたわけですが、その後知人から「PCIe Drive Array」なるものを教えてもらいました。要は4台のSSDを自分で取り付けて使うボードです。まさに貧乏人のioFX...

なんか怪しさ溢れる風貌だったのですが、国内の取り扱いがASKさんだったし、製品としてはやや古いものらしく1万程度で買えたため「とりあえず試してみるか」と買いました。

...そして例によって放置(しかも半年以上)。

Apricorn - PCIe Drive Array Board with Sil3124A Controller
http://www.apricorn.com/products/pci-sata-drive-array/pcie-drive-array-with-sil3124a-controller.html

ELSA - Fusion-io ioFX
http://www.elsa-jp.co.jp/products/storage/iofx/index.html

...で、かれこれ1ヶ月ばかりまえの話なんですが、整備品のMacPro(2010)の12コア買っちゃったんです。まぁ最新の規格より2世代くらい遅れちゃってるMacProなんですけど、それでも今使ってるMacPro(2008)に比べれば速い...はずなんですが、忙しいのと面倒くさいので例によって放置してました。

仕事もひと段落したのでセッティングしようかと思ったわけですが、旧MacPro(2008 )からQuadro4000が取り外されPCIスロットに空きができたので、旧MacProにこのカードを付けてみました。

言い訳させてもらうと、Mac使ってるとハードディスクの交換とかメモリの取り付けくらいならまだしも、カードの取り付けとかケーブルつなぐとか面倒くさくなっちゃうんですよ。ある程度限定された機器で運用することが多いので、パーツ単位での交換に不慣れというか...じゃあこんなもの買うなって話になるんですけどね。

外観
SSD取り付けてみるとこんな感じ...ウーン、野暮ったい...見えないところに取り付けられるからいいんだけど。

macpciraidarray1.jpg
使ったSSDは旧MacProでキャッシュやメディア読み出し用に使用していた古いOCZのものを流用。ただ使用したSSDはデータを圧縮して転送する方式らしく、単体で使用すると周期的に転送速度がガクンと落ちてしまいます。普通に使ってる分には気づかないのですが、編集用途ではフレームドロップに注意が必要。これで合計960GBになります。最近のSSDならもう少し容量スピードともに増えると思うんですけど、まぁとりあえずはこれで...

カードと各ディスクの接続はSATA2という規格で最新のSATA3より遅いらしく、最新のSSDだと上限に達してしまうらしいです(MacProもSATA2だけど最新のMac miniだとSATA3らしい...んんんーー)。カード全体の速度はこの制限にひっかからないのですが、速いディスクを使っても必ずしもその分速くなるというわけでもなさそう。このカードの後継機種に期待したいところですが...Apricornのサイトでは「PCIe Drive Array」は販売終了しているのに後継機種が発表されてないので、もうこのラインナップは出ないのかもしれません。

インストール
ドライバをインストールしてカードを取り付けるだけなのですが、Macの場合ボードのコントローラでRAIDにすることができず、MacOSのディスクユーティリティのRAID設定を使うみたいです。このコントローラ用のドライバを別途入手してインストールすればRAIDを使えるといった情報もあるみたいなんですが、色々面倒なことが起こるといやなので試してません。WindowsとLinux用にはRAID対応ドライバがついてきます。

ドライバは最新のものをダウンロードして使いました。ダウンロード先はMacPro専用「Mac Array 」として別製品になってますが使えます。

Apricorn - Mac Array Support
http://www.apricorn.com/product-support/high-performance-storage/pcie-board-with-4-mlc-128gb-wd-ssds.html

「PCIe Drive Array」自体もMac対応を謳ってるので、この「Mac Array」との違いはSSDが付いているか付いていないかいう違いだけのような気がします。ちなみに「PCIe Drive Array」についてる把っ手みたいなものはMacにつけるときには外さないといけません。

テスト
MacOSXのディスクユーティリティでストライピング設定してXBenchのディスクベンチマークすると...

Results 522.09
System Info
Xbench Version 1.3
System Version 10.6.8 (10K549)
Physical RAM 32768 MB
Model MacPro3,1
Drive Type RAID
Disk Test 522.09
Sequential 310.58
Uncached Write 996.84 612.05 MB/sec [4K blocks]
Uncached Write 892.16 504.78 MB/sec [256K blocks]
Uncached Read 102.51 30.00 MB/sec [4K blocks]
Uncached Read 999.99 502.59 MB/sec [256K blocks]
Random 1636.93
Uncached Write 942.06 99.73 MB/sec [4K blocks]
Uncached Write 1574.01 503.90 MB/sec [256K blocks]
Uncached Read 2974.21 21.08 MB/sec [4K blocks]
Uncached Read 2435.75 451.97 MB/sec [256K blocks]

以前の「MacProのSSD交換」の時よりは速くなってるっぽいです(本記事最後の「関連記事」の項目参照)。一部数値下がってるものもありますが、これがどういう局面で影響するのかはイマイチわからんです。

AJA System Testがこんな感じ...(あれ?前回の内蔵SSDよりWriteの数値が下がってるような...?!...ま、いいか)

macpciraidarray3.png どうもAJA System Testは数値が高めに出るらしいので、最近映像業界的によく使われているBlackmagic Disk Speed Testでも計ってみました。Blackmagic Disk Speed Testで速度を計測するとこんな感じ...

macpciraidarray2.png
「715MB/s(Read)、Write: 643MB/s(Write)」貧乏人のioFXとしては悪くない感じです。ちなみにioFXの仕様は「1.4GB/s(Read)、700MB/s(Write)」。まぁ比べちゃいけないんですが、コスト的には1/4以下ですから。ただし容量だけはioFXの倍ありますけど。

このディスクはRAID0に設定したので冗長性はありません。あくまでメディアの読み込み用とキャッシュ用のストレージです。プロジェクト自体やフッテージのオリジナルはサーバー上において、キャッシュやプロキシなどをここで読み書きするという設定です。なので...壊れても交換すればOKという運用ポリシー...なので....高速といえどもあまり高価で代替ディスクの入手に時間がかかるものは使用しません。理想を言えば壊れたらヨド○シあたりで買えちゃうようなものがいいかと。

使ってみる
Nukeはキャッシュ自体が32bit floatのせいかストレージの速度があまり効果的に反映されないので有名ですが、Agressive ChachingやNuke7のRAMプレビュー使わなくても割と軽快にプレビューできるようになります。

FCP7はMac miniで使用しているPlextorのSSDでProRes 4444 10bit 29.97fpsの再生時にドロップフレーム出てませんので1ストリームなら単発のSSDでも大丈夫だと思います。FCPXは使い込んでないのでわかりませんけど、4Kに対応していたりfloat演算に対応していたりするので、その辺使い込んでいくとちょっと足りなくなるかもしれません。

Smokeは基本的にStone由来のストレージ依存なので、ストレージ性能がそのまま反映されるのですが、Smoke 2013はインターメディアにProRes対応したみたいなのでProResだとそこまで速くなくても大丈夫な気がします。従来のDPX使うことも可能だし色々考えると個人的にはDPX推奨したいです。FCPの代わりにProResでSmoke使うなら、単発のSSDでも十分いけると思います。
まとめ
元々内蔵のSSDでRAID使ってたので、劇的に速くなった気がしないのが残念ですが、それでも単独のSSDやHDDのマシンをたまに使うと重くて仕方ないので効果は確実にあると思います。遅いネットワークに接続されてたりSANストレージへの接続を制限されているマシンならかなり改善するんじゃないでしょうか。

今回は2008年のMacProを増強するために使ったのですがそういう意味では、かなり成果をあげてます。ただ内蔵SSDのRAIDと比較して数値的には大きな差がないので、わざわざこのカードを導入することを他人にお薦めするかは微妙。そもそもカード自体古めでメーカーも出荷をやめてしまってますし、最新のSSDの性能が活かしきれない可能性があるので...

個人的にはほとんど費用をかけずにMacPro内にこれだけの速度のストレージを内蔵できるのは気に入りました。貧乏人のioFXとしてしばらく使ってみようかと。もっと早く試しておけばよかったです。まぁあんまり懲りてないんですけど。

今回使用したSSDはOCZのAgility3というもので、1世代前の製品です。先にも書いたようにこのSSDはデータを圧縮してメモリに書き込むことで「ランダムアクセス」を大幅に改善したらしいのですが...映像の場合はシーケンシャルが大事で、あまり向いてない製品なのかもしれません。いずれにせよ最近のSSDを使えばも少しノビシロはあるかも。あとMacOSXのRAID機能使うなら、このカード2つ載せて8台って構成も可能だよな...と思ったり。私としてはこれくらいで十分(というかそれだけのためにまたMacProの蓋開けてカード引っ張りだすのが面倒)なので試す予定はございません。


[関連記事]
MacProのSSD交換
Nukeのディスクキャッシュ
その後SSDの速度がどう変化したか...
Sonnet Tempo SSD Pro