关于因硬件故障引发Scrub数据清洗的逻辑问题。
系统信息
硬件:i510th实体机。因电源漏电(AC120V)引发了以下故障:
飞牛版本:1.1.3107
存储空间1:全新购入 希捷4tNAS红盘x2,ZFS文件格式,镜像模式,磁盘至今仅运行约500小时。
网络配置:动态公网(DDNS)端口转发,通过路由器DHCP固定IP地址。
初始故障
初次故障时间: 2026年6月21日晚
- 飞牛系统运行存在磁盘新数据错误及虚拟机IO错误。
- 内存大量占用,系统+分配6G RAM的linux虚拟机,占用全部16G内存。更换了32G内存仍旧无法改善数据错误和虚拟机IO错误的问题。
- 开机时在POST过程停留时间以分钟计。在启动后需要较长时间获取ip地址。当时并未仔细思考。
事后分析这是由于电源导致的,与系统无关。
排查过程
- 首先因存在数据错误,我尝试执行了数据洗刷(Scrub),在数据洗刷执行时硬盘A短暂脱机,数据洗刷并未显示开始执行,本存储空间提示已损坏。
但存储空间涉及的磁盘并未提示缺失或损坏。硬盘A提示未使用,smart健康状态正常。
- 我手动将硬盘A拔除,重启飞牛后该存储空间提示未挂载,手动点击去挂载后,对于磁盘B的数据清洗即开始执行。
- 待数据清洗执行完毕后,我尝试重启,系统仍未自动将硬盘A载入该存储空间。再次重启仍未自动挂载,点击
已降级!有一块硬盘缺失 添加硬盘修复添加硬盘修复,可见磁盘A,但无法载入。
之后尝试使用下面步骤提到的创建新的无数据保护空间,但只尝试了zfs格式,创建失败后导出了飞牛系统配置,准备重装系统,在插入U盘时发现了硬件对大地漏电约120v的问题,随后着手解决了漏电问题。并且发现硬件启动变快了。
- 在Windows下使用系统磁盘管理将分区删除,回到飞牛以替换损坏磁盘的方式将磁盘A重新载入,提示失败。
- 在Windows下使用系统磁盘管理将分区删除并格式化为NTFS格式,回到飞牛再次尝试载入,提示失败。
- 我尝试在飞牛上使用磁盘A建立一个新的无数据保护空间,使用ZFS格式创建失败,改用Brtfs创建成功了。再将存储空间进行删除,随后磁盘A顺利载入存储空间1。
故障问题
- 磁盘A成功载入之后,系统自动执行了Scrub数据清洗,此时磁盘A状态应为全新盘或空盘,认为此时无需执行数据清洗,数据清洗应该终止,且自点击数据清洗命令飞牛系统已重启多次,认为该命令不应被挂起,在系统第一次关机时即取消。
- 同时目前怀疑数据清洗进程和数据重建进程存在冲突,在一切正常运行后,数据清洗进度快速执行到约30%,存储空间1再次提示
已降级!有一块硬盘缺失 添加硬盘修复 右侧 Scrub 数据一致性检查... 50.71%并缓慢增长,全程未见存储空间1重建进度提示,但两块磁盘均存在大量读写。
查看磁盘smart信息全部正常。
- 未知进程大量占用RAM,系统开机时占用约3.2G/32G,现在占用29G/32G。在桌面运行状态中可以看到总占用,但是在资源管理中无相关进程信息。
- 数据清洗任务应该是相对磁盘A进行的,通过查看文件发现降级被取消载入的确是是磁盘A,理由是磁盘A已经过格式化,如果取消载入的是磁盘B我将无法查看空间文件。认为此时数据清洗进程应及时终止。
日志
已导出系统日志和全部系统诊断日志。
https://fnos.ss147.com:36443/s/0397164ac0a4484785
联系方式
微信群:飞牛fnOS粉丝群763 | 做饿梦了