web-dev-qa-db-ja.com

DFS-R圧縮アルゴリズムは7-zipとどのように比較されますか?

WAN(英国から米国))周辺の大規模な(60GB)Hyper-V仮想マシンイメージを50Mbpsの専用回線で定期的に転送する必要があります。また、サイト間でDFS-Rを使用します。 7-Zipを使用して仮想マシンを(より小さな100MBのチャンクに)圧縮し、ファイルをDFS-R転送フォルダーにドロップしました。バックログがクリアされたら、もう一方の端で解凍します。

時間を無駄にしているのではないかと思います。VM(主にVMDXファイル))全体を転送フォルダーにドロップし、転送中にDFS-Rに圧縮させた方がよいでしょう。

したがって、問題は、DFS-R圧縮アルゴリズムが7-Zipのネイティブ7z形式と比較してどれほど効率的かということです。 7-Zipは画像を約20GBにパックするため、70%節約できます。

パックとアンパックに余分な時間がかかることは、7-Zipアルゴリズムで考えられるより高い圧縮率よりも重要であると感じています。そうは言っても、100MBのチャンクを転送することは、1つの大きな50GBのVMDXファイルよりも「良い」と感じます。

3
Rob Nicholson

DFS-Rは、リモート差分圧縮と呼ばれるものを使用します。

ファイル全体を比較して転送する代わりに、アルゴリズムは、ソースレプリカとターゲットレプリカの間でデータのシーケンシャルチャンクの署名を比較します。このように、ターゲットの場所でファイルを「再構築」するために、データの異なるチャンクのみをネットワーク経由で転送する必要があります。

そのため、RDCは7-Zipで使用される圧縮アルゴリズムと実際には比較できません。それらは同様の手法(データの範囲にわたって署名辞書を作成する)を使用しますが、7-Zipアルゴリズムは、すべてのデータが一緒に「圧縮」されるロスレスコンテナ形式にバイトを再配置するように設計されています。レプリカの同期を維持するために転送されるデータの量を最小限に抑えるためのファイルバージョン

ターゲットの場所に同様のVMDXファイルが既にある場合は、ファイルを100MBのチャンクに分割する必要はありません。画像を圧縮するときは、常に同じ圧縮アルゴリズムを使用するようにしてください

この動作(類似ファイルを比較し、同じファイルの異なるバージョンではなく、チャンクを抽出する)は、「クロスファイルRDC」と呼ばれ、一般に公開されています。ドキュメントはかなりまばらですが、AskDSブログチームは短いですがかなり良い説明があります このQ&A投稿で

5

Mathiasがすでに述べたように、DFS-Rは "リモート差分圧縮"アルゴリズムrsync's と同様に、リモート側にすでに存在するファイルの変更/追加された部分のみを送信します。 。さらに、 転送前にデータが圧縮されますXPRESS圧縮アルゴリズム (参照: Technetブログ )を使用して、DFS-Rが最初に登場してからServer 2003R2。使用されているXPRESSの実際のバリアントの詳細は見つかりませんでしたが、圧縮はオンザフライで実行する必要があるため、 LZNT1 (基本的には複雑さが軽減されたLZ77)を使用している可能性があります。 NTFSではまったく同じ目的で使用されます。

圧縮率を監視する場合は、 DFS-Rデバッグログ を有効にしてログファイルを評価することを検討してください。

EXPRESSアルゴリズムの圧縮率は、CPU使用率の削減ではなく、ファイルサイズの削減に最適化されたアルゴリズムを備えた7Zipで得られる圧縮率よりも低くなる可能性があります(おそらく2倍にもなります)。ただし、ファイルの変更された部分のみを送信できるRDCを再度使用すると、20GBのアーカイブよりもネットワーク経由で取得するデータが大幅に少なくなる可能性があります。

RDCで転送される7Zipアーカイブを事前に作成することは、両方の世界を最大限に活用するための良いアイデアのように思えるかもしれません。変更を送信するだけで、変更された部分の圧縮率を高くしますが、そうではありません。圧縮するとファイル全体が壊れ、データストリームの先頭で1バイトが変更されただけでも、圧縮ファイルの外観が以前とはまったく異なります。 この問題を軽減するための圧縮アルゴリズムの変更 がありますが、7Zipは今のところそれらを実装していないようです。

全体として、DFS-Rを使用してファイル変更を転送すると、ネットワークを介して送信されるバイトを大幅に節約できる可能性があります。ただし、時間の節約になる可能性はかなり低く、実際の前に両方のファイル(ソースと宛先)を読み取ってチェックサムする必要があるため、宛先とソースに大きなI/OとCPUの負荷が発生します。送信を開始できます。

編集:新しいファイルがある場合、RDCは実際にはほとんど役に立ちません-宛先で同様のファイルを探し、それらを差分転送のベースラインとして使用するrsyncの--fuzzyパラメーターに対応するものはありません。同様のファイルがあることがわかっている場合(たとえば、転送されたVM HD)のベースラインイメージ)、これを使用して宛先ディレクトリを事前にシードすることができます。

3
the-wabbit