FR1 is a driver for Linux kernel that helps the kernel's software RAID1 driver to perform better.
One of the most impressive features of FR1 is that it always chooses the fastest device to read from on reads. This helps to ensure that the driver is always running at peak performance levels. Additionally, the driver keeps a bitmap of pending writes in memory, and writes them to the mirror component that's just been repaired when it comes back online.
While the bitmap does take up memory, it is not too expensive. A terabyte-sized device with blocks of 4K will cost a maximum of 32MB of memory per mirror component, or 64MB in total for a two-component mirror. In practice, only a few pages of bitmap will have been allocated by the time you need to fix the device.
While I found FR1 to be an excellent driver, there are some limitations to be aware of. For example, ditto for arrays with spare components. The 2.4 kernel code is very obscure in the area of array management, but this situation has improved in 2.6. However, the code is still not perfectly obvious.
Another limitation of FR1 is that it may not work well with mirror components that have a nonzero offset recorded for them in the array metadata. While I've never seen this in the field, it could lead to some serious issues. Overall, I was very pleased with the performance and functionality of FR1 and would recommend it to anyone who needs a reliable software RAID1 driver.
Version 2.15b: N/A