(2)サーバサイドPCIeフラッシュ
また最近では、更に高速化できるサーバ用のPCIeフラッシュカードの開発もさかんに行われています。ストレージ内でのフラッシュの活用では、レイテンシは数m秒程度でしたが、サーバ側でPCIeフラッシュカードを活用することで、μ秒レベルにまでレイテンシを低減することができます。IOPS(GBあたり)は、ストレージのフラッシュと比べると100倍、ストレージの15,000回転のディスクと比べると8,300倍まで許容できます。
特にデータベースOLTPのワークロードへの適性が高く、大幅なパフォーマンスの改善が可能です。
しかしながら、従来のサーバ用PCIeフラッシュには以下のような欠点がありました。
1.サーバ障害によるデータ損失のリスク
2.サーバとストレージの間のデータの整合性が保証されない
3.容量の制約によりデータ退避の考慮が必要
4.どの領域用に割り当てるかの考慮とトレンドの変化によるデータ移行
5.特定の物理サーバの専有リソースのためリソース利用効率を上げられない
6.拡張性に乏しい
7.仮想環境においてHA/FTで仮想マシンを切り替える先にもPCIeフラッシュを搭載していなければ切り替えた後にパフォーマンスが大きく低下する
EMCでもサーバサイドフラッシュ「VFCache」を発表しましたが、EMCのフラッシュ・ソリューションでは、まず1~4の弱点を克服しています。
「VFCache」の場合、サーバや容量の制約に依るこれらの問題とは無縁です。モードの選択によって柔軟に対応できますが、VFCacheを「標準モード」で使う場合、データの書き込みは透過的にストレージに対して行います。ストレージから書き込み終了のACKをアプリが受けてトランザクションが終了です。そのため、トランザクションが終了したデータでまだストレージに書き込まれていないデータが、サーバの問題により損失してしまう、というようなリスクはありません。また、データの配置についても、アクセスが多いものが自動的にPCIeフラッシュに配置され、データの読み込みが高速化されます。
一つの物理ディスクボリュームとしてPCIeフラッシュを割り当てて使うのではなく、PCIeフラッシュとストレージ容量を一つのストレージプールとして使うことができます。PCIeフラッシュへ配置するデータの考慮は不要です。さらに、TEMPDB等で、バックアップがあるのでデータは最悪失ってもいいがパフォーマンスが欲しいという場合にも対応できます。
VFCacheの「スプリットカードモード」を使うと、1枚のVFCacheカードの中で、透過的に利用する領域とは別に、DAS(Direct-Attached Storage)としてPCIeフラッシュの保存領域を割り当てることができます。これにより、重要なデータは透過的にストレージが保護し、そうでないものは、PCIeフラッシュで書き込みのパフォーマンスも最大化するという使い分けができます。
*VFCacheのOracle、SQL Server使用時のパフォーマンス結果は以下で紹介します。
・SQL Server 2012のパフォーマンスと可用性を最大化するストレージ技術
・Oracleデータベースのパフォーマンスと可用性を最大化するストレージ技術
さらに、5~7にも対応するPCIeフラッシュ・アプライアンス「Project Thunder」も開発しています。