In one of the answers on SO (I forgot which one) I've seen a suggestion to make a RAID-1 array composed of a RAM disk and a physical partition. By adding the physical partition with --write-mostly
and enabling --write-behind
the system should read everything instantly from the RAM disk but still save all data to the physical partition so that the data are preserved and the RAID array can be assembled again after reboot.
Is such a setup reasonable? By reasonable I mean if it will perform any better in some scenario than using a SSD disk or than having just the physical partition and perhaps tweaking the kernel to favor disk cache (swappiness
and vfs_cache_pressure
)?
If all you are wanting to do is speed up the reads then it might be worth looking at something like Flashcache (https://github.com/facebook/flashcache/) in write around or write through mode. Instead of pointing to an SSD you can point the cache device to the ram disk which will speed up the reads.
It would also save a lot on costs as you won't need to buy enough ram for a complete copy of the physical partition and you wouldn't be adding extra wear to the physical disk as the raid1 mirrors the whole disk at boot.