Description
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 and dracut.
Starting with a stable F20 system with /home on LVM on bcache, we can go forward and have / on bcache. Consider thought that bcache is EXPERIMENTAL!
Prerequisites
This test requires the following test case as preparation: /home on bcache (no LVM)
The prerequisites for running the bcache-tools testcases can be found on this page
Setup
To get / on bcache we'll stop using /home on bcache first:
- Open terminal
- Switch to root user:
su -
- if needed make a backup of /home on your root filesystem.
- comment /home out in your /etc/fstab
- unmount /home:
umount /home
- if applicable restore your bachup to the /home directory
How to test
Now your /home is in your root filesystem. Next:
- create a new filesystem on /dev/bcache0:
mkfs -t ext4 -L ROOTFS /dev/bcache0
- mount it:
mount /dev/bcache0 /mnt
- copy your current root filesystem to /mnt:
cp -ax / /mnt
- edit /mnt/etc/fstab so your root fs is mounted like:
LABEL=ROOTFS / ext4 defaults 1 1
Now we have a duplicate root filesystem on /dev/bcache0. To use it we need to build a new initramfs:
- rename your current initramfs:
mv /boot/initramfs...img /boot/initramfs...img.sav
- build a new initramfs with all drivers (including bcache) included:
dracut -N
Now reboot your system.
- while booting edit the default grub entry and replace the root=UUID=... parameter in the "linux" line by: root=LABEL=ROOTFS
- boot your system.
If all goes well, your system now boots fine and it's running on bcache! Now we have to do some final housekeeping:
- create a new /etc/grub2.cfg file:
grub2-mkconfig > /etc/grub2.cfg
- rename your current initramfs (again):
mv /boot/initramfs...img /boot/initramfs...img.sav
- build a new initramfs with only the needed drivers included:
dracut
Now your system should be ready!
- reboot your system to see if it boots OK.
- Apply updates:
yum update
- do some other tests generating I/O on if you like.
Expected Results
- All steps complete without errors
Optional
The only partitions used on the /dev/sda device are /dev/sda1 and /dev/sda2. We can add the rest of the disk space to the root filesystem:
- start
fdisk /dev/sda
- note the starting start position of /dev/sda2
- remove partitions /dev/sda2, /dev/sda3 and /dev/vda4
- recreate /dev/sda2 and make sure the start position is the number you noted before
- write the new partition table to disk