Re: [PATCH v3] btrfs-progs: add warning for mixed profiles filesystem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/04/2020 12:32, Goffredo Baroncelli wrote:
> 
> Hi all,
> 
> the aim of this patch set is to issue a warning when a mixed profiles
> filesystem is detected. This happens when the filesystems contains
> (i.e.) raid1c3 and single chunk for data.
> 
> BTRFS has the capability to support a filesystem with mixed profiles.
> However this could lead to an unexpected behavior when a new chunk is
> allocated (i.e. the chunk profile is not what is wanted). Moreover
> if the user is not aware of this, he could assume a redundancy which
> doesn't exist (for example because there is some 'single' chunk when
> it is expected the filesystem to be full raid1).
> A possible cause of a mixed profiles filesystem is an interrupted
> balance operation or a not fully balance due to very specific filter.
> 
> The check is added to the following btrfs commands:
> - btrfs balance pause
> - btrfs balance cancel
> - btrfs device add
> - btrfs device del
> 
> The warning is shorter than the before one. Below an example and
> it is printed after the normal output of the command.
> 
>     WARNING: Multiple profiles detected.  See 'man btrfs(5)'.
>     WARNING: data -> [raid1c3, single], metadata -> [raid1, single]
> 
> The command "btrfs fi us" doesn't show the warning above, instead
> it was added a further line in the "Overall" section. The output now
> is this:
> 
> $ sudo ./btrfs fi us /tmp/t/
> [sudo] password for ghigo:
> Overall:
>      Device size:		  30.00GiB
>      Device allocated:		   4.78GiB
>      Device unallocated:		  25.22GiB
>      Device missing:		     0.00B
>      Used:			   1.95GiB
>      Free (estimated):		  13.87GiB	(min: 9.67GiB)
>      Data ratio:			      2.00
>      Metadata ratio:		      1.50
>      Global reserve:		   3.25MiB	(used: 0.00B)
>      Multiple profile:		       YES
> 
> Data,single: Size:1.00GiB, Used:974.04MiB (95.12%)
>     /dev/loop0	   1.00GiB
> 
> Data,RAID1C3: Size:1.00GiB, Used:178.59MiB (17.44%)
>     /dev/loop0	   1.00GiB
>     /dev/loop1	   1.00GiB
>     /dev/loop2	   1.00GiB
> 
> Metadata,single: Size:256.00MiB, Used:76.22MiB (29.77%)
>     /dev/loop1	 256.00MiB
> 
> Metadata,RAID1: Size:256.00MiB, Used:206.92MiB (80.83%)
>     /dev/loop1	 256.00MiB
>     /dev/loop2	 256.00MiB
> 
> System,single: Size:32.00MiB, Used:16.00KiB (0.05%)
>     /dev/loop2	  32.00MiB
> 
> Unallocated:
>     /dev/loop0	   8.00GiB
>     /dev/loop1	   8.50GiB
>     /dev/loop2	   8.72GiB
> 
> 
> In this case there are two kind of chunks for data (raid1c3 and single)
> and metadata (raid1, single).
> 
> As the previous patch set, the warning is added also to the command
> 'btrfs fi df' and 'btrfs dev us' as separate patch. If even in this
> review nobody likes it, we can simply drop this patch.
> 
> Suggestion about which commands should (not) have this check are
> welcome.
> 
> v1
> - first issue
> v2
> - add some needed missing pieces about raid1c[34]
> - add the check to more btrfs commands
> v3
> - add a section in btrfs(5) 'FILESYSTEM WITH MULTIPLE PROFILES'
> - 'btrfs fi us': changed the worning in a info in the 'overall' section
> 
> Patch #1 contains the code for the check.
> Patch #3 adds the check to the command 'btrfs dev {add,del}' and 'btrfs
> bal {pause, stop}'
> Patch #3 adds the check to the command 'btrfs fi us'
> Patch #5 add the check to the command 'btrfs fi df' and 'btrfs dev us'
> Patch #5 add the info in btrfs(5) man page

Btw with this patchset applied fstests choke on some tests (e.g. 
btrfs/003) in my setup:

btrfs/003       - output mismatch (see 
/home/johannes/src/xfstests-dev/results//btrfs/003.out.bad)
     --- tests/btrfs/003.out     2020-01-02 08:43:50.000000000 +0000
     +++ /home/johannes/src/xfstests-dev/results//btrfs/003.out.bad 
2020-04-30 13:20:43.050569551 +0000
     @@ -1,2 +1,4 @@
      QA output created by 003
     +WARNING: Multiple profiles detected.  See 'man btrfs(5)'.
     +WARNING:
      Silence is golden
     ...
     (Run 'diff -u /home/johannes/src/xfstests-dev/tests/btrfs/003.out 
/home/johannes/src/xfstests-dev/results//btrfs/003.out.bad'  to see the 
entire diff)





[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux