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:原因与修复”

打造 All in One 主机之让虚拟机也能通过 EAC 检测

在上一篇文章中我们为 Windows 11 虚拟机配置了 GPU 直通,你大概会想立马就在虚拟机上玩一些游戏来测试一下性能吧。但遗憾的是,如果你要玩的游戏带有 Easy Anti-Cheat (EAC) 组件(比如 Apex Legends、Hell Let Loose、VRChat 等),那么你将会得到游戏无法在虚拟机中启动的警告。难道折腾了这么久还是不能愉快的玩游戏么!(摔)

经过大量的搜索和尝试,千夏也是终于可以在虚拟机下通过 EAC 检测了,为了避免大家在 EAC 上浪费过多时间,在这里和大家分享一下方法。

防杠声明:本文仅做技术交流使用,请勿用于其它用途。我就只是想活用硬件玩个游戏而已。如果你是为了一些不正当用途来参考本文章的话那我要送你一句:开挂全家必暴毙!!!

免责声明:本文章只是让你能在虚拟机中通过 EAC 检测,由于 EAC 和 Windows 版本更新等因素本文介绍的方法随时可能会不起作用,并且我无法保证通过这种方法游玩游戏时你的账号不会被封禁(尽管你没有使用非法程序,但由于 EAC 会记录并分析各种信息,所以指不定它觉得哪里有问题呢),所有风险请自行承担

继续阅读“打造 All in One 主机之让虚拟机也能通过 EAC 检测”

打造 All in One 主机之为 Proxmox VE 配置 GPU 直通

最近在 TX1310 M3 上的 Proxmox VE 虚拟机里安装了 Immich,导入照片以后发现它有机器学习功能,然而默认模型只支持英文搜索并且准确度比较差+ CPU 学习的效率非常低,再加上 TX1310 M3 的电源只有 250W 想在上面插显卡的话就只有 GTX 1650、RTX 3050 之类 70W 左右的显卡可以选了。那不如就把吃灰了好久的台式机(Ryzen 5700x + RTX3080)拿出来用一用好啦。

但如果我的台式机只用来跑 immich 的机器学习,那岂不是性能非常浪费?于是就想到了能不能用台式机打造一台 All in One 的机器来替换掉 TX1310 M3 呢?这样不仅性能更好了,需要的时候还能拿来打一打游戏w

继续阅读“打造 All in One 主机之为 Proxmox VE 配置 GPU 直通”

解决开启 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 防火墙”

安装 Proxmox VE 后的一些配置

VMware 被 Broadcom 收购后宣布不再提供免费的 VMware ESXi 了,于是就把家里的机器换到了 Proxmox VE。

安装过程很简单,直接把 ISO 镜像放进 Ventoy 里然后 boot 进去安装就行了。本文主要讲一下安装后的一些必要设置。比如修改存储库为非订阅、移除“无有效订阅”警告、在管理面板增加 CPU 温度显示。

继续阅读“安装 Proxmox VE 后的一些配置”

为 Linux 配置多个无线网卡

最近把吃灰已久的 Raspberry Pi 3 Model B 拿出来跑 Home Assistant 了,但因为是买的比较早的版本所以不支持 5GHz Wi-Fi,只能连在 2.4Ghz 的 Wi-Fi 上面。

正好最近准备把 2.4GHz 的网络给单独划出来一个网段供 IoT 设备用,于是就想把 Raspberry Pi 连到 5GHz 的网络上面。正好手头有个闲置的 TP-Link Archer T2UH 就插到树莓派上用了。

多了一个无线设备,自然就想分开配置一下。搜寻了一些信息以后发现可以这样配置不同的无线设备

首先使用 sudo iwconfig 查看现有的无线设备,执行后可以看到类似于以下的输出

lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated
          Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

wlan1     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: 74:4D:28:BA:EB:30
          Tx-Power=17 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
Zsh

从输出中我们可以看到现在有两个 wlan 设备,分别为 wlan0 和 wlan1
接下来我们先配置一下 wlan0 的 SSID 和密码
执行 wpa_passphrase Your_SSID Your_passwd 后会返回以下内容

network={
ssid="${your ssid}"
#psk="${your password}"
psk=${key}
}
Zsh

sudo vim /etc/wpa_supplicant/wlan0.conf 将上面生存的内容写入 wlan0 的 wpa 配置文件里(可以把有明文密码的行删掉)

接下来 sudo vim /etc/network/interfaces.d/wlan0 创建 wlan0 的配置文件

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wlan0.conf
Zsh

wlan1 同样按前面的步骤配置即可,完成后 reboot 一下就行