SSD caching

Rolf Fokkens rolf at
Mon Sep 16 13:46:45 UTC 2013

Things are progressing well with the SSD cache feature, so I'd like to 
give a brief update.

dm-cache & bcache
Initially both dm-cache and bcache were in scope to provide users with 
the SSD caching feature in Fedora 20. Both are supported by the latest 
Linux kernels, but unfortunately userspace tooling (lvm2) for dm-cache 
still requires considerable effort so focus has been te have bcache in F20.

System wide or Self contained?
For F20 the intention was to have SSD cache Self contained, and to have 
it System wide in F21. Looks like we're ahead of schedule! Thanks to the 
great cooperation of community members responsible for other Fedora 
packages, we may see a well integrated bcache implementation in F20. 
Because bcache is quite new we should however consider it Experimental!

What works?
Currently I'm running my root FS on bcache. My system runs great. Both 
kernel updates and other updates (in F20 updates-testing*) work without 
any problems. This means dat a working intramdisk is created by dracut, 
which in turn means that util-linux (blkid) detects bcache. To 
'complicate' testing I have the root FS on lvm (which is on bcache)! And 
as a bonus of course I'm experiencing a nice performance :-)

Because Anaconda doesn't support bcache (yet) creating a running system 
with root FS on bcache requires some "manual work", but once it's 
running it's running well!

*) some packages are not yet in updates testing, details below.

Thanks to Igor Gnatekno a Fedora Test day is planned 13th of october: To support this a Wiki 
page (work in progress) is maintained: Anybody 
interested in testing is welcome!

libblkid in util-linux v2.24 will support bcache, which means that both 
blkid and wipefs will detect (and wipe) bcache. Currently util-linux 
v2.23 is available, but v2.24 rc will be in F20 (thanks Karel Zak). To 
test bcache I'm running a patched v2.23 that already has the planned 
support for bcache.

The bcache-tools package is available in F20 updates-testing, and seems 
to be in pretty good shape (thank you reviewers, thanks Hans de Goede). 
Currently bcache-tools includes a bcache-probe utility, but that may no 
longer be in the package when F20 is released because it's obsoleted by 
blkid in util-linux v2.24.

Dracut now has a bcache module to build initramfs(thanks Harold Hoyer). 
This works very well, but it currently needs the -N option. When 
util-linux v2.24 is released dracut will detect bcache and be able to 
operate without the -N option.

LVM2 does normally not accept a bcache device as PV (physical volume). A 
small 'one-line' patch can fix this, but the lvm2 people are working on 
other lvm2 stuff. I hope Alasdair Kergon will be able to get this simple 
change in LVM2.

If not, users can manually configure LVM2 to accept bcache devices as PV 
by making a small change to their /etc/lvm/lvm.conf. To build a working 
initramfs users need to manually pass the --lvmconf option to dracut, so 
a kernel upgrade won't work out-of-the-box.
<mailto:agk at>
I tested bcache by using a patched LVM2 that accepts bcache as a PV, 
hoping the patch will be in F20.

Currently the team is very busy getting anaconda ready for F20, and 
including bcache support may require considerable effort. Hopefully 
anaconda has bcache support in F21.

More details:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the devel mailing list