3PARは2009年11月19日、ボリューム容量の仮想化によってストレージの使用効率を高める“シンプロビジョニング”機能を備えた同社製ストレージ向けに、消去データの解放などによってデータ量を削減する機能拡張ソフトを追加した。
機能拡張ソフトを使うことで、シンプロビジョニングによる物理ディスクの削減に加え、物理ディスクに書かれるデータ量そのものを削減できるようになる。これにより、ストレージの使用効率がさらに高まる。
今回のソフトは、3PAR製ストレージの「Thin Built-In」機構を応用した、最初のアプリケーションとなる。Thin Built-Inとは、ディスク上で何も書かれていない領域を検出する“ゼロ検出”のための、ASIC(特定用途向けIC)ベースのハードウェア機構である。
インプレスビジネスメディアは、米3PARでワールドワイド・マーケティング担当VPを務めるCraig Nunes氏に、ゼロ検出を応用した運用ソフト群の詳細を聞いた。
──ゼロ検出を応用した機能ソフトは、どのようなものか。
大きく以下の3つがある。
(1)「Thin Persistence」は、ストレージに書き込まれるデータをインラインでリアルタイムに走査し、何も情報が含まれていない部分、つまりゼロやNULL値が連続している個所を検出し、こうしたゼロ・データの保存領域を削減する。
(2)「Thin Reclamation for Veritas Storage Foundation」は、ファイルシステム上でデータを削除する際に、ストレージが提供する機能をAPI(Application Programming Interface)で呼び出すことで、それまで削除データが占有していたデータ領域を解放する。
(3)「Thin Conversion」は、シンプロビジョニングを適用していない既存ボリュームを、シンプロビジョニングを適用したボリュームへと移行するユーティリティだ。ボリューム複製時にThin Built-In機構によるゼロ検出機能を利用する。
──Thin Persistenceの効果が出る典型的な場面は何か。
1つは、そもそも最初からゼロ・データを多く含んでいる冗長なデータを小さくする。ゼロ・データが半分を占める場合は、単純にディスク領域が半減する。
もう1つは、ファイルシステム側やアプリケーション側の機能に依存するが、データの消去時にゼロで上書きしてやることによって、Thin Persistenceのゼロ検出機能が働き、結果として、消去データが使っていたデータ領域を解放できる。
実際に、サーバー仮想化ソフトのVMware ESXでは、データの消去時にゼロ・データで上書きする機能を備えている。Windowsのファイル消去コマンド「SDelete」も、実際に上書きするタイミングがバッチ処理となるものの、VMware ESX同様にゼロ・データで上書きする。
──API経由で消去データを通知する機能とThin Persistenceとの関係は。
Thin Persistenceは、今まさに書き込まれようとしているデータからストレージが能動的にゼロを検出し、データを削減する。一方、APIは、ファイルシステムからストレージに消去データのブロックアドレスを通知することで、該当するディスク領域を削減する。この両者は、補完関係にある。
先述したVMware ESXやSDeleteコマンドのように、消去データをゼロ・データで上書きする場合には、Thin Persistence機能によってディスク領域を削減できる。ただし、ファイル・システム側でゼロ・データによる上書きを実施しなかった/できなかった場合は、データを消去してもディスク領域は減らない。
一方、APIを使うと、Thin Persistenceのゼロ検出機構を使うことなく、つまり、ゼロ・データで上書きするプロセスをファイルシステム側で用意することなく、ファイル・システムから明示的に消去ブロックを指定してディスク領域を解放できる。ブロック指定時には、前処理として(連続したデータを繰り返し書き込む)SCSIコマンドのWRITE SAMEを利用する。
このAPIにより、消去データが使っていたディスク領域の解放が容易になる。現状では、共同開発元の米Symantec(が買収したVERITAS Software)のファイル・システム製品だけがAPIを実装しているが、米3PARでは、このAPIを広く一般に公開するとともに、標準化団体であるANSIのT10 Technical Committeeに働きかけている。
──コンバート機能であるThin Conversionとゼロ検出の関係は何か。
Thin Conversionは、シンプロビジョニング化されていないボリュームをシンプロビジョニング済みのボリュームへとコンバートするソフトだ。
2つのボリューム間のデータをファイル・コピーによってコンバートするのであれば、確かに、Thin Conversionのようなツールは必要ないし、ゼロ検出も関係ない。10TBボリュームのうちの2TBのデータは、そのまま2TBボリュームのうちの2TBへとコピーされるだけだ。
ところが、Thin Conversionは、高速かつ業務を止めずにボリュームを移行する目的で、ファイルレベルではなくブロックレベルでボリュームを複製する。もしここでゼロ検出機能を使わなかったら、ボリューム全体のうち必要なデータだけを抽出することができない。
Thin Conversionではまず、移行元のボリューム全体のうち、使っていない領域をゼロで埋める。このうえで、移行先のボリュームに複製する。こうすると、移行先のボリュームにデータが書かれる際にゼロ検出機構が働き、結果として必要なデータだけをシンロビジョニングボリュームに移行できる。ブロックレベルの複製であるにも関わらず、あたかもファイルコピーしたかのように未使用領域をきれいに削除できる。