之前总是说我truenas/zfs崩溃,也有人想吃瓜,这不我就记录下我这几年用truenas出现的问题,也复盘下,如果有解决办法或者更好的处理方式,可以在评论区探讨,给后来者一个参考。
我是从2021年使用的truenas,一直到2024年8月,三年时间,也算是折腾了不少,该炸的也炸过,所以我并不看好truenas,当然truenas也有着它的优势,除了性能不咋地和诸多可能遇到的错误,其他的其实也没啥问题。开头得说明下,全都是我又菜又爱玩罢了。
一、想离线硬盘但是永远“硬盘错误”
这个是我有个池,做了raid1,镜像,但是有个硬盘出现了故障,那我肯定是要替换嘛,就选择先让硬盘离线,但是问题来了,这个硬盘死活不能删除,点击删除就会提示“硬盘错误”,然后呢,我用命令强制删除,还是一样,不是,你都已经显示坏掉的硬盘离线了,我还不能删除掉已经离线的硬盘?没办法,我就只能关机,拔掉坏的硬盘,替换掉新的硬盘,再手动重建。
但是吧,实际上硬盘又是没问题的,我在其他linux下测试了好几遍,都没问题,坏道都没有,truenas这个报错也是莫名其妙。
二、想删掉池但是永远“池繁忙”
这个和第一种类似,但是不一样的是我这个池是条带,就一个硬盘,莫名其妙就出现错误(但硬盘依然没坏道,点击修复了也是有错误,实际上文件也能正常读写),那我就想,修复不了,那我就删掉这个池重建呗,反正没重要数据。所有我决定停止一切读写,删掉这个池,但是又又又出现了和第一种一样的情况,提示“池繁忙”,我想先离线硬盘,也是提示“池繁忙”,依然无法用命令强制删除,只能关机拔硬盘.....
当然,上面的说的这两种问题,可能是我没有完全关闭所有程序,导致还有程序在后台对池/硬盘进行读写导致的,总之是个问题,但不大,可下面的问题就极其致命,也让我彻底放弃了truenas。
三、多个存储池同时报废
这个就比较复杂,我上面有四个存储池,而且此时truenas已经迁移到pve里面了,但是源truenas里面的虚拟机还在,也就是说此时的是pve-truenas虚拟机-truenas内各种虚拟机,最里面的虚拟机处于嵌套状态,当时呢我需要对pve配置直通这下功能,所以为了方便测试,我暂停了嵌套虚拟机运行,此时,嵌套虚拟机处于关闭状态,truenas没有任何读写(因为存储池就只有嵌套的虚拟机,那几个虚拟机暂停四个池就没任何读写活动了),所以我很自信,因为池都没有读写了,肯定不会有问题的。
事实上不能自信。当我调整了调整了pve重启宿主机后(注意是调整的pve宿主机,truenas这个没有做任何改动),发现我直通配置错了,所以又多次调整pve并重启,从始至终truenas没有做任何的改动。然后当我最后一次重启完成后,我就发现truenas一直没启动好,才发现truenas卡在启动中,并提示“正在导入池”。我就很纳闷,但那时候还能正常进入到truenas,只是启动要15分钟(导入池要15分钟),我大意了,本来这时候就需要及时备份数据,但是我没管,以为只是系统出错,不行重装下就好,毕竟整个存储池都没读写,是不可能出问题的。
然后,很不幸,我再次重启了truenas(pve没重启),然后这时候不提示要导入池了,因为,,,,四个池全没了,我进后台才发现,几个池直接消失,硬盘还在,但是池没了......意味着所有数据全部丢失。
这里肯定是有人说,你没事搞什么嵌套虚拟化,确实,这个是第一个失误因为我当时刚迁移,还有几个虚拟机没导出来,先这样用着,但我不认为是这个原因导致的存储池全部崩溃。我为什么不第一时间备份数据呢,因为我认为存储池是不可能损坏,我truenas存储池上没有任何读写,四个池,对应四个嵌套的虚拟机,这四个虚拟机我都没启动,硬盘都不读写,哪来的会损坏数据?而且退一步讲,就算损坏,也不至于四个池同时炸,难道四个池都有在读写?那更不可能,因为我这个truenas就只有嵌套的虚拟机,其他功能都没有,smb、docker这些服务都没用启用过。
后面我也去查了下,发现这个重启后会提示“正在导入池”并非个例,有人是升级后遇到,有人也是和我一样重启后就遇到,但他们是重装了系统或者修复了下池就恢复了,我就比较倒霉,直接所有池损坏,具体是什么情况导致的,现在也不清楚。
以下是猜测,truenas每次开关机前依然会读写/校验池(哪怕池上没有其他任何服务),然后错误的关机导致了池出现异常(这个可能是pve关机导致的)进而导致了数据丢失。总之核心问题是,理论上不存在任何读写的池却出现了损坏(但是truenas系统本身又没任何影响???),那我确实百思不得其解。
不过也别想看热闹,因为丢失的也不是重要数据,我早在迁移truenas之前就实现了存算分离,炸的那几个虚拟机也无关紧要,问题不大。
评论前必须登录!
注册