フルバックアップ、増分バックアップ、およびデクリメンタルバックアップについて知っています。しかし、なぜ誰も(Windows Backup、TrueImage、Paragon)が次のバックアップアルゴリズムを実装していないように見えるのか疑問に思いました。
リンクをサポートするバックアップメディアが必要です。 NTFS。代替データストリーム(ADS)などのすべての機能をサポートするために、バックアップメディアは同じ形式であることが理想的です。
このアルゴリズムで機能しないものがありますか?
私はまだ問題に気づいていましたが、次の利点があります。
あなたが説明するものは、rsync
とその--link-dest=
オプションを使用して、 dirvish などの数十のラッパープログラムを介してすでに使用されています。
実行可能な計画のようです。これにより、バックアップの表示と使用にかかる時間が短縮されます。バックアップが頻繁に使用され、完全なスナップショットを確認する必要がある場合、これは非常に便利です。
「LからCに移動」という表現を、単に「LからCにハードリンク」と言うように変更します。
1つの考慮事項-(最後の箇条書きを参照して)多数のリンクを含むファイルを削除することは、それらのリンクをすべて見つけて削除することを意味します。したがって、その方法でスペースを選択的に回復することはより困難ですが、findコマンドを使用するのは簡単です。
それは基本的にあなたがデロリアンコピーと呼んでいるものだと思います。たとえば、この動作を実装するWindows用のLink ShellExtensionがあります。彼らは彼らのドキュメンテーションでかなり良い説明をしています:
http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html#deloreancopy
HardLinkShellExtension 「Delorean-Copy」( 他の回答 を参照)を備えたソリューションは、「すぐに使用できる」ソリューションだけではありません。選択肢があります:
ln.exe
を使用して古いバックアップのハードリンクコピーを新しいバックアップフォルダに作成し、xcopy
またはrobocopy
を使用して新しいファイルのみをコピーして古いファイルを削除します(i robocopyの場合は--mirror
だと思います)。変更されたファイルが削除されてからコピーされ、変更されただけではないことを確認するためにテストします(後者は、ハードリンクのために古いバックアップでもファイルを変更します)。xcopy
またはrobocopy
を使用して通常のバックアップを作成してから、 dfhl.exe /l /r /w /s /h "X:\Backups-parent-folder\."
を実行してすべての同一ファイルをハードリンクします。finddupe -hardlink X:\Backups-parent-folder\**
です。
免責事項:finddupeを除いて、上記のすべてのプログラムを使用しましたが、必ずしも同じ方法であるとは限りません。そして、私はどのプログラムにも金銭的なつながりや投資、その他のつながりはありません。
あなたが説明しているのは本質的に増分バックアップスキームです。
Dan D.が指摘 のように、実際にはさまざまなツールで使用されています。特に、ハードリンクが多くのプログラムによってネイティブに処理されるUnixライクなプラットフォームで使用されています。
ただし、多くのWindowsプログラムはハードリンクをうまく処理しません。 FATの時代には、ファイルシステム内の2つの名前が同じデータブロックを指すことは許可されていなかったため、ハードリンクは実際にはエラーと見なされていました。
1つのバックアップは以前のすべてのバックアップに基づいて構築されるため、説明するのは増分バックアップスキームです。唯一の本当の違いは、それらの以前のバックアップが参照される方法と、問題のファイルの参照カウントがゼロに達したときにのみデータが実際に削除されるため、以前のバックアップを削除する方が簡単であるという事実です。バックアップから参照される時間が長くなります。もちろん、その欠点は、特定の以前のバックアップを削除することによって解放されるスペースの量を正確に予測することが難しいことです。極端な場合、ファイルシステムのメタデータによって使用され、再利用されるスペースを除いて、実際にはゼロになる可能性があります。 (そのバックアップと隣接するバックアップの間で変更はありません。)
「通常の」増分バックアップの場合、手動で復元を行う必要があります。あなたが説明しているものの場合、参照は暗黙的です。ただし、最新のバックアップ中に実際にコピーされなかった(参照カウントが正確に1である)すべてを削除した場合でも、複数の増分バックアップを作成した場合と同じように、バックアップは不完全になります。次に、最新のものだけを復元しようとしました。