我一直负责为数据logging系统构build一个大的zpool。 在Linux(0.6.4.2)上使用ZFS,在CentOS 6.5上使用。
硬件规格:
有一些特殊情况:
性能要求:
我的计划是如下构buildzpool:
我真的没有什么好的SLOG和L2ARC的select。 使用惠普固态硬盘不是一个真正的select,因为他们需要在硬件Raid0上作为单一设备运行。 从我在这个网站上看到的,这是在惹麻烦。
我的问题:
更多的RAM可能是一个不错的select。 如果读取性能不重要,但元数据操作是:我build议将“primarycache”设置为文件系统的“元数据”。 如果您有用于L2ARC的SSD,则还可以select使用内存(ARC)将“全部”和二级caching(L2ARC)caching为“元数据”。 请注意,其他方式不起作用(L2ARC从ARC填充)。
一旦zpool加载了95%以上的数据,我是否应该期待重大的问题
是和不是。 这将取决于平台/版本。 旧版本的速度在80%的情况下会大幅下降。 为了解决这个问题:100%确保你的slabtables存储在内存中! (Solaris:metaslab_debug = 1)。 默认情况下,旧版本只在内存中存储每个磁盘2块板。 这会杀死性能。 我认为FreeBSD和更新的版本默认是这样做的。 但是你需要一些内存(尤其是那些很多的磁盘)。
我会推荐使用SLOG(ZIL)设备。 这将确保您的写入立即得到确认,但是每x秒写入一次速度较慢的磁盘。 这是有用的,因为你只需要在盘片上运行多次写入。 这为读取等留下了更多的磁盘空间。
我不build议在Linux环境下使用ZFS。 内存分配系统仍然不是100%完美,导致ZFS和Linux争夺内存。