Re: How to use multiple backing devices
From: Kai Krakow <hidden>
Date: 2016-02-09 22:15:37
Am Tue, 09 Feb 2016 08:03:53 -0800 schrieb Nikolaus Rath [off-list ref]:
On Feb 09 2016, Kai Krakow [off-list ref] wrote:quoted
Am Mon, 08 Feb 2016 20:47:10 -0800 schrieb Nikolaus Rath [off-list ref]:quoted
Hello, If I'm understanding Documentation/bcache.txt correctly, I should be able to use one SSD to cache multiple spinning disks. However, I'm at a loss of how to set this up in practice. I believe I need to do make-bcache -B /dev/sda # spinning rust make-bcache -B /dev/sdb # spinning rust make-bcache -C /dev/sdc # ssd and then something like echo <CSET-UUID> > /sys/block/bcacheX/bcache/attach But what do I have to put for X, and what for CSET-UUID? I believe for at least one of those values I will have two options (because there are two backing devices).Create it in one go: make-bcache -C /dev/sdc -B /dev/sd{a,b} It will take away the hassle. Everything should be setup now.Yeah, but unfortunately I don't have enough space for that. I need to create one, move the data over from second, create the second, move data over from the SSD, and then create the SSD is caching device.
Then do it like me: 1. Backup! 2. Remove first device from btrfs pool, run wipefs over it then!! 3. Format backing storage on it 4. Add bcache device back to the pool. 5. Repeat with next device from step 2, prepare to wait long! 6. Rebalance 7. Format caching device, enable caching device 8. Migrate your fstab/initrd whatever... You should not enable caching before step 6, or your SSD may wear out a lot. You may need to add some temporary spare disk if you don't have enough space available.
quoted
But if you want to do it manually: you have to run "echo" twice - for each X (the backing devices). CSET-UUID comes from /sys/fs/bcache where you will find a UUID per each bcache caching device, which is just one for your case.Ah, ok. Intuitively attaching the same cache device to two different backing devices sounds dangerous, but I'll take your word that the code is designed for that...
It's actually documented somewhere on the web page: One caching device can back multiple backing devices. No need to partition it. There were (are?) plans for even allowing attaching one backing device to multiple caching devices (even n:n attaching) to allow for redundancy, performance pushes, and error resiliency. Tho, I don't know if that is implemented yet. Also, keep an eye on your SSD wear if you're using writeback mode (use smartctl for it with mail notifications). You may want to switch to write-around or write-through mode before it potentially wears out. The latter two modes should be safe, tho. Go, replace the SSD then. Maybe trim your SSD first, then only partition and ever use only 80% of it to increase life time as the drive can do better wear-levelling then (sometimes called over-provisioning by manufacturers, this is even one performance tuning option in most manufacturers Windows tools). -- Regards, Kai Replies to list-only preferred.