我的一半 ZFS 文件系统都隐藏在 ZFS-fuse 中。以下是我的故事:
所以,我喜欢 ZFS。我在 FreeBSD 上使用了它大约六个月,但由于它在文件系统间 IO 负载过重时导致内核崩溃,我尝试切换到 Solaris 5.10。
这很好,但是当我尝试将版本 13 池导入其版本 4 版本的 ZFS 时,出现了一些严重问题。它可能试图纠正文件系统定义,我不知道。
由于该版本与我的池不兼容,我现在已切换到 Ubuntu Server 10.4。该版本不仅支持我的池,而且还支持一半的文件系统。我能看到的文件系统与 Solaris 能看到的文件系统相同。
现在,尽管这些文件系统没有在“zfs list”命令中预设,我仍然可以设置它们的属性,甚至可以挂载它们并读取和写入文件,但它们根本不会出现在“zfs list”中。
我已经安装了主要的文件系统,但我不确定还有哪些其他文件系统(我看不到大约八个)。
有人知道到底发生了什么吗?我想我可以尝试重新启动 FreeBSD 8(我仍有主启动驱动器可供使用),看看它是否至少能够查看文件系统。
我在 Linux 中也做过清理,没有发现任何数据错误。奇怪的是,导致 FreeBSD ZFS 出现问题的 DMA 读取错误被 Linux 报告,但 ZFS-fuse 没有发现错误。不过这是另一篇文章的主题。
答案1
我不会使用 Solaris 10、Linux/ZFS-fuse 或 FreeBSD,而是使用最新的 dev opensolaris 版本(截至今天为版本 134),其中包含最新的 ZFS 代码来诊断问题可能是什么。请发布“zfs get all 'invisible-filesystem'”的输出,看看哪些属性可能会阻止其中一些显示出来。
答案2
“由于文件系统间 IO 负载过大导致内核崩溃”
这可能不是 FreeBSD 内核的问题,而是 ZFS ARC 存在 3 年多的错误,至今仍然存在!
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6522017
(这个很讨厌,因为它也会超出虚拟机管理程序的虚拟机限制!)