一方で、ストレージのファームウエアがデータ圧縮機能を積極的に取り込んでいる背景には、「容量単価でディスクドライブアレイと比較すると、オールフラッシュストレージアレイの方が高価」と評価されがちな状況もあります。しかし単純比較するのは早計です。複数のベンダーが訴求していますが、「重複排除やデータ圧縮機能を使うことで、データ格納後の容量単価ではディスクドライブアレイよりも低価格になる」こともあります。ストレージI/Oの課題解決を目的とし、かつ適用領域でデータ圧縮が適している場合には、実質容量単価での比較は導入効果を高める上でも、また社内稟議を通す上でも重要なポイントの一つといえるでしょう。
コスト面の評価でいうと、データベースシステムでフラッシュストレージを採用することには、ストレージI/Oボトルネック改善の他にも効果があります。
一般的に、データベースサーバーの処理能力を高める際、CPUコア数を増やす方法が考えられます。例えばサーバーを1台から2台に変更し、ストレージI/Oに掛かる負荷を分散・低減しながら、アプリケーション処理を並列化するなどの方法です。この方法のデメリットとしては、データベースソフトウエアがコアライセンスの場合、コア数が増加するたびに追加費用が発生してしまうことが挙げられます。
これに対し、性能の高いフラッシュストレージアレイを選択し、かつネットワーク帯域幅を広くすることで、CPUコア数を増やすことなくストレージI/O性能を高め、データ ベースアプリケーション全体のパフォーマンスを改善できるケースもあります。この場合、ライセンスコスト負担を従来と同等か、削減できる可能性が見えてきます。
同様にハイエンド版のデータベースソフトウエアライセンスと、それに盛り込まれている機能を利用して性能改善を行っている場合には、フラッシュストレージを導入することで、シンプルで低コストなライセンスに切り替えても同等以上の性能が得られるケースも考えられます。これらについては、実際のワークロードでどの程度効果があるかを踏まえて評価する必要がありますが、ソフトウエアライセンス面での費用削減も、調達時の試算に盛り込んで検討すべきポイントの一つです。
データベースサーバーのHA(High Availability:高可用性)構成などによる冗長化とは別に、フラッシュストレージもデータを冗長化して保護する機構を持っています。冗長化による信頼性向上だけでなく、パフォーマンス改善を目指すなど、製品ごとに実装に工夫が見られるポイントの一つです。I/O性能だけでなく、高い信頼性が求められるデータベースアプリケーションでは、こうした工夫が施されたフラッシュストレージが向いているといえるでしょう。
なお、「アレイのいくつかがエラーになっても、欠損なくデータを取り出すためのデータ保護の仕組み」、すなわちRAID(Redundant Arrays of Inexpensive Disks)を組む上では、ハードディスクドライブ (HDD)、フラッシュともに、“複数台並べて冗長化する”という基本的なアプローチに大きな違いはありません。ただし、HDDを複数台並べて冗長化するRAIDは、ディスク一本ごとの単位で見ていきますが、半導体メモリの場合には、一枚のカードに複数枚の半導体メモリを並べます。これらを、HDDに見立ててRAID構成を採ってもよいのですが、この場合はあくまでもHDDの代用品としての扱いですから、フラッシュストレージに最適化しているとはいえません。そのため、半導体メモリの特性に合わせた独自のRAID機能により、データ保護性能と処理性能の向上を両立した製品も複数登場しています。
この他、データ保護という意味では、ストレージハードウエア側でデータ暗号化を施したものや、「キャッシュメモリ」上のデータを冗長化する実装もあります。
基本的に、ファームウエアが提供する多くの機能は、ハードウエアで処理した方がオーバーヘッドが少なく、処理が高速になります。ただし、そのためには独自のハードウエアを搭載することになるため、製品単価が高額になる傾向があります。この点については、求める性能とコストのトレードオフの見極めが必要になってくるでしょう。
ソフトウエア実装とハードウエア実装の中間的な位置付けとして、プログラマブルなハードウエア回路である「FPGA(Field Programmable Gate Array)」を利用して一部機能を実現しようとする製品もいくつか登場してきています。FPGAの利用は従来、垂直統合型データベースアプライアンス製品「IBM PureData System(旧「Netezza」)」のようなデータウエアハウス向けのハードウエアに見られたものですが、データベースアプリケーション向けのフラッシュストレージアレイ製品でも、一部の機能をFPGAで実装するようになってきました。
ここまでで簡単に見てきたように、多くのオールフラッシュストレージアレイ製品では、フラッシュストレージに特化した機能の提供やデータ容量単価面での工夫、エンタープライズ利用に耐えるデータ保護の機構を備えています。
ファームウエアでソフトウエア的に提供する機能の場合、製品の組み合わせ次第では、サーバーOSやデータベースソフトウエアでも同様の機能を持っている場合があります。データベースソフトウエアが動作するサーバーのCPUに負荷が掛かる場合には、ストレージ側のリソースを活用した方がパフォーマンスが良くなりますし、逆に、サーバー側のリソースに余裕がある場合はサーバー側で処理を行った方が効果が高まる可能性があります。また、CPU負荷やストレージI/Oは十分だがネットワーク帯域に不安がある場合には、アプリケーション側の工夫などでネットワークを通過するデータ量を削減する機能を積極的に利用する必要があります。
データベースアプリケーションの運用を念頭に考えた場合には、これらの要素の他に、ストレージ管理ツールの機能もチェックしておくべきです。
特に「データベース管理者(DBA)が利用しているデータベースアプリケーションの運用管理ツールと、どのくらいの粒度で情報を連携できるか」「DBAはどのくらいの情報を把握できるのか」「運用管理ツールからストレージをどの程度まで操作できるのか」は、導入後の運用ワークフローに影響を与えるポイントになるため、しっかりと確認しておくべきでしょう。
すなわち、フラッシュストレージ製品単体の機能やパフォーマンスだけではなく、データベース管理ツール、システム全体の運用管理ツールとの連携性など実運用環境を精査することも含めて、あらゆる要素を包括的に考えることが、製品の価値を引き出し、データベースアプリケーションの高速化を図るポイントといえるのです。
Copyright © ITmedia, Inc. All Rights Reserved.