ITの世界には、いまさら聞けないことや、知ってるつもりでも知らない技術が多いと思いませんか?
そこで今回は、最近にわかに注目されてきた「重複除外(ちょうふくじょがい)」をとりあげてみました。
「あぁ、"じゅうふくはいじょ"なら聞いたことが...」とか、
「2年前から知ってるよ、デデュープのことでしょう」という方も。
今一度、おさらいしてみてはいかがでしょうか。
日本の重複除外(ちょうふくじょがい)市場の黎明期から知っているEMCジャパン BRS事業本部シニア システムズ・エンジニア 村山雅彦が、あなたを"なるほどTechnology"の世界へお連れします。
同じデータ、重複するデータを排除してストレージを効率よく使うために用いられ、特にバックアップの分野で活用されるケースが多い技術です。
英語では、「De-duplication」(デデュープリケーション、デデュープ)。日本語では、非重複化とか、重複除外、重複排除などと呼ばれています。
たとえば、B社用のご提案資料を、A社用資料の宛名とか言葉使いをちょっと変えて使ったとします。そうすると、ストレージには5MBと5MBで計10MBのファイルができます。それをバックアップすると、さらに10MBのバックアップ用データができます。
パワーポイント・ファイルでちょこちょこと変えたファイルですと、変更データ量は数十KBか数百KB。残りの90%余りは、ほとんど変わっていないデータです。でも、変わっていないにもかかわらずその提案資料をバックアップするためには何倍ものストレージ容量を使う。
それは、非常にもったいないのではないでしょうか?
それならデータの中身を見て、変更があればその部分だけを追加してバックアップすれば、1.1倍とか1.05倍のストレージ容量で済みます。
このように、重複除外は限られたストレージ領域をできる限り効率よく使うための技術として広く使われるようになってきました。
「理屈はわかった」と、必ずお客様からは言われます(笑)。そこで、お客様の環境で実際に1週間、重複除外の機能を使ってデータをバックアップしてみると、今までは2倍3倍4倍と倍々のようにデータが増えていったのに、「その通りだね!」とよく言われます。夜バックアップを開始し、朝出社してストレージの使用状況を見てみると、ほんのわずかしか増えていないことが一目瞭然でわかるからです。
個人を特定化するには、指紋や声紋もあればDNA鑑定もあります。データが同じかどうかの判定は、例えていうならば人間と同じような認証の仕方をしています。データの指紋をとって、その指紋情報が一致すれば同じデータだという判定の仕方をしています。これは、重複除外製品の多くのメーカーが行っている判定方法です。データのかたまり(ブロック)毎に生成したデータの指紋情報を基にして、AというデータとBというデータが一致しているかいないかを判定していくわけです。同じと判定できれば、重複してデータを保持せずに済ませます。
正確には、ほかの人とかぶらないID番号のようなものだと思ってください。Aさんは12345678番で、Bさんは67812345番。データの指紋もこのようなID番号のように捉えて判定していきます。コンピュータですので、実際は0と1のビット・パターンで見分けていきます。データのかたまりに番号を付け、バックアップのときに前回と同じ中身のものか、そうでないかを見分けているのが重複除外の判定方法です。
たとえば、AというファイルをコピーしてBという名前にしたとします。ファイル名は違いますが、中身は同じです。ファイル単位では中身に差分はありません。ところが、Aと同じ中身のBというファイルをちょっとだけ変更した場合、ファイル単位での差分としては、これらを全く異なる2つのファイルとして扱うことになります。
一方、データドメイン製品やAvamar製品の差分検出は、ファイル単位の差分検出ではなく、データをより細かいブロック単位でみて、違いがあるかないかを判定します。結果として、検出される差分データ量はより小さくなるため、さらに効率よく差分の検出を行っています。圧縮は、文字通りデータを"ぎゅっぎゅっと圧縮"しているもので、技術的には半分ぐらいになる効果しかありません。重複除外の場合は、同じデータがくればくるほどその効果が上がります。
重複の判定は、固定長ブロックでみるか、可変長ブロックでみるか、2通りあります。
固定長の場合、データの先頭に変更や追加があると、どんどん後ろにその変更データ全体がずれていきます。
あるファイルがあって、そのデータの最初に「A」という一文字でも追加されると、固定長ブロックで重複を判定する場合は、次々とデータの位置がズレて、データ全体としては全部が新しいデータのように見えます。
ところが、可変長ブロックで重複を判定するEMCのデータドメイン製品やAvamar製品の場合は、変更データ部分を可変長の範囲で吸収して判定します。このため、先頭や部分の変更によって、重複する部分の検出ができずに、全く新しいデータだと判断してしまうようなことがありません。
固定長ブロックと可変長ブロックの重複判定の違いですが、皆さんがよくご存知の平家物語の書き出しを引用して下記にご紹介しました。その違い、誰の目にも明らかですね。
確実な判定方法は、ハードディスクを全部読み込むことですが、それでは時間がかかりすぎます。いかにディスクにアクセスせずに判定するかがスピードを上げるポイント。ストレージのCPUとメモリ上の計算だけで、重複の有無を判定できるのが一番速い方法です。
たとえば、あるデータを毎日バックアップするとします。そうすると、次の日のバックアップでは、前日とほとんど同じ順序でファイルが流れてくるわけです。Aというブロックの次は、Bが来て、その次はCが来る。その順序は、たまには変わるかもしれませんが、ほぼ同じなのです。ですから、より速く判定するために、次にくるブロックを予想しておいて待ち構えておくわけです。そんな予想は外れるのでは?と思われるのですが、バックアップの場合は同じ業務のデータを定期的に繰り返して保存しますし、Q2でも触れましたように、変更されたファイルでもブロック単位で見ると多くの部分は変更されずにそのままバックアップされますから、その予想はほぼ99%当たることになります。外れたデータは1%だけで、その1%分をディスクに探しに行けばいいので、判定に要するディスクへの負荷は劇的に減ることになります。
この方法なら、大量のデータのバックアップを受け取る側のストレージでも極めて高速な重複判定が可能になります。データドメイン製品は、このようにストレージ側で重複除外処理を行いますので、既存の環境を一切変えずに導入できるのがポイントです。
一方、ストレージ側だけでなく、バックアップされるクライアント側でも、「これはすでに送ったデータだから送らなくていい」と自分で判断して重複除外するのが、Avamar製品です。ネットワーク上に送るAvamarサーバ宛てバックアップ・データ量を、今までのバックアップ・サーバに送っていたデータ量の1%以下に減らすことも十分可能です。
特に多数のサーバが統合された仮想化環境においてAvamarを導入すると、一斉に行われる夜間のバックアップが物理サーバに与える負荷を大幅に軽減できます。
バックアップ・インフラを新規に再構築する仮想化やクラウド化の時代に欠かせない重複除外テクノロジーといえます。このように、受け取る側と送る側、両方で重複除外を行えるのがEMCの強味です。