我在RamNode有一个AMD64 KVM VPS,它有30 GB的磁盘,256 MB的RAM和1个“虚拟CPU”(我不知道主CPU的规格)。 它将被用来存储许多小的,容易压缩的文件,大多数<50kb,文本/ HTML。 我想使用压缩文件系统来保存我的磁盘空间。 第一个想到的是ZFS,但是从我读到的内容来看,ZFS在低于1GB内存方面performance不佳,所以我需要更轻量级的东西。 至于BTRFS,从我读过的内容来看,它在CPU上还很不稳定(至于内存,我不知道)。 任何build议的文件系统? 性能和吞吐量不是问题,但磁盘使用率和内存使用率是。 至于操作系统,我在想Linux Debian 8,但如果一个合适的FS不支持Debian8 / Linux,我可以切换(* BSD也许?)
在过去的两年中,我在Linux上运行了ZFS和BTRFS。 我的经验是BTRFS比ZFS使用更less的RAM用于类似的磁盘使用。 不包括RAID5 / 6,BTRFS在使用BTRFS 3.12的Ubuntu 14.04上非常稳定。
我一直在BTRFS中使用LZO压缩,而且它在写入方面和未压缩一样快。
如果您不使用重复数据删除function,ZFS可以在低RAM的情况下运行。 您也可以限制ZFS用于caching(ARC)的RAM数量。 内置的lz4压缩对您的数据量非常有帮助。
那么,决定使用什么样的fs取决于你的文件访问模式。
如果最大压缩比是一个目标,我build议用压缩xz压缩的squashfs作为只读文件。
在数百万个小文件的情况下,它将节省空间和空闲的inode。 追加新的不删除/移动/重写也是理想的用例。 只需使用aufs / overlayfs / unionfs来合并r / o和r / w目录。 通过合并r / w目录中的文件定期更新squashfs文件是必要的。 我读过一些公司使用这个软件包。 不太频繁的内容生成也是很好的用例。
频繁更新小部分 – 使用上面提到的zfs / btrfs或fusecompress(仅使用0.9.x)。 这三个解决scheme适用于rsync。 fusecompress允许更强大的lzma压缩。
archivemount不适用于rsync。 它睡在磁盘上,而更新:(