需要较慢/caching的Linux文件系统

我知道这听起来很奇怪,但我需要一个较慢或caching的文件系统。

我有很多防火墙将syslog的数据写入一对Linux虚拟机,这些虚拟机将这些文件写入“本地”(实际上是FC SAN连接的)ext3格式的磁盘,并将消息转发到我们的Splunk服务器。

问题在于,系统日志服务器正在将这些系统日志消息每秒写入数百甚至数千次,这些消息每秒写回到我们的FC SAN–目前可以处理这个工作负载,但是我们的FWstream量至less会增长一倍在接下来的几个月里,这个数字会达到5000%(真的),这对SAN来说是一个痛苦,我想在问题出现之前解决根本原因。

所以我需要一些帮助,找出一种方法,使得这些写入以某种方式从“物理”磁盘caching或保留,以便虚拟机发出较大但较不频繁的写入 – 无法避免这些写入,但存在没有必要做这么多小的。

我已经看了各种ext3选项,设置noatime和nodiratime,但这并没有造成太大的问题。 很显然,我正在研究其他文件系统,但是以为如果其他人在将来也遇到同样的问题,我会抛出这个问题。

哦,我不能将这些消息转发给Splunk,我们的防火墙团队坚持认为它们是用于诊断的原始格式。

也许commit EXT3挂载选项会帮助你? 例如, commit=60会每分钟刷新一次所有的数据和元数据。

强制性警告:这可能会导致数据丢失多达一分钟的数据(如果您通过提交= 60值)。

文件系统:如果您的设备正在使用它们,请禁用写入障碍,并禁用整个板卡上的时间更新。

但是,如果发生故障事件(电源等),则可能还会调整系统日志,从而导致数据丢失。

来自syslog-ng示例指令(可能不是你正在使用的):

  • flush_lines()指定一次刷新到目的地的行数。 Syslog-ng等待这个数量的线路积累并在一个批次中发送它们。

  • flush_timeout()指定syslog-ng等待行在其输出缓冲区中累积的时间。 请参阅flush_lines选项以获取更多信息。

目标是在这种情况下是一个磁盘文件。