版本 6.12.0 2023-06-14
升级说明
启动时,如果 config/vfio-pci.cfg 中指定的所有 PCI 设备未正确绑定,将禁止虚拟机自动启动。您仍旧可以单独启动虚拟机。这样做是为了避免 Unraid 主机在因内核更新或物理硬件更改而导致 PCI 硬件 ID 发生变化时崩溃。要恢复虚拟机自动启动,请检查 /var/log/vfio-pci-errors 并从 config/vfio-pci.cfg 文件中删除有问题的 PCI ID,然后重启。
如果您从 6.12 降级到 6.11.5 或更早版本,您必须强制更新所有 Docker 容器并在降级后手动启动它们。这是因为从 6.12.0-rc1 开始切换到 cgroup v2 所导致的底层变更。
Linux Multi-Gen LRU 是一个较新的特性,现在已默认包含但未启用。您可以通过在您的 'config/go' 文件中添加以下行来启用:
echo y > /sys/kernel/mm/lru_gen/enabled
如果从 6.12 回滚到 6.11.5 或更早版本,可能需要移除此行。
如果你使用 6.12.0-beta5 创建了任何 zpool,请擦除这些池并重新创建。
过时/损坏的插件
有一些插件已知与 Unraid 6.12 不兼容,启动时将不会安装。您将收到每个受影响插件的通知,并可以通过访问 插件/插件文件安装错误 查看列表。
- disklocation-master 版本 2022.06.18(olehj 的
Disk Location,导致仪表板中断)- 在升级操作系统前,请更新此插件。
- plexstreams 版本 2022.08.31(dorgan 的
Plex Streams,导致仪表板中断)- 在升级操作系统前,请更新此插件。
- corsairpsu 版本 2021.10.05(Fma965 的
Corsair PSU Statistics,导致仪表板中断)- 在升级操作系统前,请更新此插件。
- gpustat 版本 2022.11.30a(b3rs3rk 的
GPU Statistics,导致仪表板中断)- 切换到 SimonF 的
GPU Statistics
- 切换到 SimonF 的
- ipmi 版本 2021.01.08(dmacias72 的
IPMI Tools,导致仪表板中断)- 切换到 SimonF 的
IPMI Tools
- 切换到 SimonF 的
- nut 版本 2022.03.20(dmacias72 的
NUT - 网络 UPS 工具,导致仪表板中断)- 切换到 SimonF 的
NUT - 网络 UPS 工具
- 切换到 SimonF 的
- NerdPack 版本 2021.08.11(dmacias72 的
Nerd Tools)- 切换到 UnRAIDES 的
NerdTools
- 切换到 UnRAIDES 的
- upnp-monitor 版本 2020.01.04c(ljm42 的
UPnP Monitor,与 PHP 8 不兼容) - ZFS-companion 版本 2021.08.24(campusantu 的
ZFS-Companion,导致仪表板中断)
一些受影响的插件已被不同的开发者接管,我们建议您访问 应用程序 页面并搜索替代品。请在该插件的支持线程中询问插件特定的问题。
已知问题
与 i915 驱动程序相关的崩溃
注意:截至 Unraid 6.12.6 此问题已不再存在。
我们知道某些 11 代英特尔 Rocket Lake 系统出现与 i915 iGPU 相关的崩溃。如果您的 Rocket Lake 系统在 Unraid 6.12.0-6.12.5 期间崩溃,请打开 web 终端并输入以下命令,然后重启:
echo "options i915 enable_dc=0" >> /boot/config/modprobe.d/i915.conf
设置此选项可能会导致更高的功耗,但可能会解决这些 GPU 的问题。
与 macvlan 相关的调用跟踪
如果您收到与 macvlan 相关的调用跟踪,首先建 议您导航到 设置 > Docker,切换到高级视图,并将 Docker 自定义网络类型 从 macvlan 更改为 ipvlan。这是 Unraid 从 6.11.5 版本开始所采用的默认配置,应该适用于大多数系统。
然而,一些用户报告在使用某些路由器(Fritzbox)进行端口转发时存在问题,并且在 ipvlan 模式下高级网络管理工具(Ubiquity)的功能减少。
在 6.12.0 中,双网卡 Docker 分段方法 是个行之有效的解决办法,不过我们建议升级到 Unraid 6.12.4,这一版本提供了更好的解决方案。
Plex
如果 Docker 容器在一段时间后启动有问题,并且你正在运行 Plex,请进入 Plex Docker 容器设置,
切换到高级视图,并在额外参数中添加:--no-healthcheck
回滚
请参见 升级说明 下的评论
ZFS 池
此版本新增功能允许在用户定义的池中创建 ZFS 文件系统。您也可以用单设备 ZFS 文件系统格式化 Unraid 阵列中的任何数据设备。想了解 ZFS 的详细概述,请参见 本文。
我们将在两个 Unraid OS 发布版本中分步实现完整的 ZFS 支持。本次发布中的初始支持包括:
- 支持 raid0、镜像、raidz1、raidz2 和 raidz3 根配置文件。在镜像 vdev 中最多支持 4 向镜像。支持多个 vdev 组。
- 支持删除单个设备:如果设备仍然存在于服务器中,使用 'wipefs' 清除分区表。
- 支持用相同或更大尺寸的新设备替换单个缺失设备。
- 支持计划修剪 ZFS 池。
- 支持池重命名。
- 池名称必须以小写字母开头,仅包含小写字母、数字、下划线和连字符。池名称不能以数字结尾。
- 非根 vdev 无法在此版本中配置,但可以导入。注意:导入的混合池可能无法在此版本中扩展。
- 在其他系统上创建的池可能会或可能不会导入,具体取决于池的创建方式。未来的更新将允许从任何系统导入池。
ZFS 池有三个变量:
- 配置 - 根数据组织:raid0、镜像(最多 4 路)、raidz1、raidz2、raidz3
- 宽度 - 每个根 vdev 的设备数量
- 组 - 池中根 vdev 的数量
在创建 ZFS 池时,WebGUI 将根据分配给池的设备数量提供所有拓扑选项。
对单根 vdev 镜像的特殊处理:
- 单设备 ZFS 池可以通过一次操作添加最多 3 个额外设备转换为多设备镜像。
- 可以通过添加单个设备将2设备镜像增加到3设备;类似地,可以通过添加单个设备将3设备镜像增加到4设备。
要添加额外的根 vdev,您必须同时为池分配 'width' 数目的新设备。新 vdev 将采用与现有 vdevs 相同的 '配置文件' 创建。将来的一次更新将提供在添加/扩展 vdevs 时更多的灵活性。
使用 steini84 插件创建的池可 以如下导入:首先创建一个与要导入池中的设备数量相应的插槽数的新池。接下来将所有设备分配给新池。启动阵列时应识别该池,但某些 zpool 拓扑可能无法识别(请报告)。请注意,本次发布中仅能导入使用分区 #1 的池,例如: lsblk 输出:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 7.3T 0 disk
├─sdb1 8:17 0 2G 0 part
└─sdb2 8:18 0 7.3T 0 part
表示磁盘的第二个(sdb2)分区正在用于数据,且不能导入。
不支持混合拓扑。例如,具有镜像根 vdev 和 raidz 根 vdev 的池将不被识别。
Autotrim 可以配置为 开 或 关(unRAID 阵列中的单设备 ZFS 卷除外)。
压缩可以配置为 开 或 关,其中 开 选择 lz4。将来的一次更新将允许指定其他算法/级别。
创建新的 ZFS 池时,可以选择 zfs - 加密,就像其他加密卷一样,通过 LUKS 应用设备级加密。目前尚不支持 ZFS 原生加密。
系统启动期间,文件 /etc/modprobe.d/zfs.conf 将自动生成以将 ZFS ARC 限制为已安装内存的 1/8。如果需要,可以通过创建自定义 'config/modprobe.d/zfs.conf' 文件来覆盖这个限制。将来的一次更新将包括通过 WebGUI 配置 ARC 的功能,自动根据内存压力调整,例如虚拟机的启动/停止。
在 ZFS 池中创建的顶级用户共享作为数据集,而不是普通目录。
共享存储概念变更
此版本中的一项概念性变化是存储被分配给共享的方式。以前的概念是将 Unraid 阵列作为主存储,配以可选的 "缓存",这种说法对许多新用户产生了困惑,尤其是_缓存_ 在 ZFS 中有特定含义。
如下面所述,我们引入了 独占共享 的概念。这不过是一个共享,其所有数据都位于一个命名池中。在这种情况下,基于 FUSE 的用户共享文件系统将返回指向池中实际共 享目录的 符号链接。因此,所有共享中的操作,包括数据传输,都绕过 FUSE,从而提高了性能。此功能主要是为了最大程度地提高通过快速网络访问的大的快速 ZFS 池的 I/O。
这只是前端更改;现有共享将在升级后自动使用这种新结构查看, 如果回滚到早期版本,则将自动恢复到先前样式。
共享存储选项的配置使用两个输入指定:
- 主存储
- 辅助存储
主存储是创建 新 文件/文件夹的位置。如果主存储低于最小可用空间设置,则将在次级存储中创建新文件和文件夹(如果有配置)。
每个输入显示一个下拉菜单,列出“阵列”、“无”和每个命名池,符合一些配置规则:
主存储下拉菜单:
- “无”选项被省略,即必须选择主存储
- 可以选择任何命名池
- 可以选择“阵列”(意为 unRAID 阵列)
辅助存储下拉菜单:
- 包括“无”选项,即辅助存储是可选的
- 如果主存储是一个池名称,则唯一的选项是 "无" 和 "阵列"。将来,这里还会列出其他池。
- 如果主存储是“阵列”,则仅“无”出现为选项
当主或辅助存储选为“阵列”时,会出现一组额外设置:
- 分配方法
- 包含的磁盘
- 排除的磁盘
- 分级水平
当选中 btrfs 命名池作为主存储或辅助存储时,会出现额外设置:
- 启用写时复制
当为主存储或次级存储选择一个 ZFS 命名池时,目前没有其他设置,但未来可能会有。例如,由于共享是作为 ZFS 数据集创建的,如果我们需要实现这一点,它可以与上级池有不同的压缩设置。
搬 运动作
当为共享配置了辅助存储时,“搬运动作”设置被启用,允许用户选择搬运器的传输方向:
- 主到辅助(默认)
- 辅助到主
专属共享
我们新增了一个设置:“Settings/Global Share Settings/Permit exclusive shares” [是/否] 默认:否。如果设置为是且共享的主存储为池,而次级存储设置为“无”,则会在/mnt/user/_share_中创建指向池共享目录的符号链接。(还会进行额外检查,以确保共享不存储在任何其他卷上。)
有一个新的状态标志,'独占访问',当符号链接到位时设置为 '是';否则设置为 '否'。共享页面上也会指出独占共享。
设置符号链接的优势在于 I/O 绕过基于 FUSE 的用户共享文件系统(shfs),这可以显著提升性能。
有一些限制:
- 在专属共享中创建新文件时,忽略共享的最小自由空间和池的最小自由空间设置。
- 如果共享通过NFS导出,则不能是排他性的,即不会创建符号链接。这是因为符号链接在NFS客户端而不是服务器上解析。我们希望在未来的更新中取消此限制。
清理按钮
在共享页面上,启用了一个名为清理的按钮,表示有 config/share/share.cfg 文件对应不存在的共享。点击此按钮将删除这些文件。
其他改进
btrfs
在池中使用时,Autotrim 可以配置为 开 或 关。
压缩可以配置为 开 或 关。 开 选择 zstd。未来更新将允许指定其他算法/级别。
xfs
在用作单槽池时,Autotrim 可以配置为 开 或 关。
Docker
可以将 Docker 数据根目录 配置为放置在 ZFS 存储池中的目录。在这种情况下,Docker 将使用 'zfs' 存储驱动程序。该驱动程序为每个镜像层创建一个单独的数据集。因此,以下是我们建议使用 目录 设置 Docker 的推荐方案:
首先,创建一个docker用户共享,其配置如下:
- 共享名称:docker
- 主存储: 您的 ZFS 池名称
- 次要存储:无
接下来,在Docker设置页面上:
- 启用docker:是
- Docker数据根目录:目录
- Docker目录:/mnt/user/docker
如果您需要删除 Docker 的持久性状态,则打开 Docker 设置页面并将 启用 docker 设置为