故障保护RAM驱动器解决scheme

我正在寻找一个生产解决scheme来创build一个RAM驱动器,将安全地与硬盘同步。

我有一个负载很重的I / O负载的定制软件(这是一些专有的面向文档的数据库),我需要大幅提高速度。 我不能修改或摆脱软件本身,所以必须做水平或垂直缩放。 该软件不支持框的水平侦察,所以我首先看垂直缩放。

主要思想很简单 – 我们购买大量的RAM(96GB),并把整个东西放到RAM驱动器上。 但它需要是安全的,丢失服务器上的任何数据重新启动不是一个选项。 所以我正在寻找解决scheme,将保持RAM驱动器和硬盘之间的透明同步。

肮脏的解决scheme,如通过bash脚本复制文件不是一个选项,需要更可靠的东西。

在理论上我看到,像这里描述的某种分布式FS可以以一种奇怪的方式使用 – 在同一台机器上同步两个分区。 但我怀疑这是否会在实践中起作用,而且从来没有尝试过。

那么,有没有准备好的解决scheme的RAM驱动器透明同步到硬盘的想法?

数据UPD:

  1. 我需要在RAM中保存的估计数据量大约为50GB。
  2. 服务器专用HP DL320,8 CPU,16GB RAM(最大96GB)。
  3. I / Oconfiguration文件类似于数据库应用程序 – 大量的随机读取读取,较less的写入。

我询问了可用的硬件,因为可以获得低延迟和高IOPS设备来克服磁盘的限制。

但是,您没有提供对您的工作集数据大小的估计。 这是一个巨大的差异。 目前我们没有足够的信息。 什么是应用程序的I / Oconfiguration文件? 写偏见吗? 读偏见吗? 什么是当前的存储设置?

一般的build议是使用一组SSD驱动器。 另一个将使用像FusioIO驱动器的PCIe加速器。

也许甚至考虑asynchronous模式下的DRBD …

一个更深奥的解决scheme是使用具有一定分层的共享存储,以将经常使用的数据保存在RAM或SSD上。 ZFS文件系统及其使用ZIL写入加速和L2ARC读取caching就是一个很好的例子。

更深奥的解决scheme是基于软件的caching方法,如最终持久Ram磁盘 (EPRD) 。 这将在FUSE文件系统中创build一个磁盘备份的RAM磁盘,对于加速应用程序的I / O可能是一个不错的select。 这可能是你想要的…

从configuration文档:

 You can however also create a ramdisk that will have it's changes flushed to disk every N seconds and instead of keeping everything in ram it only allocated 512M for caching. ./eprd_setup -f /data/saverimg -s 10G -m 3 -c -p512M In this example the data is flushed to disk every 3 seconds. 

编辑:

如果这些是HP ProLiant DL320系统,我假设他们是G6型号。 您是否安装了Smart Array P410控制器,并安装了电池备份或闪存备份caching ? 如果不是,那么在进行RAM磁盘设置之前,这是您应该采取的第一步。 它有所作为!

你不希望有一个实际的RAM磁盘与硬盘同步 – 你想要的是一个基于RAM的PCIe卡,带有电池备份和NVcaching。 基本上,一个FusionIO卡。

你今天不能这样做,你想要' 失败 ',但是想要使用本质上不安全的RAM,这就是为什么NVRAM被制造出来的原因。 我使用FusionIO,当然这并不便宜,但是存储市场的一部分正在迅速变化,价格正在下跌,看看其他一些销售基于PCIe闪存的厂商,你会发现成熟度较低的产品,但价格便宜得多。

哦,没有数量的聪明的ramdrive同步将完美的工作,你得到一些腐败。