Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Chris Mason <chris.mason@oracle.com>
To: linux-btrfs@vger.kernel.org
Subject: Online device removal pushed to the unstable tree
Date: Tue, 13 May 2008 16:08:36 -0400	[thread overview]
Message-ID: <200805131608.36386.chris.mason@oracle.com> (raw)

Hello everyone,

The unstable tree is still format compatible with v0.14, and it now includes 
the ability to remove devices online.  In mirror configurations, IO errors to 
one of the mirrors are also handled, although it doesn't currently kick off a 
rebuild or other magic.

To try things out:

mkfs.btrfs -d raid1 -m raid1 /dev/sdb /dev/sdc
mount /dev/sdb /mnt
# put data on /mnt
# then add /dev/sdd to the FS
btrfs-vol -a /dev/sdd /mnt

At this point we've got a raid1 filesystem with data spread across sdb and 
sdc.  If we remove /dev/sdc, all the existing data will be remirrored onto 
sdd:

btrfs-vol -r /dev/sdc /mnt

There is also a mount -o degraded to handle situations where a device in the 
FS has been lost or removed:

mkfs.btrfs -d raid1 -m raid1 /dev/sd[bc]
mount /dev/sdb /mnt
# put data on /mnt
umount /mnt
# corrupt the drive
dd if=/dev/zero of=/dev/sdc bs=1M count=1000

# this mount will fail, dmesg will show that not enough devices were found
mount /dev/sdb /mnt

# this mount will succeed, but only one device will be used
mount -o degraded /dev/sdb /mnt

# add a spare
btrfs-vol -a /dev/sdd /mnt

# remove the corrupted drive
btrfs-vol -r missing /mnt

btrfs-vol -r missing is a special command that tells btrfs to reconstruct 
things without the first device it can find that is mentioned in the metadata 
but not present in the mounted FS.

I plan on hammering on this for a bit and then cutting v0.15

-chris

             reply	other threads:[~2008-05-13 20:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-13 20:08 Chris Mason [this message]
2008-05-14 14:41 ` Online device removal pushed to the unstable tree Miguel Sousa Filipe
2008-05-14 17:15   ` Chris Mason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200805131608.36386.chris.mason@oracle.com \
    --to=chris.mason@oracle.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox