検索
特集/連載

レガシープロトコル vs. NVMeで見えてくるNVMeの存在感NVMeの性能を引き出す3つの実装方法(前編)

ストレージプロトコルのパフォーマンスの問題を解決するために生み出された新しいプロトコルがNVMeだ。これを利用するための具体的な実装方法は3つある。どれを選ぶべきなのか。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
Computer Weekly

 永続ストレージは、全てのコンピュータシステムにとって欠くことのできない要件だ。サーバを再起動すると、メモリ内のデータは通常失われるが、永続ストレージはデータを保持する機能を提供する。

Computer Weekly日本語版 8月2日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 8月2日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。

ボタンボタン

 この60年間、データの主な保管場所としてテープやHDDを利用してきた。だが、どちらのメディアにもフラッシュストレージほどのパフォーマンスはない。そのため、データセンターのストレージメディアとしてフラッシュが選ばれるようになっている。今ではNVMe接続のフラッシュも登場し、ソリッドステートストレージの潜在能力を引き出せるようになった。

 では現状、どのような導入オプションがあるだろうか。また、NVMeによって強化され、フル機能を装備したストレージアレイを妨げる要素とは何だろうか。

レガシープロトコル:SATA、SAS、ファイバーチャネル、SCSI、AHCI

 ストレージデバイスをサーバに内蔵する場合は、シリアルSCSI(SAS)やシリアルATA(SATA)といった物理インタフェースを使用する。外部接続の場合は、イーサネットやファイバーチャネルを使ってストレージを共有する。

 こうしたプロトコルによって物理トランスポートが定義される。もう少し高いレベルでは、データの保管と取得にSCSI(SASやファイバーチャネル経由)やAHCI(SATA用)を使用する。

 SCSI(Small Computer System Interface)とAHCI(Advanced Host Controller Interface)はどちらも、標準ストレージデバイス(HDDやテープ)が単一の入出力(I/O)要求を同時に処理できるようになったころに設計されたものだ。

 テープには、シリアルにアクセスする。HDDは、読み取り/書き込みヘッドをディスク上のトラックに移動してデータにアクセスする必要がある。そのため、従来型のストレージプロトコルは、ストレージ要求のキューを1つ管理する設計になっている。

 AHCIの場合、キューは32個のコマンドを保持できる。SCSIがサポートするキューはもっと長く、通常128〜256個のコマンドを保持できる。保持できるコマンドの数は、プロトコルの具体的な実装によって制限される。

 HDDについて詳しく見ると、どちらのプロトコルもそのキューのスループットを向上するテクニックを使用している。例えば、TCQ(Tagged Command Queuing)やNCQ(Native Command Queuing)は、いずれもI/O処理の順序を変えることを目的とする。

 この順序変更では、オンボードキャッシュを使用して要求をバッファリングしながら、物理ストレージメディアとの間の読み取りと書き込みを最適化する。TCQとNCQはHDDアクセスの物理特性をある程度緩和するため、一般的に全体的なスループットは向上するがレイテンシは改善しない。

フラッシュとプロトコルのボトルネック

 フラッシュへの移行が進むにつれ、ストレージプロトコルがボトルネックになり始めている。

 フラッシュは可動部品を持たないため、現在一般的なSAS接続やSATA接続よりも圧倒的に多くの同時I/O要求を処理できる。ある程度パフォーマンスが改善される兆しはあるものの、スループットの限界はSATAで6Gbps、SASで12Gbpsになる。

 ただし、最大の問題は処理できるキューの数が比較的少ない点にある。フラッシュドライブのサイズが増えるにつれて、このボトルネックが深刻さを増していくことになる。

NVMeの登場

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る