Re: Recovery Operation With Multiple Devices

2015-01-23 Thread Hugo Mills
On Fri, Jan 23, 2015 at 06:53:42PM +1100, Brett King wrote:
 Hi All,
 Just wondering how 'btrfs recovery' operates, when the source device given is 
 one of many in an MD array - I can't find anything documentation beyond a 
 single device use case.
 
 Does it automatically include all devices in the relevant MD array as occurs 
 when mounting, or does it only restore the data which happened to be written 
 to the specific, single device given ?

   Neither. :)

   It automatically includes all devices as occurs when running
btrfsck. OK, it's a relatively pointless distinction, but the
mechanisms are slightly different.

 From an inverse perspective, how can I restore all data including snapshots, 
 which are spread across a damaged MD FS to a new (MD) FS ?

   btrfs restore -l will show you the list of tree roots, which (for
trees numbered 256 and up) correspond to subvolumes and snapshots. You
can then use -r to select the tree to restore.

 Can send / receive do this perhaps ?

   Yes, but only if you can mount the FS.

   Hugo.

-- 
Hugo Mills | I know of three kinds: hot, cool, and
hugo@... carfax.org.uk | what-time-does-the-tune-start?
http://carfax.org.uk/  |
PGP: 65E74AC0  |  Chris Dollin


signature.asc
Description: Digital signature


RE: Recovery Operation With Multiple Devices

2015-01-23 Thread Brett King
-Original message-
From:   Hugo Mills h...@carfax.org.uk
Sent:   Fri 01-23-2015 08:48 pm
Subject:Re: Recovery Operation With Multiple Devices
Attachment: signature.asc
To: Brett King brett.k...@commandict.com.au; 
CC: linux-btrfs@vger.kernel.org; 
 On Fri, Jan 23, 2015 at 06:53:42PM +1100, Brett King wrote:
  Hi All,
  Just wondering how 'btrfs recovery' operates, when the source device given 
  is 
 one of many in an MD array - I can't find anything documentation beyond a 
 single device use case.
  
  Does it automatically include all devices in the relevant MD array as 
  occurs 
 when mounting, or does it only restore the data which happened to be written 
 to 
 the specific, single device given ?
 
Neither. :)
 
It automatically includes all devices as occurs when running
 btrfsck.

Fantastic - that is very powerful and exactly what I need.

 OK, it's a relatively pointless distinction, but the
 mechanisms are slightly different.
 
  From an inverse perspective, how can I restore all data including 
  snapshots, 
 which are spread across a damaged MD FS to a new (MD) FS ?
 
btrfs restore -l will show you the list of tree roots, which (for
 trees numbered 256 and up) correspond to subvolumes and snapshots. You
 can then use -r to select the tree to restore.

Great info, will keep that in the tool box !

 
  Can send / receive do this perhaps ?
 
Yes, but only if you can mount the FS.
 
Hugo.

Excellent, much appreciated.

 
 -- 
 Hugo Mills | I know of three kinds: hot, cool, and
 hugo@... carfax.org.uk | what-time-does-the-tune-start?
 http://carfax.org.uk/  |
 PGP: 65E74AC0  |  Chris Dollin

--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Recovery Operation With Multiple Devices

2015-01-23 Thread Brendan Hide

On 2015/01/23 09:53, Brett King wrote:

Hi All,
Just wondering how 'btrfs recovery' operates
I'm assuming you're referring to a different set of commands or general 
scrub/recovery processes. AFAIK there is no btrfs recovery command.



, when the source device given is one of many in an MD array - I can't find 
anything documentation beyond a single device use case.
btrfs doesn't know what an md array or member is, therefore your results 
aren't going to be well-defined. Depending on the type of md array the 
member was in, your data may be mostly readable (RAID1) or 
completely/mostly non-interpretable (RAID5/6/10/0) until md fixes the array.



Does it automatically include all devices in the relevant MD array as occurs 
when mounting, or does it only restore the data which happened to be written to 
the specific, single device given ?
As above, btrfs is not md-aware. It will attempt to work with what it is 
given. It might not understand anything it sees as it will not have a 
good description of what it is looking at. Imagine being given 
instructions on how to get somewhere only to find that the first 20 
instructions and every second instruction thereafter was skipped and 
there's a 50% chance the destination doesn't exist.



 From an inverse perspective, how can I restore all data including snapshots, 
which are spread across a damaged MD FS to a new (MD) FS ?
Your best bet is to restore the md array. More details are needed for 
anyone to assist - for example what RAID-type was the array set up with, 
how many disks were in the array, and how it failed. Also, technically 
this is the wrong place to ask for advice about restoring md arrays. ;)



Can send / receive do this perhaps ?
Send/receive is for sending good data to a destination that can accept 
it. This, as above, depends on the data being readable/available. Very 
likely the data will be unreadable from a single disk unless the md 
array was RAID1.



Thanks in advance !
--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



--
__
Brendan Hide
http://swiftspirit.co.za/
http://www.webafrica.co.za/?AFF1E97

--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html