Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have set up /dev/sda3 on my SSD to cache /dev/sdb3 on my HDD as /dev/bcache0 using bcache in Ubuntu 13.10 (kernel 3.11.0-14-generic). I have formatted it as ext4.

I currently mount / (on my SSD) and /home (bcache) using these fstab options

# / (root) -> /dev/sda2 (SSD)
UUID={uuid for /dev/sda2}   /  ext4  discard,noatime,nodiratime,errors=remount-ro   0  1

# /home -> { /dev/bcache0 -> { /dev/sda3 -> /dev/sdb3 } }
UUID={uuid for /dev/bcache0}  /home  ext4  defaults   0  2

What I am wondering is if any mount options (e.g. discard (TRIM), noatime, etc) are useful when mounting bcache, or if bcache its self takes care of optimising the filesystem for the SSD and HDD partitions.

Please let me know if I have not made my question clear, thanks.

share|improve this question
up vote 0 down vote accepted

discard is a special case: bcache will (I think) make use of it to discard sectors, but won't pass it down the stack unless you have explicitly asked it to (echo 1 |sudo tee -a /sys/block/*/bcache/discard, which will be remembered across reboots). The best case for performance is that your filesystem sends discards (which means you need to put the flag in /etc/fstab) and bcache passes them down if and only if your SSD is SATA 3.1 (queued TRIM support).

Your filesystem is able to detect bcache as something like an SSD (rotational=0 in sysfs), which it may use to tune itself a bit differently. Aside from discard and noatime, I don't think there's a real need to stray from ext4 defaults.

share|improve this answer
I think what I want is for bcache to use discard and noatime on the SSD cache, but not on the HDD storage partition. Are you saying that by mounting the ext4 filesystem with those options and telling bcache to pass them down to each device, they will only be applied to applicable devices? Or will bcache try to use discard on my HDD as well? Or do I not need bcache to pass them down at all to get the benefits on the SSD cache? Apologies for my confusion. – MattSturgeon Jan 12 '14 at 14:12
If you want bcache to discard buckets on the SSD, you must use bcache's sysfs flag. I'm not sure about the rest; it would take more familiarity with the code. – Gabriel Jan 12 '14 at 23:42
Ah ok, thanks for your help – MattSturgeon Jan 14 '14 at 1:46

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.