重複排除 技術解説(1)重複排除が注目を集める理由

ASCII.technologies 2011年1月号に寄稿した「重複排除技術が革新するストレージの世界」を、何本かのエントリに分けて公開させて頂きます。まずは、第一章「重複排除が注目を集める理由」です。第二章の技術解説、第三章の今後の展望に関しては、後日公開する予定です。なお、編集前のテキストを用いていますので、実際の記事と少し差異があります。



[記事序文] 重複排除(Deduplication)という技術を聞いたことがあるだろうか?その名が示すとおり、「データ内に存在するムダな重複部分を排除して一つにまとめてしまう」技術のことで、ストレージシステムを大きく変え得る技術として、市場で大きな注目を浴びている。本記事では、この新技術はなぜそんなにも注目されているのか、技術にはどのような種類があるのか、そして今後どのように発展していくのかなど、重複排除技術の現状と今後の展望について解説する。


[第一章序文] 重複排除が市場で注目を浴びている理由は、ビジネス観点でユーザに大きなメリットがあるからだ。本章では、重複排除が具体的にどういったメリットをユーザにもたらすのかについて解説する。メリットを理解することで、次章の技術解説がより理解しやすくなると思う。

重複排除がもたらすコスト削減効果

現在、重複排除の主な適用先はバックアップシステムである。重複排除を圧縮と共にバックアップデータに適用すると、一般的な運用においてはデータ容量を約20分の1にまで削減できると言われている。この20分の1という数字のからくりについては次節以降で説明するが、まずはこの数字を前提に話を進めていこう。
データ容量が20分の1になると、ハードディスクやストレージコントローラの数を大幅に減らせるので、装置コストを大きく削減することが可能になる。また、装置を減らせるということは、ラック占有面積やシステムの消費電力を大幅に減らせるということでもある。これにより、管理コストや電力コストなどのランニングコストにおいても大きな削減効果が得られる。これらを全て合わせると、非常に大きなコスト削減に繋がるという仕組みだ。
この大きなコスト削減効果が、市場で評価されている。米国のStorage Magazineが昨年9月に行った調査 では、21%もの回答者が既に重複排除を使用しており、計画段階にあるものも含めると昨年の末までに採用率は41%に達するという結果が出ている。米国では、重複排除はキャズムを超えてメインストリームに広まっている段階である。
日本市場においては重複排除はまだ新しい技術であり、メインストリームの顧客層の多くが採用するところまでは行っていない。しかし、ここ数年でそれが大きく変わってくるのは確実だろう。日本ストレージ市場の多くのトレンドは米国市場から数年遅れて現れると言われているし、そのコスト削減効果は日本の企業ITシステムでも当然有効だ。

多くの重複が潜むバックアップデータ

それでは、バックアップデータに重複排除を適用した場合になぜそんなに大きな容量削減効果が期待できるのか、そのメカニズムを詳しく見ていこう。
企業ITシステムの一般的なバックアップポリシーは、平日に増分もしくは差分バックアップを行い、エンドユーザからのアクセスが少なくなる週末にフルバックアップを行うというものである。通常、数世代分のフルバックアップが、増分・差分バックアップと共にストレージに保管される。米国で重複排除ストレージの販売に携わった筆者の経験からすると、大企業では8〜12世代ぐらい、中堅企業だと4〜8世代ぐらいのフルバックアップを保管するところが多かった。バックアップストレージには4〜12週分ぐらいのフルバックアップが常時保管されているのである。
このデータセットに、ムダな重複データが多く含まれている。数世代のフルバックアップが、相互に同じデータ部分を山の様に持っているからである。一週間の間に全てのデータが更新されるシステムというのは非常に稀で、一週間に更新されるデータは全体の5%以下だと一般的には言われている。裏を返せば、新しくフルバックアップを行うとき、95%以上のデータはバックアップストレージの中にあるデータと同じだということである。
ここに重複排除を適用すると、非常に高い効果が得られる。次章の技術解説でその仕組みは説明するが、最近の重複排除技術はデータセットの中の重複部分をかなり高い確率で検出できるので、多くの場合、95%以上の同一データはそのほとんどが重複だと判定される。重複だと判定されると、そのデータは消去され、同一データへのリンクが作られる 。つまり、データセットの中でユニークな5%以下の部分だけが新たに格納され、それ以外の部分はリンクのみが格納される。リンクはデータよりもずっと小さいサイズなので、重複データに関しては容量はほとんど増加しない。結果、従来のやり方と比べて、使用容量が大きく削減されることになる。
多くの世代のフルバックアップを格納すればするほど、この容量削減効果は高くなっていく。企業ITシステムでは前述の様に4〜12世代ものバックアップを格納することが多いので、非常に高い効果が得られることになる。

<コラム> 重複排除は圧縮と併用されることが多い

重複排除と圧縮は両立が可能である(ここで言う圧縮とは重複排除とは違って、従来から使われてきた、ファイル単体やブロック単体のサイズを縮小する技術である)。重複排除が行われる場合、同一データが排除されてユニークなデータの集合がバックアップストレージに保管されるが、そのユニークなデータセットに圧縮を適用することができる。
重複排除技術を使っている製品の多くは重複排除機能だけでなく圧縮機能を持っている。重複排除と圧縮を併用すると、両方の効果が掛け算で効いて、より大きな容量削減効果につながっていく。

20分の1を生むメカニズム

それでは、重複排除の容量削減効果を少し定量的に見ていこう。この図では、平日に増分バックアップ、週末にフルバックアップという企業ITシステムの一般的なバックアップポリシーに基づいてバックアップを行った際に、重複排除と圧縮でどれぐらい容量削減効果が得られるかということを示している。上の段から、最初の週末のフルバックアップ、その後に続く平日の増分バックアップ四回、そして二回目の週末のフルバックアップを示している。バックアップデータのサイズは、フルバックアップが1TB、増分バックアップがその10%の100GBだと仮定している。容量削減効果については、Data Domain製品の実績に基づいた数字を使っている(重複排除と圧縮の効果を理解する際の目安として提供されている数字である)。

最初のフルバックアップの容量削減効果は2倍から4倍と、そんなに効果は高くない。ここでは重複排除と圧縮が掛け算で効いているので、圧縮が約2倍の削減効果を持つとすると、重複排除単体の削減効果は1〜2倍程度と推定される。この様に、フルバックアップ一回だけでは高い重複排除効果には繋がらないことが多い 。
一般的に、重複排除がもっとも効果を発揮する場所は、二回目以降のフルバックアップである。前述のように、週に更新されるデータは全データの5%以下であるから、重複排除だけで20倍以上の容量削減効果が得られる計算になる。ここに圧縮が加わると約50〜60倍という非常に高い容量削減効果が得られる。
50〜60倍の容量削減効果により、1TBの元データは、18GBという非常に小さなデータサイズにまで削減される。従来のバックアップでは週を追うごとに1TB、2TB、3TBとバックアップデータが増えていき莫大な容量となっていたのが、重複排除を導入すると、まず最初の1TBが250GB程度に、そしてその後はわずか18GBずつしか増えていかないというようになる。つまり、週を追うごとに見かけ上のデータ容量は増え続けるが、実際のデータ容量は増えていかない。最終的に大体20分の1ぐらいで落ち着くという計算である。

重複排除はレプリケーションを変える

重複排除はレプリケーションと併用されることが多い。その理由は、重複排除技術はレプリケーションに対しても非常に大きなコスト削減効果を発揮するからだ。以下、その仕組みを解説しよう。
レプリケーションとは、一般的に、物理的に違う場所(ディスティネーション側)にオリジナルのデータ(マスタ側)の複製を作る機能を指す。今までのレプリケーションと重複排除機能を備えたレプリケーションとの違いは、重複データを認識するかどうかという点である。今までは、マスタ側に更新が入ると、その更新データを差分としてディスティネーション側に送っていた。ところが重複排除が入ると、そのデータをディスティネーション側が既に持っているかどうかというチェック(重複かどうかというチェック)を行ってからデータを送ることができる。言い換えると、ユニークなデータのみを送ることができるようになるのである。
この差がどれぐらい大きな効果に繋がるのか、前節のバックアップポリシーの例を参照しながら定量的に考えてみよう。前節の例で、二回目のフルバックアップをオフサイトにレプリケーションする場合、今までのレプリケーションのやり方では1TBのデータをまるまる別サイトに送らなければならない。災害対策要件上、もし12時間以内にデータをオフサイトに複製する必要がある場合、1TB/12hrsで約200Mbpsの帯域をレプリケーションのために用意する必要があることになる。
重複排除機能を備えたレプリケーションを使うと、1TBではなく18GBのデータのみを転送すればよいことになるので、18GB/12hrsで約4Mbpsの帯域で済むことになる。この50倍もの差は大きい。もちろん、重複排除の場合には通常よりも多くのメタデータなどの通信が必要になるのでこれ以上の帯域が使われるが、メタデータの容量はデータに比べてずっと小さいため、本質的にはデータ送信量はそう変わらない。
このように、重複を認識することができるようになれば、レプリケーションの際に流れるデータ量をかなり削減することができるようになる。今までは、レプリケーションを行う場合には広い帯域が必要だというのが当たり前で、そのランニングコストが常に問題になっていたが、重複排除を組み合わせることでその状況を一変させることができる。