Michael Chen | コンテンツ・ストラテジスト | 2024年2月14日
データ重複排除は、データやファイルの冗長なコピーを体系的に排除するプロセスであり、これによりストレージコストの削減やバージョン管理の向上が期待できます。あらゆるデバイスがデータを生成し、組織全体でファイルを共有する時代において、データ重複排除はIT運用における重要な要素です。また、データ保護と事業継続性を支える重要なプロセスでもあります。バックアップにこの手法を適用すると、重複したファイルやデータブロックを特定・排除し、重複のないデータを1つだけ保存できます。これによりネットワーク経由で転送されるデータ量が減り、コスト削減だけでなく、バックアップやリカバリの所要時間短縮にもつながります。
データ重複排除とは、データベースやストレージから同一のファイルやブロックを取り除くプロセスです。この処理は、ファイル単位、ブロック単位、あるいはバイト単位など、アルゴリズムに応じてさまざまな精度で実行されます。効果は「データ重複排除率」と呼ばれる指標で測定されることが一般的です。重複排除を行うことで、組織のストレージに空き容量が増えますが、その効果の大きさは業務内容やファイルの種類によって異なります。IT部門は定期的に重複データの有無を確認すべきですが、重複排除を頻繁に行うメリットも環境や条件によって大きく異なります。
主なポイント
データ重複排除プロセスでは、専用のツールがストレージボリュームをスキャンし、重複データを検出して指定されたコピーを削除します。重複を見つけるため、システムは各データに付与された一意の識別子(ハッシュ値)を比較します。同じハッシュ値が見つかった場合、そのデータは1つだけ保存し、重複分は元のコピーへの参照に置き換えられます。
重複排除システムは、ローカルストレージ、データカタログなどの管理ツール、データストア内を検索し、構造化データ・非構造化データの両方をスキャンします。以下は、このプロセスを理解するうえで重要な用語と定義です。
データ重複排除は、ストレージ容量や計算リソース、コストの節約に大きく貢献します。基本的には、重複排除はストレージボリュームの削減を目的としています。しかし、あらゆるデバイスが膨大なデータを生成し、部門間でファイル共有が日常的に行われている現代では、重複データの影響は非常に広範囲に及びます。たとえば、重複データが多いと処理速度が遅くなったり、ハードウェアリソースを無駄に消費したり、冗長性が増すことで各チームが異なる重複ファイルを使い混乱を招くこともあります。重複排除によって、これらの課題を解消できるため、多くの組織ではITメンテナンス戦略の一環として定期的に重複排除を実施しています。
データ重複排除はリソースを多く消費するデータ管理プロセスであるため、実施のタイミングはネットワーク設計や従業員のファイルアクセスの状況など、複数の要素を考慮して判断する必要があります。以下は、データ重複排除がよく利用される代表的なケースです。
汎用ファイルサーバーは、個人のキャッシュファイルや部門共有フォルダなど、幅広い種類のデータの保存・提供を担います。この種のサーバーは、利用者数も多く、ユーザーロールも多様なため、重複ファイルが多く存在しやすい環境です。重複の主な原因としては、ローカルハードドライブからのバックアップ、アプリケーションのインストール、ファイル共有などが挙げられます。
仮想デスクトップ・インフラストラクチャ(VDI)は、仮想化されたデスクトップを集中管理し、リモートアクセスを提供する技術です。ただし、仮想ハードドライブの内容がほとんど同一であることが多いため、重複ファイルがストレージ容量を圧迫しがちです。さらに、多数のユーザーが業務開始時などに一斉に仮想マシンを起動すると、「VDIブートストーム」と呼ばれる現象が発生し、パフォーマンスが著しく低下することがあります。重複排除を用いれば、各種アプリケーションリソースをオンデマンドで呼び出す際にインメモリキャッシュを利用することで、こうした問題を緩和できます。
バックアップでは、冗長性確保のためにファイルのコピーが頻繁に作成されます。ただし、同じファイルを際限なくコピーし続ける必要はありません。データ重複排除を活用することで、1つの「きれいな」バックアップファイルを基準にして、以後のバックアップで重複するデータは基のファイルを参照するだけで済みます。これにより、冗長性を維持しつつリソースやストレージスペースを最適化できます。
重複排除ツールを利用することで、データ転送プロセスをより効率的に進めることができます。全体を上書きするのではなく、ツールがファイルをセグメント単位で判別し、必要な部分のみを転送します。たとえば、非常に大きなファイルの新バージョンを受け取る際、更新されたセグメントが一部だけであれば、転送や上書き処理はその部分だけに限定され、処理時間が大幅に短縮されます。
アーカイブシステムは一般的にバックアップと混同されがちですが、いずれも長期保存を目的としています。システムでは災害復旧や備えのためにバックアップを生成しますが、アーカイブシステムは、もはや日常的に使われなくなったデータを保持するために利用されます。ストレージボリュームの統合や新規セグメントの追加時に重複が発生することがありますが、重複排除プロセスによってアーカイブの効率を最大化することが可能です。
データ重複排除ツールは、ファイルやファイルブロックごとに重複識別用のフィンガープリント(ハッシュ)を比較し、重複が確認されれば、それを記録し削除します。ここでは、具体的な処理手順について説明します。
チャンク化とは、ファイルを細かなセグメント(チャンク)に分割して重複排除を行うプロセスです。セグメントのサイズはアルゴリズムで自動的に決定したり、設定ガイドラインで指定したりします。チャンク化によって、より細かな粒度で正確な重複排除が可能となりますが、その分計算リソースも多く必要です。
次に、ハッシュアルゴリズムによって各チャンクに対し一意のハッシュ値が割り当てられます。重複排除ツールは、処理済みデータのログにこのハッシュ値がすでに存在するかをチェックし、すでに存在する場合は重複データとみなし、削除してストレージスペースを節約します。
重複排除プロセスの結果は、参照テーブルに記録されます。このテーブルには「どのセグメントやファイルが削除されたのか」「どのデータと重複していたのか」といった情報が残されます。これにより、重複排除の透明性や追跡性が確保でき、ストレージ全体で各ファイルがどのソースを参照しているかの記録も残ります。
組織は、予算やネットワーク帯域、冗長性ニーズに応じて、さまざまなデータ重複排除の手法から最適なものを選択できます。どこで処理を行うか、いつ処理するか、どの程度細かく処理するかといった要素を組み合わせることで、自社に合わせた最適なソリューションを構築できます。
インライン重複排除とポストプロセス重複排除の図:
インライン重複排除:
ポストプロセス重複排除
文書を編集して重複する言葉や表現を削除し、内容をすっきりさせるのと同じように、重複排除は企業のデータを整理し、ストレージコストの削減、帯域幅の節約、バックアップ効率の向上といった効果をもたらします。
ファイル数が減ることで、組織全体で必要となるストレージ容量が少なくなります。これはデータ重複排除の最も明確な利点のひとつであり、他のシステムにも恩恵をもたらします。バックアップ用のスペースを減らせるだけでなく、データのスキャンやバックアップ時に消費するコンピュートや帯域幅も節約できます。
データ重複排除によりバックアップ処理の負荷が軽減されるため、結果として災害復旧のスピードと容易さが向上します。バックアップファイル自体が小さくなり、効率的に作成できるため、復旧時に必要となるリソースも少なくて済みます。
データ重複排除によってバックアップファイルの容量が小さくなるため、ストレージ・計算リソース・処理時間といったバックアップ時の負荷も減少します。これにより、組織はバックアップのスケジュールを柔軟に調整できるようになります。
転送すべきファイル数が減れば、その分必要な帯域幅も少なくて済みます。データ重複排除は、バックアップやアーカイブ、災害復旧時のリストアなどあらゆるデータ転送プロセスにおいて、ネットワークリソースの使用量を低減し、ネットワーク効率を高める効果があります。
データ量の急増により、あらゆる規模の組織でストレージコストが急速に上昇しています。重複排除を導入することで、日常業務やバックアップ・アーカイブに必要なストレージ容量を減らし、コスト削減が期待できます。さらに、エネルギー・計算リソース・帯域幅・運用管理にかかる人件費の削減など、間接的なコストメリットも得られます。
データ重複排除は、リソース活用の最大化やコスト削減に有効な手段ですが、その一方でいくつかの課題も伴います。特に、細かな粒度で重複排除を行う場合には多くの計算リソースが必要となる点が挙げられます。主な課題や懸念事項は以下の通りです。
ブロックレベルで重複排除を実施する場合など、データ重複排除は多くのリソースを消費します。IT部門は、十分な帯域幅があるか、業務活動やバックアップ先・納期に影響がないかなど、自社環境に合わせて重複排除のタイミングや方法を慎重に検討する必要があります。
ハッシュ衝突とは、ランダムに生成されるハッシュ値がたまたま重複する現象です。重複排除プロセスでブロックレベル手法を用いる場合、各データチャンクにハッシュ値を割り当てることから、このハッシュ衝突が発生するリスクがあり、最悪の場合データが破損する恐れもあります。これを防ぐには、ハッシュテーブルのサイズを大きくするか、衝突解決と呼ばれる方法を導入する必要があります。代表的な手法として、チェイン法とオープンアドレス法があります。チェイン法とは同じハッシュ値を持つ複数の要素を連結リストや別のデータ構造で管理する方法で、オープンアドレス法とはハッシュテーブル内の別の空き場所に重複した要素を格納する方法です。それぞれに長所と短所があるため、ITチームはハッシュアルゴリズムの長さや複雑さと、これらの回避策を慎重に比較検討する必要があります。
どんなプロセスにも絶対の安全はなく、重複排除の過程で、重要かつ一意のデータが誤って削除・改変される可能性は常に存在します。完全性の問題が発生する主な要因には、ハッシュ衝突、ソースブロックの破損、ディスク障害・停電・作業ミスなどによる処理中断、サイバー攻撃の成功、あるいは単純な操作ミスなどが挙げられます。現在の重複排除ツールやプロトコルの品質は高いですが、こうした問題が発生するリスクはゼロではなく、深刻なトラブルの原因にもなり得ます。
重複排除プロセスでは、変更履歴や各ブロックごとに付与されるデジタル署名など、新たなメタデータ(「フィンガープリントファイル」)が生成されます。 このメタデータ自体がストレージ容量を必要とし、場合によってはデータ整合性の問題を引き起こす場合もあります。たとえば、このメタデータが破損すると、データ復旧作業が大幅に困難になる恐れがあります。
データ重複排除は長期的にはストレージ使用量の削減によってコストを節約できますが、初期導入時には投資が必要です。これには、重複排除ツール自体のライセンス費用(通常はレコード数ベース)、さらに導入・運用・管理を行うIT担当の作業工数などが含まれます。
実際の現場でデータ重複排除はどのように機能しているのでしょうか。理論上は「重複データを削除し、リソース消費を減らし、複数のバージョンが混在することによるエラーを最小限に抑える」というシンプルなデータサイエンスの概念ですが、業種や部門ごとに目的や課題が異なります。ここでは代表的なユースケースを紹介します。
顧客関係管理: CRMシステム内では、顧客情報や連絡先、取引情報などが複数のソース、異なる粒度やフォーマットで記録される場合があります。その結果、マネージャーごとに微妙に異なる情報を持つなど、データの不整合が発生しやすくなります。たとえば、取引先担当者の情報が複数のデータリポジトリにある場合、その人が退職した際、一つのリポジトリだけしか更新されないと、古い情報をそのまま使い続ける人も出てきます。データ重複排除を行うことで、常に正確な顧客情報の「単一の情報源」を確保でき、すべての担当者やグループが最新データに基づいてビジュアライゼーションを作成したり、分析を実行したりできます。
データ統合: 合併や組織再編、M&Aなどで複数の組織が統合されると、同じアプリケーションの異なるインスタンス間に重複レコードが大量に生じます。たとえば、大手企業が小規模な競合企業を買収した際、顧客の40%が重複してERPシステムに登録されているケースもあります。こうした場合、重複排除を活用すれば、無駄なデータやストレージを削減できるだけでなく、統合後の組織内で一貫性のある最新情報の活用が可能になります。
仮想コンピューティング: テスト環境や、特定のアプリケーションや社内システムへの仮想アクセスなどで仮想デスクトップを使用する場合、データ重複排除により効率性を高めることができます。特にユーザー数が多い場合に効果的です。仮想マシンには非常に似たデータが多く含まれているため、重複したファイルが多数存在します。データ重複排除を行うことで、仮想マシンによって大量生成される重複データを一掃し、ストレージの無駄な消費を防ぐことができます。
バンキング: 銀行などの金融機関では、部門や支店ごとに同じ顧客情報のデータが重複して保存されていることがあります。重複した顧客情報は、不正利用の入り口になる恐れがあり、犯罪者によるなりすましや不正取引など、さまざまな違法行為につながるリスクがあります。また、不正の有無をチェックするために重複データを調べたり処理したりするには、多くの手間やリソースが必要になります。データ重複排除を行うことで、銀行や信用金庫などの金融機関は業務効率とセキュリティの両面を向上させることができます。
これらはユースケースの一部にすぎません。大量のデータを生成するあらゆる組織が、データ重複排除の恩恵を受けることができます。
多くのプロバイダーがデータ重複排除ツールを提供していますが、自社に最適なものはどれでしょうか。以下は、候補を絞り込む際に検討すべき主な要素です。
データ重複排除の課題を根本的に解決する最善策は、そもそも重複を極力発生させないことです。Oracle HeatWaveは、トランザクション処理、データウェアハウスやデータレイクを横断するリアルタイム分析、機械学習、生成AIをひとつのクラウドサービスで統合的に提供することにより、これを実現します。HeatWaveのお客様は、分析のためにトランザクションデータベースから別の分析用データベースへデータを複製する必要がなく、次のようなメリットが得られます。
組み込みのHeatWave AutoML機能により、お客様はHeatWave環境内でデータを複製することなく、機械学習モデルの構築・学習・説明を行うことができます。
さらに、HeatWave GenAIは、自動化されたデータベース内ベクトルストア、スケールアウト型ベクトル処理、自然言語での対話機能などを備え、統合・自動化されたセキュアな生成AIを提供します。AI分野の専門知識がなくても、データを別のベクトルデータベースに移動することなく、生成AIのメリットを直接活用できます。
HeatWaveを利用すれば、トランザクション処理、分析、機械学習、生成AIといった複数のクラウドサービス間でデータを重複させる必要がなくなり、データ基盤のシンプル化、意思決定の迅速化と高度化、生産性向上、セキュリティ強化、コスト削減が実現できます。
AIは、CIOがデータを分析してクラウド支出を最適化したり、アーキテクトにコードの調整を提案してエグレスを最小限に抑えたりするのに役立ちます。人工知能のパワーを今すぐ活用して、人材、セキュリティ、その他の課題に対処する方法をご確認ください。
重複排除の例として、組織のデータをバージョンごとにバックアップやアーカイブするケースが挙げられます。それぞれのアーカイブには、変更されていない同じファイルが複数含まれることが一般的です。重複排除を行うことで、これらの重複ファイルを含まない新しいアーカイブバージョンを作成し、代わりに単一のオリジナルファイルへの参照(ポインタ)を含めることで、追加のストレージを消費せずにデータを管理できます。
重複したレコードはストレージ容量を無駄に消費します。ストレージが無駄に増えることで、バックアップやマルウェアスキャンの際にもより多くの帯域幅や計算リソースが必要となります。重複排除により、ストレージ使用量が削減され、帯域幅やストレージ容量など全体的なリソース消費も抑えられます。
重複は「データの重複」と「データの冗長性」の両方から発生します。データの重複は、ユーザー自身が重複ファイルをシステムに追加してしまう状況を指します。一方、データの冗長性は、重複するファイルやレコードを一部含む複数のデータベースを統合した際に、重複データが生成される状況を指します。
重複排除は、ストレージ容量を解放し、長期的な効率向上やコスト削減に役立ちます。プロセスそのものは多くのリソースを消費し、コンピュート性能や転送帯域幅など、ネットワークのさまざまな部分を遅延させる可能性があります。そのため、IT部門は重複排除の実行タイミングを戦略的に計画する必要があります。