Gotchas

From btrfs Wiki
Revision as of 11:09, 2 May 2014 by Brendan Hide (Talk | contribs)

Jump to: navigation, search

This page lists problems one might face when trying btrfs, some of these are not really bugs, but rather inconveniences about things not yet implemented, or yet undocumented design decisions.

Please add new things below, don't forget to add a comment on which version you observed this.

Issues

  • Stable kernels that contain important btrfs fixes:
    • 3.11.6 -- crashes during balance under some conditions
    • 3.12.2 -- crashes during balance under some conditions
  • bcache + btrfs does not seem to be stable yet
  • Files with a lot of random writes can become heavily fragmented (10000+ extents) causing trashing on HDDs and excessive multi-second spikes of CPU load on systems with an SSD or large amount a RAM.
    • On servers and workstations this affects databases and virtual machine images.
      • The nodatacow mount option may be of use here, with associated gotchas.
    • On desktops this primarily affects application databases (including Firefox and Chromium profiles, GNOME Zeitgeist, Ubuntu Desktop Couch, Banshee, and Evolution's datastore.)
      • Workarounds include manually defragmenting your home directory using btrfs fi defragment. Auto-defragment (mount option autodefrag) should solve this problem in 3.0.
    • Symptoms include btrfs-transacti and btrfs-endio-wri taking up a lot of CPU time (in spikes, possibly triggered by syncs). You can use filefrag to locate heavily fragmented files.
  • On a multi device btrfs filesystem, mistakingly re-adding a block device that is already part of the btrfs fs with btrfs device add results in an error, and brings btrfs in an inconsistent state. In striping mode, this causes data loss and kernel oops. The btrfs userland tools need to do more checking to prevent these easy mistakes. (2.6.35, btrfs v0.19)
  • The "open_ctree failed" message which signals mount failure in dmesg points to open_ctree, a 750-line function that gives no user-accessible diagnostics. Potential causes of open_ctree failure range from invalid mount options (manual or fstab) to filesystem corruption. Once those possibilities have been eliminated, the only way to get a diagnostic is UML. (Linux 3.7)
  • Raid5/6 support is not yet fully implemented. See RAID56
Personal tools