在linux中写入caching

我已经阅读了很多关于服务器错误,并在谷歌上search写caching,但仍不能find答案。

我有一个HP RAID ProLiant DL380 G5硬盘RAID 512 MB电池备份caching。 我使用debian linux。

有3个写caching:1.操作系统写入caching2.硬盘突袭与512 MB电池备份caching3.硬盘caching

我的问题是:如何正确configuration它们,所以在断电时不会丢失数据。

我以为禁用操作系统写入caching和硬盘caching可以解决这个问题,并且由于硬件RAIDcaching,它仍然会运行良好。 我对吗?

第二个问题是关于硬件RAID突发读写比。 我在想,因为OS RAM被用作读取caching,所以最好把HR raid cache的比例改为0/100或者0/80(读/写)。 所以它会更好地利用50/50,我认为这是默认的读/写caching比率。 这个比例的最佳值是多less?

谢谢

这些系统被devise成只需插入即可。 以下是每个层如何处理I / O。

OS

在I / O子系统实际提交内容时,写入内容被暂时caching(脏页)到RAM中。 一旦写入被提交,页面就被caching,以备再次立即读取。 操作系统caching不维护一个未合并的写入池,它维护一个已经写好的写入池,可能需要重新读取。 实际上,这是一个100%的读caching。

RAID控制器

RAID控制器的BBC接收来自操作系统的写入。 根据正在写入的卷的高速caching策略(写入直通还是回写),RAID控制器可能会在此时将写入报告为Comitted。 然后它将写入队列写入实际的磁盘

磁盘

一些RAID卡实际上会禁用高清caching。 别人,不要。 我不记得惠普是怎么做到的,但是如果高速caching被禁用并且写优化逻辑被推入到RAID控制器本身中,则不会感到惊讶; 惠普在其驱动器上使用自定义固件是有原因的。


操作系统及其支持的文件系统非常清楚,突然断电是一种故障模式,可以在操作系统确定需要发生的时间和存储系统报告完成时间之间消除写入。 我们已经这样做了一段时间了,我们在防守方面做得很好。

由于XFS文件系统处理元数据写入的方式,在突然断电的情况下,XFS文件系统在可生存性方面声誉不佳。 但是,那么它的目标环境是权力被认为是充分多余的。 其他的文件系统,ext系列,btrfs,当然还有zfs,都可以幸免于难。


如果您在已知功率不足的环境中运行,以确保在停电期间不会丢失数据:

  • 使用已知的强大的文件系统突然断电(基本上,除了XFS之外的任何东西)

就是这样。 英国广播公司的RAID卡确保RAIDcaching保存,直到恢复供电。 磁盘caching可能被禁用。 不需要调整RAID卡caching以全部读取。 不需要禁用OS块caching。

真。

HP ProLiant服务器和控制器的典型设置是将操作系统写入caching打开,启用RAID控制器的caching(设置为25:75读取:写入比率),这是您在各个磁盘caching上的select。 最好在这个设置中保持安全。 arrays控制器configuration实用程序中的警告特定于只启用驱动器写入caching您有稳定/保护的设施电源。 虽然惠普在其磁盘上使用了特定的固件,但它们与使用的RAW Seagate(或其他OEM)磁盘之间没有性能差异。

您还需要embedded系统中的Smart Array P400i控制器的最新固件。

对于企业(服务器级)硬件来说,XFS是一个非常好的稳定的文件系统选项,特别是如果您的arrays控制器上有一个由闪存支持的高速caching的电池备份。

您不应该期待您的服务器突然,无法控制的电力损失。 如果是,请使用大小合适的不间断电源(UPS)。

另外,这里提出了许多问题来解决你所提出的问题:

RAID卡上的内存模块需要什么?

HP ProLiant DL385 G7的磁盘性能令人难以置信

非易失性高速cachingRAID控制器:对NVCACHE故障有什么样的保护?