From Fedora Project Wiki

Revision as of 10:58, 12 October 2013 by Rolffokkens (talk | contribs)


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

This page describes a test case for bcache-tools, 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, util-linux, dracut and lvm2.

Once your fresh Fedora 20 system is running, we will "move" /home to a Logical Volume (LVM) on a bcache device. Because of the flexibility that LVM provides the approach is quite different from page 1.A, for example we'll start by using sda4!


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

In this test case we'll need /dev/sda4 to build a new Volume Group on bcache.


Do the following steps:

  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/sda4 and /dev/sdb1. 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 two partitions:
    1. wipefs -a /dev/sda4
    2. wipefs -a /dev/sdb1
  3. Next install bcache tools and lvm2: yum install bcache-tools lvm2

How to test

Now create an use the bcache devices:

  1. Erase the old /home from /dev/sda2: wipefs -a /dev/sda4
  2. Make /dev/sda4 a bcache backing device: make-bcache -B /dev/sda4
  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. Note the set uuid and attach /dev/sdb1 to /dev/sda2: echo <set 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 Physical Volume: pvcreate /dev/bcache0
  3. create a Volume Group: vgcreate BCACHE /dev/bcache0
  4. create a Logical Volume: lvcreate -L 2G -n HOME BCACHE
  5. create a filesystem: mkfs -t ext4 -L HOME /dev/BCACHE/HOME

This will be our new /home device. To use it first move the current /home to another mount point:

  1. replace /home entry in your /etc/fstab: LABEL=HOME /home ext4 defaults 1 2
  2. If needed copy your current /home to the new /home:
    1. mkdir /home.old
    2. umount /home
    3. mount /dev/sda2 /home.old
    4. mount /home
    5. cp -ax /home.old/* /home
    6. umount /home.old
    7. rmdir /home.old
  3. build a new initramfs with dracut -N

Now you have a system with /home on LVM2 on bcache.

  1. reboot your system to see if it boots OK.
  2. do some other testing if you like.

Expected Results

  1. All steps complete without errors