• Unraid OS version 6.12.0-rc6 available


    limetech

    Please refer to the 6.12.0-rc1 topic for a general overview.

     

    For exclusive shares we made an implementation change.  We found issues using bind-mounts with ZFS pools with internal nested child datasets.  To overcome this problem, symlinks are created in /mnt/user instead.  For example, for an exclusive share named "myshare" which exists only on "mypool" this symlink is generated:

     

    /mnt/user/myshare -> /mnt/mypool/myshare

     

    This implementation is actually a little cleaner and provides the same benefits of faster throughput.

     


    Version 6.12.0-rc6 2023-05-17

    Changes vs. 6.12.0-rc5

    Use symlinks instead of bind-mounts for exclusive shares.

    Fix share rename when share contains space and located on zfs pool.

    Share Edit: allow 1 letter names

    Network improvements:

    • rc.docker - suppress ipv6 link-local address for docker0 and shim interfaces when set as ipv4 only
    • rc.avahidaemon - let service listen on regular interfaces only which have an IP address, this includes the primary interface + set ipv4 / ipv6 support
    • rc.samba - let smb, nmb service listen on regular interfaces only which have an IP address, this includes the primary interface + set ipv4 / ipv6 support (also for wsdd2)
    • rc.ssh - listen on regular interfaces only which have an IP address, this includes the primary interface + set ipv4 / ipv6 support
    • rc.inet1 - add iptables processing to bridge interfaces to make them operate similarly as macvlan interfaces
    • create_network_ini - restart smb when network changes are done

    VMs: fixed notification subject

    TRIM: fix operation when ZFS is not active

    Network settings: fix bug in description field

    bash_completion: version 2.11 docker: version 23.0.6

    Use 'zfs set atime=off' Upon root dataset mount; child datasets should inherit this setting.

    Continue format if blkdiscard command fails.

    Add Pushbits Agent for Matrix/Synapse integration

    Share Edit: warn when invalid zfs name is used

    Lock / unlock button: switch green / red color

    • Green is normal state (page is locked)
    • Red is attention state (page is unlocked)

    Linux kernel

    • version: 6.1.29

    Version 6.12.0 (Consolidated)

    Upgrade notes

    General

    If you created any zpools using 6.12.0-beta5 please Erase those pools and recreate.

    If you revert back from 6.12 to 6.11.5 or earlier, you have to force update all your Docker containers and start them manually after downgrading. This is necessary because of the underlying change to cgroup v2 in 6.12.0-rc1.

    Upon boot, if all PCI devices specified in 'config/vfio-pci.cfg' file do not properly bind, VM Autostart is prevented. You may still start individual VMs. This is to prevent Unraid host crash if hardware PCI IDs changed because of a kernel update or physical hardware change. To restore VM autostart, examine '/var/log/vfio-pci-errors' and remove offending PCI IDs from 'config/vfio-pci.cfg' file and reboot.

    Linux Multi-Gen LRU is a relatively new feature now included but not enabled by default. You can enable by adding this line to your 'config/go' file:

    echo y > /sys/kernel/mm/lru_gen/enabled

    If you revert back from 6.12 to 6.11.5 or earlier you many need to remove that line.

    Obsolete/Broken Plugins

    There are a few plugins which are known to be incompatible with Unraid 6.12, and upon boot will not be installed. You will get a notification for each plugin that is affected, and can review the list by going to Plugins/Plugin File Install Errors.

    • disklocation-master version 2022.06.18 (Disk Location by olehj, breaks the dashboard)
    • plexstreams version 2022.08.31 (Plex Streams by dorgan, breaks the dashboard)
    • corsairpsu version 2021.10.05 (Corsair PSU Statistics by Fma965, breaks the dashboard)
    • gpustat version 2022.11.30a (GPU Statistics by b3rs3rk, breaks the dashboard)
    • ipmi version 2021.01.08 (IPMI Tools by dmacias72, breaks the dashboard)
    • nut version 2022.03.20 (NUT - Network UPS Tools by dmacias72, breaks the dashboard)
    • NerdPack version 2021.08.11 (Nerd Tools by dmacias72)
    • upnp-monitor version 2020.01.04c (UPnP Monitor by ljm42, not PHP 8 compatible)
    • ZFS-companion version 2021.08.24 (ZFS-Companion Monitor by campusantu, breaks the dashboard)

    Some of the affected plugins have been taken over by different developers, we recommend that you go to the Apps page and search for replacements. Please ask plugin-specific questions in the support thread for that plugin.

    Known issues

    • We are aware that some 11th gen Intel Rocket Lake systems are experiencing crashes related to the i915 iGPU. If your Rocket Lake system crashes under Unraid 6.12.0, open a web terminal and run:

      echo "options i915 enable_dc=0" >> /boot/config/modprobe.d/i915.conf

      then reboot.

      Using this parameter will result in higher power use but it may resolve this issue for these GPUs. When Unraid 6.13 is released it will have a newer Linux kernel with better i915 support, we anticipate that at that point you can revert this tweak with:

      rm /boot/config/modprobe.d/i915.conf

    • If "Docker custom network type" is set to "macvlan" you may get call traces and crashes on 6.12 even if you did not on 6.11. If so, we recommend changing to "ipvlan", or if you have two network cards you can avoid the issue completely: https://forums.unraid.net/topic/137048-guide-how-to-solve-macvlan-and-ipvlan-issues-with-containers-on-a-custom-network/

    ZFS Pools

    For a good overview of ZFS, see https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/

    New in this release is the ability to create a ZFS file system in a user-defined pool. In addition you may format any data device in the unRAID array with a single-device ZFS file system.

    We are splitting full ZFS implementation across two Unraid OS releases. Initial support in this release includes:

    • Support raid0, mirror, raidz1, raidz2 and raidz3 root profiles. Up to 4-way mirror in a mirror vdev. Multiple vdev groups.
    • Support removing single device: if device still present in server, 'wipefs' is used to clear the partition table.
    • Support replacing single missing device with a new device of same or larger size.
    • Support scheduled trimming of ZFS pools.
    • Support pool rename.
    • Pool names must begin with a lowercase letter and only contain lowercase letters, digits, the underscore and dash. Pool names must not end with a digit.
    • Non-root vdev cannot be configured in this release, however, they can be imported. Note: imported hybrid pools may not be expanded in this release.
    • Pools created on other systems may or may not import depending on how the the pool was created. A future update will permit importing pools from any system.

    A ZFS pool has three variables:

    • profile - the root data organization: raid0, mirror (up to 4-way), raidz1, raidz2, raidz3
    • width - the number of devices per root vdev
    • groups - the number of root vdevs in the pool

    At time of ZFS pool creation, the webGUI will present all topology options based on the number of devices assigned to the pool.

    Special treatment for root single-vdev mirrors:

    • A single-device ZFS pool can be converted to multiple-device mirror by adding up to 3 additional devices in one operation.
    • A 2-device mirror can be increased to 3-device by adding a single device; similarly a 3-device mirror can be increased to 4-device mirror by adding a single device.

    To add an additional root vdev, you must assign 'width' number of new devices to the pool at the same time. The new vdev will be created with the same 'profile' as the existing vdevs. Additional flexibility in adding/expanding vdevs will be provided in a future update.

    Pools created with the steini84 plugin can be imported as follows: First create a new pool with the number of slots corresponding to the number of devices in the pool to be imported. Next assign all the devices to the new pool. Upon array Start the pool should be recognized, though certain zpool topologies may not be recognized (please report).

    Mixed topologies are not supported. For example, a pool with both a mirror root vdev and a raidz root vdev is not recognized.

    Autotrim can be configured as on or off (except for single-device ZFS volumes in the unRAID array).

    Compression can be configured as on or off, where on selects lz4. Future update will permit specifying other algorithms/levels.

    When creating a new ZFS pool you may choose zfs - encrypted, which, like other encrypted volumes, applies device-level encryption via LUKS. ZFS native encryption is not supported at this time.

    During system boot, the file /etc/modprobe.d/zfs.conf is auto-generated to limit the ZFS ARC to 1/8 of installed memory. This can be overridden if necessary by creating a custom 'config/modprobe.d/zfs.conf' file. Future update will include ability to configure the ARC via webGUI, including auto-adjust according to memory pressure, e.g., VM start/stop.

    Top-level user shares in a ZFS pool are created as datasets instead of ordinary directories.

    Share storage conceptual change

    New in this release is a conceptual change in the way storage is assigned to shares. The old concept of main storage being the unRAID array with an optional "Cache" is confusing to many new users, especially since cache has a specific meaning in ZFS.

    Also outlined below, we introduced the concept of an exclusive share. This is simply a share where all the data exists in a single named pool. In this case the FUSE-based User Share file system returns a symlink to the actual share directory in the pool. All operations within the share, including data transfer, therefore bypass FUSE, resulting in greater performance. This feature is primarily aimed at maximizing I/O for large fast ZFS pools accessed via a fast network

    This is front-end change only; existing shares will be viewed with this new structure automatically upon upgrading, and will automatically revert to the previous style if you revert to an earlier version.

    Configuring the storage options for a share is specified using two inputs:

    • Primary storage
    • Secondary storage

    Primary storage is where new files/folders are created. If Primary storage is below the Minimum Free Space setting then new files and folders will be created in Secondary storage, if configured.

    Each input presents a drop-down which lists "array", "none", and each named pool as a selection according to some configuration rules:

    For the Primary storage drop-down:

    • the "none" option is omitted, ie, Primary storage must be selected
    • any named pool can be selected
    • "Array" can be selected (meaning the unRAID array)

    For the Secondary storage drop-down:

    • the "none" option is included, ie, Secondary storage is optional
    • if Primary storage is a pool name, then the only options are "none" and "Array". In the future other pools will be listed here as well.
    • if Primary storage is "Array", then only "none" appears as an option

    When "Array" is selected for either Primary or Secondary storage, a set of additional settings slide in:

    • Allocation method
    • Included disk(s)
    • Excluded disk(s)
    • Split level

    When a btrfs named pool is selected for either Primary or Secondary storage, an additional setting slides in:

    • Enable Copy-on-write

    When a ZFS named pool is selected for either Primary or Secondary storage, there are no additional settings at this time but there could be some in the future. For example, since a share is created as a ZFS dataset, it could have a different compression setting than the parent pool if we need to implement this.

    Mover action

    When there is Secondary storage configured for a share the "Mover action" setting becomes enabled, letting the user select the transfer direction of the mover:

    • Primary to Secondary (default)
    • Secondary to Primary

    Exclusive shares

    If Primary storage for a share is a pool and Secondary storage is set to "none", then a symlink is returned in /mnt/user/ pointing directly to the pool share directory. (An additional check is made to ensure the share also does not exist on any other volumes.) There is a new status flag, 'Exclusive access' which is set to 'Yes' when a symlink is in place; and, 'No' otherwise. Exclusive shares are also indicated on the Shares page.

    The advantage of setting up symlinks is that I/O bypasses FUSE-based user share file system (shfs) which can significantly increase performance.

    There are some restrictions:

    • Both the share Min Free Space and pool Min Free Space settings are ignored when creating new files on an exclusive share.
    • If there are any open files, mounted loopback images, or attached VM vdisk images on an exclusive share, no settings for the share can be changed. As a workaround, create a directory for the share on another volume and restart the array to disable exclusive access and make the necessary changes to the share settings.
    • If the share directory is manually created on another volume, files are not visible in the share until after array restart, upon which the share is no longer exclusive.

    Clean Up button

    Appearing on the Shares page, a button called CLEAN UP, when enabled indicates there are config/share/.cfg files for shares that do not exist. Clicking this button will remove those files.

    Other Improvements

    btrfs pools

    Autotrim can be configured as on or off when used in a pool.

    Compression can be configured as on or off. on selects zstd. Future update to permit specifying other algorithms/levels.

    xfs

    Autotrim can be configured as on or off when used as a single-slot pool.

    Docker

    It is possible to configure the Docker data-root to be placed in a directory on a ZFS storage pool. In this case Docker will use the 'zfs' storage driver. This driver creates a separate dataset for each image layer. Because of this, here is our recommendation for setting up Docker using directory:

    First, create a docker user share configured as follows:

    • Share name: docker
    • Use cache pool: Only
    • Select cache pool: name of your ZFS pool

    Next, on Docker settings page:

    • Enable docker: Yes
    • Docker data-root: directory
    • Docker directory: /mnt/user/docker

    If you ever need to delete the docker persistent state, then bring up the Docker settings page and set Enable docker to No and click Apply. After docker has shut down click the Delete directory checkbox and then click Delete. This will result in deleting not only the various files and directories, but also all layers stored as datasets.

    Before enabling Docker again, be sure to first re-create the docker share as described above.

    Other changes:

    • CreateDocker: changed label Docker Hub URL to Registry URL because of GHCR and other new container registries becoming more and more popular.
    • Honor user setting of stop time-out.
    • Accept images in OCI format.
    • Add option to disable readmore-js on container table
    • Fix: Docker Containers console will not use bash if selected

    VM Manager

    If you enable copy/paste for virtual consoles you need to install additional software on the client in addition to the QEMU agent if that has been installed. Here is the location for spice-vdagent for both Windows and Linux. Note copy/paste function will not work with web spice viewer you need to use virt-viewer.

    Other changes:

    • Add Serial option to vdisk.
    • Spice Bug fix for users with non standard GUI ports defined.
    • OVMF for QEMU: version stable202302
    • Fix for bus text.
    • Enable copy paste option for virtual consoles
    • Update Memory Backup processing for Virtiofs.
    • Fix lockup when no VMs are present
    • Add support for rtl8139 network model.
    • fix translation omission
    • added lock/unlock for sortable items
    • Fix for Spice Mouse if Copy paste enabled.
    • let page load even when PCI devices appear missing or are misassigned
    • Make remote viewer and web console options selectable.
    • Option to download .vv file and start remote viewer is browser set to open file .vv when downloaded.
    • Add remote viewer console support
    • Remove-lock-posix='on'-flock='on'/-
    • fix VM marked as Autostart not starting following manual array Start
    • Fix for Max memory > 1TB

    Dashboard

    The webGUI Dashboard has been redesigned and it is now possible to move elements (tiles) up and down and between columns. This allows the user to organize the tiles in any way they desire. There is a small lock icon on the menu bar which must be clicked to enable this function.

    Note: The lock icon also appears on the Docker and VM pages and must be clicked to rearrange the startup order.

    Release bz file differences

    Unraid OS is comprised of a set of 5 so-called bz files in the root of the USB Flash boot device:

    • bzimage - the Linux kernel
    • bzroot - the root file system, sans console desktop
    • bzroot-gui - additional files needed for console desktop
    • bzmodules - modules (drivers) associated with the Linux kernel
    • bzfirmware - device firmware required by certain modules

    Starting with 6.12 release, the content of these files has been rearranged:

    • bzimage - the Linux kernel (same as before)
    • bzroot - the root file system excluding the /usr directory tree
    • bzroot-gui - a single file which auto-starts the console desktop (for compatibility)
    • bzmodules - modules (drivers) associated with the Linux kernel and device firmware required by certain modules
    • bzfirmware - the /usr directory and all files contained therein, including console desktop

    The results of this change is to speed up the boot process and free up nearly 1G of RAM. It also permits us to add more "stuff" to Unraid OS in the future without requiring more RAM. Finally, when booted in non-GUI mode, the desktop can be started by logging in at the console and typig the 'slim' command.

    The files bzfirmware and bzmodules are squashfs images mounted using overlayfs at /usr and /lib respectively. Since these files are loopback-mounted, care must be taken if ever you want to perform a manual update.

    What is a manual update? This is a method of updating Unraid OS on your USB flash boot device without using the Tools/Update OS function. Typically one would either:

    • open a Terminal window, wget the release zip file, unzip the release, and then 'cp' the bz files to root of the boot device.

    or

    • export the 'flash' share on your network and drag the bz files from a PC directly to the flash.

    Either method, starting with 6.12 can fail because the bzfirmware file will be overwritten while it is still mounted - not good.

    To get around this, you must first create a temp directory on the flash device and then 'mv' (or drag) all the bz files to this temp directly. Now you can copy the new bz files in place and reboot.

    Change Log

    Base Distro

    • aaa_glibc-solibs: version 2.37
    • adwaita-icon-theme: version 43
    • at-spi2-core: version 2.46.0
    • bash: version 5.2.015
    • bash_completion: version 2.11
    • bind: version 9.18.12
    • btrfs-progs: version 6.2.1
    • ca-certificates: version 20221205
    • cryptsetup: version 2.6.1
    • curl: version 7.88.1
    • dbus: version 1.14.6
    • diffutils: version 3.9
    • dnsmasq: version 2.89
    • docker: version 23.0.6
    • e2fsprogs: version 1.47.0
    • encodings: version 1.0.7
    • file: version 5.44
    • firefox: version 111.0 (AppImage)
    • freetype: version 2.13.0
    • fuse3: version 3.12.0
    • gawk: version 5.2.1
    • git: version 2.39.2
    • glib2: version 2.74.6
    • glibc: version 2.37
    • glibc-zoneinfo: version 2022g
    • gnutls: version 3.7.9
    • gptfdisk: version 1.0.9
    • gtk+3: version 3.24.37
    • harfbuzz: version 7.1.0
    • htop: version 3.2.2
    • iproute2: version 6.2.0
    • iptables: version 1.8.9
    • iputils: version 20221126
    • less: version 612
    • libICE: version 1.1.1
    • libSM: version 1.2.4
    • libX11: version 1.8.4
    • libXau: version 1.0.11
    • libXcomposite: version 0.4.6
    • libXdamage: version 1.1.6
    • libXdmcp: version 1.1.4
    • libXpm: version 3.5.15
    • libXrandr: version 1.5.3
    • libXres: version 1.2.2
    • libXxf86dga: version 1.1.6
    • libarchive: version 3.6.2
    • libdrm: version 2.4.115
    • libfontenc: version 1.1.7
    • libglvnd: version 1.6.0
    • libjpeg-turbo: version 2.1.5.1
    • libpcap: version 1.10.3
    • libpng: version 1.6.39
    • libpsl: version 0.21.2
    • liburcu: version 0.14.0
    • libwebp: version 1.3.0
    • libxkbcommon: version 1.5.0
    • libxkbfile: version 1.1.2
    • libxshmfence: version 1.3.2
    • lmdb: version 0.9.30
    • logrotate: version 3.21.0
    • lsof: version 4.98.0
    • lz4: version 1.9.4
    • lzlib: version 1.13
    • mc: version 4.8.29
    • mcelog: version 191
    • mpfr: version 4.2.0
    • nano: version 7.2
    • ncurses: version 6.4
    • nginx: version 1.23.3
    • nghttp2: version 1.52.0
    • openssh: version 9.2p1
    • openssl: version 1.1.1t
    • openssl-solibs: version 1.1.1t
    • openzfs: version 2.1.11
    • pango: version 1.50.14
    • pciutils: version 3.9.0
    • pcre2: version 10.42
    • php: version 8.2.4
    • php-libvirt: version 0.5.7
    • php-markdown: version 2.0.0
    • samba: version 4.17.7
    • sqlite: version 3.41.0
    • sudo: version 1.9.13p2
    • sysstat: version 12.7.2
    • tdb: version 1.4.8
    • tevent: version 0.14.1
    • traceroute: version 2.1.2
    • transset: version 1.0.3
    • tree: version 2.1.0
    • usbutils: version 015
    • xcb-util: version 0.4.1
    • xdriinfo: version 1.0.7
    • xf86-video-vesa: version 2.6.0
    • xfsprogs: version 6.1.1
    • xhost: version 1.0.9
    • xinit: version 1.4.2
    • xkbcomp: version 1.4.6
    • xkeyboard-config: version 2.38
    • xorg-server: version 21.1.7
    • xprop: version 1.2.6
    • xrandr: version 1.5.2
    • xset: version 1.2.5
    • xterm: version 379
    • xz: version 5.4.1
    • zstd: version 1.5.4

    Linux kernel

    • version 6.1.29
    • md/unraid: version 2.9.27
    • CONFIG_FS_DAX: File system based Direct Access (DAX) support
    • CONFIG_VIRTIO_FS: Virtio Filesystem
    • CONFIG_ZONE_DEVICE: Device memory (pmem, HMM, etc...) hotplug support
    • CONFIG_USBIP_HOST: Host driver
    • CONFIG_INTEL_MEI: Intel Management Engine Interface
    • CONFIG_INTEL_MEI_ME: ME Enabled Intel Chipsets
    • CONFIG_INTEL_MEI_GSC: Intel MEI GSC embedded device
    • CONFIG_INTEL_MEI_PXP: Intel PXP services of ME Interface
    • CONFIG_INTEL_MEI_HDCP: Intel HDCP2.2 services of ME Interface
    • CONFIG_INTEL_PMC_CORE: Intel PMC Core driver
    • CONFIG_DRM_I915_PXP: Enable Intel PXP support
    • CONFIG_SCSI_FC_ATTRS: FiberChannel Transport Attributes
    • CONFIG_FUSION_SPI: Fusion MPT ScsiHost drivers for SPI
    • CONFIG_FUSION_FC: Fusion MPT ScsiHost drivers for FC
    • CONFIG_FUSION_CTL: Fusion MPT misc device (ioctl) driver
    • CONFIG_FUSION_LOGGING: Fusion MPT logging facility
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_LRU_GEN: Multi-Gen LRU
    • CONFIG_SERIAL_8250_NR_UARTS=32: Maximum number of 8250/16550 serial ports
    • CONFIG_SERIAL_8250_RUNTIME_UARTS=4: Number of 8250/16550 serial ports to register at runtime

    Misc

    • avahi: enable/disable IPv4/IPv6 based on network settings and restrict avahidaemon to primary interface.
    • cgroup2 now the default
    • loopback images no longer mounted using directio
    • newperms script restricted to operate on /mnt/ only.
    • upgradepkg patched to prevent replacing existing package with older version.
    • current PCI bus/device information saved in file '/boot/previous/hardware' upon Unraid OS upgrade.
    • NFS: enable UPD transport
    • emhttp: fix cache pool (null) syslog strings
    • emhttp: fix cache pool display wrong device size for selected replacement device
    • networking: fix nginx recognizing IP address from slow dhcp servers
    • mover: fix: improper handling of symlinks
    • mover: fix: Mover logging syslog entries format different from previous releases
    • plugin: Display Run command retval in error message
    • shfs: igonore top-level hidden directoris (names beginning with '.')
    • terminal: OpenTerminal: change termination signal (hard stop)
    • upgrade Unraid OS: check for earlier upgrade without reboot
    • webgui: support PHP8, increase PHP max memory from 128M to 256M
    • webgui: ManagementAccess: Disable Provision/Renew/Upgrade buttons when no IP on eth0
    • webgui: ManagementAccess: Support wireguard local IP addresses in combination with myservers.unraid.net SSL cert
    • webgui: Move "view" icon on Main and Shares page to the left
    • webgui: Dashboard: fix regression error in "select case"
    • webgui: Dashboard: make items moveable between columns
    • webgui: Keep dismissed banners hidden for a month
    • webgui: Dashboard: API for adding custom tiles
    • webgui: Dashboard: rearrange processor information
    • webgui: Dashboard: rearrange UPS info
    • webgui: Dashboard: rearrange memory info
    • webgui: Dashboard: VPN header rearrangement
    • webgui: Dashboard: header rearrangements
    • webgui: Add jqueryUI touch punch for mobile devices
    • webgui: Changed ID to CLASS for elements occurring more than once
    • webgui: Make header in white and black themes scrollable
      • When more items are present than screen space, the user can now scroll through them (previously these items were invisible)
    • webgui: Dashboard and Docker: introduce lock button for sortable items
      • By default sortable items are locked, which allows mobile devices to scroll the page. Upon request items can be made sortable
    • webgui: Users: add icon to title bar
    • webgui: Tools: new function -> PHP Settings
      • View PHP info
      • Configure error reporting
      • Open LOG to see errors in real-time
    • webgui: System info: fix reading inactive ports
    • webgui: Plugin: Include the actual command, being executed
    • webgui: System info: cache enhancement
    • webgui: System info: memory enhancement
    • webgui: DeviceInfo: disable buttons when erase operation is running
    • webgui: Docker: filetree corrections
    • webgui: Fixed: Dashboard: show heat alarm per pool
    • webgui: Notifications: revised operation
      • Autoclose new notifications after 3 seconds
      • Fix notifications reappearing after closure
    • webgui: DeviceList: add FS type in offline state
    • webgui: Add notification agent for Bark
    • webgui: Main: hide browse icon when disk is not mounted
    • webgui: Diagnostics: add additional btrfs and zfs info
    • webgui: Dashboard: add ZFS memory usage
    • webgui: Revised New Permissions
      • Select either disks or shares (not both)
    • webgui: Add testparm to diagnostics
    • webgui: Support new UD reserved mount point of /mnt/addons
    • webgui: fix issue displaying Attributes when temperature display set to Fahrenheit
    • webgui: Dashboard changes:
      • lock the Dashboard completely: Editing/moving only becomes possible when unlocking the page
      • An empty column is refilled when the respective tiles are made visible again, no need to reset everything
      • added a visual "move indicator" on the Docker and VM page, to make clearer that rows can be moved now.
      • change cursor shape when moving is enabled
      • use tile title as index
    • webgui: fix: Local Firefox account pop-up postmessages not working
    • webgui: SMART test cannot be run on a UD disk because there is no spin down delay selection
    • webgui: status footer stuck on "Starting services" when applying share config setting chagnes.
    • webgui: Fix table layout for orphan images
    • webgui: Plugin: Do not show update button if incompatible
    • webgui: OpenTerminal: limit clients
    • webgui: Context menu: automatic triangle placement
    • webgui: Dashboard: fix pool warnings
    • webgui: Allow SMART long test for UD
    • webgui: Read processor type from /proc/cpuinfo
    • webgui: CSS: solve scrollbar issue in firefox
    • webgui: plugin: Make wget percentage detection more robust
    • webgui: Add share: fix hidden share name check
    • webgui: Display settings: add missing defaults
    • webgui: Array Operation: prevent double clicking of Start button
    • webgui: DeviceInfo: show shareFloor with units
    • webgui: DeviceInfo: added automatic floor calculation
    • webgui: Added autosize message
    • webgui: Shares: added info icon
    • webgui: Updated DeviceInfo and Shares page
    • webgui: Fix network display aberration.
    • webgui: Auto fill-in minimum free space for new shares
    • webgui: feat(upc): update to v3 for connect
    • webgui: Share/Pool size calculation: show and allow percentage values
    • wireguard: add SSL support for WG tunnel IP addresses (myunraid.net wildcard certs only)
    • wireguard: fix nginx issue when partial WireGuard config
    • Like 10



    User Feedback

    Recommended Comments



    5 hours ago, JorgeB said:

    AFAIK there were no changes that would explain that, try downgrading back to rc5 to confirm it's really update related.

    What i have noticed  in rd5 it took 4 reboot to get it recognize me 1gb nic as 1gb  speed was always at 10mb

     

    could it be something similar

     

    Link to comment

    Moving a share folder under rc6 leads to 'Share 'appdata' has been deleted'
    Which seems like odd behavior, though I test this on a fresh install, and found the same behavior.

    Link to comment
    11 hours ago, TexasUnraid said:

    Lastly, will BTRFS compression be able to be applied to existing shares/drives?

    Yes, but it will only compress newly written (or re-written) data.

    Link to comment

    RC6 Note: "Use symlinks instead of bind-mounts for exclusive shares" creates issues inside my containers.

     

    If I add a path variable and set the container path to for instance /net, and the host path to /mnt/user, exclusive shares are not accessible with symlinks from within the container, worked fine before with bind-mounts.

    Edited by jbear
    • Thanks 1
    Link to comment

    Hi,

     

    I know it is a bit off topic, but I know not any better place to ask my question.  I am in process of reorganizing my server ,now running 6.11.5.  As I am following the development of the RC series of 6.12 I know ZFS will be available. I also watched Spaceinvader one's youtube video which explains all the new features (see below). 
     

    After watching this video I was left with some questions on the capabilities of unraid array and zfs.  
    I tried to learn the basics of zfs, and learned that an RAIDZ1 vdev pool requires all the drives are the same size. However this is not the case in my server.  Creating multiple RAIDz1 vdevs in which drives of the same size are clustered is certainly possible but then I have less storage capacity remaining. ZFS seems compelling for its capability to create snapshots on datasets.

     

    The question: is it possible to have the best of both worlds with Unraid?

    for example:  I create single disk vdevs and combine these in the Unraid array, with a parity drive. 

    then in ZFS create a pool combining all (or some) of the VDEVS and create the datasets, and use the ZFS snapshot capabilities.

     

    Downside would be that if the rebuild (if a drive fails) also fails, all data is lost, whilst with a xfs or btrfs filesystem one would lose only the data that was on the failed drive, right?

     

    Thanks, Richard

     

     

    nv

    Link to comment
    35 minutes ago, Richard Aarnink said:

    The question: is it possible to have the best of both worlds with Unraid?

    for example:  I create single disk vdevs and combine these in the Unraid array, with a parity drive. 

    then in ZFS create a pool combining all (or some) of the VDEVS and create the datasets, and use the ZFS snapshot capabilities.

    No, that's not possible, you can use ZFS in the array and/or pools, each has its advantages and disadvantages, main ones are posted here.

    Link to comment
    On 5/18/2023 at 7:32 AM, isvein said:

    Seems to still be problems with Docker running off folder on zfs :(
    If I look in say  NginxproxyManager:

     

    [app         ] [5/18/2023] [7:28:47 AM] [Global   ] › ℹ  info      Manual db configuration already exists, skipping config creation from environment variables
    [app         ] [5/18/2023] [7:28:49 AM] [Migrate  ] › ℹ  info      Current database version: none
    [app         ] [5/18/2023] [7:28:51 AM] [Setup    ] › ℹ  info      Added Certbot plugins certbot-dns-domeneshop~=0.2.8 
    [app         ] [5/18/2023] [7:28:51 AM] [Setup    ] › ℹ  info      Logrotate Timer initialized
    [app         ] [5/18/2023] [7:28:51 AM] [Setup    ] › ℹ  info      Logrotate completed.
    [app         ] [5/18/2023] [7:28:51 AM] [IP Ranges] › ℹ  info      Fetching IP Ranges from online services...
    [app         ] [5/18/2023] [7:28:51 AM] [IP Ranges] › ℹ  info      Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
    [app         ] [5/18/2023] [7:28:56 AM] [IP Ranges] › ✖  error     getaddrinfo EAI_AGAIN ip-ranges.amazonaws.com
    [app         ] [5/18/2023] [7:28:56 AM] [SSL      ] › ℹ  info      Let's Encrypt Renewal Timer initialized
    [app         ] [5/18/2023] [7:28:56 AM] [SSL      ] › ℹ  info      Renewing SSL certs close to expiry...
    [app         ] [5/18/2023] [7:28:56 AM] [IP Ranges] › ℹ  info      IP Ranges Renewal Timer initialized
    [app         ] [5/18/2023] [7:28:56 AM] [Global   ] › ℹ  info      Backend PID 437 listening on port 3000 ..

    I get what looks like an network error.
    This error does not happen if set to default bridge

    Tried again, following the procedure in this post:
     

    Quote

    First, create a docker user share configured as follows:

    Share name: docker

    Use cache pool: Only

    Select cache pool: name of your ZFS pool

    Next, on Docker settings page:

    Enable docker: Yes

    Docker data-root: directory

    Docker directory: /mnt/user/docker

    Even deleted my old "Docker" share and created an new with the name "docker"
    Same happens, same errors containers wont work on custom networks created in terminal with "docker create network "name" --subnet "custom-subnet" and then setting fixed ip for the docker(s)

    Not setting a static ip on container with custom subnet does also NOT work.

    What does work, is custom docker network created WITHUOUT the --subnet flag so you get an 172.18.0.0/16 subnnet and with no static IP to the container.

    ------------------

    So I checked the settings for both this networks using "docker network inspect "name"" and I see that the 172 subnet gets an gateway in its config but my custom subnet netwrok does NOT get an gateway.

    But, even creating a network with for example  "docker create network "name" --subnet "192.168.2.0/24" --gateway "192.168.2.1"" does not work, the config gets the gateway but the container cant connect

    So something in the back-end seems to not route things right and/or setup custom subnets correct when docker is on zfs folder

    -----------
    When using the same command for example  "docker create network "name" --subnet "192.168.2.0/24" --gateway "192.168.2.1"" when docker is on an btrfs image (still on the zfs-pool) it works

    Also found out that if you dont use the --gateway flag, the docker network does not list an gateway, but it still works on the brtfs image

    Just using "docker network create "name" so you get an 172 subnet, does create an gateway in the config tho.
    --------------

    So I cant understand it any different that when the docker is in a folder on zfs, something strange happens with the routing when creating a custom network with custom subnet or that the docker implementation on Unraid is not meant to work with custom networks with custom subnets

     

    -----
    Edit again:
    I tried to make an custom subnet of 172.50.0.0/16 and that DOES work 😮 (just to see what would happen if I used the same network class as the auto generated ones)
    even with custom ip address for the container.
    So for some reason, docker on my side does NOT like 192.168.X.0/24 subnets when on folder.

    if this is what it takes, I guess I can change my custom networks scopes :)
     

    Edited by isvein
    Link to comment

    Quick question. I have scheduled monthly scrubs on my zfs cache pool. Will Unraid send me a notification if it finds/correct broken data? 

    Edited by Niklas
    Link to comment
    10 minutes ago, Niklas said:

    Will Unraid send me a notification if it finds/correct broken data?

    Nope, but you can see here for a script for better pool monitoring, for btrfs and zfs, so you get a notification if errors are found, and not just after a scrub.

    • Thanks 1
    • Upvote 1
    Link to comment

    What's the reason for changing exclusive mounts from bind mount to symlink? Seems a number of services aren't happy with the symlink...

    • Thanks 1
    Link to comment
    3 hours ago, jbear said:

    RC6 Note: "Use symlinks instead of bind-mounts for exclusive shares" creates issues inside my containers.

     

    If I add a path variable and set the container path to for instance /net, and the host path to /mnt/user, exclusive shares are not accessible with symlinks from within the container, worked fine before with bind-mounts.

    You need to put a trailing "/" on your paths.

    Link to comment
    21 minutes ago, Kilrah said:

    What's the reason for changing exclusive mounts from bind mount to symlink?

    Bind mounts caused issues with zfs datasets resulting in confusion with the kernel mount table.

    • Like 1
    Link to comment
    1 hour ago, JorgeB said:

    Nope, but you can see here for a script for better pool monitoring, for btrfs and zfs, so you get a notification if errors are found, and not just after a scrub.

     

    Thanks. Script added. Can't understand why Unraid doesn't do this out of the box. 

     

     

     

    Edit 

    I also had to adapt to the symlinks but no big problem.

    Edited by Niklas
    • Upvote 1
    Link to comment
    47 minutes ago, dlandon said:

    You need to put a trailing "/" on your paths.

    In that situation, using /mnt/usr/ still wouldn't fix their issue. They would need to individually map every single share, being sure to include include "/" at the end of every host path.

     

    This seems Ike it will break a lot of use cases that simply map /mnt/usr/ . 

    Link to comment

    I have a question re exclusive shares:

    Are exclusive shares only for shares that reference pools? Or are shares on the array that don't use a (old terminology) cache, and are restricted to a single disk also gain the benefit of transparently bypassing FUSE?

    I have all my music on a share restricted to a single disk in the array, and also have my backup share restricted to a single disk in the array.

    I currently have disk shares enabled to bypass FUSE in situations where I want a little more speed. Eg running a sync from my Windows machine to a share (scan time drops from 4 minutes to 20 seconds when using a disk share while transfer speed is unaffected); or running a media library scan in Logitech Media Server (twice as fast) or Plex (time drops from a few minutes to a few seconds).

    It would be great if shares restricted to a single disk would automatically bypass FUSE and get the speed benefits.

    This way I can just reference the "user" share directories (rather than direct disk) and in the future if either share fills up the single disk and I allow it to use another disk I don't have to worry about making sure that I've updated all my scripts and shortcuts to reference "user" shares instead of "disk" shares - the share will just start using FUSE transparently.

    Thanks for your input!

    Link to comment
    2 hours ago, BRiT said:

    In that situation, using /mnt/usr/ still wouldn't fix their issue. They would need to individually map every single share, being sure to include include "/" at the end of every host path.

     

    This seems Ike it will break a lot of use cases that simply map /mnt/usr/ . 

     

    I used /mnt/user for my duplicati backup container but I have now added the full path to shares/folders I want to backup instead (like /mnt/user/appdata - /source/appdata) 

     

    I could have used /mnt/cache but I want no problems if I ever move stuff to array or something. 

    Edited by Niklas
    Link to comment
    25 minutes ago, jademonkee said:

    Are exclusive shares only for shares that reference pools? Or are shares on the array that don't use a (old terminology) cache, and are restricted to a single disk also gain the benefit of transparently bypassing FUSE?

    At the moment only for pools, you can still bypass FUSE for an array disk by using the disk path, e.g. /mnt/disk1.

    • Thanks 1
    Link to comment
    8 hours ago, JohnBee said:

    Moving a share folder under rc6 leads to 'Share 'appdata' has been deleted'
    Which seems like odd behavior, though I test this on a fresh install, and found the same behavior.

     

    Thanks, at one point I messed with manual compression and found that you can run a "defragment" operation to force the compression of existing data, I suppose unraid is just not using that option? Maybe it could be added before 6.12 official?

    If not I suppose I could run the defrag manually and it would not hurt anything?

    I guess I can just move all the data off and then move it back, just seems like a lot of wasted effort lol.

    Link to comment
    44 minutes ago, TexasUnraid said:

    If not I suppose I could run the defrag manually and it would not hurt anything?

    You can do it manually, don't see LT adding that automatically because it's not always a good idea, e.g. don't run it for any btrfs fs with snapshots or they will start using a lot more space.

    Link to comment
    1 minute ago, JorgeB said:

    You can do it manually, don't see LT adding that automatically because it's not always a good idea, e.g. don't run it for any btrfs fs with snapshots or they will start using a lot more space.

    Interesting, was not aware of that catch. I will just remove the snapshots before I suppose.

    Link to comment
    2 hours ago, BRiT said:

    In that situation, using /mnt/usr/ still wouldn't fix their issue. They would need to individually map every single share, being sure to include include "/" at the end of every host path.

     

    This seems Ike it will break a lot of use cases that simply map /mnt/usr/ . 

    The only difference will be that the /mnt/user/share for an exclusive share will be a symlink.  If you don't include the trailing "/", the mapping of /mnt/user/share will appear to be a file and not a directory.  If you use /mnt/user/share/ it will be treated as a directory.

    Link to comment
    25 minutes ago, dlandon said:

    The only difference will be that the /mnt/user/share for an exclusive share will be a symlink.  If you don't include the trailing "/", the mapping of /mnt/user/share will appear to be a file and not a directory.  If you use /mnt/user/share/ it will be treated as a directory.

    No. You're not understanding.

     

    They are using 1 single "/mnt/usr/" to pass everything through. The symlinks underneath are thus treated as just file and thus the dockers fail.

    Link to comment
    2 minutes ago, BRiT said:

    No. You're not understanding.

     

    They are using 1 single "/mnt/usr/" to pass everything through. The symlinks underneath are thus treated as just file and thus the dockers fail.

    The dockers are assuming that the symlinks are files and not directories.

     

    The option is to not to set up exculsive shares and map the share directly in cases where it is needed.  For example, I have my appdata mapped directly to /mnt/cache/appdata/ and not /mnt/user/appdata/.  This in effect provides the same operation as exclusive share access at /mnt/user/appdata/ symlinked to /mnt/cache/appdata/.

     

    The whole idea behind exclusive shares is to get around the /mnt/user/ file handling so access is faster and the user doesn't have to be concerned with the direct share mapping.  You don't have to use it.

    Link to comment
    7 hours ago, isvein said:

    ... the docker implementation on Unraid is not meant to work with custom networks with custom subnets

     

    Unraid is not involved in custom networks created by the user, it is however managing macvlan / ipvlan custom networks.

     

    When you create your own custom networks using docker CLI, it is your own responsiblity to do the correct creation of such a network.

     

    Link to comment
    4 hours ago, Niklas said:

     

    Thanks. Script added. Can't understand why Unraid doesn't do this out of the box. 

     

     

     

    Edit 

    I also had to adapt to the symlinks but no big problem.

    I actually already had a trailing / and did not state that in my post.   I have a few dockers that use this, Krusader being one ...  A few others as well ...  For now I just added a folder on one of my drives with the same name as the share to disable exclusive access.

     

    Thank you for replying.

    Edited by jbear
    Link to comment



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.
    Note: Your post will require moderator approval before it will be visible.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Restore formatting

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


  • 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.