From Fedora Project Wiki


This page describes a test case for bcache-tools; "/home on bcache without using LVM".

Bcache is a Linux kernel block layer cache. It allows one or more fast disk drives such as flash-based solid state drives (SSDs) to act as a cache for one or more slower hard disk drives. The bcache-tools package contains the utilities for manipulating bcache

Testing covers not only bcache-tools but also the interaction between bcache-tools and other packages: kernel and util-linux.

Assuming you have a fresh Fedora 20 system is running, we will "move" /home to a bcache device. To do this it's convenient to have a minimum amount of data on /home.


The prerequisites for running the bcache-tools testcases can be found on this page


  1. Open terminal
  2. Switch to root user: su -

First of all we have to make sure no traces of bcache superblocks are left on /dev/sdb1 from earlier experiments. So before installing bcache-tools do the following:

  1. update util-linux to the latest version (2.24 is required): yum update util-linux
  2. Wipe whatever is on the /dev/sdb1 partition: wipefs -a /dev/sdb1
  3. Next install bcache-tools: yum install bcache-tools
  4. If needed "backup" all data in /home to another place on your root filesystem, because all data on /dev/sda2 will be destroyed in the next steps.
  5. comment /home out in your /etc/fstab
  6. unmount /home (which is on /dev/sda2)
  7. reboot so bcache-tools is processed well

How to test

  1. Erase the old /home from /dev/sda2: wipefs -a /dev/sda2
  2. Make /dev/sda2 a bcache backing device: make-bcache -B /dev/sda2
  3. Erase any existing metadata from /dev/sdb1: wipefs -a /dev/sdb1
  4. Make /dev/sdb1 a bcache caching device: make-bcache -C /dev/sdb1
  5. Retrieve the cset.uuid from your /dev/sdb1 caching device: bcache-super-show /dev/sdb1
  6. Attach /dev/sdb1 to /dev/bcache0: echo <cset.uuid> > /sys/block/bcache0/bcache/attach

Now you have a bcache device: /dev/bcache0

  1. use "bcache-status -s" to see details about your bcache device.
  2. create a filesystem: mkfs -t ext4 -L HOME /dev/bcache0
  3. create a /home entry in your /etc/fstab: LABEL=HOME /home ext4 defaults 1 2
  4. mount /home: mount -a
  5. If applicable restore the /home backup you made earlier.

Now you have a system with /home on bcache.

  1. reboot your system to see if it boots OK.
  2. cd /home && wget

Expected Results

  1. All steps complete without errors
  2. wget should have the same speed of all time