NVMeプロトコルとPCIeインタフェースの組み合わせは、SSD台頭の必然的な結果だ。NVMeをファブリックに利用するのも同様に必然的な流れといえる。
「Non-Volatile Memory Express」(以下、NVMe)は、「PCI Express」(以下、PCIe)バスを介したフラッシュドライブとPCの接続を高速化するプロトコルとして誕生した。PCの世界ではそうした高速接続のための事実上の業界標準となりつつあるが、エンタープライズの世界ではそれをファブリックで接続されたストレージネットワークに拡張することが重要となる。目標は、PCIeでコンピュータに直接接続されたフラッシュドライブと同じI/O速度を、ストレージネットワークのフラッシュドライブでも実現することだ。本稿では、NVMeとは何であり、どのように機能し、今後の展開がどのようなものになるかを考察する。
NVMeプロトコルは高性能なフラッシュドライブの台頭に伴う論理的な帰結だ。従来のSCSIベースではOSのファイルスタックが高度なI/O処理に対応できなかった。割り込みがあまりに多く、スタックにはデータブロック当たり何千ものCPU命令があるからだ。
企業は、割り込みを大幅に削減する製品によってオーバーヘッドタイムを解消し、CPUを生産的な目的に利用できるようにする必要があった。同様に、ホストCPUとのやりとりを極力回避できるデータ転送方法が求められた。
NVMeプロトコルはこうした問題を解消するために急速に進化した。CPUとのデータやりとりの問題は、PCIeバス経由で直接メモリにアクセスする「ダイレクトメモリアクセス」(DMA)で解消した。CPUを介さずにデータを転送するための十分にテストされた方法だ。これにより、データ転送のメカニズムは、転送要求と承認を必要とするプッシュ型から、準備が完了してから受信ノードがデータをプルするシステムへと変わった。この方法がCPUのオーバーヘッドをわずか数パーセントに削減することは、経験から明らかだった。
割り込みシステムは、転送を保留するためのキューセットと完了ステータス用のキューセットを持つ循環キュー方式に置き換わった。「リモートダイレクトメモリアクセス」(RDMA)を使ってこれらのコマンドキューを解析し、完了キューを応答ブロックで処理することで、割り込みを効果的に集約できる。
「Serial Attached SCSI」(SAS)、「Serial ATA」(SATA)、「ファイバーチャネル」などのプロトコルには残念ながら、優先度やソース所有者の感覚が欠けている。NVMeは最大64K個のキューに対応することで、この問題にうまく対処した。各キューは発信元と優先度を識別することで、データを発信元のコアや特定のアプリケーションに戻すことができる。このアドレッシング方式は、NVMeのファブリック拡張においてさらに本領を発揮する。
NVMeは物理的には、「M.2」または「SATA Express」(SATAe)コネクターの2つのPCIeレーンを使用する。どちらのコネクターも、NVMe対応のPCIe接続の代わりにSATAドライブを正しく接続できるようになっている。
M.2規格は非常にコンパクトなSSDの取り付けを可能にする。コンパクトなデザインでスペースとコストを節約し、1.5インチや3インチのパッケージ(幅はわずか1インチ程度)でかなりの容量を実現できる。2018年には、これらの小型フォームファクタで10TB以上の容量を期待できそうだ。
Copyright © ITmedia, Inc. All Rights Reserved.
トランプ氏勝利で追い風 ところでTwitter買収時のマスク氏の計画はどこへ?――2025年のSNS大予測(X編)
2024年の米大統領選挙は共和党のドナルド・トランプ氏の勝利に終わった。トランプ氏を支...
AI導入の効果は効率化だけじゃない もう一つの大事な視点とは?
生成AIの導入で期待できる効果は効率化だけではありません。マーケティング革新を実現す...
ハロウィーンの口コミ数はエイプリルフールやバレンタインを超える マーケ視点で押さえておくべきことは?
ホットリンクは、SNSの投稿データから、ハロウィーンに関する口コミを調査した。