Thread (9 messages) 9 messages, 7 authors, 2016-06-21

Re: Is "btrfs balance start" truly asynchronous?

From: Hugo Mills <hidden>
Date: 2016-06-21 12:02:07

On Tue, Jun 21, 2016 at 07:24:24AM -0400, Austin S. Hemmelgarn wrote:
On 2016-06-21 04:55, Duncan wrote:
quoted
Dmitry Katsubo posted on Mon, 20 Jun 2016 18:33:54 +0200 as excerpted:
quoted
Dear btfs community,

I have added a drive to existing raid1 btrfs volume and decided to
perform balancing so that data distributes "fairly" among drives. I have
started "btrfs balance start", but it stalled for about 5-10 minutes
intensively doing the work. After that time it has printed something
like "had to relocate 50 chunks" and exited. According to drive I/O,
"btrfs balance" did most (if not all) of the work, so after it has
exited the job was done.

Shouldn't "btrfs balance start" do the operation in the background?
From the btrfs-balance (8) manpage (from btrfs-progs-4.5.3):

start [options] <path>
   start the balance operation according to the specified filters,
   no filters will rewrite the entire filesystem. The process runs
   in the foreground.


So the balance start operation runs in the foreground, but as explained
elsewhere in the manpage, the balance is interruptible by unmount and
will automatically restart after a remount.  It can also be paused and
resumed or canceled with the appropriate btrfs balance subcommands.
FWIW, there was some talk a while back about possibly providing an
option to run balance in the background.  If I end up finding the
time, I may write a patch for this (userland only, I'm not
interested in mucking around with the kernel side of things, and
it's fully possible to do this just using libc functions), as it's
something I'd rather like to have myself, as the current method of
using job control in a shell doesn't really work in some
circumstances (for example, you can't easily start a balance on a
remote system via a ssh command, which is the specific use case I
have).
   There's quite a bit of infrastructure in the userspace tools to
deal with managing an asynchronous scrub. It would probably be worth
looking at that in the first instance to see if it can be reused for
balance.

   Hugo.

-- 
Hugo Mills             |
hugo@... carfax.org.uk | __(_'>
http://carfax.org.uk/  | Squeak!
PGP: E2AB1DE4          |

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help