当ZFS无法提供未损坏的数据时,程序会看到什么?

Jay*_*nek 4 unix error-handling solaris zfs

假设我的程序尝试读取ZFS文件系统上的文件中的字节.ZFS可以找到必要块的副本,但无法找到具有有效校验和的任何副本(它们全部已损坏,或者只有存在的磁盘具有损坏的副本).根据读取的返回值和尝试读取的字节,我的程序看到了什么?有没有办法影响行为(在Solaris或任何其他ZFS实施操作系统下),即强制失败或强制成功,可能会损坏数据?

jll*_*gre 5

EIO确实是当前ZFS实现的唯一答案.

一个开放的ZFS"bug"要求以某种方式读取损坏的数据:http: //bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6186106

我相信这已经可以使用未记录但开源的zdb实用程序了.有关如何使用zdb -R选项和"r"标志转储文件内容的说明,查看http://www.cuddletech.com/blog/pivot/entry.php?id=980.