• Unraid OS version 6.9.0-beta29 available


    limetech

    Back in the saddle ... Sorry for the long delay in publishing this release.  Aside from including some delicate coding, this release was delayed due to several team members, chiefly myself, having to deal with various non-work-related challenges which greatly slowed the pace of development.  That said, there is quite a bit in this release, LimeTech is growing and we have many exciting features in the pipe - more on that in the weeks to come.  Thanks to everyone for their help and patience during this time.

    Cheers,

    -Tom

     

    IMPORTANT: This is Beta software.  We recommend running on test servers only!

     

    KNOWN ISSUE: with this release we have moved to the latest Linux 5.8 stable kernel.  However, we have discovered that a regression has been introduced in the mtp3sas driver used by many LSI chipsets, e.g., LSI 9201-16e.  Typically looks like this on System Devices page:

    Serial Attached SCSI controller: Broadcom / LSI SAS2116 PCI-Express Fusion-MPT SAS-2 [Meteor] (rev 02)

    The problem is that devices are no longer recognized.  There are already bug reports pertaining to this issue:

    https://bugzilla.kernel.org/show_bug.cgi?id=209177

    https://bugzilla.redhat.com/show_bug.cgi?id=1878332

     

    We have reached out to the maintainer to see if a fix can be expedited, however we feel that we can neither revert back to 5.7 kernel nor hold the release due to this issue.  We are monitoring and will publish a release with fix asap.

     

    ANOTHER known issue: we have added additional btrfs balance options:

    • raid1c3
    • raid1c4
    • and modified the raid6 balance operation to set meta-data to raid1c3 (previously was raid1).

     

    However, we have noticed that applying one of these balance filters to a completely empty volume leaves some data extents with the previous profile.  The solution is to simply run the same balance again.  We consider this to be a btrfs bug and if no solution is forthcoming we'll add the second balance to the code by default.  For now, it's left as-is.

     

    THE PRIMARY FOCUS of this release is to put tools in place to help users migrate data off SSD-based pools so that those devices may be re-partitioned if necessary, and then migrate the data back.

     

    What are we talking about?  For several years now, storage devices managed by Unraid OS are formatted with an "Unraid Standard Partition Layout".  This layout has partition 1 starting at offset 32KiB from the start of the device, and extending to the end of the device.  (For devices with 512-byte sectors, partition 1 starts in sector 64; for 4096-byte sector size devices, partition 1 starts in sector 8.)  This layout achieves maximum storage efficiency and ensures partition 1 starts on a 4096-byte boundary.

     

    Through user reports and extensive testing however, we have noted that many modern SSD devices, in particular Samsung EVO, do not perform most efficiently using this partition layout, and the devices seem to write far more than one would expect, and with SSD, one wants to minimize writes to SSD as much as possible.

     

    The solution to the "excessive SSD write" issue is to position partition 1 at offset 1MiB from the start of the device instead of at 32KiB.  The will both increase performance and decrease writes with affected devices.  Do you absolutely need to re-partition your SSD's?  Probably not depending on what devices you have.  Click on a device from Main, scroll down to Attributes and take a look at Data units written.  If this is increasing very rapidly then you probably would benefit by re-partitioning.

     

    Note: if you have already (re)Formatted using previous 6.9-beta release, for SSD smaller than 2TiB the proper partition layout will appear like this on the Device Information page:

    Partition format:   MBR: 1MiB-aligned

    For SSD larger than 2TiB:

    Partition format:   GPT: 1MiB-aligned

     

    Here's what's in this release to help facilitate re-partitioning of SSD devices:

     

    An Erase button which appears in the Device Information page.

     

    The Erase button may be used to erase (delete) content from a volume. A volume is either the content of an unRAID array data disk, or the content of a pool. In the case of an unRAID disk, only that device is erased; in the case of a multiple-device pool ALL devices of the pool are erased.

    The extent of Erase varies depending on whether the array is Stopped, or Started in Maintenance mode (if started in Normal mode, all volume Erase buttons are disabled).

    Started/Maintenance mode: in this case the LUKS header (if any) and any file system within partition 1 is erased. The MBR (master boot record) is not erased.

    Stopped - in this case, unRAID array disk volumes and pool volumes are treated a little differently:

    • unRAID array disk volumes - if Parity and/or Parity2 is valid, then operation proceeds exactly as above, that is, content of only partition 1 is erased but the MBR (master boot record) is left as-is; but, if there is no valid parity, then the MBR is also erased.
    • Pool volumes - partition 1 of all devices within the pool are erased, and then the MBR is also erased.


    The purpose of erasing the MBR is to permit re-partitioning of the device if required.  Upon format, Unraid OS will position partition 1 at 32KiB for HDD devices and at 1MiB for SSD devices.

     

    Note that erase does not overwrite the storage content of a device, it simply clears the LUKS header if present (which effectively makes the device unreadable), and file system and MBR signatures.  A future Unraid OS release may include the option of overwriting the data.

     

    Additional "Mover" capabilities.

     

    Since SSD pools are commonly used to store vdisk images, shfs/mover is now aware of:

    • sparse files - when a sparse file is moved from one volume to another, it's sparseness is preserved
    • NoCOW attribute - when a file or directory in a btrfs volume has the NoCOW attribute set, the attribute is preserved when the file or directory is moved to another btrfs volume.

     

    Note that btrfs subvolumes are not preserved.  A future Unraid OS release may include preservation of btrfs subvolumes.

     

    Ok how do I re-partition my SSD pools?

     

    Outlined here are two basic methods:

    1. "Mover" method - The idea is to use the Mover to copy all data from the pool to a target device in the unRAID array.  Then erase all devices of the pool, and reformat.  Finally use the Mover to copy all the data back.
    2. "Unassign/Re-assign" method - The idea here is, one-by-one, remove a device from a btrfs pool, balance the pool with reduced device count, then re-assign the device back to the pool, and balance pool back to include the device.  This works because Unraid OS will re-partition new devices added to an existing btrfs pool.  This method is not recommended for a pool with more than 2 devices since the first balance operation may be write-intensive, and writes are what we're trying to minimize.  Also it can be tricky to determine if enough free space really exists after removing a device to rebalance the pool.  Finally, this method will introduce a time window where your data is on non-redundant storage.

     

    No matter which method, if you have absolutely critical data in the pool we strongly recommend making an independent backup first (you are already doing this right?).

     

     

    Mover Method

    This procedure presumes a multi-device btrfs pool containing one or more cache-only or cache-prefer shares.

     

    1. With array Started, stop any VM's and/or Docker applications which may be accessing the pool you wish to re-partition.  Make sure no other external I/O is targeting this pool.

     

    2. For each share on the pool, go to the Share Settings page and make some adjustments:

    • change from cache-only (or cache-prefer) to cache-yes
    • assign an array disk or disks via Include mask to receive the data.  If you  wish to preserve the NoCOW attribute (Copy-on-write set to No) on files and directories, these disks should be formatted with btrfs.  Of course ensure there is enough free space to receive the data.

     

    3. Now go back to Main and click the Move button.  This will move the data of each share to the target array disk(s).

     

    4. Verify no data left on the pool, Stop array, click on the pool and then click the Erase button.

     

    5. Start the array and the pool should appear Unformatted - go ahead and Format the pool (this is what will re-write the partition layout).

     

    6. Back to Share Settings page; for each above share:

    • change from cache-yes to cache-prefer

     

    7. On Main page click Move button.  This will move data of each share back to the pool.

     

    8. Finally, back to Share Settings page; for each share:

    • change from cache-prefer back to cache-only if desired

     

    Unassign/Re-assign Method

    1. Stop array and unassign one of the devices from your existing pool; leave device unassigned.
    2. Start array.  A balance will take place on your existing pool.  Let the balance complete.
    3. Stop array.  Re-assign the device, adding it back to your existing pool.
    4. Start array.  The added device will get re-partitioned and a balance will start moving data to the new device.  Let the balance complete.
    5. Repeat steps 1-4 for the other device in your existing pool.

     

    Whats happening here is this:

    At the completion of step 2, btrfs will 'delete' the missing device from the volume and wipe the btrfs signature from it.

    At the beginning of step 4, Unraid OS will re-partition the new device being added to an existing pool.

     

    I don't care about preserving data in the pool.  In this case just Stop array, click on the pool and then click Erase.  Start array and Format the pool - done.  Useful to know: when Linux creates a file system in an SSD device, it will first perform a "blkdiscard" on the entire partition.  Similarly, "blkdisard" is initiated on partition 1 on a new device added to an existing btrfs pool.

     

    What about array devices?  If you have SSD devices in the unRAID array the only  way to safely re-partition those devices is to either remove them from the array, or remove parity devices from the array.  This is because re-partitioning will invalidate parity.  Note also the volume size will be slightly smaller.

     


     

    Version 6.9.0-beta29 2020-09-27 (vs -beta25)

    Base distro:

    • at-spi2-core: version 2.36.1
    • bash: version 5.0.018
    • bridge-utils: version 1.7
    • brotli: version 1.0.9
    • btrfs-progs: version 5.6.1
    • ca-certificates: version 20200630
    • cifs-utils: version 6.11
    • cryptsetup: version 2.3.4
    • curl: version 7.72.0 (CVE-2020-8231)
    • dbus: version 1.12.20
    • dnsmasq: version 2.82
    • docker: version 19.03.13
    • ethtool: version 5.8
    • fribidi: version 1.0.10
    • fuse3: version 3.9.3
    • git: version 2.28.0
    • glib2: version 2.66.0 build 2
    • gnutls: version 3.6.15
    • gtk+3: version 3.24.23
    • harfbuzz: version 2.7.2
    • haveged: version 1.9.13
    • htop: version 3.0.2
    • iproute2: version 5.8.0
    • iputils: version 20200821
    • jasper: version 2.0.21
    • jemalloc: version 5.2.1
    • libX11: version 1.6.12
    • libcap-ng: version 0.8
    • libevdev: version 1.9.1
    • libevent: version 2.1.12
    • libgcrypt: version 1.8.6
    • libglvnd: version 1.3.2
    • libgpg-error: version 1.39
    • libgudev: version 234
    • libidn: version 1.36
    • libpsl: version 0.21.1 build 2
    • librsvg: version 2.50.0
    • libssh: version 0.9.5
    • libvirt: version 6.6.0 (CVE-2020-14339)
    • libxkbcommon: version 1.0.1
    • libzip: version 1.7.3
    • lmdb: version 0.9.26
    • logrotate: version 3.17.0
    • lvm2: version 2.03.10
    • mc: version 4.8.25
    • mpfr: version 4.1.0
    • nano: version 5.2
    • ncurses: version 6.2_20200801
    • nginx: version 1.19.1
    • ntp: version 4.2.8p15 build 2
    • openssl-solibs: version 1.1.1h
    • openssl: version 1.1.1h
    • p11-kit: version 0.23.21
    • pango: version 1.46.2
    • php: version 7.4.10 (CVE-2020-7068)
    • qemu: version 5.1.0 (CVE-2020-10717, CVE-2020-10761)
    • rsync: version 3.2.3
    • samba: version 4.12.7 (CVE-2020-1472)
    • sqlite: version 3.33.0
    • sudo: version 1.9.3
    • sysvinit-scripts: version 2.1 build 35
    • sysvinit: version 2.97
    • ttyd: version 1.6.1
    • util-linux: version 2.36
    • wireguard-tools: version 1.0.20200827
    • xev: version 1.2.4
    • xf86-video-vesa: version 2.5.0
    • xfsprogs: version 5.8.0
    • xorg-server: version 1.20.9 build 3
    • xterm: version 360
    • xxHash: version 0.8.0

    Linux kernel:

    • version 5.8.12
    • kernel-firmware: version kernel-firmware-20200921_49c4ff5
    • oot: Realtek r8152: version 2.13.0
    • oot: Tehuti tn40xx: version 0.3.6.17.3

    Management:

    • btrfs: include 'discard=async' mount option
    • emhttpd: avoid using remount to set additional mount options
    • emhttpd: added wipefs function (webgui 'Erase' button)
    • shfs: move: support spares files
    • shfs: move: preserve ioctl_iflags when moving between same file system types
    • smb: remove setting 'aio' options in smb.conf, use samba defaults
    • webgui: Update noVNC to v1.2.0
    • webgui: Docker: more intuitive handling of images
    • webgui: VMs: more intuitive handling of image selection
    • webgui: VMs: Fixed: rare cases vdisk defaults to Auto when it should be Manual
    • webgui: VMs: Fixed: Adding NICs or VirtFS mounts to a VM is limited
    • webgui: VM manager: new setting "Network Model"
    • webgui: Added new setting "Enable user share assignment" to cache pool
    • webgui: Dashboard: style adjustment for server icon
    • webgui: Update jGrowl to version 1.4.7
    • webgui: Fix ' appearing
    • webgui: VM Manager: add 'virtio-win-0.1.189-1' to VirtIO-ISOs list
    • webgui: Prevent bonded nics from being bound to vfio-pci too
    • webgui: better handling of multiple nics with vfio-pci
    • webgui: Suppress WG on Dashboard if no tunnels defined
    • webgui: Suppress Autofan link on Dashboard if plugin not installed
    • webgui: Detect invalid session and logout current tab
    • webgui: Added support for private docker registries with basic auth or no auth, and improvements for token based authentication
    • webgui: Fix notifications continually reappearing
    • webgui: Support links on notifications
    • webgui: Add raid1c3 and raid1c4 btrfs pool balance options.
    • webgui: For raid6 btrfs pool data profile use raid1c3 metadata profile.
    • webgui: Permit file system configuration when array Started for Unmountable volumes.
    • webgui: Fix not able to change parity check schedule if no cache pool present
    • webgui: Disallow "?" in share names
    • webgui: Add customizable timeout when stopping containers

    Edited by limetech

    • Like 6
    • Thanks 6



    User Feedback

    Recommended Comments



    1 hour ago, segator said:

    wondering if this release fix qemu 5 issue and ryzen "host-passthrough bug"

    Running on a 3700X here. I can confirm this bug is fixed.

    • Like 1
    • Thanks 2
    Link to comment
    56 minutes ago, Ralf. said:

    I am not 100% sure if my problem is related to the one above,

    but I have several VMs that use a pass through unassigned device as main disk. Since Beta 29 non of them boots anymore with the following error (example):

     

    Execution error

    Unable to get devmapper targets for /dev/sdh: No such file or directory

     

     

    In the LIBVIRT log, I got the following entries:

    2020-09-29 09:29:24.847+0000: 6045: error : virDevMapperOnceInit:78 : internal error: Unable to find major for device-mapper
    2020-09-29 09:29:24.847+0000: 6045: error : qemuSetupImagePathCgroup:91 : Unable to get devmapper targets for /dev/sdh: Success
    2020-09-29 09:45:55.392+0000: 6048: warning : qemuDomainObjTaint:5983 : Domain id=2 name='Windows 10' uuid=e2a7c568-efce-61c9-a7ad-789c710201fc is tainted: high-privileges
    2020-09-29 09:45:55.392+0000: 6048: warning : qemuDomainObjTaint:5983 : Domain id=2 name='Windows 10' uuid=e2a7c568-efce-61c9-a7ad-789c710201fc is tainted: host-cpu
    2020-09-29 09:45:55.408+0000: 6048: error : qemuSetupImagePathCgroup:91 : Unable to get devmapper targets for /dev/sdh: No such file or directory

     

    Any idea to what this problem is related or how it can be solved? Maybe with the next beta?

    Same here, even if you bind it via /dev/disk/by-id/

    @Ralf. You should definitely bind it via /dev/disk/by-id/ sometimes the drives can change with sda or sde or something.

    Link to comment
    50 minutes ago, ich777 said:

     

    @Ralf. You should definitely bind it via /dev/disk/by-id/ sometimes the drives can change with sda or sde or something.

    good point! I will change this next time I got the VMs running again.

    • Like 1
    Link to comment

    In the Ok how do I re-partition my SSD pools? section,

    Quote

    2. For each share on the pool, go to the Share Settings page and make some adjustments:

    • change from cache-only (or cache-prefer) to cache-yes
    • assign an array disk or disks via Include mask to receive the data.  These disks should be formatted with btrfs and of course have enough free space to receive the data.

    Is there any particular reason why the destination disks should be btrfs formatted? I've previously used the procedure with XFS-formatted destination disks and it worked well enough. I would think the majority of users choose the default XFS format for array disks so, unless there's a compelling reason for doing so, requiring btrfs is an unnecessary headache for them.

     

    Link to comment
    7 hours ago, stl88083365 said:

     <disk type='block' device='disk'>
          <driver name='qemu' type='raw' cache='writeback'/>
          <source dev='/dev/disk/by-id/ata-GLOWAY_STK512GS3-S7_201908175700' index='1'/>
          <backingStore/>
          <target dev='hdd' bus='sata'/>
          <alias name='sata0-0-3'/>
          <address type='drive' controller='0' bus='0' target='0' unit='3'/>
        </disk>

     

    There is no such file or path when using virtual machine to map hard disk

    Same problem here for me. Cant used any disks passed through to VMs.

    Link to comment
    4 hours ago, segator said:

    wondering if this release fix qemu 5 issue and ryzen "host-passthrough bug"

    It did for me. It was the first thing I tested :)

    • Thanks 1
    Link to comment
    5 hours ago, Dava2k7 said:

    Hey chess the work around worked for vnc for me but it wouldn’t pass through to the tv yet 6.8.3 I could passthrough to tv fine since going to beta I lost the ability I tried many fixes on here and it didn’t happen best I had was VNC and I can’t get that anymore 

    Hello @Dava2k7 are we talking about passing through a video card to a VM and then attaching the vm to a TV for video output or something else? Sorry a little confused, but passing through a video card to turn a vm into a virtual gaming system is possible, I'm trying on mine right  now, but it can be a finicky process. If this is it and you have a thread that you started maybe I can help.

    Link to comment
    9 minutes ago, Chess said:

    Hello @Dava2k7 are we talking about passing through a video card to a VM and then attaching the vm to a TV for video output or something else? Sorry a little confused, but passing through a video card to turn a vm into a virtual gaming system is possible, I'm trying on mine right  now, but it can be a finicky process. If this is it and you have a thread that you started maybe I can help.

    Yeah i used space invader ones video to setup awhile back I’d been using it to game on for probably 5 months before I got the probs but I just updated to beta 29 and VM is back and running well atm so Call of duty Cold War here I come thanks for the new update unraid team pls don’t do that to me again...

    Link to comment
    11 hours ago, _whatever said:

    I've been having issues with LACP since beta 25, and still have them after upgrading to beta 29.

    FYI, it appears to only be an issue when you try to create a bond using eth0, no matter which interface is assigned eth0.  I can bond all of the interfaces on my 4 port NIC and it works fine as long as none of them are eth0.

    Link to comment

    I tried the update this morning from beta 25 to 29

     

    All 11 of my disks were gone upon reboot onto 29.
    Rebooted again, still, everything was gone. And i mean everything!

     

    Rolled back to 25, back to normal.

    What can i provide to help?

    Edited by TRusselo
    Link to comment
    2 minutes ago, TRusselo said:

    I tried the update this morning from beta 25 to 29

     

    All 11 of my disks were gone upon reboot onto 29.
    Rebooted again, still, everything was gone. And i mean everything!

     

    Rolled back to 25, back to normal.

    What can i provide to help?

     

     

    What storaage card are you using? See above below:

     

    KNOWN ISSUE: with this release we have moved to the latest Linux 5.8 stable kernel.  However, we have discovered that a regression has been introduced in the mtp3sas driver used by many LSI chipsets, e.g., LSI 9201-16e.  Typically looks like this on System Devices page:

    Serial Attached SCSI controller: Broadcom / LSI SAS2116 PCI-Express Fusion-MPT SAS-2 [Meteor] (rev 02)

     

    Link to comment
    15 minutes ago, Dava2k7 said:

    Yeah i used space invader ones video to setup awhile back I’d been using it to game on for probably 5 months before I got the probs but I just updated to beta 29 and VM is back and running well atm so Call of duty Cold War here I come thanks for the new update unraid team pls don’t do that to me again...

    Ah, where you using and AMD CPU by any chance? beta 25 did have a bug that had to be worked around to allow any vm with passed through CPUs to work. but it only affected AMD 3XXX CPUs.

    Link to comment
    Quote

     

    KNOWN ISSUE: with this release we have moved to the latest Linux 5.8 stable kernel.  However, we have discovered that a regression has been introduced in the mtp3sas driver used by many LSI chipsets, e.g., LSI 9201-16e.  Typically looks like this on System Devices page:

    Serial Attached SCSI controller: Broadcom / LSI SAS2116 PCI-Express Fusion-MPT SAS-2 [Meteor] (rev 02)

     

    this one works:

    04:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS2308 PCI-Express Fusion-MPT SAS-2 (rev 05)

     

    Edited by Frank1940
    • Thanks 1
    Link to comment
    8 hours ago, DZMM said:

    Phew - I'd only just started hours of moving files off my pools when I saw this.  It's probably worth adding to the main post as other people will be in the same boat i.e. luckily did this when they created new pools.

    Good idea thanks!  Updated

    Link to comment
    3 hours ago, John_M said:

    In the Ok how do I re-partition my SSD pools? section,

    Is there any particular reason why the destination disks should be btrfs formatted? I've previously used the procedure with XFS-formatted destination disks and it worked well enough. I would think the majority of users choose the default XFS format for array disks so, unless there's a compelling reason for doing so, requiring btrfs is an unnecessary headache for them.

     

    You only need to use btrfs destination if you want to preserve 'NoCOW' share attribute, ie, on a share Settings page, if "Enable Copy-on-write" is set to "No".  This is the default setting for the predefined 'domains' share used to store vdisk images.

    • Thanks 1
    Link to comment

    I am currently in the middle of a rebuild of GOLIATH using Beta 25, after taking a detour down the OMV lane - don't get me started on that one. Anyway it would appear that I will need to repartition my EVO drives, but at least I have nothing on them. I have my Docker containers on a separate SSD pool (Intel) and they are properly formatted at the 1MiB-aligned. But on my array I have noticed that two of my Seagate 4TB NAS drives (prior to IronWolf drives) that two of them are 1MiB-aligned while the rest are 4KiB-aligned. Which explains while I was building them I was getting a message say the Parity drive was not the largest, so I moved them around. All of the drives in the array are the same model as shown. So I am a little confused here shoud the HDD be 1MiB or 4KiB aligned? How should I proceed? Since I am in the middle of a rebuild should I updated to Beta 29 and start over and reformat all drives?

     

    2020-09-29_08-38-58.png

     

    2020-09-29_08-57-31.png

     

    2020-09-29_08-39-22.png

     

    2020-09-29_08-39-43.png

    Edited by StanC
    Link to comment
    3 minutes ago, StanC said:

    So I am a little confused here shoud the HDD be 1MiB or 4KiB aligned?

    4KiB

    Link to comment
    14 minutes ago, StanC said:

    So I am a little confused here shoud the HDD be 1MiB or 4KiB aligned?

    Likewise confused - did you manually re-paritition those HDD's?  If so you can leave them as-is if you want as long as they're not assigned to parity since they are slightly smaller as you indicate.  If you want to re-partition, it is necessary to either unassign parity disk(s) or go to Tools/New Config and unassign that way.  Now, with array Stopped you should be able to click Erase button for each of those devices.  Upon next array Start they will appear Unformatted and subsequent Format will create default partition layout for an HDD (4KiB aligned).

    Link to comment
    19 minutes ago, trurl said:

    4KiB

     

    2 minutes ago, limetech said:

    Likewise confused - did you manually re-paritition those HDD's?  If so you can leave them as-is if you want as long as they're not assigned to parity since they are slightly smaller as you indicate.  If you want to re-partition, it is necessary to either unassign parity disk(s) or go to Tools/New Config and unassign that way.  Now, with array Stopped you should be able to click Erase button for each of those devices.  Upon next array Start they will appear Unformatted and subsequent Format will create default partition layout for an HDD (4KiB aligned).

     

    Thank you both. :)

    Link to comment
    1 hour ago, limetech said:

    You only need to use btrfs destination if you want to preserve 'NoCOW' share attribute, ie, on a share Settings page, if "Enable Copy-on-write" is set to "No".  This is the default setting for the predefined 'domains' share used to store vdisk images.

    II have a RAID 1 btrfs cache (with equally sized disks.) I figure I can convert it to a single-drive pool then use the newly-freed drive as my "btrfs destination." But is there a way do that without adding it to Array Devices (which will introduce new problems), maybe through unassigned devices?

     

    Otherwise I'm not sure how most plan to do this. 

    NoCOW seems important so I don't want to lose it.

    Link to comment

    I notice that the way SIZE/USED/FREE are reported for btrfs pools has changed since the last beta. I understand that Tom hates this subject because the inconsistencey is caused by the btrfs development team's intransigence and I apologise for raising it again, but I honestly think the situation was better with beta25.

     

    Here's what I see on the Main page for my four disk pool in RAID5:

    868555986_ScreenShot2020-09-29at16_37_17.thumb.png.5d899ddb56b066a05b84c591fc76e8e0.png

     

    and here's what I see from the command line:

    root@Lapulapu:~# df -h /dev/sdf1
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sdf1       7.3T  2.8T  2.7T  51% /mnt/extra
    
    root@Lapulapu:~# df -H /dev/sdf1
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sdf1       8.1T  3.1T  3.0T  51% /mnt/extra
    
    root@Lapulapu:~# btrfs fi df /mnt/extra
    Data, RAID5: total=2.77TiB, used=2.77TiB
    System, RAID1: total=32.00MiB, used=224.00KiB
    Metadata, RAID1: total=3.00GiB, used=2.88GiB
    GlobalReserve, single: total=512.00MiB, used=0.00B

    So I have (in round figures) four 2TB disks, which should give me 6TB of usable storage, with 2TB being used for parity. I currently have about 3TB of files and about 3TB free, as df shows, so it troubles me that the GUI suggests I have nearly 5TB free.

     

    I realise it's tricky to get all three values to display correctly but I think the most important figure is the amount of FREE space. If I can only have one of the three values reported correctly, I would very much prefer it to be that one. The SIZE and USED values are really only of secondary importance because running out of space is much more of a problem. I don't mind if the SIZE is shown 2TB more than it actually is. If an empty filesystem showed 2TB USED (to account for the parity, as though it were a file system overhead) I wouldn't mind, as long as the FREE value is reasonably accurate. For that reason I prefer the way it was with beta25.

     

    Maybe it was changed to solve some other conflicting requirement (I know that RAID1 pools with unequally sized members can be problematic). I'd be interested to hear other people's opinons.

     

    Link to comment
    14 minutes ago, John_M said:

    but I honestly think the situation was better with beta25.

    Me too, it could be even better if it was done the same way df does it, but I already made a case for that and apparently it was not good enough.

    Link to comment
    2 minutes ago, JorgeB said:

    Me too, it could be even better if it was done the same way df does it, but I already made a case for that and apparently it was not good enough.

    Looking at the output of df, it now gets the Used and Avail and even the percentage correct, so couldn't the Size simply be calculated by adding the two? Or would that fail in the case of mismatched RAID1?

    Link to comment
    1 minute ago, John_M said:

    Looking at the output of df, it now gets the Used and Avail and even the percentage correct, so couldn't the Size simply be calculated by adding the two? Or would that fail in the case of mismatched RAID1?

    df reports the correct used and free space for every possible combination (AFAIK) except raid1 with an odd number of devices, but that's a btrfs bug and should be fixed in the near future.

    • Thanks 1
    Link to comment



    Guest
    This is now closed for further comments

  • Status Definitions

     

    Open = Under consideration.

     

    Solved = The issue has been resolved.

     

    Solved version = The issue has been resolved in the indicated release version.

     

    Closed = Feedback or opinion better posted on our forum for discussion. Also for reports we cannot reproduce or need more information. In this case just add a comment and we will review it again.

     

    Retest = Please retest in latest release.


    Priority Definitions

     

    Minor = Something not working correctly.

     

    Urgent = Server crash, data loss, or other showstopper.

     

    Annoyance = Doesn't affect functionality but should be fixed.

     

    Other = Announcement or other non-issue.