Thread (28 messages) 28 messages, 6 authors, 2017-10-10

Re: mdadm: Patch to restrict --size when shrinking unless forced

From: NeilBrown <hidden>
Date: 2017-10-10 20:52:28

On Mon, Oct 09 2017, Wakko Warner wrote:
Phil Turmel wrote:
quoted
On 10/09/2017 12:10 AM, NeilBrown wrote:
quoted
If there is some action that mdadm can currently be told to perform, and
when it tries to perform that action it corrupts the array, then
it is certainly appropriate to teach mdadm not to perform that action.
It shouldn't even perform that action with --force.   I agree that
changing mdadm like this is complementary to changing the kernel.  Both
are useful.
A certain amount of the trouble with all of this is the english meaning
of "grow" doesn't really match what mdadm allows.

Might it be reasonable to reject "--grow" operations that reduce the
final array size, and introduce the complementary "--reduce" operation
that rejects array size increases?

Both operations would share the current code, just apply a different
sanity check before proceeding.

mdadm would then at least not violate the rule of least surprise.
As a general user of md raid and as a reader of the list, I would agree that
this would be a better solution.  Thinking in terms of lvm, there's lvreduce
and lvextend.  IMO, --force wouldn't be needed for --reduce (I was orginally
thinking of --shrink)

On a side note, is it possible for the lower layers to know what the last
used sector is?  IE lvm ontop of raid and has 10% allocated and the last
sector is around the 10% mark.  (If this were possible --force would be,
required if shrinking would result in inaccessible data)
No it isn't.  I've occasionally thought of adding functionality so that
the a device could ask its client (e.g. filesystem, lvm, etc) if
shrinking is OK - but it hasn't happened yet.
I recently did a shrink of 4x 2tb drives so that I could replace the 2tb
drives with 80gb drives (yes, big shrink!)  Would have been nice for mdadm
to know the smallest size was that wouldn't destroy my lvm volumes that were
on top.
Guess, try, see if data is still accessible.  If not, revert the change.
If you have a filesystem on the raid, fsck will complain if you made it
too small.  I don't know what you would try with lvm.  pvscan?

NeilBrown

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