One of the guiding principles for zfs is simple administration and it seems 
like we're exposing way too many knobs to the administrator. These knobs expose 
the internals of the product. For example, if I want to clear the labels, why 
wouldn't I just run `zpool labelclear` and have the command figure out if we 
need to clear label 2 and 3 or 0-3 or any combination? In other words if the 
user wants to clear the labels then clear whatever valid labels we find. If the 
user specifies -f then clear them all. I like that this change is trying to 
protect the user but it seems like we can accomplish this without having to 
make the user figure out the internal details of the product.

This is less of a concern but one that I want to make sure we can discuss -- I 
still struggle with invalidating the nvlist encoding vs setting txg = 0. Yes, 
it's 1 byte vs 8 bytes so we have a smaller chance of impacting any software 
that is using that disk but the chance is not 0% in either case. I would argue 
that setting the value of txg=0 at least provides some diagnostics with 
existing tools and possibly some recovery opportunities that are not available 
with the nvlist invalidate case. For example,  if invalidating the nvlist 
impacts the software running on that disk, how would you ever know that the 
disk was once used by zfs and has been invalidated? You would end up with 
corruption with no way of diagnosing what caused it. We could enhance the tools 
to look for the invalid encoding making this less of an issue. I recognize this 
is not a new problem since the current implementation "wipes" the labels. This 
is why I wonder if we ever need to "wipe" the labels or do we just want zfs to 
forget about this device? Do we know of cases where we have needed to "wipe" 
the label?

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
Powered by Topicbox:

Reply via email to