Friday, May 3, 2024
 Popular · Latest · Hot · Upcoming
11
rated 0 times [  11] [ 0]  / answers: 1 / hits: 40113  / 3 Years ago, fri, june 18, 2021, 3:32:50

I want to know if there is anyone who has tried installing and running their kernel built with flashcache or bcache for SSD caching?



How did you manage to do it?


More From » kernel

 Answers
6

Well, we got a bcache answer but no flashcache answer. I chose flashcache because I already had an existing installation, so bcache was out of the question. To me it seemed easier to set up as well. I chose the DKMS method so I wouldn't be stuck rebuilding the module/tools every time I got a kernel upgrade.



These steps are outlined in README-DKMS on Github.



Building the Module




  1. The first thing you do is install the building prerequisites:



    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git

  2. Then snag the source:



    git clone git://github.com/facebook/flashcache; cd flashcache

  3. Build and install the modules:



    make -f Makefile.dkms



Creating a flashcache device



(In this example I use writeback caching -- the default -- but flashcache can do writearound and writethrough as well)



Caching a non-root (not mounted at /) device



sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX Where fcache is the created device (/dev/mapper/fcache), /dev/sdaX is the SSD partion (or whole disk) and /dev/sdbX is the HDD partition.



Caching your root device



There are a few more steps if you're caching your root device. You will need an Ubuntu LiveCD/USB for this section.




  1. cd /path/to/flashcache/source


  2. make -f Makefile.dkms boot_conf


  3. Edit /boot/grub/grub.cnf and /etc/fstab to boot from /dev/mapper/fcache (I don't believe this step is really necessary, but it says to). Be sure to write down the UUID of your original root device.


  4. Reboot with the LiveCD/LiveUSB.


  5. Mount your root device: mount /dev/sda4 /mnt (/dev/sda4 is my Linux root partition)


  6. cd /mnt/path/to/flashcache/source


  7. sudo apt-get install dkms build-essential linux-headers-$(uname -r)


  8. make; sudo make install No need to do the whole DKMS setup in the live environment


  9. Unmount the root device sudo umount /mnt


  10. sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] Where fcache is the created device (it should be the same as you put in /etc/fstab and /boot/grub/grub.cnf, in my case it was fcache), /dev/sdbX is the SSD partition (or whole disk) and [UUID] is the UUID of your root partition.


  11. Reboot!




Caveats when using the root device



One minor annoyance when flashcache is used for the root device is that grub-probe fails to detect the root device and can mess up your boot menu so that you have two Ubuntu entires. But, it shouldn't matter which you use in all reality since the make -f Makefile.dkms boot_conf step above installs some scripts in your initrd that will detect and use the flashcache device.


[#32808] Saturday, June 19, 2021, 3 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
iething

Total Points: 49
Total Questions: 127
Total Answers: 112

Location: Luxembourg
Member since Tue, Jan 25, 2022
2 Years ago
;