ユーザーにとってデータ重複排除を効率的かつ透過的に処理するファイルシステムはありますか?
例:
C:\documents\2019\bigfile.csv
(250 MB)を持っていますC:\temp\bigfile.csv
にコピーしましたが、ディスクの使用容量はまだ250 MB(500 MBではありません!)です。 コピーオンライト スタイルbigfile.csv
の数行を変更します:ディスクで使用されるスペースはおそらく251 MBです(まだ500 MBではありません)例2:
myOSinstalldisk.iso
がありますこれは、OSがすべてのファイルをたとえば1 MBのチャンクに自動的に分割し、SHA256ハッシュを(I/O操作ごとに)保存する場合、透過的に機能する可能性があります。例2では、myOSinstalldisk.iso
をディスクに保存すると、OSはチャンクがすでにFS(SHA256ハッシュはハッシュテーブルに存在します)にあることに気付きます。その必要はありません。そのために再びディスクスペースを浪費します。
どのFS Windowsでこれをサポートしますか?Mac用のものはありますか?Linux?
PS:私はWindowsショートカット、シンボリックリンク、ジャンクションなどを探していません(私はすでにこれを知っていて使用しています)
このようなFSは、たとえば次のようになります。
Chunk table
==========
SHA256 of the chunk Location on disk (sector)
2cb4b1431b84ec15... 3467634
d35ed83bb927e27e... 23789
8967d75f4bcd9cc4... 872372
b25c8d879ae23e18... 1265152
...
File table
==========
File Chunks
/home/user/file_a 8967d75f4bcd9cc4... b25c8d879ae23e18... 2cb4b1431b84ec15...
/home/user/file_b b25c8d879ae23e18... d35ed83bb927e27e...
この(疑似)例では、file_a
とfile_b
が1MBの共通チャンクを共有していることがわかります。
もちろん、これは多くの理由で注意が必要です。たとえば、2つの重複ファイルfile_a
とfile_b
があり、file_b
の先頭に1バイトを追加し、次に各チャンクのSHA256ハッシュを追加するとします。異なるため、異なるデータと見なされます...また、このようなFSは、特定のチャンクが使用されなくなったことを知るために、特定のチャンクを使用するファイル数のカウンターを保持する必要があります。必要(ガベージコレクタースタイル)など。
ZFSは、インバンドブロックベースの重複排除をサポートします。これは、LinuxとFreeBSDを適切にサポートするファイルシステム/ LVMハイブリッドです。 ZFSには多くの優れた機能があります。基本的に、ファイルデータからファイルシステムメタデータまですべてがチェックサムされるため、ファイルシステムの破損を即座に検出でき、RAID-Z(RAIDはZFS自体によってのみ管理されます)を使用して修復することもできます。
しかし、支払うべき代償があります。まず、パフォーマンスは従来のファイルシステムほど良くありません。 ZFSは、速度ではなく信頼性に重点を置いています。次に、基本的なZFSには、少なくとも1GBのRAM + 1GBのRAM各1 TB重複排除を希望する(重複排除を効率的に行うには、使用可能なブロックに関する情報をどこかに保存する必要があります)。ECCRAM(サーバーおよびApple =コンピュータ、通常のPCは非ECCを使用します)従来のファイルシステムとは異なり、反転したビットはデータに損傷を与えるだけでなく、たとえばメタデータチェックサムが破損した場合、ファイルシステムに回復不能な損傷を与える可能性があります。ECCはRAMエラーがディスクに到達することはありません。