我们正在面对我们的Solaris / ZFS文件服务器的故障。 h / w不会启动,我们并不担心服务器,但数据是宝贵的。 我们在raidz2池中取出了一组8个驱动器,并将它们连接到另一台Solaris机器上。 该arrays被认出,数据完好无损,持续了6个小时,但是在6个小时之后,游泳池在中间变得不可用。 我们重启了机器,没有运气。
如果您能帮助我们恢复数据,我将不胜感激。
使用** zpool import *命令,我们得到以下错误:
zpool import pool: p1z2 id: 16004911417686972288 state: UNAVAIL status: One or more devices are unavailable. action: The pool cannot be imported due to unavailable devices or data. The pool may be active on another system, but can be imported using the '-f' flag. config: p1z2 UNAVAIL corrupted data raidz2-0 DEGRADED c0t5000C500959EC8DFd0 UNAVAIL cannot open c0t5001B4D04D00A816d0 ONLINE c0t5001B4D04D1E6803d0 ONLINE c0t5000C50083375403d0 UNAVAIL cannot open c0t5001B4D04D1F0807d0 ONLINE c0t5001B4D04D101812d0 ONLINE c0t5001B4D04D101817d0 ONLINE c0t5001B4D04D233806d0 ONLINE device details: c0t5000C500959EC8DFd0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing. c0t5000C50083375403d0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing.
iostat -en
---- errors --- s/wh/w trn tot device 0 0 0 0 c0t5001B444A4E76FA2d0 0 0 0 0 c0t5001B4D04D090800d0 0 0 0 0 c0t5001B4D04D08D801d0 0 0 0 0 c0t5001B4D04D233802d0 0 0 0 0 c0t5001B4D04D1E6803d0 0 0 0 0 c0t5001B4D04D080804d0 0 0 0 0 c0t5001B4D04D101805d0 0 0 0 0 c0t5001B4D04D233806d0 0 0 0 0 c0t5001B4D04D1F0807d0 0 0 0 0 c0t5001B4D04D080810d0 0 0 0 0 c0t5001B4D04D080811d0 0 0 0 0 c0t5001B4D04D101812d0 0 0 0 0 c0t5001B4D04D00B813d0 0 0 0 0 c0t5001B4D04D080814d0 0 0 0 0 c0t5001B4D04D1E6815d0 0 0 0 0 c0t5001B4D04D00A816d0 0 0 0 0 c0t5001B4D04D101817d0
如果不了解更多有关游泳池状况的信息,我不会尝试提供答案。 我build议针对池运行ZFSdebugging实用程序。 它应该提供额外的信息,可以帮助确定主机拒绝导入降级池的原因(虽然它告诉你数据已损坏,但仍然可以回退到可以恢复的点)。
免责声明:zdb本质上是Oracle技术支持的内部支持工具。 使用其各种选项而不理解其效果可能会使事情变得更糟。
在下面的示例中,“-e”选项告诉它在当前未导入的池上运行。
zdb -e p1z2 | tee /tmp/zdb.log
请注意,这可能需要很长很长时间才能运行,具体取决于游泳池的大小和使用情况。 我刚刚运行这个对我用我的Solaris 10U10(+最新的CPU补丁)系统使用健康,但导出的1.4TB池。 这个池有79%被数据使用,而且zdb在40分钟后仍然运行着它的元数据校验和(而且我在我的一天结束的时候,所以我不会继续看完成)。 输出可以是巨大的,这就是为什么我build议你使用三通login到一个文件。