NVMe 2.0の注目機能:Zoned Namespace、HDDサポート、新コマンドセット:NVMeがバージョンアップ
NVMeが拡張された。NVMe 2.0では何が変わったのか。注目すべき機能を幾つか紹介する。
NVMeはSSDに革命を起こし、広い帯域幅とより多くのキューを処理する機能によってパフォーマンスを数十倍に向上させた。
NVMeとSAS/SATAを比べた場合ほどの驚異的なステップアップにはならないが、NVMe 2.0では以下の強化が行われている。
- HDDのサポート
- 大容量のQLCフラッシュをさらに最適化するZoned Namespace(ZNS)
- 複数レイヤーを物理ドライブアドレスにマップするキーバリュー型コマンドセット
- ストレージ利用者をタイプ別にグループ化し、そのグループへの容量割り当てを可能にするEndurance Groupを構成できる機能
なぜHDDのサポートが必要なのか。
NVMeには、HDDを同じインフラに組み込み、全ドライブ共通のアーキテクチャによってあらゆるメディアの共通トランスポート層になるという考え方がある。
HDDは廃止されつつあるが、しばらくは消え去ることはないだろう。ランダムIOPSはフラッシュに及ばないとしても、HDDにはまだ固有のメリットがあるからだ。Seagate Technologyの「MACH.2」は最大20TBの領域を提供し、スループットは0.5TBを超える。
NVMeのZNS
ZNSはQLCフラッシュの最適な使用を可能にする。QLCフラッシュは最大の容量を実現するが、耐久性の点で劣っている。ZNSはNVMeドライブに与える摩耗量を削減し、QLCフラッシュの有効期間を延長する。結果、長い有効期間を持つフラッシュを必要としていた場所にQLCフラッシュを使えるようになる。
ZNSは4kのブロック単位ではなく、ストレージ全体をゾーンで管理する。そのためオーバープロビジョニングの必要性が低下する。同時にブロックのアドレス指定を処理するフラッシュ変換層の作業量も減少するため、DRAMの使用量も少なくなる。
ZNSは一部のHDDで採用されているSMR(シングル磁気記録方式)の手法に由来する。
ZNSについては「『Zoned Storage』によりSSDの性能とキャパシティーが向上」も参照してほしい。
NVMeのキーバリュー型コマンドセット
キーバリューはJavaScriptのデータ構造やNoSQLデータベースで使われている。NVMe 2.0はブロック単位のアドレス指定の代わりにキーバリュー方式でデータの格納と呼び出しを行う。この方式はその名の通りシンプルで、データを非構造化データとして格納して1バイトから1MBの値を1〜32バイトのキーにマッピングする。
NVMeのキーバリュー型コマンドセットにより、アプリケーション呼び出しと物理メディア間の2層分のマッピングが取り除かれる。
ブロックストレージではブロックストレージからファイルシステム、次にファイルシステムから論理ブロックアドレス(LBA)、最後にLBAから物理アドレスにマッピングされる。これに対してキーバリュー型マッピングは1つのマッピングテーブルを使う。
NVMeのキーバリュー型マッピングにより、1秒当たりのトランザクション数が増え、書き込み時の増幅レベルが下がり、遅延が少なくなる。
NVMeのEndurance Group Management
2019年、NVMe 1.4で初めてEndurance GroupとNVMセットが導入された。この2つに関して顧客が構成できることは限られていた。構成するには、ドライブのファームウェアをハードコードするか、ベンダー固有のコマンドが必要だった。
NVMe 2.0では、パラメーターを使ってEndurance GroupとNVM設定を顧客が変更できる。これにより、共有ドライブや共有アレイを利用するさまざまなユーザーに対して、入出力パフォーマンスと摩耗レベルの影響を切り分ける柔軟性が提供される。
Copyright © ITmedia, Inc. All Rights Reserved.