原因是在使用PVE直通硬盘或者虚拟硬盘时,默认不会分配磁盘序列号,导致Truenas认为磁盘信息冲突,从而造成ZFS损坏
解决办法
修改虚拟机配置文件
cd /etc/pve/qemu-server/xxx.conf
以下面我的系统配置为示例。
virtio0: local:100/vm-100-disk-1.qcow2,cache=writeback,size=32G,serial=XXXX-YYYY-YOURSERIAL ----------------------------------------------------------------------------------------------- agent: 1 balloon: 0 bios: ovmf boot: order=scsi0 cores: 8 cpu: host machine: q35 memory: 49152 meta: creation-qemu=7.1.0,ctime=1673875030 name: TrueNas net0: virtio=3E:5F:EC:1E:2A:F8,bridge=vmbr0 net1: virtio=C2:84:68:96:C4:7B,bridge=vmbr10,mtu=9000 numa: 0 onboot: 1 ostype: l26 scsi0: single:vm-111-disk-0,size=16G,ssd=1 scsi1: /dev/disk/by-id/ata-HUH728080ALN600_2EHXA82X,backup=0,size=7814026584K,serial=ATA-HUH7280-2EHXA82X scsi10: /dev/disk/by-id/nvme-SAMSUNG_MZVPW128HEGM-00000_S347NBRJ900844,backup=0,size=125034840K,serial=NVME-SAMSUNG-S347NBRJ900844 scsi2: /dev/disk/by-id/ata-HUH728080ALN600_2EGTNV4X,size=7814026584K,serial=ATA-HUH7280-2EGTNV4X scsi3: /dev/disk/by-id/scsi-35000cca046253370,backup=0,size=2930266584K,serial=ATA-HUS-5000cca046253370 scsihw: virtio-scsi-single smbios1: uuid=2561ab17-776b-4bf1-bea4-cf16a0397775 sockets: 1 startup: order=1,up=180 vmgenid: 0a6ed079-3651-4cab-9467-be837b436940
在每行磁盘配置后面加上serial=XXXX-YYYY-YOURSERIAL后,保存并退出,然后关闭虚拟机(必须完全关闭不能重启),再重新启动,虚拟机内即可识别到你分配的磁盘序列号。
或者使用热添加磁盘的方式
执行完第一条命令后会提示update VM
qm set 111 -scsi4 /dev/disk/by-id/nvme-SAMSUNG_MZVPW128HEGM-00000_S347NBRJ900844,serial=S347NBRJ900844 update VM 111: -scsi4 /dev/disk/by-id/nvme-SAMSUNG_MZVPW128HEGM-00000_S347NBRJ900844,serial=S347NBRJ900844
如果已有磁盘,需要先卸载之后,重新添加即可更新硬盘序列号信息
qm unlink 111 --idlist scsi4 update VM 111: -delete scsi4