我在 RamNode 有一个 AMD64 KVM VPS,它有 30 GB 磁盘、256 MB RAM 和 1 个“虚拟 CPU”(我不知道主机 CPU 的规格)。它将用于存储许多易于压缩的小文件,主要是 <50kb 的文本/HTML。我想使用压缩文件系统来节省我所拥有的少量磁盘空间。首先想到的是 ZFS,但从我读到的内容来看,ZFS 在 RAM 小于 1-2GB 的情况下表现不佳,因此我需要更轻量级的东西。至于 BTRFS,根据我的阅读,它在 CPU 上很重而且还不稳定(至于 RAM,我不知道)。对文件系统有什么建议吗?性能和吞吐量不是问题,但磁盘使用情况和 RAM 使用情况才是问题。至于操作系统,我在想Linux Debian 8,但是如果合适的FS不支持Debian8/Linux,我可以切换(也许是*BSD?)
在过去的两年里,我在 Linux 上同时运行了 ZFS 和 BTRFS。我的经验是 BTRFS 使用比 ZFS 更少的 RAM 用于可比较的磁盘使用。不包括 RAID5/6,BTRFS 在带有 BTRFS 3.12 的 Ubuntu 14.04 上对我来说非常稳定。
我一直在 BTRFS 中使用 LZO 压缩,它在写入时和未压缩时一样快。
如果您不使用重复数据删除功能,ZFS 可以使用低 RAM。您还可以限制 ZFS 用于缓存 (ARC) 的 RAM 量。内置的 lz4 压缩对您的数据量非常有帮助。
好吧,决定使用什么 fs 取决于您的文件访问模式。
如果最大压缩比是目标,我建议对只读文件使用 xz 压缩的 squashfs。
如果有数百万个小文件,它将节省空间和空闲 inode。在不删除/移动/重写的情况下添加新的也是理想的用例。只需使用 aufs/overlayfs/unionfs 来合并 r/o 和 r/w 目录。需要通过合并 r/w 目录中的文件来定期更新 squashfs 文件。我读过一些公司使用了这个捆绑包。不太频繁的内容生成也是很好的用例。
小部分的频繁更新 - 使用上述 zfs/btrfs 或 fusecompress(仅使用 0.9.x)。这三个解决方案与 rsync 配合得很好。fusecompress 允许更强的 lzma 压缩。
archivemount 不适用于 rsync。更新时它在磁盘上休眠:(