linux ramdisk-同步到磁盘

linux ramdisk-同步到磁盘

我已配置 ramdisk 来优化对一些日志文件的访问。有没有办法将 ramdisk 的恒定副本保存到物理磁盘?

我想避免断电后丢失所有内容并从头开始重建系统。

答案1

有——但是要小心你的愿望!

如果您选择这样的设置,当然会具有较慢的实际磁盘的写入性能(延迟和带宽)。但是,如果您想优化读取性能,这会很方便。

步骤如下:

  • 准备要用作备份文件的磁盘分区
  • 准备一个 ram-disk 作为块设备,也就是说,如果你只是使用tmpfs创建一个备份文件losetup -f
  • 创建这两个的 RAID1:mdadm --level 1 --raid-disks 2 /dev/mdX /dev/ram/backing/device -W /dev/disk/backing/device
  • 挂载生成的 MD 设备并使用它

这样,您的写入将转到两个磁盘,但您的读取将主要由 RAM 磁盘满足(因为实际磁盘被标记为-W或“主要写入”)

答案2

使用“合适的”磁盘支持文件系统可以帮您实现这一点 - 它会通过在 RAM 中缓冲数据来优化对其中文件的访问。如果您修改数据,它会先修改 RAM 中的数据,然后等待一段时间,最后将其写入磁盘。

在其他工作中,您正是想手动完成这些工作。

如果需要的话,您可以调整每个块设备的 I/O 调度程序内核参数以确保更积极的缓冲 - 但首先测量您是否真的需要它。

相关内容