HDD(ハードディスク)や、SSD(ソリッドステートドライブ:Solid State Drive)を繋ぐ方法(インターフェース)として、シリアルATA(SATA)で接続することが一般的だった。

私物のMac Book Pro (Ratina 2015)だと、1TB PCIeベースフラッシュストレージを利用しているので、今でも超高速で保っている。そう、PCIe(NVMe)という接続方式。ここ最近、VAIOでM.2にしますか?PCIeにしますか?もしくは安いSATAでいいですか?という選択肢があったりする。

ここでは、この、SATA、M.2、NVMe等のインタフェースについて整理していきたい。そして、このブログを読み切った場合は、NVMeに非常に注目を浴びるに違いない。

 

インタフェース(interface)とは、「異なるものの境界面」を表す言葉で、データのやり取りをする規約となっている。そのため、ネットワークを繋ぐものであってもインタフェースと呼ぶし、ストレージを接続するものであっても、インタフェースと呼ぶ。USBメモリを手軽に使っているが、USBというのはストレージを繋ぐためのインタフェースですので、メモリをUSBで繋がっているという意味となる。

USBの場合は、ここ最近では青い接続口をもっているUSB3.0が主流だ。Windows98の時に便利なUSB1.1が登場した。この時の通信速度(伝送速度)は、12Mbps。2000年にはUSB2.0が登場し、480Mbpsという高速な通信が実現している。そして、2008年から登場したUSB3.0が5Gbps。2013年に出たUSB3.1ではGen1が5Gbps、Gen2が10Gbpsまで転送速度が向上している。

この、bpsとは、bits per second(ビット毎秒)の略で、b/sと表記する場合もある。1秒間に転送可能なデータの量を表す通信速度の単位となっている。

そういったストレージに接続するインタフェースについて、まず見ていこう。

 

ストレージに接続するインタフェースには、パソコン中心に、IDEやATAというのがあった。特に、ATAは、1,064Mbit/sの伝送速度であり、今となっては超遅通信だ。1Mbitとは8Mbyteなのだから。ATA規格として、IDEのがあり、これはパラレルATAだった。この規格は、8本あるいは16本の銅線を並行に束ねて転送するパラレル転送のため、高速に転送しようとすると、お互いのノイズによって、到着時間にばらつきが出るなどの課題がある方式だった。

その結果、課題克服のため、1本の回線で伝送というスタイルである、シリアルATA(SATA)というのが登場した。銅線が1本となったため、細くなった他に、伝送距離が長くなった(1m)というのもメリットで、現在次のリビジョンが出ている。詳細は、Wikipediaを参考いただきたい。
・Rev 1.0 ・・・物理転送速度(1.5Gb/s)、実効速度(150Mb/s)
・Rev 2.0 ・・・物理転送速度(3.0Gb/s)、実効速度(300Mb/s)
・Rev 3.0 ・・・物理転送速度(6.0Gb/s)、実効速度(600Mb/s)

パラレルATAであったIDE、その欠点を克服したシリアルATAであるSATA。これは、パソコン用途。一方で、高品質を要求するサーバの場合は、SCSIやSASといったインタフェースがある。SCSIはパラレル接続のため、転送速度の限界が見えてしまったために、SCSIをシリアル化にした、シリアルSCSIこと、SAS(Serial Attached SCSI)が登場、今に続いている。詳細は、Wikipediaを参考いただきたい。
・SAS 1.0 ・・・物理転送速度(3.0Gb/s)、実効速度(300MB/秒)
・SAS 2.0 ・・・物理転送速度(6.0Gb/s)、実効速度(600MB/秒)
・SAS 3.0 ・・・物理転送速度(12.0Gb/s)、実効速度(2.4GB/秒)

信速度の割に実行レートが出ない理由は、伝送するデータ8ビットあたりに2ビットの誤り訂正符号を付加するエンコーディングをしていたり、断線対策として、デュアルポートを備え、独立したケーブルで冗長に接続を保っているという、耐障害性にも優れているインタフェースであるからこそ、高価というとこもネックだ。

したがって、SATAとSASは発生源が根本的に違っており、色々な点で冗長化され耐障害性に優れてはいるが、どちらもシリアルで接続されており、書き込み速度等は、だいたい同じ、という理解で良いと思う。ただ、SASは12Gb接続バージョンも出ているため、まだまだSAS接続は安泰だ、といったところだろう。

 

接続方式としては、若干異なるが、FC(Fibre Channel)とある。仮想化システムを構成する際、仮想マシンを稼働(ポイント)させるマシンにHDDを提供するストレージとを接続するSAN(Storage Area Network)構成の場合に利用されるインタフェースだが、これはこれで高価な製品。ここも詳細は、Wikipediaを参考にいただきたいが、例えば、8Gクラスであれば実効速度は1.6Gb/s、16Gクラスであれば実効速度は3.2Gb/sとなっている。SATAやSASとはやや区分が違う。FCと対抗するインタフェースと見れば、iSCSIかな?と考えられる。

じゃ、iSCSIって何?となる。SCSIコマンドをネットワークに投げ込み接続させる方式で、LANケーブルがあれば繋がるというシンプルなもの。ネットワークも、今や1G、10Gと低価格で構成できるようになったことから、わざわざ高価なFCで構成しなくても良いよね?ということで、昨今人気がある接続方式だ。なお、今回は、NVMeの話に行きたいため、ここらへんの説明は省略したい。

 

さて、IDEから派生したSATA、そしてSATAから変わろうとしている次世代インタフェースのNVMe(NVM Express )。SATAの場合は、コントローラにまとめた状態で処理をするのに対し、SSDとなれば高速なので、コントローラを介すとボトルネックになるため、コントローラでまとめることはしていない。そのため、1つの命令(キュー)の数に対し、それごとに処理をする仕組みが採用された。この数は、65,536(64K)という膨大な数に対応されているため、ビジー状態が発生せず、高速処理が実現している(ようだ)。そのため、NVMeの接続先は、SSD以外は想定していない、というのも特徴だ。

SSDには、2.5インチではなく、M.2というのもある。M.2の魅力は高速であること。対応しているインタフェースは、高速なNVMe(PCIe)や、従来のSATAの2つに対応している。M.2は、理論上の最大転送速度が30Gb/sとなっており、とんでもない高速なのだ。SATAは現在最速が6Gb/sでも実測600Mb/sのに対し、M.2は数Gb/s(種類のよる?)なため、比べ物にならないわけだ。

したがって、覚えてもらいたいことは、NVMeって、とんでもない高速なんだ、と。
例えば、パソコン購入する際、次のように選択肢に迷った場合、SSDはどれも同じなんだ、と考えないということだ。値段的に3,000円の違いであっても、PCIeの方が、論理上、全然速いんだ、ということだ。

 

おすすめの記事