On 1/7/21 2:30 AM, Cedric.dewijs@xxxxxxxxxx wrote: > Hi All, > > I recently saw a series of patches to remove multiple caches code [1] For me, having one large mirrored write cache is desirable, so I can make this structure: > > +--------------------------------------------------------------------------+ > | btrfs raid 1 (2 copies) /mnt | > +--------------+--------------+--------------+--------------+--------------+ > | /dev/bcache0 | /dev/bcache1 | /dev/bcache2 | /dev/bcache3 | /dev/bcache4 | > +--------------+--------------+--------------+--------------+--------------+ > | Mirrored Writeback Cache (SSD) | > | /dev/sda3 and /dev/sda4 | > +--------------+--------------+--------------+--------------+--------------+ > | Data | Data | Data | Data | Data | > | /dev/sda8 | /dev/sda9 | /dev/sda10 | /dev/sda11 | /dev/sda12 | > +--------------+--------------+--------------+--------------+--------------+ > > This way I don't have to worry about data loss when one of the SSD's or one of the hard drives fails, and I have maximum performance for the least amount of drives. > > With the code for multiple caches removed, what is the recommended way forward? > What is the best way to use 2 SSD's with different size and speed, while keeping enough redundancy to survive a single drive failure? > > [1] https://lore.kernel.org/linux-bcache/20200822114536.23491-1-colyli@xxxxxxx/T/#t > It is removed because it is not completed, a working mirror cache in bcache is not that simple like submitting bios to all cache device and waiting for all of them completed. This might be one of the reason why this feature is not production ready after 10+ years since bcache merged into mainline kernel. I see many production environments using md raid1 for cached data duplication. This is the preferred method IMHO. Coly Li