ZFS每次重启需要导入
原创2025年12月16日大约 1 分钟
ZFS每次重启需要导入
现象
我的PVE主机换了硅脂,拆了风扇,内存条被插拔了,然后ZFS每次重启需要导入
环境信息
PVE版本信息
root@:~# pveversion -v
proxmox-ve: 8.4.0 (running kernel: 6.8.12-15-pve)
pve-manager: 8.4.14 (running version: 8.4.14/b502d23c55afcba1)
proxmox-kernel-helper: 8.1.4
proxmox-kernel-6.8: 6.8.12-15解决方法
假设ZFS卷名称为 zfs_volume
# 导出,如果未导入则不需要执行
zfs export zfs_volume
# 这里一定要用-f参数
zfs import -f zfs_volume
# 设置zpool缓存文件
zpool set cachefile=/etc/zfs/zpool.cache zfs_volume
# 设置zpool缓存文件开机启动 正常是不需要执行
systemctl enable zfs-import-cache
systemctl enable zfs-import.target为何不自动导入?根本原因是
hostid和zpool记录的hostid不一致
本机修正后的信息
root@:~# hostid
190c7deb
# 写进 /etc/hostid
root@:printf "\xeb\x7d\x0c\x19" > /etc/hostid
# 验证,有空格是正常情况
root@:~# od -An -t x4 /etc/hostid
190c7deb
# zpool 里面的hostid , 这个是10进制
root@mac-pro:~# zdb -C data | grep hostid
hostid: 420249067
# 转成16进制
# 方法1
root@:~# printf "%x\n" 420249067
190c7deb
# 方法2
root@:~# echo "obase=16; ibase=10; 420249067" | bc
190C7DEB
# 方法3
root@:~# python3 -c "print(hex(420249067))"
0x190c7deb其他参考配置
machine-id机器的唯一标识符
cat /etc/machine-id
rm -f /etc/machine-id
systemd-machine-id-setup
cat /var/lib/dbus/machine-id