様々な場面で情報活用への期待が高まっている。この状況を下支えしているのがストレージだ。ストレージの進化なしに、現在の、そしてこれからのIT環境は存在し得ない。“情報爆発”に耐えられるストレージ環境のあり方を探る中で、前回はストレージ統合時に直面するデータ移行問題について解説した。今回は、データ量そのものを減らす方法として最近話題の重複排除技術について考えてみる。

 本連載では、増える一方のデータにどう対処するかについて、ストレージ環境のあり方を考えている。最も単純な処方箋は、技術論はともかく、データを増やさないようにするか、データを減らすかのいずれかになる。

データを増やさないようにすることは困難

 第1回で、「データの増加量は5年で10倍」になると述べた。その内訳には、バックアップとアーカイブ、および災害対策用の遠隔地複製データが含まれる。つまり、システムの重要性と利便性を高めるために、データは二重にも三重にも保管される。だから、データを増やさないようにすることは、極論すればITの価値を利用しないことにもなりかねない。となれば、現実的にはデータ量を減らすことを考える必要がある。

 データ量を減らす方法には、これまでは削除するか圧縮するしか方法がなかった。そのため、どちらの方法も利用者には妥協を強いてきた。例えば、データを削除しようとすれば、何を削除してよいのかの判断が難しい。データを圧縮すると、容量は減るが再利用時には解凍しなければならない。圧縮されたデータは、アプリケーションからみれば意味がないからだ。解凍には、手間と時間と復元のための空き容量が必要になる。

 そうした中、最近注目されているのが、重複排除のテクノロジーだ。ストレージにデータを書き込む際に、ユニークなデータブロックのみを格納し、既にストレージ内に格納しているブロックを記憶しない(排除する)仕組みである。このとき、元データにおけるブロックの位置情報と、同一内容を持つ既存ブロックとのリンク情報を記憶することで、元データの全体イメージを再現可能にする。

 削除や圧縮時に強いられる妥協を何らすることなく、容量だけが“勝手に”減っていくという驚くべき効果がある。データ量が増加の一途をたどる中で、必然的に登場してきたテクノロジーだといえる。重複排除率は、同じデータブロックを何度も格納する機会が多いほど高くなる。

バックアップには不可避なテクノロジーに

 重複排除が最初に適用されたのはバックアップの領域だ。バックアップデータは世代管理が必要になる。結果、何度も同じ領域や同じファイルをバックアップすることになる。その量は世代数が増えれば増えるだけ、オリジナルのデータ量の何倍にもなる計算だ。重複排除を適用するには最適の場所である。

 フルバックアップでは、2回目、3回目と世代が進んでも、前回からのわずかな更新分を除けば、ほとんど同じ内容がそのままバックアップストレージに書き込まれる。ここに重複排除技術を適用すれば、実用量は何倍、何十倍にも削減できることになる。

 差分バックアップにしても、通常はファイル単位で実行される。そのため、ファイルの一部が変更になっただけでも、そのファイルは差分バックアップの対象になる。重複排除であれば、ほとんどのブロックは未更新のため、更新されたブロックだけがバックアップ対象になる。全体としての効果は、絶大だといえる。

 データブロックがユニークかどうかの判断はハッシュ計算の結果による。書き込み候補となるデータブロックは、書かれる前にそのハッシュ値が計算される。その値がすでにバックアップストレージに記憶されていれば、同じデータブロックを既に内部に持っていることが分かる。すると、そのブロックは書き込まれずに、位置情報とリンク情報だけが記憶される。

 この過程が「書き込み処理を遅延させるのではないか」という声をよく聞く。バックアップ処理では、それを過度に気にする必要はない。指定時間内にバックアップが終了するのであれば、バックアップウインドウが何%か延びたところで、それを問題にすることはないだろう。ハードディスクバックアップを考えているなら、重複排除はぜひとも採用すべき技術である。