带有 zram + XFS + GlusterFS 的网络内存文件系统 - 最佳实践

带有 zram + XFS + GlusterFS 的网络内存文件系统 - 最佳实践

几个月前,我使用 XFS 格式的 zram 设备与 GlusterFS 串联起来,在一些裸机服务器(运行 RHEL 7.2)上创建了一个分布式/网络化/复制的内存文件系统。

我使用这个 FS 作为存储、服务和复制多服务器应用服务器图像和视频的高效方式。我找不到任何其他内存 FS 解决方案,所以我拼凑了这个。

4 个月以来,它一直运行良好,但昨晚其中一台服务器因 XFS 损坏而崩溃——最后我不得不重新加载操作系统。我不确定这个设置是否是罪魁祸首……但可能性很大。

这让我想到...

1)我应该遵循什么最佳实践来使此设置更加稳定?

2) 我能(或者应该)设置一个日志系统,以便持续监控每个 zram+xfs 节点的运行状况吗?如果发生更多崩溃,我就能知道哪里出了问题。

一些性能测试:

/dev/loop0=https://erlhelinfotech.wordpress.com/2013/02/20/ramdisk-service-for-systemd/

/dev/zram0 = 我的 zram 设置

/dev/sdb2 = 标准 7200rpm 磁盘

使用 hdparm -Tt 进行性能测试

答案1

zram 很少甚至从未适应过这种级别的性能。虽然未经证实,但有可能您已在此存储堆栈的某个地方触发了错误。

更传统且可能更稳定的方法是将块设备放在永久介质上。您可能会对某些具有大量 RAM 进行缓存的固态设备的性能感到惊讶。此外,数据还可以持久保存。

您可以自行设置以更好地处理崩溃。远程系统日志、远程网络控制台、内核调试包和支持人员能够理解这一切。

如果当前组合不起作用,不要害怕尝试不同的组件。块文件系统、分布式文件系统、内核版本。

答案2

内存文件系统不适用于长时间运行,而适用于短时间的高 IOPS 活动。您的服务器可能遇到了内存不足的情况,无法交换(由于分配给 ramdrive 设备的锁定内存),因此崩溃了。

无论如何,为了监控服务器的健康状况,我建议你使用扎比克斯。您还可以创建在内存不足和/或其他错误时触发的电子邮件警报。

答案3

如果数据是图像和视频,zram 的压缩是没有用的,你可以使用 tmpfs(https://www.kernel.org/doc/html/latest/filesystems/tmpfs.html

相关内容