Ext4ファイルシステム(またはLinuxが理解している他のファイルシステム)が同じデータを参照する複数のハードリンクに異なるメタデータ(変更時間、所有者、アクセス権など)を割り当てることは可能ですか? (もちろんサイズ上不可能であることを知っています。)
理由:簡単な重複排除アーカイブを作成したいと思います。ファイルにはまったく同じデータが含まれていますが、メタデータは異なる場合があります。私の考えは、各ファイルのハードリンクを作成し、それに応じてメタデータを設定することです。しかし、あるハードリンクを変更すると、他のハードリンクも変更されるようです。 (それとも私の問題に対する別の解決策がありますか?)
答え1
Ext4の場合、ハードリンクはただインデックスノード、すべてのメタデータが含まれています。
したがって、ハードリンクを使用すると、他のメタデータを持つことはできません。
正確に何をしたいのかわかりませんが、またはソフトリンクを見ることができgit
ますzip
。彼らはすべて冗長データを処理する方法を持っています。
答え2
ファイルメタデータ(タイムスタンプ、所有者、権限など)を含むinodeからファイルコンテンツを分離することは不可能です。複数のメタデータセットがある場合、ほとんどのメタデータに問題が発生します。サイズ(明らかに内容と一致する必要があります)だけでなく、修正時間(ファイルを作成するときにすべてのinodeで更新する必要があります)、所有者(複数の場合)所有者、メタデータを管理する人は誰ですか?
user-write-groupよりも柔軟な権限が必要な場合は、次のものを使用できます。アクセス制御リスト、ext4はデフォルトでこれをサポートします。
あなたはそれを使用することができますファイルシステムバインディング他のいくつかのメタデータを使用してディレクトリツリービューをレンダリングします。この方法ですべてを変更することはできませんが、ユーザーとグループを再マップして権限を変更できます。
関連性はありませんが、コンテンツは同じ他のファイルが本当に必要であり、スペースの問題のためにファイルの内容を複製したくない場合は、次のファイルシステムを使用できます。重複排除。アプリケーション内ではほとんど何もせず、ファイルシステムに問題を処理させます。 Ext4はデータの重複を削除しません。ZFSできますが、費用があるRAMと安定性。BTRFS同様の懸念がある場合でもこれを行うことができます。