レビューメディア「ジグソー」

SSD750 NVMe RAIDブートの正解はこれだぁ

 

今回の課題は、なんと!超速NVMeのSSD 750 2枚を使った夢の様なRAID!単純に今までのSSDの10倍の速度。もうめまいがしそうだ。

 

当然ハードウェアRAIDだと思っていたら、どうも普通のマザーボードで使えるのはフェイク「なんちゃって」RAIDと言って、それよりOSで組むソフトウェアRAIDの方が速いらしい(委員ちょさんのSSD 750レビュー)。

 

NVMeブートに関する情報がどこにもなくて、zigsowからまたとんでもない難題を宿題にもらったと思っていたら、どうやらZ170チップセットで、かつ2本以上のPCIe 3.0 x4ソケットがあればNVMe RAIDでブート可能”らしい”ということが分かって来た。な〜んだ、出来んじゃんとか思ってたら、ブートする以外にNVMe RAIDでブートするメリットは無いことも判明した。

 

SSD 750は単体でももちろんすごいが、RAID0にすると”一線を超える”。人間の意識が感じる遅延時間を切る瞬間が増えるからだ。

 

体感速度というのは、例えば10分が5分になっても人間には分かり難い。それは目をつぶって1分とか2分とか正確に測れと言われてもむずかしいことを考えれば分かる。数分とか数時間とか数日掛かる処理なら、バッチに投げて待てばよい。

 

これが、10秒から1秒に短縮するという状況になると違う。数秒、数十秒単位でファイルI/Oを繰り返すような作業が、SSD 750のすごさを一番感じることが出来る。それはもう笑いが出てくるような速さだ。

 

 

追記


 

12/6 SSD 750の並列アクセス性能とソフト側の対応について考察(セクションB1.2末尾)

12/5 ASUS MAXIMUS VIII GENE, GIGABYTE GA-Z170MX-Gaming 5, Supermicro 某C236 microATX、メーカーに問い合わせたところ、いずれもPCIe接続のNVMe SSDのRAIDはサポートしないとの回答(セクションC3)。

11/21 現在NVMe RAIDを組めそうなM.2ソケットのマザーボード対応ついて追記(セクションC2)

11/20 IntelのOEM向けの技術資料にPCIe SSDを認識させるための仕様に関する記述を発見(セクションC1)

11/7 BIOSのRSTサブメニューでSSD 750は物理ドライブとして認識されない(セクションC3)

 

 

 

SSD 750には4個のLEDがあって、オレンジはデータアクセスに反応して1秒間に2回ブリンクする。緑色はヘルシーという意味。他に赤と黄色のLEDがある。

 

 

もくじ


 

A. BIOSによるPCIe・NVMe SSDドライブのRAIDサポートについて

 

1.NVMeとは

2.NVMe RAIDの2つのパターン

3.現行microATXマザーでNVMe RAIDとグラボの組み合わせを悩んでみる

4.BIOSのNVMe対応状況

5.今回の検証システム

 

B. ベンチマーク

 

 1. Windows 8.1 64bitのソフトウェアRAID
    1.1 ドライバのインストールとRAID0の構築
    1.2 IOMeterによるベンチマーク
    1.3 ATTO Disk Benchmark
    1.4 Crystal Disk Mark 5.0.2を使ってOCの影響を検証
    1.5 AS SSD Benchmark
    1.6 MediaEspresso 6.7によるQSV変換
    1.7 Handbreak 0.10.2によるQSVとH.265変換

    1.8 Adobe Photoshopでの使用感
2.Ubuntu15.10でソフトウェアRAID
    2.1 LinuxにおけるソフトウェアRAIDの構築
    2.2 fioでベンチマーク
    2.3 データ解析で速さを体感する

 

C. 現時点で実現可能なNVMe RAIDについて

 

1.PCIe/SATAリマッピング

  1.1 Intel Rapid Storage Technology OEMガイド

  1.2 Z170データシート

2.M.2でRAID

  2.1 ASUSのZ170A (ATX) とMAXIMUS VIII GENE (microATX)

  2.2 MSI Z170A XPOWER GAMING TITANIUM EDITION

  2.3 ASrock Z170 OC Formula

3.PCIeでRAID

4.NVMe BIOS RAIDの未来

 

※超難問、NVMe RAIDブートの正解はこれだあぁぁぁ・・・

※そこに存在することすら意識から消し去りつつある、一線を超えた性能

 

 


 

更新: 2015/12/06

A. BIOSによるPCIe・NVMe SSDドライブのRAIDサポートについて

1.NVMeとは

 

Intel SSD 750は内部接続がNVMe(Non-volatile memory不揮発性メモリ)Expressという規格になっていて、これまでのAHCI規格に比べて(1)コマンドキューの数とキュー1個あたりに入る コマンドの数が爆発的に増えた、(2)マルチタスクに対応する、という特徴がある。これは後でベンチマークに関係してくる(検証編)。

 

 

NVMe はPCIe 3.0 x4バスで直接CPUに接続することができ(中段)、最大転送速度3,000 MB/sと、チップセットのAHCIインターフェースを介するSATAドライブ(上段)の最大速度600 MB/sと比べて5倍のパフォーマンスを発揮する。この場合、OSの側で既にNVMeドライバの対応が進んでいるので(後述セクション5)、ハードウェア を気にせずNVMeドライブを使うことが出来る。

 

ただし、CPUに直結したNVMeドライブはチップセットの機能を使って Fake RAID (BIOS RAID)を組むことが出来ないため、ブートドライブとしてRAIDすることは出来ない。別のドライブで起動した後、OSの機能でソフトウェアRAIDを 組むことになる。しかし、実はこれが一番高速な解になる

 

NVMe RAIDでブートするためには、チップセットを介することが必須になる。しかも、PCIe/SATAリマッピング機能を持つチップセット(現行では Z170のみ)でなければならない(後述セクション4)。PCIe/SATAリマッピングとは「チップセットから見てNVMeドライブがSATAドライブ のように見える」ようにすることと解釈している。それによってNVMeに対してチップセットのRAID機能が使えるようになる、と思われる。恐らく Z170チップセットの技術仕様書を読めばどこかに書いてあるんだろうけど、そこまで見てない。

 

BIOSの機能を使ってNVMe RAIDを組むメリットは、

 

 「ソフトウエアRAIDはソフトウエアが起動しないとRAID機能を使えませんが,Fake RAIDでは(1)BIOSが起動した時点からRAID機能が使える,(2)BIOS側の設定だけでRAIDが使えてしまう,という2つの利点があります。」(IT Pro

 

ということらしい。

 

た だし、デメリットも当然あって、速度が犠牲になる。CPUに直結するのと比べて、間にチップセットが入る(リマッピング)ことのオーバーヘッドと、チップ セット−CPU間の接続DMI 3.0でもボトルネックが発生する。それから、Z97以前のチップセットはそもそも内部バスがPCIe 2.0(1レーン当たり片方向500MB/s)なのでPCIe 3.0(同1GB/s)の半分の速度しか出ない。

 

 

2.NVMe RAIDの2つのパターン

 

以上を踏まえると、SSD 750でRAIDを組むには2つのパターンが考えられる。

 

2.1 高速解

 

CPUに直結するPCIe 3.0 (x4以上)ソケット2本を使って、ソフトウェアRAIDを組む。チップセットは問わない。最大のメリットは速度。また、ドライブ単位ではなくパーティション単位でRAIDが組める。最大のデメリットは、16本しかないCPUのPCIeレーンの中8レーンを消費してしまうため、グラボと競合すること。また、CPUに少し負荷が掛かる(後に検証報告)。

 

一 部のワークステーションクラスのマザー(ASUSのZ170-WSとかEVGAのZ170 Classified)はブリッジチップ(PLX8747)を搭載してCPU接続するPCIeのレーンを16以上持っているが、これは例外的。最新の SkylakeでもCPUのPCIeレーン数は16本なので、ゲーミング向けのハイエンドマザーでもSSD 750とグラボを共存させることは出来ない。これは、チップセット経由のPCIeレーン数が増えたX99でもCPU自体のPCIeレーン数は変わらないの で同じ・・・いやいや、勘違いしてた。Haswell-EはCPUから直接28/40レーンのPCIE 3.0が接続する。みんなが使う訳だ。

 

 

16本のPCIeレーンを、x16, x8/x8, x8/x4/x4に分割して2本または3本のPCIeソケットを搭載するマザーが多い(PCIeレーンが1本しか載せられないITXを除く)。

 

x8/x8の2本に分割するマザーだと、これにSSD 750を使うと、グラボはチップセット接続のPCIeに挿すしかない(PCIe x4まで)。CPU内蔵グラフィックスでいいと言う人なら、気にする必要はない。

 

x8/x4/x4の3本に分割するマザーでは、x4の2本にSSD 750を使って、グラボをx8に挿すことが出来る。実際は、恐らく現行のグラボの多くはx8とx16でパフォーマンスの違いはないと思われるので、このパターン はあり得る(現行マザーではASRock Z170 Extreme7+)。

 

 

2.2 ブート解

 

PCHに接続するPCIe 3.0 x4ソケット2本(または、1本はM.2ソケット経由)を使ってZ170チップセットでFake RAID (BIOS RAID)を組んでブートする(実証はされていない)。

 

た だし、ブートできること以外にほとんどメリットは無い。まず、ブート時間の短縮は望めない。RAIDそのものに関しても、ソフトウェアRAIDとハード ウェアRAIDの悪い所だけを持っていると言われる。また、BIOS RAIDを組むためにはチップセット接続のPCIe x4以上のソケットが2本必要になるが、実はATXでもx4を2本以上搭載しているマザーは少ない(代りにPCIe 3.0 x1ソケットとSATAに割り振られる)。って言うか、若しかすると一つも無い?

 

メリットとしては、NVMe RAIDを組みながら高速グラボやSLIが組めるということで、ゲーマーとしては見逃せない選択肢かも知れない。チップセット経由のブートRAIDは、CPUとチップセット間のDMI 3.0帯域であるPCIe 3.0 x4すなわち最大で片方向4GB/s(他のすべてのI/Oと合わせて)までとなるので、単体よりはもちろん速いが頭打ちになる。

 

3.現行microATXマザーでNVMe RAIDとグラボの組み合わせを悩んでみる

 

現 行microATXマザー(ATXでもCPU接続のソケット数は同じ)でNVMe RAIDを取るか、グラボを取るか、悩んでみた。上を見るとキリがないので、ワークステーションは考えない。また、Haswell-EではCPU側の PCIeレーンが28/40レーンあるためグラボとNVMe RAIDが自由に組めるというメリットはあるけど、 現行唯一PCIe/SATAリマッピング機能を搭載するZ170を選択する。Z170なら、AIC版SSDに拘らなくてもSFF版SSDとの組み合わせで ブートRAIDが組める可能性が高い。

 

※11月現在、ASRock Z170M OC Formulaは何故かネット上から姿を消している。

 

高速RAIDだけなら、基本的にどんなマザーでも組める。高速RAIDと高速グラフィックスが両立するのは、この中では唯一Z170X-Gaming G1のみ。CPU直結にSSD 750を挿して(x8 x2)、PCH接続のx16ソケットにグラボを挿す。ただし、結構お高い。

 

他のマザーでは、高速グラフィックスを優先した場合、SSD 750は単体で使うか、Fake RAID (BIOS RAID)するかになる。MAXIMUS VIII GENEやZ170MX-Gaming 5が単体でSSD 750をブートドライブにするのに向いている。一方、Z170M OC FormulaはPCH接続のPCIeソケット2本でSSD 750のBIOS RAIDを組みながら、CPU接続のPCIeソケットでSLIにすることも可能だ。

 

 

4.BIOSのNVMe対応状況

 

単体でのNVMeブートはZ97以降ならどれでもOK。Z87, Z77, Z79など古い世代への対応もメーカーで進められているようだ。古いマザボのBIOSにX99とかのBIOSから抜いたNVMeドライバを仕込んでブートしてるヲタクもいる。

 

IntelのDeveloper Zoneに質問を投げたところ、Z170に対応する新しいRapid Storage TechnologyがNVMe RAIDをサポートしているらしいというコメントをもらった(実証は未確認)。

 

Intel Developer Zone(ログインが必要)

Hello welcomesorrow,

There is no RAID support for NVMe drives with Z97 and X99 chipsets, only OS (Software) RAID. These chipsets do not have the PCIe/SATA remapping technology required for iRST to support NVMe devices.

Some systems using the Intel® Z170 Chipset and Intel® Rapid Storage Technology are capable of using RAID with PCIe* NVMe* SSDs. We would recommend you to check with the Computer Manufacturer Support before purchasing to confirm if a specific system supports this. Some Z170 systems may not have the device mapping and BIOS features required to create a bootable RAID volume.

 

 

以下、Z97以降の各社BIOSのNVMe対応バージョンのリスト。

 

2015/1/26

 

2015/4/3

 

2015/4/17

 

ASRockはアナウンスは無いが個々のドライバで対応。

インテルは・・・マザボ作るのやめたのかな。

 

 

 

5.今回の検証システム

 

それで、今回はどうするか考えた結果、K番のSkylakeが欲しいのと(OCしてソフト ウェアRAIDへのインパクトを探りたい)、基本的に性能が出るソフトウェアRAIDで運用したいので(ゲームはしない)、Z170のmicroATXで は一番安いZ170MX-Gaming 5を選択した。CPUはCore i5-6600K。メモリは、やはりNVMe RAIDにマッチさせるためDDR4-3000にした。Z170MX-Gaming 5の対応リストの中にCorsair Vengeneceがあったので、4GB x2枚をゲット。

 

 

Skylake i5 6600K:4コア4スレッド、定格ベース3.5GHz、ターボブースト3.9GHz、TDP 91W

PCIEX16とPCIEX8にSSD 750、グラボなし。メモリはCorsairのVengence DDR4-3000 (CMK8GX4M2B3000C15R )4GB2枚組(GIGABYTEのサポートリストで確認済み)

 

 

 

更新: 2015/12/06

B. ベンチマーク

1. Windows 8.1 64bitのソフトウェアRAID

 

1.1 ドライバのインストールとRAID0の構築

 

SSD 750を使うには

 

・UEFI BIOSの対応(2.3.1以降)

・ファームウェアのアップデート

・Intel Rapid Storege Technology (IRST)ドライバ

・NVMeドライバ

 

が必要になる。BIOSの対応は上のセクション5のように進んでいる。IRSTドライバはWindows 8.1 64 bitでは始めから組み込まれているので、改めてインスコする必要はないが、IRSTインストーラで、ラピッドストレージテクノロジのGUIツールがイン スコされる。NVMeドライバは、WindowsにMicrosoft製ドライバが入っているが、Intel製ドライバじゃないと(特に単体使用で)速度 が出ないことが知られている。

 

※現在、IntelサイトからDL出来る最新のドライバのバージョンは、6月25日付でRAID OROM & UEFI(BIOS側)が14.5.0.2241、ドライバとGUI(OS側)が14.5.0.1081になっている(Intel RSTドライバ・リリースノート)。他のDLサイトでは、9月25日付けのそれぞれ14.7.0.2341と14.7.0.1000というバージョンが見つかる。参考まで(12/6)。

 

まず、ファームウェアを更新するために、Intel SSD Toolboxをインストールする。

 

 

ファームウェアをアップデートする前は、BIOSでSSD 750が見えていないが

 

ファームウェアをアップデートした後は、PeripharalsにSSD 750が表示されるようになる。

 

この状態で、ラピッド・ストレージ・テクノロジのGUIからはSSD 750は見えていない。フーム。恐らく、見えてない理由はチップセット経由じゃないからかな。CPUダイレクトだとRAIDにならないから、RSTとは関係ないってことか。

 

 

一方、コンパネのコンピュータの管理 > 記憶域 > ディスクの管理で見ると

 

ちゃんと見えてる。どうやら、NVMeドライバはインスコされてるということらしい。ところが、デバイスマネージャでSSD 750を探すとディスクドライブにNVMeドライブが2つ表示されてるから、ドライバを確認しようと思ってみてみると、何故かMicrosoft製、しか も2006年とか古すぎる。なんかおかしい。

 

2−3日調べまわった挙句、IntelのForumで見つけた答えは、下の方にある記憶域コントローラ(英語だとStorage Controller)を見よ、と。実際、ドライバを表示させるとIntel製の1.3.0.1007になってる。

 

素人の解釈では、Windowsから見えるデバイスとしてはSSD 750は2006年のドライバで動くSATAドライブ扱いになっていて、”記憶域コントローラ”のNVMeドライバがWindowsのSATA信号を NVMe信号に変換する、って感じかな?う~ん、複雑すぎてついてけない。orz

 

 

ま、ドライバはインスコされてるということで、よかったよかった。で、これをフォーマットするとベーシックディスクになる。

 

このままではRAIDに出来ないので、右クリックでダイナミックディスクに変換。

 

SSD 750の上で右クリック > 新しいストライプボリュームを選択し、ウィザードを開始。後は言われるがままに。

 

これでストライプボリュームの完成。

 

 

1.2 IOMeterによるベンチマーク

 

<IOMeterによる評価について>

 

AHCI・ SATA規格は1回につき最大32個のコマンドが 入るキューを1つ発行することが出来た。これがNMVeになると、最大65,536(2の16乗)個のコマンドが入るキューを65,536個発行すること が出来る。つまり1.3億倍。なんだそりゃあという訳で、Crystal Disk Mark, AS SSD, ATTO, Anvilのどれもこんな数のマルチプルキューを扱うようには作られてないため、SSD 750の最大性能を評価することが出来ない。そこで、本来はIntelが開発したIOMeterでベンチマークすることが望ましい。

 

Intel Solid-State Drive 750 Series Evaluation Guide

 

で、 このガイドには、SSD 750の下準備(pre-conditioning)からIOMeterの設定方法まで手取り足取り解説されているので、書いてある通りにやれば出来る、 ハズ。(ガイドの評価システムは、ASUS X99-Delux, i7-5960X, 32GB DDR4, GTX 98/970, Windows 8.1 64 bit)

 

因みに、Windows版のIOMeterにはGUIツールと Dynamo.exeという実行ファイルが含まれているが、Dynamoの方はLinux版もあって、別のLinuxマシンにDyanmoをインスコして おくとLAN経由でWindowsのGUIツールからLinuxをベンチマークすることが出来る。

 

それでは、128KBのシーケンシャルWriteから。

 

TopologyでWorker1を選んで、Disk TargetタブでNVMeドライブを選択。

 

128KBのシーケンシャルWriteを設定。

 

Access Specificationsでワークロードプロファイルを保存。

 

Test Setupで20分に設定。

 

1秒毎に更新設定。

 

メニューバーの緑のフラッグをクリックしてスタート。リアルタイムで測定をモニタすることが出来る。おぉ、シーケンシャルWriteが2000MB/s超えてる!400GBドライブの公称スペックは900MB/sだから問題なさそうだ。

 

次は128KBのシーケンシャルRead。おおっっ、こっちも4700MB/sオーバー。公称スペック2200の倍を超えてる。

 

ランダムもやった。こちらはWorker1から4まで(つまり4スレッド)を指定する。Crystal Disk Markでは1コアしか動かさない(下記セクション1.4)。4K Readは1700MiB/s。

4K Writeは1697 MiB/s。

結果をスプレッドシートでも確認する。

 

シーケンシャルWrite: 1847 MiB/s

シーケンシャルRead: 4461 MiB/s

ランダムWrite: 427,244 IOPS

ランダムRead: 435,386 IOPS

 

(ここから追記)

 

IOMeterガイドの5ページ(Overview)にNVMeの特徴が良くまとめられていると思う。キュー数、キュー当たりのコマンド数、CPUに直結するPCIe接続ならではの低レイテンシ(シーケンシャル20μs)。

 

これらの特性を最大限に発揮するにはソフトの側でもそれを明確に意識したデザインが必要になるはずで、例えばゲームデータのファイルを細かく分散するとか、ビデオ変換を超並列化するとか、ファイルI/Oに対するパラダイムシフトが求められるのではないかと思う。これまでのHDDやそれに準じたI/O規格を採用して来たSSDではパフォーマンスを低下させるような構成が、逆にNVMeでは本来の性能を発揮させるために必須になる可能性がある。そういう意味で、SSD 750の本当の性能がどこまで伸びるかはベンチマークするソフトのデザイン次第と言える。PCIe 3.0 x4の帯域限界に迫るには、まだまだこれから。

 

 

1.3 ATTO Disk Benchmark

 

i5-6600KとDDR4-3000は定格動作で、RAID0のATTOベンチマーク結果は、

 

・シーケンシャルRead:4,717.553 MB/s

・シーケンシャルWrite:2,144.883 MB/s

 

シーケンシャルはスペックの2倍には届かないけど、いい線行ってる。IOMeterとほぼ一致。

 

 

1.4 Crystal Disk Mark 5.0.2を使ってOCの影響を検証

 

お手軽にベンチマークできるCDMでCPUのOCの影響を見てみる。

 

まず定格動作

 

ターボブーストを4.6GHzに上げてみる。

 

ほとんど変わらないけど、ランダムRead/Writeが少し上がっている。

 

試しにCPU使用率を見てみると、ReadではSeqQ32T1, 4K Q32T1, Seq, 4Kの順に

 

Writeでは

 

なんと CDMは1スレッドしか使ってなくて、しかもSeqQ32T1はReadもWriteもCPU使用率が100%になってしまっている。だからCPUをOCすると、SeqQ32T1だけ値が少し改善する。

 

因みにソフトウェアRAIDではないSSDシングルドライブ(Plextor)でCDMを走らせると、Readでは

 

Writeでは

 

こちらはかろうじて4KQ32T1でもCPU使用率が100%になっていない。SSD 750とPlextorを比べると、ソフトウェアRAIDを走らせることでシングルコアのCPUリソースの約30%が食われていることが分かる。つまり、 CPUが100%で動いてるようなアプリではソフトウェアRAIDのパフォーマンスが影響を受ける可能性がある。

 

 

1.5 AS SSD Benchmark

 

IOPSを計算してくれるベンチマーク。

 

MB/s表示では、IOMeterやCDMよりやや低い数値が表示される。

 

IOPSでは、SSD 750の公称スペック、ランダムRead 430,000IOPSとランダムWrite 230,000IOPSをやや上回る数値になった。

 

 

1.6 MediaEspresso 6.7によるQSV変換

 

1世代前のソフトになるけどQSVに対応している。12.7GB(1時間48分)のtsファイルを、Plextor PX-256M3PシングルドライブまたはSSD 750 RAID0に置いて、出力をそれぞれ元のドライブにしてiPhoneプロトコルで変換する。設定でハードウェア・エンコード及びデコード(QSV)を有効 にしておく。

 

MediaEspressoは、ソースファイルを指定した時に一度全体を読み込んで解析するので、そこの時間が掛かる。それからスタートボタンを押して改めて変換をスタートする。Plextor SSDとIntel SSD 750で、結果は

 

Plextor:読み込み3分21秒、変換10分25秒

Intel:読み込み2分18秒、変換10分30秒

 

読み込みの時間は、ファイルI/OとCPUによる解析の両方が含まれるので、シーケンシャルReadの本来の差ほどではないが、SSD 750の方が1分ほど速くなっている。一方、変換に要する時間はほぼ同じ、逆にIntelの方が数秒だけ余計に掛かっているかもしれない。ソフトウェア RAIDの負荷を反映している可能性がある。

 

つまり、ビデオ変換に掛かる時間は短縮されないが、ファイルを読み込む時間が201秒から138秒と約2/3に短くなるので、作業効率は確実に上がる。

 

 

1.7 Handbreak 0.10.2によるQSVとH.265変換

 

HandbreakもQSVに対応しているので同じtsファイルを使ってベンチマークする。Plextorでは

 

Intelでは

 

こちらの結果は、

 Plextor:13分46秒

Intel:13分32秒

 

わずかに14秒だけIntelの方が速い。誤差範囲かな。ちなみに、CPU稼働率を見るとPlextorでは

 

Intelでは

 

少~しだけIntelの方が稼働率が高くなっているが、100%まで行ってない。

 

Handbreakは、SkylakeのH.265ハードウェア・デコーダ/エンコーダにも対応しているので、また別の8.15GB(1時間9分)のtsファイルを変換してみたところ、PlextorでもIntelでも2分45秒で全く同じだった。

 

QSV はビデオ変換ツールの中では群を抜いて高速だけど、それでもSSDと比べるとQSVの方がボトルネックになる。SATA SSDよりも高速なNVMeを使っても、差は体感出来ない。今回のベンチではH.265のハードウェアエンコード・デコードの方がQSV(h.264)よ り3倍変換が速かったけど、それでもストレージによる差は無い。以前にQSVをテーマにプレミアムレビューさ せて頂いた時に、QSVのボトルネックになっているのはメモリ帯域であることを見つけた。今回使っているSkylakeのHigh Definition Graphics 530はその時より進化しているはずで、しかもDDR4の3000MHzメモリを使ってもまだSATA SSDの方が速いということ結果になった。

 

ハードウェアデコーダ・エンコーダでこれだから、CPUを使った一般的なソフトウェア画像編集やビデオ編集ではなおさら差が出ないはずだ。SSD 750の速度の違いを体感できるようなアプリはちょっと思いつかない。

 

 

1.8 Adobe Photoshopでの使用感

 

今日は秋晴れの気持ちいい日だったのでRAWデータを収集するために近くの天神さまへ行ってきた。EOS M2のRAWデータは約30MBあって、20枚で500MBくらいになるんだけど、カメラからの取り込みはUSBだから仕方ないとして、Plextorか らNVMe RAIDにコピーするのは450MB/secということで一瞬。RAIDからRAIDへのコピーだとReadとWriteが発生するため1GB/secし か出ないけど、それでもRAWデータ100枚くらいなら1秒。これは、すごい。

 

PhotoshopにRAWデータを読み込むのも一瞬で、これは日常的に画像編集してる人にとってはたまらないと思う。

 

500MBだと一瞬で終わってしまってキャプチャ出来ないので、50GBのフォルダでコピーやってみたお。これがPlextor SSDからNVMe RAIDへ。

 

これがNVMe RAID内でコピー。

 

※ 追記 SSD 750を2台のシングルドライブとして、チップセット経由の起動ドライブからCPU接続のドライブにファイルコピーしてみた。予想外に、RAID0の上で ファイルコピーするより1割ほど遅かった。ストライピングでリードしてストライピングにライトする方が、リードとライトが混在することによるパフォーマン スの低下を補って余りある、それかチップセット経由するとダメってことかなあ。

 

 

 

2.Ubuntu 15.10でソフトウェアRAID

 

2.1 LinuxにおけるソフトウェアRAIDの構築

 

Linuxでは、カーネル2.6.27以降のmdadm 3.0がIRSTに対応していて、カーネル3.1以降からはNVMeもサポートしている。特にドライバの心配をする必要がないので、その点Windowsよりお気楽と言えるかも知れない。

 

GA-Z170MX-Gaming 5のような新しいマザボでは、Linuxでは周辺機器のドライバを用意するのが面倒くさい。今回も、Atheros KIllerの新しいLANドライバを引っ張って来るのがやっかいだったので、始めからドライバが組み込まれているUbuntuの最新バージョン 15.10にして、カーネル4.3も最新のRC7にアップデートした。NVMe関係は日々改良が続けられているので、何でも出来るだけ新しいのが良いと思 う。

 

RC7のアップデートファイルは、

 

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.3-rc7-unstable/

 

  • inux-headers-4.3.0-040300rc7_4.3.0-040300rc7.201510260712_all.deb
  • linux-headers-4.3.0-040300rc7-generic_4.3.0-040300rc7.201510260712_amd64.deb
  • linux-image-4.3.0-040300rc7-generic_4.3.0-040300rc7.201510260712_amd64.deb

この3つをwgetして、

 

$ sudo dpkg -i *.deb

 

 

 

それでは、mdadmコマンドでソフトウェアRAIDを構築して、XFSにフォーマットして、マウント。こちらを参照:NVMeディスクのベンチマークをとってみた(by Miyakawaさん)

 

一応XFSファイルシステムにしたのは高速ということになってるらしいから。

 

$ sudo apt-get install mdadm

$ sudo mdadm --create /dev/md0 --chunk=256 --level=0 --raid-devices=2 /dev/nvme0n1 /dev/nvme1n1

$ sudo apt-get install xfsprogs

$ sudo mkfs.xfs -f -b size=4096 -i size=512 -l size=64m /dev/md0

$ sudo mkdir /data

$ sudo mount -t xfs -o noatime,logbufs=8 /dev/md0 /data

 

 

※Ubuntuは、一度シャットダウンするとRAIDを見失う。まだ解決に至っていない。

 

 

2.2 fioでベンチマーク

 

シー ケンシャルとランダムの速度がRead、Writeでそれぞれ同じという変な結果なので、再度検証したが同じ結果になった。フム。横軸はスレッド数、縦軸 はIOPS。スレッドが多くなるとCPUが処理しきれなくなってパフォーマンスが低下するので、SSD自体の性能を必ずしも反映していない。

 

2.3 データ解析で速さを体感する

 

SSD 750の高速アクセスを活かせる状況として、大規模なデータを単純に読み書きしなければならないような場面が想定される。CPUに負荷がかかるとそこがボトルネックになるので、単純な読み書き。

 

それに近いものとして、数十GB〜数TBオーダーのテキストから指定の単語を探すアルゴリズムを試してみた。材料はヒトゲノムの塩基配列データベース。

 

解析ツールはCLC Main Workbench

 

パブリックドメインからダウンロード出来るヒトゲノムデータからローカルでデータベースを構築し、これにクエリを与えて検索する。

 

日立HDD(4TB)、Plextor PX-256M3Pシングル、SSD 750 RAID0で比較。まずは、データベース構築にかかる時間(単位は秒)。これは1つの入力ファイルからデータを読み込んでインデックスを生成するので、 ファイルI/OよりCPUの素の速度がボトルネックになっているのが分かる。

次は単語を与えてデータベースを検索したもの。横軸は秒。劇的な時間短縮が得られる。BLAST (basic local alignment search tool)という高速アルゴリズムが使われていて、CPUで足を引っ張る部分が少ないと思われる。HDDがシーケンシャルの速度以上にランダムアクセスに 弱いところが出てる。Plextorシングルに対してSSD 750 RAID0が約3倍の速さで終了したのは期待以上と言っていいかもしれない。

 

実際にテキストがマッチしたデータを表示しているところ。

 

SSD 750の性能が活かせる場面が見えて来たと思う。

 

更新: 2015/12/06

C. 現時点で実現可能なNVMe RAIDについて

SSD 750でRAIDを組んでブートしたい!でも、出来るのか?

 

RAIDボリュームをブートドライブとして使うためには、BIOSのRAID機能を使う必要があり、そのためにはBIOSのドライバが対応していなければならない。

 

BIOSはチップセットの機能を使って情報通信を行うため、チップセットがドライブを認識する仕組み(ハードウェア)が必要である。

 

さらに帯域の制限もある。Z170以前のチップセット(Z97やX99)は内部バスがPCIe 2.0までしか対応していないので、PCIe 3.0の半分の速度しか出ない。また、チップセットがPCIe 3.0になってもチップセットとCPU間のデータ通信がDMI 3.0だとPCIe 3.0 x4レーンの帯域しかないから、どうやってもそれ以上の速度は出ない。

 

ま、シーケンシャルリードに限って言えば、ほんとはこの時点(DMI 3.0の帯域)で話は終わってるようなもの(つまりBIOS RAIDは出来ない、って言うか、意味がないのでやらない)なんだけど、ほら、ライトとかランダム・アクセスとかは、そこまで速度ないから、全然意味がないかと言うとそうでもないかも知れない。

 

で、Z170がハードウェア実装でPCIeストレージを見れるようになってるって話と、M.2ソケットならNVMe RAID行けるよっていう話。

 

 

1.PCIe/SATAリマッピング

 

1.1 Intel Rapid Storage Technology OEM Technical Guide Revision 1.0

 

DLはこちら(英語)

 

いわゆるPCIe/SATAリマッピング機能というのは、正確には"Intel Rapid Storage Technology for PCIe Storage"と呼ばれる技術で、Z170チップセットにハードウェアレベルで組み込まれている。対するRSTソフトウェアはVersion 13.0からサポートされているようだ。

 

さて、このIntel Confidentialと赤字で書かれている資料の37ページに次の記載が。

 

つまり

  • チップセットがリマッピングハードウェアを持っていること
  • BIOSがリマッピングロジックを実装しそれを起動すること
  • PCIeストレージデバイスがリマッピングされたポートに接続されていること
  • PCIeスレージデバイスはAHCIコントローラベースであること
  • プレOSのUEFIドライバを含むこのRSTドライバリリースが必要

この条件にひとつでも合わなければ、RSTはPCIe SSDを認識しない。

 

NVMeは、少なくともRST Version 13.0では対応していないようだ。

 

おおっと、諦めるのはまだ早い。JonathanはNVMeでRAID出来るって言ってるからね。単にドライバのバージョンによると思う。

 

1.2 Intel 100 Series Chipset Family Platform Controller Hub (PCH) Datasheet August 2015

 

DLはこちら(英語)

 

これはZ170のデータシート。RST for PCIe Storageの説明は、

RST ドライバは、PCHアーキテクチャのレジスタをリマップしてPCIe SSDストレージと関連付け、統合AHCIコントローラで単一のドライバソフトから容易にアクセスできるようにする。このリマッピングはPCIe SSDストレージからも丸見えで、Intel RSTが必須になる、と言ってる。

 

ここでもAHCIコントローラって言ってる。

 

でも、本当にAHCI SSDしかRAIDしないんだったら、M.2インターフェースカードを使ってNVMeのRAIDも出来るはずないから、それはないんだと思う。

 

 

2.M.2でRAID

 

PCIeでNVMe RAIDするためには、PCH接続のPCIeソケットが2本必要ということで、しかもZ170ということになるとZ170 OC Formulaくらいかなと思っていたが、これもブロックダイアグラムがある訳ではないのでPCH接続は1本かも知れない。実際、DMI 3.0がPCIe 3.0 x4の帯域しか無いのにPCIe 3.0 x4のソケットを2つ以上作る意味なんて無いから、どのメーカーもPCH接続のPCIe x4は1本までになってるんだろう。

 

ただ、どのメーカーも、何故かM.2につないだNVMe SSDに対してはBIOSでRAIDをサポートしている。

 

2.1 ASUSのZ170A (ATX) とMAXIMUS VIII GENE (microATX)

 

Z170Aは、海外サイトでもSSD 750でRAIDが実証報告されている貴重なマザー。PCH接続のPCIeソケットは1本しか無いけど、M.2ソケットと併用してRAIDが作れる。日本語マニュアルにはっきりRAID出来ると書かれているのはこれだけじゃないかな。

 

 

microATXの中では、MAXIMUS VIII GENEがPCH接続のPCIe 3.0 x4にリマッピング設定出来ることがBIOSメニューから分かる。

ちょっと値段が高くなってしまうけど、M.2とPCIeで確実にRAID出来そうなので選択肢の一つにはなるかと。

 

ここで、RAIDメニューの中にSATA ExpressのRAIDマッピング設定があるのが興味を引く。MAXIMUS VIII GENEはSATA expressポートを2つ持っていて、そのうちNo.2の方はPCIe x4や他のSATAポートと相互排他使用になってるけど、No.1の方は独立していてRAIDが組める。ASUSのプロトタイプボードSATA express/PCIe変換基盤(RUNWAY)を使えばBIOS RAIDになりそうだけど、残念ながらRUNWAYは未だ発売されていない。SATA expressデバイスが出回るようになってSATA expressポートが注目されるような状況にならないと、需要は少ないかも知れない。

 

ASUSのプロトタイプ基盤RUNWAYの貴重なレビュー

 

 

2.2 MSI Z170A XPOWER GAMING TITANIUM EDITION

 

MSIのマザーはゲーマー向けに特化していて、NVMeドライバも業界の中ではいち早く対応している。で、このTITANIUM EDITIONのダイアグラムを見てみると、

Z170からは、PCIe 3.0 x4がやはり1本だけ接続する。PCIe M.2でRAID出来ることがマニュアルにはっきり記載されている。

BIOSメニューの説明にも、PCIe Storage RemappingをEnableにするところがあるのを発見!

マザーボードのマニュアルにはNVMeのことは何も記載が無いけど、M.2アダプタカード(Turbo U.2 Host Card)にはSFF版のSSD 750のことがちゃんと書いてあるので、M.2ソケット2本またはM.2プラスPCIeでRAIDになると思われる。

 

 

2.3 ASRock Z170 OC Formula

 

Z170 OC Formulaも、PCIe 3.0のM.2ソケットを3本持っていて、ユーザマニュアルの対応表にNVMeドライブのSM951が載っている。

 

ただし、Z170 OC FormulaのマニュアルにはM.2でRAID出来るという記載が無い(SATA3コネクタのRAIDのことしか言ってない)。が、U.2 KitでSFF版のSSD 750をRAID構成してるんだから、まず出来るんだろうと思う。

 

 

これはASRockの製品ページから。いつの間にか(!)SSD 750を7台使ってRAIDしてる。SFF版のSSD 750を3台つないでも、DMIの帯域制限で意味ないのに。まぁ、完全にネタかな。

 

 

3.PCIeでRAID

 

Z170MX-Gaming 5はPCH接続のPCIe 3.0が1本しか無いので、SSD 750を2枚使ってBIOSブートは検証出来ないんだけど、1枚だけでもRAIDメニューに認識されるかどうか確認してみた。

 

BIOSのPeripheralsでSATA > RAIDに、BIOS Featuresで Windows 8/10 Features > Windows 8/10, CSM Support > Disabledにしてある。

 

PCIEX4 (PCH接続)とPCIEX8 (CPU接続)にSSD 750を挿して

 

PeripheralsのIntel Rapid Storage Technologyサブメニューに入ると

何も表示されない orz

 

因みに、SATA SSDを挿しておくとちゃんと表示される。

 

BIOSのIntel RSTドライバのバージョンが14.5.0.2241になっていて、現在の最新バージョン14.6.0.1029 (20015/8/28)よりちょっとだけ古い。

 

ドライバのアップデートを待たなければだめかも。GIGABYTEに聞いてみるか。

 

>聞いてみたところ、BIOS RAIDはサポートしないとの回答。因みに、ASUSのZ170 MAXIMUS VIII GENE、Supermicroの某C236 microATXもメーカーではBIOS RAIDはサポートしないと言われた・・・orz

 

 

4.NVMe BIOS RAIDの未来

 

チップセット経由のSSDでRAIDというのは、チップセットとCPU間のデータ通信の速度で決まる。Z170も、Xeon向けのC236も、ここの帯域はDMI 3.0で同じ、即ちPCIe 3.0 x4しかない。じゃ、これからはどうなるんだと言うと、Skylakeの次の世代(リフレッシュ)になるKaby lakeに対応する200系チップセットはDMI 3.0のままらしい(BENCHLIFE)。

 

 

これは何を意味するかというと、Intelの立場ではNVMeをRAIDしてブートという考えは恐らく無い。ブートドライブという観点では、PCIeカードにオンボードでRAIDしているDC P3608(委員ちょさんからの情報)のようにカード自体の速度を上げることで対応するということだろうと思う。

更新: 2015/12/06
総評

そこに存在することすら意識から消し去りつつある、一線を超えた性能

5000 MB/sに迫るシーケンシャルリードは、とにかく速い。今まで普通に使っていたSATA SSDが500 MB/sだから、単純に10倍。10秒かかっていたロードが一瞬で終わる。電光石火は大袈裟な表現じゃない。データをストレージから読み込みという動作が意識から消えて、いきなり編集、解析が始まるという感覚。

 

結論としては、30MBくらいの画像RAWデータなら取り込みは一瞬。 5~10GBくらいの映像データの読み込みも、これまでなら20~30分くらい待たなきゃならなかったのが、2~3分に。一方、アプリの動作自体は、 CPUやメモリの速度がボトルネックになってSATAドライブとNVMe RAIDで何の違いもない。つまり、ファイルの読み書きを頻繁にするような用途で、SSD 750は絶大な効果を発揮する。

 

今回のレビュー課題でまだ取り組めていないことが一つあって、SSD 750の水冷化。実際に製品もある。ただ、これは特にグラボなしでデータストレージとして運用する限り、全く必要ない。また、グラボと併用する場合でも、SSD 750にグラボの熱風が当たらないようにコンパートメント化するだけで解決するように思う。

 

現状、主な課題については答えを見出したと思うので、取り敢えず完成。今後、まだ取り組めていない点について、例えばPCIe 3.0に準拠したPCIe - M.2変換基盤とか出てくれば試してみたいとは思う。

更新: 2015/12/06
実用性

超難問、NVMe RAIDブートの正解はこれだあぁぁぁ・・・

NVMe RAIDでBIOSからブート出来るかどうかという難問は、結局Z170チップセットにPCIe/SATAリマッピング機能が内蔵されているので、チップセット経由のPCIeソケット(又はM.2ソケット)を使えば可能であるということが分かった(実証はまだ)。CPUに直結するPCIeソケットでは、このようなPCHの機能に依存するRAIDは組めない。

 

ただし、SSD 750でBIOS RAID (Fake RAID)を組んだ場合、チップセットとCPUをつなぐDMI 3.0がPCIe 3.0の4レーン相当の帯域しか無いことから、SSD 750の性能が発揮できないという自己矛盾に陥る。

 

しかし、それはRAID0の話し。RADI1ミラリングなら話は別だあ

 

SSDはHDDと違って壊れる時は一瞬で壊れてデータにアクセス出来なくなる。SSD 750でミラリング! 何て贅沢な。

 

で、普通のZ170マザーはPCH経由のPCIe 3.0ソケットを1本しか持ってない(ASRock Z170M OC Formulaだけ例外的に2本ある)ので、どうしてもAIC版SSD 750でRAIDブートしたければ、SSD 750の1枚をPCIeからM.2ソケットに変換するという離れ技が考えられる。PicardさんがM.2タイプのSM951をPCIeに変換してCPU直結の速度を出してるのと反対方向の、ちょっと屈折した・・・しかも、PCIe/M.2変換がPCIe 2.0の帯域しか無いという・・・

 

始めから2.5インチ版のSSD 750だったら簡単だった、と言っちゃあバチがあたるよね。

 

DMI 3.0の帯域制限を回避するもう一つの、も少し穏当な方法は、単純に2枚のストレージとして使うこと。1枚はNVMeブートさせて、もう1枚はデータドライブにする。単一のRAIDドライブの上でコピペするより速くなる・・・いやいや、そんなことなかった。実際にチップセット経由の起動ドライブからCPU接続のドライブにコピーしてみたら、RAID0の上でコピーする方がかなり速かった。

 

□最後に、zigsow様、Intel様、素晴らしい製品と超絶難問に取り組む機会を与えて頂き有難うございました。Intelのサポートフォーラムも非常に好感が持てます。日本語の情報が充実してくれると良いですね。

コメント (19)

  • アラクレさん

    2015/10/18

    奇問難問すぎて私には無理!ということでスルーしましたw
    是非是非がんばってくださいねー♪
  • sorrowさん

    2015/10/18

    アラクレさん

    ふつうに2枚させばRAIDになると思ってました orz
    いや、何でこんな宿題なんだろ?
    1枚売り払ってSSF-8639に換えられれば簡単なんですけどね。
    AIC2枚となると、ちょっと離れ技が必要になりそうです。

    あぁ・・・
  • 委員ちょさん

    2015/10/18

    >誰もやってないじゃん

    (実はやってますよ…?
他16件のコメントを表示

ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。

YouTube の動画を挿入

YouTube の URL または動画の ID を入力してください

動画の ID が取得できません。ID もしくは URL を正しく入力してください。

ニコニコ動画の動画を挿入

ニコニコ動画の URL または動画の ID を入力してください

動画の ID が取得できません。ID もしくは URL を正しく入力してください。

ZIGSOWリンク挿入

検索対象とキーワードを入力してください

    外部リンクを挿入

    リンク先の URL とタイトルを入力してください

    URL を正しく入力してください。

    画像を挿入(最大サイズ20MB)

    画像を選択してください

    ファイルサイズが20MBを超えています

    別の画像を追加

    ほかのユーザーのレビュー

    ZIGSOW にログイン

    ZIGSOW会員登録(無料)はこちらから