注意:当谈到 ZFS 池时,我完全是个新手。
我昨天在 4 个 3TB 硬盘上创建了一个 ZFS 池,如下所示:
2017-06-10.16:31:08 zpool create data sda sdc sdd sde
2017-06-10.16:31:29 zfs set compression=lz4 data
2017-06-10.16:31:43 zfs set atime=off data
然后我开始复制一些数据。过了一会儿,我注意到我的池不见了,我的一个硬盘处于离线状态。我尝试重新启动,希望它能重新上线,但我陷入了所描述的某种循环中这里。昨天没时间处理,就关机到现在了。
我原本打算尝试从 USB 棒恢复,但我尝试再次启动,系统运行正常!我运行,zpool list
它显示“没有可用的池”。谷歌搜索了一下,试了一下zpool import data
。我收到错误,
无法挂载‘/data’:目录不为空
再次尝试zpool list
,果然,我们重新上线了:
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
data 10.9T 125G 10.8T - 0% 1% 1.00x ONLINE -
试过了ls /data
,里面有一个目录,一切看起来都很好。检查我的米尼奥应用程序将数据存储在那里,我的所有存储桶都消失了。果然,唯一实际上Minio 服务上线时必须/data
重新创建。/data/minio/.minio.sys
zpool history
可怕的[擦洗没问题] 查看其中的行:
2017-06-11.00:24:08 zpool scrub data
但我不记得运行过它。但我真正不明白的是,它zpool list
说它125G
仍在使用,这听起来是对的。所以,
- 在哪里是这些数据?我该如何再次访问它?
- 我
ZFS_MOUNT='no'
按照/etc/default/zfs
文章的建议添加了内容,但systemctl enable zfs-mount.target
显示“无法执行操作:没有这样的文件或目录”——我该怎么办应该自动挂载我的 ZFS 池,这样我就不会在启动过程中卡住? - 看来我错误地创建了 zpool——通过其设备名称(例如
sda
)而不是 UUID——我现在可以纠正它吗?
我的 USB 驱动器被分配了一个/dev/sdX
字母,不是吗?我怀疑这与池的安装有关。
答案1
您创建了一个由四个磁盘的条带组成的 zpool;基本上是磁盘的 RAID 0。
您使用了 SCSI /dev/sdX 名称,并添加了 USB 驱动器。这可能会导致 SCSI 枚举问题并影响您的 /dev/sdX 驱动器排序。
如果 /data 目录中有不应该存在的内容,只需将其删除并尝试挂载您的池 -
zpool import data