フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

HDD/SSD/NVMe/mSATA/M.2/AHCI/iSCSI/FC/FCoE の違いまとめ

先に区分をまとめておく。

主記憶装置

書き込み/読み込み速度に優れコンピュータがメインでデータを書き込む装置のこと。ほとんどは電源が切れるとデータが失われる。

  • DRAM
  • SRAM

補助記憶装置

電源が切れても(不揮発性)データを保管しておく装置のこと。主記憶装置に比べて安価で性能が悪いが大容量。

  • 磁気テープ
  • CD
  • DVD
  • BlueRay Disk
  • HDD(Hard Disk Drive)
  • SSD(Solid State Drive)

HDDとSSDの違い

HDDとSSDの物理的な見た目の違いはこんな感じ。

f:id:lirlia:20210615160806p:plain

引用元:HDD/SSDの解説とパソコン選びのポイント | パソコン選び&購入のチェックリスト

一般的にHDDの方が安く、大容量で、低速。SSDが高く、低容量で高速という傾向にあります。

より細かい話をだせば、HDDはディスクの回転によって書き込まれるセクタを規定するためシーケンシャルな書き込みや読み込みには強い一方で、ランダムアクセス時は都度ディスクを回転させてアクセス先を探しにいくので遅くなります。

一方でSSDの場合はメモリに保存しているので、シーケンシャルやランダムでHDDほどの有意差は出ません。(それでもシーケンシャルの方が早い)

こちらはSSD/HDDを搭載したVAIO PCで性能テストしている図ですね。下のSSDが早いです。

f:id:lirlia:20210615161529p:plain

引用元:VAIOに搭載のストレージ(HDD・SSDなど)のベンチマーク徹底比較!(その1) : ソニーで遊ぼう!

補助記憶装置のインターフェース規格

コンピュータにHDD、SSDや光学ドライブを接続する為のインタフェース規格(物理的な規格)

大きく分けて汎用PC向けとエンタープライズ向けが存在する。

f:id:lirlia:20210615181837j:plain

またややこしいが、元々はPCの側の補助記憶装置に対する通信を実現する用途であったが、ストレージという補助記憶装置の塊を別に用意する仕組みへと変化していったため、FC/iSCSI/FCoEなどは高速なデータアクセスを実現するためのネットワークの仕組みな点に注意すること。

汎用PC向け

登場年 規格名 正式名 内容 写真
1986年 IDE Integrated Drive Electronics 最初の業界標準 f:id:lirlia:20210615164250p:plain
1994年 ATA AT Attachment ANSIがIDEをATA-1として定義 f:id:lirlia:20210615164122p:plain
2000年 SATA Serial ATA シリアル転送方式。ハードディスクが「接続すればすぐ使える」ようになった f:id:lirlia:20210615162955p:plain
2009年 mSATA miniSATA ケーブルを使わずにPCへ取り付けられるSATA規格コネクターの仕様のひとつ。端子形状はMini PCI Expressスロットと共通だが、信号形式は異なるため、必ずしもMini PCI Expressスロット=mSATA SSD対応というわけではない f:id:lirlia:20210615164702p:plain
画像はmSATA+SSDが一体になっている
2013年 M.2(NGFF) Next Generation Form Factor mSATAの後継。コンピュータの内蔵拡張カードのフォームファクタと接続端子について定めた規格。 f:id:lirlia:20210615164918p:plain
画像はM.2+SSDが一体になっている

サーバ向け

登場年 規格名 正式名 内容 写真
1979年 SASI Shugart Associates System Interface シュガート・アソシエイツ(Shugart Associates)社が自社製品向けの接続仕様として開発したもの f:id:lirlia:20210615162857p:plain
1986年 SCSI Small Computer System Interface SASIを元に改良しANSIが標準化。コンピュータ本体にストレージ装置(外部記憶装置)などの周辺機器を繋いで通信するための接続方式の標準規格。パラレル伝送方式。 f:id:lirlia:20210615165700p:plain
1994年 FC Fiber Channel 高速なデータ通信を行うためのサーバ〜ストレージ間の規格。SCSIと異なりあくまでOSI参照モデルでいうところのセッション層までが担当領域であり、FCの上でSCSIコマンドが動作する
f:id:lirlia:20210615170626p:plain
f:id:lirlia:20210615170217p:plain
2003年 SAS Serial Attached SCSI SCSIの後継。シリアル伝送方式。SATAは一般的なパソコン製品に、SASは主にサーバなど業務用製品にそれぞれ用いられる。 f:id:lirlia:20210615162921p:plain
2003年 iSCSI Internet SCSI SCSIプロトコルをTCP/IP上で使用する規格であり、物理規格ではない。
f:id:lirlia:20210615171001p:plain
Ethernet
2009年 FCoE FC over Ethernet FCを10GbE上で利用するための規格。SANからLANへの統合目的で利用される。iSCSIはTCP/IPを利用するのに対してFCoEはこれを利用しない事や、iSCSIは1GbEが利用出来るのに対してFCoEは10GbEが必要であるなどである
f:id:lirlia:20210615171223p:plain
Ethernet

参考

シリアル通信とパラレル通信

  • シリアル通信: データを1つづつ送る
  • パラレル通信: データをパラレル(並列)に送る

元々はシリアル通信だったが、性能の問題でパラレル通信が主軸になった。しかし技術進歩によりシリアル通信の方が性能が良くなったことで、現在はシリアル通信が主軸になっている。

パラレルリンクは複数のデータストリームからなり、それぞれが個別の伝送路(配線、基板上のプリントされた配線、光ファイバーなど)で転送される。それに対してシリアルリンクでは、単一のデータストリームで転送が行われる。

チップ内部やプリント基板の中など、近距離で安定した場合は、パラレルの方がシリアルより高速である。ただし、距離が長くなったり、伝送路の電気的特性が悪い場合はシリアルリンクの方がパラレルリンクよりも高クロック化が容易であり、高データ転送レートを容易に実現できる。これには以下のような要因が影響している。

  

・シリアルでは、伝送路間のクロックのずれという問題が起きない。
・シリアルでは、ケーブル本数が少なくて済み、場所をとらない。そのため、周囲のノイズを拾わないように対処することが容易である。
・シリアルでは、近接する導体が少ないため、漏話が問題になりにくい。
・シリアルは低コストで実装できるため、多くの場合よりよい選択となる。

参考:シリアル通信 - Wikipedia

コマンドプロトコル

ハードウェアとOS /ソフトウェア間の通信の仕組を標準化したもの。

メーカーが異なっていても、同じように動作し、パワーマネジメントコマンドなどを使うことができるのはこれらのおかげである。 NVMeとAHCIの違いを理解する ~SSDのインターフェースを理解する 3~ - AKIBA PC Hotline!

代表的なコマンドプロトコル

  • SCSI (Small Computer System Interface)
    • ここでいうSCSIは物理規格ではなく、ディスクを制御するコマンドレベル部分のプロトコルを指す
  • NVMe(Non-Volatile Memory Express)
  • AHCI(Advanced Host Controller Interface)

データの保管と取得にSCSI(SASやFC経由)やAHCI(SATA用)を使用する、またSSDではNVMe/AHCIを利用する。

SSDにアクセスする経路(SATA/NVMe)

f:id:lirlia:20210615182510p:plain

  • CPU -> AHCIドライバ -> PCI-e -> HostBUS -> SAS/SATAコントローラ -> HDD/SSD
  • CPU -> NVMeドライバ -> PCI-e -> NVMeコントローラ -> SSD

NVMeの流れ

  1. サーバやノートPCの内蔵SSDにてNVMe(PCI-eベース)が登場
  2. 外部ストレージ内のSSDでNVMeが登場
  3. サーバ〜ストレージ間でNVMe over Fablic(NVMe-oF)が登場
    • NVMe over Fibre Channel
    • NVMe over Ethernet(RoCE/iWARP)
    • NVMe over InfiniBand

f:id:lirlia:20210615190417p:plain

NVMeは物理規格にPCI-eを使用しており、マザーボードなどの基盤に直接差して利用するため延伸や耐障害性などの柔軟性や拡張性が乏しい。そのためNVMe(PCI-e)を使っての外部ストレージとの接続は不向き。

そこで既存のストレージネットワークの上でNVMeで通信させることでこれを回避しようとしている。

名前 動作
NVMe(PCI-e) データ、コマンド、レスポンスを共有メモリを使って転送
FC-NVMe データ、コマンド、レスポンスをカプセル化して転送
RDMA(InfiniBand/RoCE/iWARP) レスポンス、コマンドはカプセル化して転送。データはファブリック固有のデータ転送メカニズムを使用

エンタープライズの実績としてはFC-NVMeが支配的。(帯域:32Gb x 4)