自从升级到 16.04 以来,我已将我的 /home 移至 zfs 池,以熟悉 zfs。
它已经显示出它的实力,并识别出我长期运行的驱动器的质量不佳:
# zpool status -v
pool: homepool
state: DEGRADED
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Sun Oct 16 11:09:17 2016
402G scanned out of 1,63T at 76,8M/s, 4h41m to go
401G resilvered, 24,10% done
config:
NAME STATE READ WRITE CKSUM
homepool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
sdb UNAVAIL 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 1K (resilvering)
mirror-1 ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
cache
sda4 REMOVED 0 0 0
errors: No known data errors
sdb
多年来一直运行良好,但使用 zfs 校验时,很明显有时会产生错误数据。zfs 当然不会接受这种行为,因此会将驱动器标记为故障 - 这导致我添加了重新同步功能,sdd
从而初始化了重新同步。
sdb
现在 - zfs 已从池中移除两次。两次sda4
也都已移除。sda1
包含我的/
。两次都发现它ro
在移除后处于 - 状态sdb
。
这一切都是有关联的吗,还是更有可能是我的驱动器有多个故障?
我的理由是它sdb
坏了,但由于它被缓存了,所以一些错误可能被视为来自缓存,而且由于缓存与分区位于同一物理驱动器上,所以当尝试从看到的错误中恢复/
时,根会被摧毁,因为两个物理驱动器都被标记为垃圾生产者。zfs
sdb
sda4
这听起来可能吗?
尝试重新挂载/
不起作用:
root@computer:~# df /
-su: /bin/df: Input/output error
root@computer:~# df /de-su: cannot create temp file for here-document: Read-only file system
-su: cannot create temp file for here-document: Read-only file system
^C
root@computer:~# mount | grep sda
/dev/sda1 on / type ext4 (ro,relatime,errors=remount-ro,data=ordered)
root@computer:~# mount -o remount,rw /dev/sda1 /
mount: cannot remount /dev/sda1 read-write, is write-protected
编辑:
自从我添加了额外的磁盘(从而移除了 SATA CD-ROM 驱动器)后我就没有再遇到这个问题。
# zpool status -v
pool: homepool
state: ONLINE
scan: scrub repaired 0 in 6h37m with 0 errors on Wed Oct 19 15:23:30 2016
config:
NAME STATE READ WRITE CKSUM
homepool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
cache
sda4 ONLINE 0 0 0
errors: No known data errors
近两周以来一切似乎都很好,但损坏的磁盘仍然存在,我想它应该会继续喷出垃圾数据,但似乎并没有。