Fedora Test Days | |
---|---|
SSD Cache | |
Date | 2013-10-13 |
Time | all day |
Website | QA/Fedora_20_test_days |
IRC | #fedora-test-day (webirc) |
Mailing list | test |
What to test?
Today's instalment of Fedora Test Day will focus on SSD Caching in Fedora 20, specifically bcache. SSD Caching allows you to speedup your disk access by combining your slow HDD with a fast SSD. The SSD will be used to store copies of frequently accessed blocks on your HDD, so you'll experience a good performance while also having the large storage capacity of your HDD.
Although dm-cache is another SSD caching implementation, today we'll only focus on the bcache implementation.
General test objective
The objective of this Test day is to demonstrate a working Fedora 20 system using bcache. Te be more specific:
- The system boots OK; after booting bcache is operating as expected
- The system updates ("yum update") OK. After updating specifically the kernel the system boots OK.
- The system is bootable when the caching device is disabled.
Scope
The bcache implementation of SSD caching is a new feature (since kernel 3.9) and should be considered experimental. The focus of this Test day is to evaluate the alignment of bcache-tools with other relevant Fedora packages to support a good basis for experimenting with SSD caching:
- bcache-tools (version 0-0.14.20130909git or later)
- util-linux (version 2.24-0.1 or later)
- dracut (version 034 or later)
- lvm2 (version 2.02.102-1 or later)
- kernel (version 3.9 or later)
Anaconda support for bcache is expected to be available not until Fedora 21, so this is not in scope for the test day.
In general issues related to the bcache kernel driver are not in scope; SSD caching is not production yet so they should be addressed in the regular development process. This includes performance related issues. Only when the Test day demonstrates a unworkable situation, issues related to the bcache driver in the kernel are in scope on the Test day.
Who's available
The following cast of characters will be available testing, workarounds, bug fixes, and general discussion ...
- Development - Kent Overstreet (py1hon)
- Quality Assurance - Igor Gnatenko (ignatenkobrain), Rolf Fokkens (rolffokkens)
External documentation
You can find some relevant documentation at bcache.evilpiepirate.org[[1]].
Prerequisites for the Test Day
Limitations
There's no "easy way" yet to convert an existing filesystem to a bcache based filesystem: bcache is an additional block layer that writes its own superblock on the underlying block devices. There is a blocks [[2]] tool under development, but for now the only solution is to backup your data some where, recreate your filesystem on a bcache device, and then restore the data.
Another limitation is the fact that bcache is EXPERIMENTAL. Although it works really well in general, you should be careful to store important data on it.
Physical or Virtual
Although performance (of course) is a very important aspect of SSD caching, testing it is not required on the test day. Because of this testing can be done both on physical and virtual hardware, on a true SSD or a HDD. There is however a slight preference to do the testing on real hardware, with a real SSD.
Whenever the terms HDD or SDD are used below, they can be both physical and virtual. The same is true for the terms "system", "CPU", "RAM`and "bootable media".
Hardware & Software requirements
- A fresh system:
* 10GB+ HDD * 2GB+ SSD * 256MB+ RAM * x86 CPU (32bit or 64bit) * internet connection
- bootable media containg (one of):
Because doing updates (particularly the kernel) is part of the test, it's best not to install latest and greatest.
Disk partitioning
To prepare for the test cases, it is important to use the following partitioning:
sda: sda1 500MB /boot sda2 2GB /home sda3 2GB / sda4 (>4G) free space (only used when testing in combination with LVM) sdb: sdb1 >2GB (caching device)
sda is (or models) the rotational disk device, sdb is (or models) the solid state disk device. It would be best to have sdb (on) a true SSD, but if you don't have an SSD then an ordinary disk will do as well for the testing (except for performance testing)
When using a VM sda may and sdb may be read as vda and vdb.
SElinux
Please disable SElinux. There's some copying involved in the testcases, and SElinux may break the testcases when the copied data is not accessible.
To disable SElinux you should edit your /etc/selinux/config and set SELINUX=permissive instead of SELINUX=enforcing.
Other requirements
- Knowledge on how to build physical or virtual machines
- Knowledge on how to use the Linux command line (There's no graphical installer yet)
- A desire to break software
How to test?
Because Anaconda does not support bcache yet, the test may be executed following certain steps: preparation and test case 1 to test case 3. The end result will be a F20 system running its root filesystem on bcache. These steps are merely suggestions, to allow testing in limited time. Of course testers are free to choose other ways of testing. As a suggestion, testers can focus on the following criteria:
- Do the tools to create / manage bcache operate as expected?
- Are your 'bcached' filesystems automatically operational after a reboot?
- Are your 'bcached' filesystems automatically operational after a kernel update?
Each demonstrates the proper allignment of dracut, util-linux, lvm2 (when used), bcache-tools and the kernel.
Preparation: install F20
The first step is to do a minimal install:
- this is the fastest install
- it also saves time when copying the root filesystem during later test cases
- it allows to install other packages later (yum groupinstall) as part of the test activities.
Use bootable media containg
Fedora 20 Beta TC2 x86_64 DVD
Fedora 20 Beta TC2 i386 DVD
Fedora 20 Beta TC2 x86_64 netinstall
Fedora 20 Beta TC2 i386 netinstall to install Fedora 20. This does not contain the most recent packages, so lateron yum update
can be used as a test.
Test Cases
Test case 1.A: /home on bcache (no LVM)
Once your fresh Fedora 20 system is running, we will "move" /home to a bcache device without using LVM.
Step by step instructions are available on this page
Test case 1.B: / on bcache (no LVM)
Now we have a stable system with /home on bcache, we can go forward and have / on bcache without using LVM.
Step by step instructions are available on this page.
Test case 2.A: /home on bcache (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!
Step by step instructions are available on this page
Test case 2.B: / on bcache (LVM)
Now we have a stable system with /home on LVM on bcache, we can go forward and have / on bcache.
Step by step instructions are available on this page
Participants
User | IRC nickname |
---|---|
Kent Overstreet | py1hon |
Igor Gnatenko | ignatenkobrain |
Rolf Fokkens | rolffokkens |
Test Results
We are tracking test results in a web application over here
Results from this web application will be automatically transferred to the Wiki a week after the test day, and the reporting system will be shutdown. Feel free to continue testing and filling the wiki even after this date.
Should you encounter any problem while using the web application, please contact jskladan on #fedora-qa channel at freenode, or send an email to jskladan@fedoraproject.org