linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Austin S. Hemmelgarn" <ahferroin7@gmail.com>
To: Hans Deragon <hans@deragon.biz>, linux-btrfs@vger.kernel.org
Cc: Andrei Borzenkov <arvidjaar@gmail.com>,
	Adam Borowski <kilobyte@angband.pl>
Subject: Re: raid1: cannot add disk to replace faulty because can only mount fs as read-only.
Date: Mon, 30 Jan 2017 07:18:52 -0500	[thread overview]
Message-ID: <5820578a-07ab-d278-084f-4ac63f8f8b07@gmail.com> (raw)
In-Reply-To: <07bba687-64c3-6713-6f6a-c8da183cbd3d@gmail.com>

On 2017-01-28 04:17, Andrei Borzenkov wrote:
> 27.01.2017 23:03, Austin S. Hemmelgarn пишет:
>> On 2017-01-27 11:47, Hans Deragon wrote:
>>> On 2017-01-24 14:48, Adam Borowski wrote:
>>>
>>>> On Tue, Jan 24, 2017 at 01:57:24PM -0500, Hans Deragon wrote:
>>>>
>>>>> If I remove 'ro' from the option, I cannot get the filesystem mounted
>>>>> because of the following error: BTRFS: missing devices(1) exceeds the
>>>>> limit(0), writeable mount is not allowed So I am stuck. I can only
>>>>> mount the filesystem as read-only, which prevents me to add a disk.
>>>>
>>>> A known problem: you get only one shot at fixing the filesystem, but
>>>> that's
>>>> not because of some damage but because the check whether the fs is in a
>>>> shape is good enough to mount is oversimplistic.
>>>>
>>>> Here's a patch, if you apply it and recompile, you'll be able to mount
>>>> degraded rw.
>>>>
>>>> Note that it removes a safety harness: here, the harness got tangled
>>>> up and
>>>> keeps you from recovering when it shouldn't, but it _has_ valid uses
>>>> that.
>>>>
>>>> Meow!
>>>
>>> Greetings,
>>>
>>> Ok, that solution will solve my problem in the short run, i.e. getting
>>> my raid1 up again.
>>>
>>> However, as a user, I am seeking for an easy, no maintenance raid
>>> solution.  I wish that if a drive fails, the btrfs filesystem still
>>> mounts rw and leaves the OS running, but warns the user of the failing
>>> disk and easily allow the addition of a new drive to reintroduce
>>> redundancy.  Are there any plans within the btrfs community to implement
>>> such a feature?  In a year from now, when the other drive will fail,
>>> will I hit again this problem, i.e. my OS failing to start, booting into
>>> a terminal, and cannot reintroduce a new drive without recompiling the
>>> kernel?
>> Before I make any suggestions regarding this, I should point out that
>> mounting read-write when a device is missing is what caused this issue
>> in the first place.
>
>
> How do you replace device when filesystem is mounted read-only?
>
I'm saying that the use case you're asking to have supported is the 
reason stuff like this happens.  If you're mounting read-write degraded 
and fixing the filesystem _immediately_ then it's not an issue, that's 
exactly what read-write degraded mounts are for.  If you're mounting 
read-write degraded and then having the system run as if nothing was 
wrong, then I have zero sympathy because that's _dangerous_, even with 
LVM, MD-RAID, or even hardware RAID (actually, especially with hardware 
RAID, LVM and MD are smart enough to automatically re-sync, most 
hardware RAID controllers aren't).

That said, as I mentioned further down in my initial reply, you 
absolutely should be monitoring the filesystem and not letting things 
get this bad if at all possible.  It's actually very rare that a storage 
device fails catastrophically with no warning (at least, on the scale 
that most end users are operating).  At a minimum, even if you're using 
ext4 on top of LVM, you should be monitoring SMART attributes on the 
storage devices (or whatever the SCSI equivalent is if you use 
SCSI/SAS/FC devices).  While not 100% reliable (they are getting better 
though), they're generally a pretty good way to tell if a disk is likely 
to fail in the near future.

  reply	other threads:[~2017-01-30 12:19 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-24 18:57 raid1: cannot add disk to replace faulty because can only mount fs as read-only Hans Deragon
2017-01-24 19:48 ` Adam Borowski
     [not found] ` <W75Sc6PDCBok7W75TcCgc7@videotron.ca>
2017-01-27 16:47   ` Hans Deragon
2017-01-27 20:03     ` Austin S. Hemmelgarn
2017-01-27 20:28       ` Adam Borowski
2017-01-28  9:17       ` Andrei Borzenkov
2017-01-30 12:18         ` Austin S. Hemmelgarn [this message]
     [not found]         ` <YAvBcoM9EImXYYAvCcegSf@videotron.ca>
2017-02-01  2:51           ` Hans Deragon
2017-02-01  5:23             ` Duncan
2017-02-01 11:55               ` Adam Borowski
2017-02-01 22:48                 ` Duncan
2017-02-02 12:49                   ` Austin S. Hemmelgarn
2017-02-02 14:25                     ` Adam Borowski
2017-02-02 15:06                       ` Austin S. Hemmelgarn
     [not found]                       ` <ZIyPcL4cW36fIZIyQcB9Hs@videotron.ca>
2017-02-08  3:21                         ` Hans Deragon
2017-02-08 12:50                           ` Austin S. Hemmelgarn
2017-02-08 13:46                             ` Tomasz Torcz
2017-02-08 19:06                               ` Austin S. Hemmelgarn
2017-02-03  9:35                     ` Duncan

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=5820578a-07ab-d278-084f-4ac63f8f8b07@gmail.com \
    --to=ahferroin7@gmail.com \
    --cc=arvidjaar@gmail.com \
    --cc=hans@deragon.biz \
    --cc=kilobyte@angband.pl \
    --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;
as well as URLs for NNTP newsgroup(s).