株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

POCや検証環境で使うべきFlashのグレードは?

本ブログエントリーはPernixData社のテクノロジーエバンジェリストであるFrank Denneman氏のブログの翻訳版です。

本記事の原文はWhat grade Flash to pick for a POC and test environment?で閲覧可能です。
ネットワールドのPernixDataに関する情報はこちら

私の検証環境のためにどんなグレードのSSDを買ったらいい?安いSSDでもいい? POC用にエンタープライズグレードのSSDが必要? どんどん長くなっちゃうのに、なぜPOCに付き合わないといけないんだ? コンシューマグレード?それともエンタープライズグレードのフラッシュなのか? これらはPernixData FVPのプレゼンテーションが終わったあとにあげられる典型的な質問です。おそらくDuncan氏やCormac氏もVSANについて話をした後に同じような質問を浴びていることでしょう。

エンタープライズフラッシュデバイスは高い耐久率、データ保護機能や、コンシューマグレードのフラッシュと比べた際のスピード向上などで知られています。これらの機能は絶対にあったほうが良いものですが、フラッシュのパフォーマンスを検証しようとする際に、もっとも重要な機能ということはありません。

エンタープライズフラッシュデバイスのもっとも興味深い機能はウェアレベリング(書き込みの一箇所への集中を避ける)、スペア容量、ライトアンプリフィケーション回避、ガーベージコレクションの効率、ウェアアウト予測管理です。これによってI/Oの一貫性が得られます。このI/Oの一貫性は検証、POC、そして本稼働中のワークロードに対しても聖杯(至高の目標)なのです。

スペア容量

エンタープライズグレードのディスクの差別化要素の大きなものの一つがスペア容量です。コントローラーとディスクはライトアンプリフィケーションを減らすためにこのスペア容量を利用します。ライトアンプリフィケーションはドライブ上にデータを書き込むページがない場合に発生します。データを書き込むためには、ページは消去された状態でないといけません。つまり、(古い)データがページ内に存在する場合には、ドライブは(新しい)データを書き込む前に、消去を行わないといけないということです。フラッシュにおいての面倒なことは、コントローラーはページの集合体である、ブロック単位で消去を行います。ブロックが消去する必要のないデータが含まれるページを含んでいる場合に問題が起こります。これらのデータをコントローラーがページのブロックを消去する前に、どこか別の場所へ書き込む必要があります。このシーケンスがライトアンプリフィケーションと呼ばれ、発生を最小限に留める必要があります。

これを解決するため、フラッシュベンダーはデバイスにフラッシュセルをオーバープロビジョンしています。技術的に正確な言葉で言うと「LBAアクセスを減らす」ということになります。例えば、Intel DC S3700フラッシュディスクは25%~30%余分にフラッシュ容量をもって出荷されます。この容量はコントローラーに割り当てられ、ガーベージコレクション、NANDディスターブルールもしくはブロック消去のような裏側での処理の管理に利用されます。面白いのはどのようにコントローラーが管理処理を行っているかです。エンタープライズコントローラーは非常に先進的なアルゴリズムでデータの移動を抑えることによって、ブロックのウェアを抑え、どのデータが正しく、どのデータが古い(TRIM)のかを理解し、高速に、そして効率的に正しいデータを移動させ、古いデータを消去後に、論理からを物理LBAに再定義します。ライトアンプリフィケーションについて詳しくはこちらの記事を参照ください。

コンシューマグレードのフラッシュ

コンシューマグレードのフラッシュデバイスはこの領域がありません。ほとんどのものはTRIMをサポートしていますが、そのアルゴリズムの先進性はどうでしょう?殆どの場合、データをちゃんと動かすことができますが、今度ローラーの早さやインテリジェンスはどうでしょうか? もっとも大きな疑問はライトアンプリフィケーションを減らすためのスペアページをどれだけ持っているか?ということでしょう。最悪のシナリオの場合、これは検証を実施している時に日常的に起こるものですが、ディスクが飽和してしまい、データが継続的に降り注いでしまいます。通常、コンシューマーグレードは7%のスペア容量をもっており、データの移動のための領域として常に使える状態ではありません。利用できる領域が限られているため、ドライブはまず、スペア領域内に新しいブロックを割り当てます。その後、結局はスペア領域を読み取りー変更ー書き込み操作を行うために利用します。つまり、コントローラーとデバイスは全体が雑用に追われてしまい、インフラへサービスを提供することが難しくなります。ディスクがスライドパズルを行うようなものです。

Fig87

Anandtech.comはこのような検証を行い、このような結果を証明しています。結果は“Exploring the Relationship Between Spare Area and Performance Consistency in Modern SSDs(リンク先は英文)”という記事として公開されています。非常に良い記事なのでぜひお読みいただくことをおすすめします。この検証では標準のスペア容量を利用していくつかの検証を行っています。検証ではコンシューマグレードのSSDバイスで最も良いSamsung 840 PROを利用しています。検証は単一のブロックサイズで実施されており、結果にあらわれています(実際のワークロードの特徴を表せるものではありません)。

Fig88200から100,000IOPSまでのレンジに散らばった結果が見て取れます。新しいソフトウェアプラットフォームを理解し、評価するのに良いプラットフォームとは言えません。

ユーザー利用領域を減らすと(ファイルシステムを再フォーマットし、利用できるスペースを減らす)とパフォーマンスが向上し、はるかに安定してきます。25から30程度の振れ幅で安定しました。

Fig89VSANもFVPもフラッシュデバイスを自分自身のレベルで管理することを付け加えておきます。ディスクをスペア容量を大きくするようにフォーマットすることはできません。

レイテンシ検証も全く同じです。いくつかのエンタープライズのディスクとコンシューマグレードのディスクを検証してみましたが、結果は控えめに言っても面白いものでした。コンシューマグレードのドライブのパフォーマンスチャートは可愛くありません。リード検証を走らせている仮想マシンのみがディスクにアクセスしている唯一のワークロードですが、ドライブは均一の応答時間を提供することも難しいようです。

Fig90コンシューマグレードからエンタープライズディスクに取り替えて同じ検証を実施しました。今回はレイテンシは一貫しており、アプリケーションの応答時間を予測可能なものにします。

Fig91エンタープライズバイスを使うべき理由:

新しいソフトウェアを検証、評価する場合、それが新しいアーキテクチャだとしても、なぜパフォーマンスがおかしな挙動なのかを考察することから始めたいはずです。ソフトウェアのせいなのか?ディスク?それともアプリケーションの挙動が変なのか? 安定した、一貫性のある、予測可能なハードウェアレイヤを新しいアーキテクチャの基盤として採用しなくてはなりません。安定した環境によって、デバイスのパフォーマンスのベースラインとすることができ、ワークロードの特徴、ソフトウェアのパフォーマンス、アーキテクチャ内の新しいプラットフォームの効果全体を理解することができます。

エンタープライズフラッシュデバイスはこれらの能力をすべて備え、価格を比較したとしても、エンタープライズとコンシューマーグレードのものは極端に大きなものではありません。ヨーロッパではIntel DC S3700 100GBを200ユーロで購入することができます。アマゾンでは200GBを500ドル未満で購入できるようです。100~200GBあれば検証用途には十分です。

記事担当者: マーケティング本部 三好哲生 (@pernixdata_netw)