ストレージ

NVMeとは?

別名: NVM Express
定義

NVMe is a storage protocol that connects solid-state drives directly over PCIe, reaching roughly 500,000 random IOPS with sub-100-microsecond latency. Its deep parallel queue model is architecturally different from SATA, which inherits a single-queue design intended for mechanical disks.

NVMeが重要な理由

その深い並列キュー モデルは、機械式ディスク向けに設計されたシングルキュー設計を継承するSATAとはアーキテクチャ的に異なります。データベースベースのアプリケーションでは、ランダムIOPSのギャップがユーザーが実際に感じる違いです。

実践でのNVMe

NVMeインスタンスをプロビジョニングするとき、最初に注目するのはストレージワークロードのキューの深さです。SATA-backedボックスは、負荷時に数千IOPSで上限に達します;NVMeは、サブ100マイクロ秒レイテンシで約50万ランダムIOPSを維持します。sysbenchとfioテストを、シーケンシャルスループットではなく、randreadとrandwriteを測定するように変更し、データベースコミットの違いを見てください。SASディスクのブロックサイズに最適化したり、I/Oスケジューラ設定を無視したりすれば、ハードウェアの能力のほとんどを未使用のままにしています。間違えると、実際にディスクに触れるワークロードでレイテンシが百倍に跳ね上がります。

NVMeについて人々が誤解していること

人々はNVMeが単により速いSSDだと思い込み、IOPSではなくGB単位のサイズでプランを選びます。修正:NVMeの違いは、生の帯域幅ではなく、並列キュー モデルです。大きなSATAドライブは、シングルキューのランダムI/Oで依然としてボトルネックになります;より小さなNVMeドライブは、データベースワークロードでそれを打ち負かします。サイズは重要ですが、レイテンシに敏感な作業では、IOPSが無視するとコストがかかる指標です。

NVMe — よくある質問

NVMeはどのくらいのランダムIOPSを達成しますか?

公開定義によると、約50万ランダムIOPSです。これは典型的なSATA SSDの約千倍です。サブ100マイクロ秒のレイテンシは、小さなランダム読み取りと書き込みの場合、ディスクのメカニクスや単一のSATAキューを待つ必要がないことを意味します—コントローラとPCIeバスだけが経路です。

ウェブサイトにNVMeは必要ですか?

ランダムI/O主体のワークロード、例えばデータベースやキャッシュを動かす場合に限ります。静的ファイル配信や低トラフィックのサイトでは、NVMeとSATAの違いに気づかないでしょう。その差は、持続的な混合ワークロード下で現れます。SATAのシングルキューが飽和し、レイテンシが急騰するからです。PostgresやRedisを動かすなら、NVMeはテールレイテンシを低く抑えてくれます。

NVMeが登場する箇所

ストレージの詳細

IOPS
IOPSは、ストレージデバイスが1秒あたりに完了する個々の読み取りまたは書き込み操作の数を測定します。
RAID 10
RAID 10は、ドライブのペア間でデータをミラーリングし、ミラー間でストライピングするため、冗長性と高性能の両方を提供しますが、代償として生の容量の半分を失います。
スナップショット
スナップショットは、仮想マシンディスクの特定時点のコピーであり、即座に取得され、同じインフラストラクチャに保存されます。