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.
お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。
TikTokのトレンドに変化 なぜ「1分超え」動画が見られている?
Bufferのデータによると、TikTokでは最近、長めの動画が人気を集めている。
アドビが「10種類のAIエージェント」を発表 顧客体験はどう変わる?
アドビの年次イベント「Adobe Summit 2025」が開催された。初日の基調講演では、アドビの...
「ブランドは叩かれて強くなる」 ジャガーのCMOが語った炎上の乗り越え方
SXSWで開催された「Female Quotient」のイベントにおいて、Jaguar Land Roverの米国CMOは...