版本 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 设置为 否,然后单击 应用。Docker 停止后,选中 删除目录 复选框,然后单击 删除。这将导致删除各种文件和目录,同时 删除作为数据集存储的所有层。
在再次启用Docker之前,请确保首先按照上述说明重新创建docker共享。
其他Docker变更
- CreateDocker: 更改了标签 Docker Hub URL 为 Registry URL,因为 GHCR 和其他新的容器注册越来越受欢迎。
- 尊重用户设置的停止超时时间。
- 接受OCI格式的镜像。
- 添加选项以禁用容器表的readmore-js。
- 修复:如果选择bash,Docker容器控制台将不会使用。
- 修复检测Docker正确关机问题。
- rc.docker:给予dockerd 30秒而不是15秒来启动。
VM管理器
如果您为虚拟控制台启用复制/粘贴功能,则需要在客户端上安装额外的软件,除了已经安装的 QEMU 代理外。这是 Windows 和 Linux 的 spice-vdagent 位置。请注意,复制/粘贴功能将无法与 web spice 查看器配合使用,您需要使用 virt-viewer。
其他虚拟机更改
- 为vdisk添加串行选项。
- 修复用户使用非标准GUI端口定义的Spice错误。
- OVMF for QEMU:版本stable202302
- 修复bus文本问题。
- 启用虚拟控制台的复制粘贴选项。
- 更新Virtiofs的内存备份处理。
- 修复无虚拟机存在时的锁定问题。
- 为rtl8139网络模型添加支持。
- 修复翻译遗漏。
- 为可排序项目添加锁定/解锁功能。
- 如果启用复制粘贴,修复Spice鼠标问题。
- 即使PCI设备显得缺失或被错误分配,也让页面加载。
- 使远程查看器和Web控制台选项可选。
- 选项:下载.vv文件,并启动远程查看器,浏览器设置为在下载时打开.vv文件。
- 添加远程查看器控制台支持。
- 移除-lock-posix='on'-flock='on'/
- 修复VM标为自动启动未在手动阵列启动后启动的问题。
- 修复最大内存> 1TB的问题。
- 修复用户移除vcpu绑定时VM页面加载问题。
- ovmf-stable:版本202305(构建3)。
- 修复通知主题。
仪表盘
WebGUI 仪表板已经过重新设计,现在可以上下移动元素(图块)以及在列之间移动。这样允许用户以他们希望的任何方式组织图块。在菜单栏上有一个小的 锁定 图标,必须单击以启用此功能:
- 绿色为正常状态(页面已锁定)
- 红色为注意状态(页面已解锁)
注意:锁定图标也出现在Docker和VM页面上,必须点击以重新排列启动顺序。
网络改进
我们添加了一个新部分:设置/网络设置/接口额外
此新部分允许用户定义 Unraid 服务使用的接口。默认情况下,所有常规接口及其 IP 地址都包含在监听接口列表中。
Unraid 内置的 WireGuard 功能的隧道在激活或停用时会自动添加或从列表中删除。用户可以将这些隧道从监听接口列表中排除。
要使用 Tailscale 或 Zerotier 接口,需要将通信的接口名称或 IP 地址添加到包含的监听接口列表中。重要说明: 在将接口添加到列表之前,Tailscale 或 Zerotier 容器必须正在运行。有关更多信息,请参见这个社区论坛帖子。
其他网络变更
- 支持自定义接口(例如Tailscale VPN隧道或zerotier L2隧道)
- create_network_ini - 网络变更完成时重启smb
- rc.inet1 - 添加iptables处理以桥接接口,使其操作与macvlan接口相似
- rc.avahidaemon - 仅让服务监听具有IP地址的常规接口,包括主接口+设置IPv4 / IPv6支持
- rc.docker - 当设置为仅IPv4时,抑制docker0和shim接口的IPv6本地链路地址
- rc.samba - 仅让smb,nmb服务监听具有IP地址的常规接口,包括主接口+设置IPv4 / IPv6支持(也用于wsdd2)
- rc.ssh - 仅监听具有IP地址的常规接口,包括主接口+设置IPv4 / IPv6支持
- 修复在auto/static之间切换DNS服务器时/etc/resolve.conf可能被删除的问题。
- 修复处理描述字段时的错误。
- 修复nginx识别来自慢速DHCP服务器的IP地址