はじめに

前回の内容では、データ削減率を考慮しなくても「No More HDD」が可能なオールフラッシュ・ストレージ FlashArray//C の概要をご紹介しました。今回は、FlashArray//C が、安価な QLC NAND を採用してエンタープライズにふさわしい品質、耐久性を実現している理由を技術的に深掘りしていきます。

参考(前回のブログ):FlashArray//C の概要

FlashArray//C が QLC NAND で高品質・高耐久性を実現できる理由

業界 No.1 のデータ削減技術

第一の理由が、業界 No.1 のデータ削減技術です。インラインでのデータ削減技術(重複排除、圧縮)を極めることで、フラッシュ・モジュールへの書き込み量を減らします。

インラインでのデータ削減技術は、今では多くの他社製品でも採用されている一般的な機能です。しかし、仮に同じデータを各製品に格納しても、データ削減率は全く異なります。図 1 は、データベース(Oracle Database)の実データを格納した際の削減率の検証結果です。他社製品では 2 倍程度の削減率にとどまりますが、ピュア・ストレージの FlashArray では、4.2 倍に達していることがわかります。

圧倒的な TCO 削減効果

図 1:圧倒的な TCO 削減効果

削減率が高いほどストレージの物理構成が小さくなるため、提案価格はもちろん、設置スペースや消費電力の削減に貢献できます。これらの効果はユーザーに対するメリットですが、ベンダーの観点でも考えてみましょう。図 1 が示すデータ削減率の差だけで考えた場合でも、同じ NAND 製品を FlashArray と他社製品に搭載したとすると、2 倍以上の寿命の差がつく計算になります。このことは、FlashArray に 1/2 程度の耐久性を持つ NAND を搭載しても、他社製品と同等の寿命を維持できることを意味します。

しかし、格納するデータの種類に大きく依存する削減率に頼り過ぎるわけにはいきません。前回のブログでご紹介したように、FlashArray//C は、データ削減率を考慮しなくても「No More HDD」が可能なオールフラッシュ・ストレージです。そこで今回は、書き込み量の増幅を 1 にする仕組みについて詳しく解説したいと思います。

書き込み増幅率を 1 にする仕組み

第二の理由が、書き込み増幅率を 1 にする仕組みです。フラッシュ・モジュール(SSD)には、実際に書き込んだデータ量よりも内部のチップ(NAND)に対する書き込み量が増加してしまう Write Amplification(書き込み増幅)という好まざる現象があり、その書き込みの増幅率のことを WAF(Write Amplification Factor:書き込み増幅率)と呼びます。図 2 は、同じ SSD 製品に 4 KB、8 KB、1024 KB で書き込んだ場合の WAF を青色の折れ線グラフで表したものです。

write 単位と WAF

図 2:write 単位と WAF

例えば、データベースの標準的なブロック・サイズである 8 KB で書き込んだ場合に、WAF は 13.42 なので 8 KB x 13.42(WAF)= 107.36 KB の書き込みが内部で発生してしまいます。これでは、大容量で GB 単価に優れてはいても耐久性が低い NAND をストレージ製品のフラッシュ・モジュール(SSD)に本格的に採用するのは難しいということになります。

ピュア・ストレージは、2019 年に FlashArray//C をリリースする何年も前から WAF = 1 にすることを追求してきました。創業当初からオールフラッシュを前提とした製品開発・提供を行っており、NAND の扱いについても独自のアプローチを採用しています。他社ストレージは SSD ベンダーが開発・提供する SSD 製品をそのまま採用しているため、NAND の管理は SSD ベンダーのファームウェアに委ねられます。そのため、ストレージ OS 自体では NAND を直接管理できず、SSD ベンダーに依存することになります。一方、ピュア・ストレージは、NAND を管理するファームウェアを自社開発し、ストレージ OS である Purity が直接 NAND をコントロールする道を選びました。その結果として、ストレージ業界でいち早く cMLC/QLC NAND を採用し、全モデルで NVMe の標準搭載を実現しました。ガートナー社のマジック・クアドラントで常に最高位に位置する点からも、このアプローチは正しかったと確信しています。

前述のとおり、ピュア・ストレージはストレージ OS(Purity)レイヤーで NAND を管理する仕組みを持つため、搭載する各フラッシュ・モジュールに対する書き込みサイズを調整できます。WAF は書き込みサイズに大きく依存するため、Purity からフラッシュ・モジュール(NAND)への書き込みは、その NAND に最適なサイズでのみ書き込まれます(図 4:黄色の長方形)。WAF を最小化する最適なサイズは NAND の種類によって変わるため、Purity は搭載するフラッシュ・モジュールにあわせて書き込みサイズを可変で調整します。2017 年以前の FlashArray および //M シリーズが搭載するフラッシュ・モジュールは、SAS 接続 & SCSI 規格でした。そのため、NAND との通信は、フラッシュ・モジュール側のファームウェアに若干依存する必要があり、WAF を完全に 1 にはできませんでした。これを解決したのが、2017 年にリリースされた FlashArray//X です。//X では、搭載するフラッシュ・モジュールの NAND が標準で NVMe に対応し、Purity 自体も NVMe で直接 NAND を管理できるようになりました。これにより、フラッシュ・モジュール側のファームウェアを完全に取り除き、WAF = 1 を実現できました。

WAF はコントロールできる

図 3:WAF はコントロールできる

WAF はコントロールできる

図 4:WAF はコントロールできる

WAF = 1 を実現する書き込みアーキテクチャは、FlashArray のストレージ OS である Purity の特性であるため、//X、//C において共通のものです。そして、これこそが 2019 年に //C で QLC NAND の採用をいち早く実現し、データ削減率を考慮しなくても「No More HDD」を可能にした最大の理由です。

FlashArray//C だけの特性「レイテンシ・リミッター」

最後に、FlashArray//C だけに実装された「レイテンシ・リミッター」という特性をご紹介します。QLC といえど仕組みはフラッシュであるため、1 ms 未満の I/O 速度(レイテンシ)で返すことは可能です。ただし、エンタープライズ向けストレージ製品として提供するには、耐久性や高負荷時の性能安定性に懸念があります。//C では、QLC NAND の寿命を大きく削るような高い負荷の I/O 要求がホストから届いた場合に、Purity はホストに返すレイテンシを調整し、通常 1 ms 未満のレイテンシを 1〜3 ms に制限* します。これにより、高い耐久性と安定した性能を実現しています。

* この実装に特定の機能名はありませんが、本ブログ内では「レイテンシ・リミッター」と表現します。

HDD 想定の要件も AFA で対応

図 5:HDD 想定の要件も AFA で対応

FlashArray//C のリリース当初は、負荷の高さにかかわらず全ての I/O にリミッターをかけていました。本番環境における数年の稼働実績からリミッターの緩和を検討し、2021年9月の Purity バージョン 6.1.9 から発動条件が緩和されました。これにより、I/O サイズが大きい場合や高負荷時にのみリミッターが発動するようになりました。図 6 は、サーバー仮想化環境(VMware vSphere)に //C を導入していただいたお客様が、リミッターが緩和される Purity バージョンにアップグレードした際の I/O 統計情報です。常に 3 ms だったレイテンシが、ピーク時(約 14,000 IOPS)を含め 1 ms 未満に改善したことがわかります。

リミッター緩和とレイテンシへの影響

図 6:リミッター緩和とレイテンシへの影響

FlashArray//C は、オールフラッシュでありながら SAS HDD 並みの GB 単価を実現します。「No More HDD」のメッセージのとおり、ハイブリッドや HDD ストレージを検討される際には、//C も選択肢に加えていただきたいという位置づけの製品です。高負荷時に //C のリミッターが発動すれば、I/O ワークロードによって 1 ms〜3 ms のレイテンシにはなりますが、高負荷でボトルネックになると 10 ms を超える HDD やキャッシュ・ミスによりレイテンシが大きく変動するハイブリッド構成と比較して、大幅に低いレイテンシと優れた安定性を提供します。

まとめ

「No More HDD」を可能にする唯一のオール QLC フラッシュである FlashArray//C をリリースできた理由は、特定の単独技術に依存するものではなく、ピュア・ストレージが長年培ってきたフラッシュに関する技術と、多くの稼働実績から得られたノウハウによるものです。

  • 創業当初から追求してきたフラッシュ・モジュール(NAND)に対する最適な書き込みアーキテクチャ
  • 2017 年以降は Purity が完全に NAND をコントロールすることで WAF = 1 を実現
  • Purity 自体が QLC NAND への負荷をコントロール(リミッター)

ピュア・ストレージは、フラッシュをここまで考え抜いています。

Pure だけが AFA で対応可能な理由

図 7:Pure だけが AFA で対応可能な理由

次回予告

次回は、国内における FlashArray//C のユースケースをご紹介します。


Pure Storage、Pure Storage のロゴ、およびその他全ての Pure Storage のマーク、製品名、サービス名は、米国およびその他の国における Pure Storage, Inc. の商標または登録商標です。その他記載の会社名、製品名は、各社の商標または登録商標です。