Unraid 的 NFS 共享在 mover 运行后变成 Stale file handle:原因与修复

本文记录一次排查。PVE 通过 NFS 挂载 Unraid 的共享作为备份存储,挂载周期性地变成 Stale file handle。根因是 Unraid 的 shfs 与 mover 的共同行为,与网络和 NFS 服务本身无关。

环境

组件版本或配置
Proxmox VEpve-manager/9.2.11,内核 7.0.14-15-pve
Unraid7.3.2,内核 6.18.38-Unraid,作为 PVE 上的一台 VM 运行
网络PVE 与 Unraid 之间使用一个独立的虚拟网桥。PVE 端是 10.10.10.1,Unraid 端是 10.10.10.2。
共享pve-backup,Primary storage 是 NVMe pool ssd-cache,Secondary storage 是 Array
挂载方式PVE 原生 NFS 存储,vers=4.2,hard,timeo=600,retrans=3
备份任务每周日 07:00 运行 vzdump,带 prune
mover每月 28 日 03:00 运行
继续阅读“Unraid 的 NFS 共享在 mover 运行后变成 Stale file handle:原因与修复”

解决开启 IPv6 防火墙后 Unraid Connect 无法使用的问题

给 Unraid 开启 ip6tables 后,发现 Unraid Connect 报错 Unraid API Error, Cloud: socket closed 并且无法备份配置文件了。

2024-06-10 update:
问题解决了,应该是我防火墙没加 ESTABLISHED,RELATED 规则(

ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

推测是防火墙的问题,于是一番查询后发现 Unraid Connect 是由 unraid-api 这个二进制提供的。那就来看看它用的是哪个端口好啦。

lsof -i -P -n | grep unraid-ap
unraid-ap 5448   root   19u  IPv4  21972      0t0  UDP 192.168.1.100:54435 
unraid-ap 5448   root   20u  IPv6  21973      0t0  UDP [2001:xxxx]:51423 
unraid-ap 5448   root   21u  IPv6  21974      0t0  UDP [2001:xxxx]:36283 
unraid-ap 5448   root   25u  IPv6  56784      0t0  TCP [2001:xxxx]:35856->[2606:xxxx]:443 (SYN_SENT)

猜测一下应该是 IPv6 的 35856 端口,那我们用 ip6tables -A INPUT -p tcp --dport 35856 -j ACCEPT 打开这个端口试试。刷新一下控制台发现问题解决了。但这个端口似乎是每次启动后会变的,那就比较麻烦了。

继续阅读“解决开启 IPv6 防火墙后 Unraid Connect 无法使用的问题”

为 Unraid 开启 ipv6 防火墙

最近 Arteria 这家 ISP 抽风,IPv4 很难用,于是便把 Unraid 的 IPv6 打开了。由于这边的 DHCP v6 和 RA 均为 Relay,路由器防火墙不能管理 IPv6 的数据包,这也就导致开启了 IPv6 的 Unraid 服务器直接暴露于 IPv6 公网中。并且 Unraid 默认并没有任何防火墙设置,很不安全。
但 Unraid 系统内有安装 iptables 和 ip6tables,所以配合 User Scripts 这个插件,我们便可实现启动后自动设置 ip6tables 的操作,进而强化服务器安全性。

继续阅读“为 Unraid 开启 ipv6 防火墙”