Linux – Is it reasonable to make a RAID-1 array with a ram disk and a physical disk to maximize read performance and protect data

linuxmdadmraid1ramdisk

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)?

Best Answer

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.

Related Topic