Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. 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

Similar to the question I asked a while back. This one's a little easier? I can see there's volume management logic in BTRFS for removing/adding/rebalancing physical drives, but is there a tool to manually move extents/blocks off a particular physical device and onto another? Seems like it would be important for files that should be created quickly (like backup files) but can be moved to slower storage on the backend.

share|improve this question
up vote 3 down vote accepted

The redistribution of files when removing a device is transparent. I looked at the source ( a 1 Gb git clone) but I have never been able to find anything in the user-land utilities (now bundled in btrfs IIRC) to do this without actually removing (btrfs device delete) and re-adding (btrfs device add) the device. I specifically looked at mapping subvolumes to specific devices without results.

The removing of a device takes time equivalent to the amount of data to be moved, during which the device is not used for new data. Also there is no control to leave frequently accessed items on the device. So that was not a useful option.

I have my setup now so that the slower 'backend' is a seperate filesystem to which specific data is move based on file type and access information. That is of course not as convenient as having one big filesystem wrt running out of space (at least 'backend' storage is relatively cheap)

If you have not already done so you might also want to look at this entry on the btrfs Wiki.

share|improve this answer
Do you know if anything ever came of admin policy through extent trees or if there are plan on implementing something like that for between devices? – Bratchley Apr 11 '13 at 10:28
That has been in there since the beginning and I don't think that has been implemented (yet). – Anthon Apr 11 '13 at 11:10

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.