如果要进行硬链接,请注意该文件的权限。注意,所有者,组,模式,扩展属性,时间和ACL(如果使用的话)存储在INODE中。只有文件名不同,因为文件名存储在目录结构中,其他指向INODE属性。因此,链接到同一索引节点的所有文件名都具有相同的访问权限。您应该防止修改该文件,因为任何用户都可能将文件损坏。很简单。足够了,任何用户都可以使用相同的名称放置其他文件。然后保存索引节点号,并为所有硬链接名称破坏(替换)原始文件内容。
更好的方法是在文件系统层上进行重复数据删除。您可以使用BTRFS(上次非常流行),OCFS或类似方法。查看页面:https ://zh.wikipedia.org/wiki/Comparison_of_file_systems,特别是在表功能和列重复数据删除中。您可以单击它并进行排序:)
特别看看ZFS文件系统。这可以作为FUSE使用,但这种方式非常慢。如果需要本机支持,请查看页面http://zfsonlinux.org/。然后,您必须修补内核,然后安装用于管理的zfs工具。我不明白,为什么Linux不支持作为驱动程序,这是许多其他操作系统/内核的方法。
文件系统通过两种方式支持重复数据删除,即重复数据删除或块删除。ZFS支持块。这意味着,可以删除在同一文件中重复的相同内容。其他方法是对数据进行重复数据删除的时间,该时间可以是联机(zfs)或脱机(btrfs)。
注意,重复数据删除会消耗RAM。这就是为什么将文件写入通过FUSE挂载的ZFS卷会导致性能显着降低的原因。文档中对此进行了描述。但是您可以在线设置卷上的开/关重复数据删除功能。如果看到任何数据应进行重复数据删除,则只需将重复数据删除设置为开,将某些文件重写为任何临时文件,最后替换。之后,您可以关闭重复数据删除并恢复完整性能。当然,您可以将任何缓存磁盘添加到存储中。这可以是非常快速的旋转磁盘或SSD磁盘。当然这可以是很小的磁盘。在实际工作中,这是替换RAM的方法:)
在Linux下,您应该注意ZFS,因为并非所有功能都能正常工作,特别是在管理文件系统,制作快照等时,但是如果您进行配置而不更改它,则所有功能都可以正常工作。换句话说,您应该将linux更改为opensolaris,它本机支持ZFS :) ZFS的优点是,它既可以用作文件系统,又可以用作类似于LVM的volumen Manager。使用ZFS时不需要它。如果您想了解更多信息,请参阅文档。
注意ZFS和BTRFS之间的区别。ZFS更老,更成熟,不幸的是仅在Solaris和OpenSolaris下(不幸的是被oracle扼杀)。BTRFS较年轻,但上次获得了很好的支持。我建议使用新内核。ZFS具有在线重复数据删除功能,这会导致写入速度变慢,因为所有内容都是在线计算的。BTRFS支持离线重复数据删除。这样可以节省性能,但是当主机无关时,您可以定期运行用于重复数据删除的工具。BTRFS是在linux下本地创建的。也许这对您来说是更好的FS :)