From Fedora Project Wiki

(Created page with "Category:Package bcache-tools test cases {{QA/Test_Case |description=/ on bcache (no LVM) Once your fresh Fedora 20 system is running, we will "move" /home to a Logical V...")
 
No edit summary
 
(33 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Package bcache-tools test cases]]
[[Category:Package bcache-tools test cases]]
{{QA/Test_Case
{{QA/Test_Case
|description=/ on bcache (no LVM)
|description=
This page describes a test case for bcache-tools: "/ on bcache without using LVM"


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! Do the following steps:
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: [[QA:Testcase_bcache-tools_home_on_bcache_(no_LVM)|/home on bcache (no LVM)]]


|setup=
|setup=
If you haven't done so, you should first execute the use case [[QA:Testcase_bcache-tools_home_on_bcache_(no_LVM)|/home on bcache (no LVM)]].
Next we'll stop using /home on bcache first:
# Open terminal
# Open terminal
# Switch to root user: <code>su -</code>
# Switch to root user: <code>su -</code>
# Install bcache tools: <code>yum install bcache-tools</code>
# if needed make a backup of /home on your root filesystem: <code>cp -a /home /home.backup</code>
# Make /dev/sda4 a bcache backing device: <code>make-bcache -B /dev/sda4</code>
# comment /home out in your /etc/fstab
# Make /dev/sdb1 a bcache caching device: <code>make-bcache -C /dev/sdb1</code>
# unmount /home: <code>umount /home</code>
# Note the set uuid and attach /dev/sdb1 to /dev/sda2: <code>echo <set uuid> > /sys/block/bcache0/bcache/attach</code>
# if applicable restore your bachup to the /home directory: <code>cp -a /home.backup/* /home</code>
Now you have a bcache device: /dev/bcache0
|actions=
|actions=
# use "bcache-status -s" to see details about your bcache device.
Now your /home is in your root filesystem. Next:
# create a Physical Volume: pvcreate /dev/bcache0
# create a new filesystem on /dev/bcache0: <code>mkfs -t ext4 -L ROOTFS /dev/bcache0</code>
# create a Volume Group: vgcreate BCACHE /dev/bcache0
# mount it: <code>mount /dev/bcache0 /mnt</code>
# create a Logical Volume: lvcreate -L 2G -n HOME BCACHE
# copy your current root filesystem to /mnt: <code>cp -ax / /mnt</code>
# create a filesystem: mkfs -t ext4 -L HOME /dev/BCACHE/HOME
# edit /mnt/etc/fstab so your root fs is mounted like: <code>LABEL=ROOTFS / ext4 defaults 1 1</code>
This will be our new /home device. To use it first move the current /home to another mount point:
Now we have a duplicate root filesystem on /dev/bcache0. To use it we need to build a new initramfs:
# replace /home entry in your /etc/fstab: LABEL=HOME /home ext4 defaults 1 2
# rename your current initramfs: <code>mv /boot/initramfs-`uname -r`.img /boot/initramfs-`uname -r`.img.sav</code>
# commands step by step:
# build a new initramfs with all drivers (including bcache) included: <code>dracut -N</code>
## <code>mkdir /home.old</code>
Now reboot your system.
## <code>umount /home</code>
# while booting edit the default grub entry and replace the root=UUID=... parameter in the "linux" line by: root=LABEL=ROOTFS
## <code>mount /dev/sda2 /home.old</code>
# now start the modified grub entry
## <code>mount /home</code>
If all goes well, your system now boots fine and it's running on bcache! Now we have to do some final housekeeping:
## <code>cp -ax /home.old/* /home</code>
# update grub config: <code>grub2-mkconfig -o /boot/grub2/grub.cfg</code> for BIOS systems and <code>grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg</code> for UEFI systems
## <code>umount /home.old</code>
# rename your current initramfs (again): <code>mv /boot/initramfs-`uname -r`.img /boot/initramfs-`uname -r`.img.sav</code>
 
# build a new initramfs with <i>only</i> the needed drivers included: <code>dracut</code>
# build a new initramfs with <code>dracut -N</code>
Now  your system should be ready!
 
# reboot your system to see if it boots OK.
Now you have a system with /home on LVM2 on bcache.
# apply updates: <code>yum update</code>. Specifically try to update the kernel, because it depens on the proper interaction between dracut, bcache-tools and util-linux,
# <code>wget http://dl.fedoraproject.org/pub/alt/stage/20-Beta-TC2/Fedora/x86_64/iso/Fedora-20-Beta-TC2-x86_64-DVD.iso</code>
|results=
|results=
# All steps complete without errors
# All steps complete without errors
# reboot your system to see if it boots OK.
# wget should have the same speed of all time
# do some other testing if you like.
|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 <code>fdisk /dev/sda</code>
# 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
# reboot
After the reboot the new partation table is used by the kernel. /dev/bcache0 automatically is resized because the underlying /dev/sda2 has been resized.
# resize the root filesystem: <code>resiz2fs /dev/bcache0</code>
# use df to check the filesystem's size
}}
}}

Latest revision as of 23:32, 13 October 2013


Description

This page describes a test case for bcache-tools: "/ 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, 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)

Setup

If you haven't done so, you should first execute the use case /home on bcache (no LVM).

Next we'll stop using /home on bcache first:

  1. Open terminal
  2. Switch to root user: su -
  3. if needed make a backup of /home on your root filesystem: cp -a /home /home.backup
  4. comment /home out in your /etc/fstab
  5. unmount /home: umount /home
  6. if applicable restore your bachup to the /home directory: cp -a /home.backup/* /home

How to test

Now your /home is in your root filesystem. Next:

  1. create a new filesystem on /dev/bcache0: mkfs -t ext4 -L ROOTFS /dev/bcache0
  2. mount it: mount /dev/bcache0 /mnt
  3. copy your current root filesystem to /mnt: cp -ax / /mnt
  4. 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:

  1. rename your current initramfs: mv /boot/initramfs-uname -r.img /boot/initramfs-uname -r.img.sav
  2. build a new initramfs with all drivers (including bcache) included: dracut -N

Now reboot your system.

  1. while booting edit the default grub entry and replace the root=UUID=... parameter in the "linux" line by: root=LABEL=ROOTFS
  2. now start the modified grub entry

If all goes well, your system now boots fine and it's running on bcache! Now we have to do some final housekeeping:

  1. update grub config: grub2-mkconfig -o /boot/grub2/grub.cfg for BIOS systems and grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg for UEFI systems
  2. rename your current initramfs (again): mv /boot/initramfs-uname -r.img /boot/initramfs-uname -r.img.sav
  3. build a new initramfs with only the needed drivers included: dracut

Now your system should be ready!

  1. reboot your system to see if it boots OK.
  2. apply updates: yum update. Specifically try to update the kernel, because it depens on the proper interaction between dracut, bcache-tools and util-linux,
  3. wget http://dl.fedoraproject.org/pub/alt/stage/20-Beta-TC2/Fedora/x86_64/iso/Fedora-20-Beta-TC2-x86_64-DVD.iso

Expected Results

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

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:

  1. start fdisk /dev/sda
  2. note the starting start position of /dev/sda2
  3. remove partitions /dev/sda2, /dev/sda3 and /dev/vda4
  4. recreate /dev/sda2 and make sure the start position is the number you noted before
  5. write the new partition table to disk
  6. reboot

After the reboot the new partation table is used by the kernel. /dev/bcache0 automatically is resized because the underlying /dev/sda2 has been resized.

  1. resize the root filesystem: resiz2fs /dev/bcache0
  2. use df to check the filesystem's size