我已配置 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 调度程序内核参数以确保更积极的缓冲 - 但首先测量您是否真的需要它。