知識ベース

データ重複排除

コンピューティングでは、 データ重複排除は繰り返しデータの重複コピーを排除する手法です。関連する、多少同義の用語は、 単一インスタンス(データ)ストレージです。この手法は、ストレージの使用率を改善するために使用され、ネットワークデータ転送に適用して、送信する必要のあるバイト数を削減することもできます。重複排除プロセスでは、分析プロセス中に一意のデータチャンク、またはバイトパターンが識別され、保存されます。分析が続行されると、他のチャンクが保存されたコピーと比較され、一致が発生するたびに、冗長チャンクが保存されたチャンクを指す小さな参照に置き換えられます。同じバイトパターンが数十、数百、または数千回発生する可能性がある場合(一致頻度はチャンクサイズに依存します)、格納または転送する必要があるデータの量を大幅に削減できます。

重複排除は、LZ77やLZ78などのデータ圧縮アルゴリズムとは異なります。圧縮アルゴリズムは個々のファイル内の冗長データを識別し、この冗長データをより効率的にエンコードしますが、重複排除の目的は、大量のデータを検査し、同一の大きなファイル(ファイル全体またはファイルの大きなセクション)を識別し、それらを置き換えることです共有コピーを使用します。たとえば、一般的な電子メールシステムには、同じ1 MB(メガバイト)の添付ファイルのインスタンスが100個含まれている場合があります。メールプラットフォームがバックアップされるたびに、添付ファイルの100個のインスタンスがすべて保存され、100 MBのストレージスペースが必要になります。データ重複排除では、添付ファイルの1つのインスタンスのみが実際に保存されます。後続のインスタンスは、約100対1の重複排除率のために保存されたコピーを参照します。重複排除は、多くの場合、追加のストレージ節約のためにデータ圧縮とペアになります。格納された各チャンクをエンコードします。

利点

ストレージベースのデータ重複排除により、特定のファイルセットに必要なストレージの量が削減されます。非常によく似た、またはまったく同じデータの多くのコピーが1つのディスクに保存されているアプリケーションで最も効果的です。これは驚くほど一般的なシナリオです。データの損失から保護するために定期的に実行されるデータバックアップの場合、特定のバックアップのほとんどのデータは以前のバックアップから変更されません。一般的なバックアップシステムは、変更されていない(またはハードリンク)ファイルを省略したり、ファイル間の差分を保存したりすることで、これを悪用しようとします。ただし、どちらのアプローチもすべての冗長性を捕捉するわけではありません。ハードリンクは、電子メールデータベースなど、小さな方法でしか変更されていない大きなファイルには役立ちません。違いは、1つのファイルの隣接するバージョンの冗長性のみを検出します(削除され、後で再び追加されたセクション、または多くのドキュメントに含まれるロゴイメージを考慮してください)。インラインネットワークデータ重複排除は、エンドポイント間で転送する必要があるバイト数を削減するために使用され、必要な帯域幅の量を削減できます。詳細については、WANの最適化を参照してください。仮想サーバーと仮想デスクトップは、各仮想マシンの名目上別々のシステムファイルを単一のストレージスペースに統合できるため、重複排除の恩恵を受けます。同時に、特定の仮想マシンがファイルをカスタマイズしても、重複排除は他の仮想マシン上のファイルを変更しません。これは、ハードリンクや共有ディスクなどの代替手段では提供されないものです。仮想環境のバックアップまたは複製コピーの作成も同様に改善されています。

分類

ポストプロセスとインライン重複排除

重複排除は、データが流れているときに「インライン」で、または書き込まれた後に「後処理」で発生する場合があります。

ポストプロセス重複排除では、新しいデータが最初にストレージデバイスに保存され、その後のプロセスがデータを分析して重複を探します。利点は、データを保存する前にハッシュ計算とルックアップが完了するのを待つ必要がないため、ストアのパフォーマンスが低下しないことです。ポリシーベースの操作を提供する実装により、ユーザーは「アクティブな」ファイルの最適化を延期したり、タイプと場所に基づいてファイルを処理したりすることができます。潜在的な欠点の1つは、重複したデータが不必要に短時間保存される可能性があることです。これは、システムがフル容量に近づいている場合に問題になることがあります。

または、重複排除ハッシュ計算をインラインで実行できます。データがターゲットデバイスに入力されると同期されます。ストレージシステムがすでに保存されているブロックを識別する場合、新しいブロック全体ではなく、既存のブロックへの参照のみが保存されます。

インライン重複排除のポストプロセス重複排除に対する利点は、重複データが保存または転送されることがないため、ストレージとネットワークトラフィックが少なくて済むことです。マイナス面として、ハッシュ計算は計算コストが高くなり、ストレージのスループットが低下する可能性があります。ただし、インライン重複排除を使用している特定のベンダーは、インライン重複排除を高速で実行できる機器を実証しています。

多くの場合、後処理およびインライン重複排除の方法は頻繁に議論されています。

データ形式

SNIA辞書は2つの方法を特定します:

  • コンテンツに依存しないデータ重複排除-特定のアプリケーションデータ形式を意識する必要のないデータ重複排除方法。
  • コンテンツ対応のデータ重複排除-特定のアプリケーションデータ形式の知識を活用するデータ重複排除方法。

ソース重複排除とターゲット重複排除

データ重複排除メソッドを分類する別の方法は、それらが発生する場所によるものです。データが作成された場所の近くで発生する重複排除は、「ソース重複排除」と呼ばれます。データが保存されている場所の近くで発生すると、「ターゲット重複排除」と呼ばれます。

ソース重複排除により、データソース上のデータが確実に重複排除されます。これは通常、ファイルシステム内で直接行われます。ファイルシステムは定期的に新しいファイルをスキャンしてハッシュを作成し、それらを既存のファイルのハッシュと比較します。同じハッシュを持つファイルが見つかると、ファイルのコピーは削除され、新しいファイルは古いファイルを指します。ただし、ハードリンクとは異なり、複製ファイルは個別のエンティティと見なされ、複製ファイルの1つが後で変更された場合、コピーオンライトと呼ばれるシステムを使用して、変更されたファイルまたはブロックのコピーが作成されます。重複排除プロセスは、ユーザーおよびバックアップアプリケーションに対して透過的です。重複排除されたファイルシステムをバックアップすると、多くの場合、重複が発生し、バックアップがソースデータより大きくなります。

コピーされたデータが重複排除を必要としていることを計算する必要がないため、ソース重複排除はコピー操作に対して明示的に宣言できます。これにより、 reflinkと呼ばれるファイルシステム上で「リンク」の新しい形式が作成され 、1つまたはモードのiノード(ファイル情報エントリ)が作成されてデータの一部またはすべてが共有されます。 iノードレベルで機能するハードリンク、およびファイル名レベルで機能するシンボリックリンクに類似した名前が付けられています。個々のエントリには、非エイリアスの書き込み時コピー動作があります。つまり、後で1つのコピーを変更しても、他のコピーには影響しません。

ターゲット重複排除は、その場所でデータが生成されなかったときに重複を削除するプロセスです。この例は、SAN / NASに接続されたサーバーです。SA​​N/ NASはサーバーのターゲットになります(ターゲットの重複排除)。サーバーは重複排除を認識せず、データ生成のポイントでもあります。2番目の例はバックアップです。通常、これはデータリポジトリや仮想テープライブラリなどのバックアップストアになります。

重複排除方法

データ重複排除の実装の最も一般的な形式の1つは、データのチャンクを比較して重複を検出することにより機能します。そのために、データの各チャンクには、通常は暗号化ハッシュ関数を使用して、ソフトウェアによって計算されたIDが割り当てられます。多くの実装では、ピジョンホールの原理によりすべての場合に当てはまるわけではありませんが、識別が同一であればデータは同一であると仮定されます。他の実装では、同じ識別子を持つ2つのデータブロックが同一であるとは想定していませんが、実際には同じIDを持つデータが同一で​​あることを確認します。ソフトウェアは、実装に応じて、特定の識別情報が重複排除ネームスペースにすでに存在すると想定するか、実際に2つのデータブロックのIDを検証する場合、その重複したチャンクをリンクに置き換えます。

データが重複排除されると、ファイルが読み戻されると、リンクが見つかった場所はどこでも、システムはそのリンクを参照されたデータチャンクに置き換えるだけです。重複排除プロセスは、エンドユーザーとアプリケーションに対して透過的であることを目的としています。

商用の重複排除の実装は、チャンク方法とアーキテクチャによって異なります。

  • チャンキング。一部のシステムでは、チャンクは物理層の制約(WAFLの4KBブロックサイズなど)によって定義されます。一部のシステムでは、単一インスタンスストレージまたはSISと呼ばれる完全なファイルのみが比較されます。チャンキングに対する最もインテリジェントな(ただしCPUを集中的に使用する)方法は、一般にスライディングブロックと見なされます。スライドブロックでは、ウィンドウがファイルストリームに沿って渡され、より自然に発生する内部ファイル境界を探します。
  • クライアントバックアップの重複排除。これは、ソース(クライアント)マシンで重複排除ハッシュ計算が最初に作成されるプロセスです。既にターゲットデバイスにあるファイルと同じハッシュを持つファイルは送信されません。ターゲットデバイスは、複製されたデータを参照するための適切な内部リンクを作成するだけです。これの利点は、ネットワークを介して不必要にデータが送信されることを回避し、それによってトラフィックの負荷を軽減することです。
  • プライマリストレージとセカンダリストレージ。定義上、プライマリストレージシステムは、可能な限り低いコストではなく、最適なパフォーマンスが得られるように設計されています。これらのシステムの設計基準は、他の考慮事項を犠牲にしてパフォーマンスを向上させることです。さらに、プライマリストレージシステムは、パフォーマンスに悪影響を与える可能性のある操作に対する許容度がはるかに低くなります。また、定義により、セカンダリストレージシステムには、主にデータの複製またはセカンダリコピーが含まれています。これらのデータのコピーは、通常、実際の運用操作には使用されないため、効率の向上と引き換えに、パフォーマンスの低下に対する耐性が高まります。

これまで、データ重複排除は主にセカンダリストレージシステムで使用されてきました。この理由は2つあります。まず、データ重複排除では、重複データを検出して削除するためのオーバーヘッドが必要です。プライマリストレージシステムでは、このオーバーヘッドがパフォーマンスに影響する場合があります。重複排除がセカンダリデータに適用される2番目の理由は、セカンダリデータがより多くの重複データを持つ傾向があることです。特にバックアップアプリケーションは、通常、時間の経過とともに重複データのかなりの部分を生成します。

システム設計が大きなオーバーヘッドを必要としない場合やパフォーマンスに影響を与えない場合には、データ重複排除はプライマリストレージで正常に展開されています。

単一インスタンスストレージ

シングルインスタンスストレージ(SIS)は、コンテンツオブジェクトの複数のコピーを取得し、それらを単一の共有コピーに置き換えるシステムの機能です。これは、データの重複を排除し、効率を高めるための手段です。 SISは、ファイルシステム、電子メールサーバーソフトウェア、データバックアップ、その他のストレージ関連のコンピューターソフトウェアに頻繁に実装されます。単一インスタンスストレージは、データ重複排除の単純なバリアントです。データの重複排除はセグメントまたはサブブロックレベルで機能しますが、単一インスタンスストレージはオブジェクトレベルで機能し、ファイル全体や電子メールメッセージなどのオブジェクトの冗長コピーを排除します。

欠点と懸念

データを重複排除する1つの方法は、暗号化ハッシュ関数を使用してデータの重複セグメントを識別することに依存しています。 2つの異なる情報が同じハッシュ値を生成する場合、これは衝突と呼ばれます。衝突の確率は、使用されるハッシュ関数に依存し、確率は小さいですが、常にゼロではありません。したがって、ハッシュ衝突が発生するとデータ破損が発生する可能性があり、データに違いがあるかどうかを検証するための追加の検証手段は使用されません。インラインアーキテクチャとポストプロセスアーキテクチャの両方が、データの整合性を保証するために元のデータのビットごとの検証を提供する場合があります。使用されるハッシュ関数には、SHA-1、SHA-256などの標準が含まれます。

プロセスの計算リソースの強度は、データ重複排除の欠点になる可能性があります。パフォーマンスを改善するために、一部のシステムは弱いハッシュと強いハッシュの両方を利用します。弱いハッシュは計算がはるかに高速ですが、ハッシュ衝突のリスクが大きくなります。弱いハッシュを使用するシステムは、その後強いハッシュを計算し、それが実際に同じデータであるかどうかの決定要因として使用します。ハッシュ値の計算と検索に関連するシステムオーバーヘッドは、主に重複排除ワークフローの機能であることに注意してください。ファイルの再構成にはこの処理は不要であり、データチャンクの再アセンブリに伴うパフォーマンスの増分ペナルティがアプリケーションのパフォーマンスに影響を与えることはほとんどありません。

もう1つの懸念は、圧縮と暗号化の相互作用です。暗号化の目的は、データ内の識別可能なパターンを排除することです。したがって、基礎となるデータが冗長であっても、暗号化されたデータは重複排除できません。

データ重複排除の欠点ではありませんが、重複排除されたデータの大きなリポジトリで不十分なセキュリティおよびアクセス検証手順が使用されると、データ侵害が発生しました。一部のシステムでは、クラウドストレージで一般的なように、攻撃者は目的のデータのハッシュ値を知っているか推測することで、他のユーザーが所有するデータを取得できます。