从作为iSCSI目标公开的ZFS池中恢复NTFS数据

这是我的愚蠢,数据并不重要,现在是一个学习经验第一,节省时间第二。

我通过napp-it中的裸骨指令设置了一个100GB的iSCSI目标。 这是一个卷LU。

然后,我的Windows 7计算机连接到iSCSI目标,将其格式化为NTFS,并使用一些大型的iso文件传输testing其性能。 然后我没有映射驱动器,重新连接到目标,并被迫再次格式化为NTFS。

那时我意识到我所传输的文件只存在于iSCSI目标上。 我投了一下,然后开始了我的生意。 当我清理我的实验时,我注意到在这个屏幕上: http : //imgur.com/1xlcu.jpg

这是我的实验目标坦克/ iSCSI,它仍然有很多数据。

假设我的isos仍然在这个池中,我将如何去恢复它们?

在写这篇文章时,我使用了www.runtime.org的GetDataBackup for NTFS。 而它发现两个以前的NTFS分区没有数据。

不幸的是,没有 – 那里没有比Windows能看到的更多的数据 – 除非你拿了一个ZFS快照。

为了从ZFS公开到iSCSI,在处理文件的时候就像一个裸磁盘一样,它需要在ZFS池中创build一个伪块设备作为文件。 这个特定的文件作为一个空白的“磁盘”暴露在iSCSI之上 – 允许Windows iSCSI启动器使用NTFS文件系统进行格式化。 这与文件协议(如NFS或SMB)完全不同,文件系统根本不是NTFS,Windows系统中的文件将作为文件直接存储在ZFS卷上。

由于iSCSI暴露是以这种方式工作的,ZFS作为一个暴露为磁盘的ZFS文件,实际上无法知道从NTFSangular度来看什么是“自由”和“使用”什么。 相反,它真正知道的是这个假磁盘文件有多大 – 以及有多less数据被写入(这是那个REFER数字 – 86 GB,也包括/tank/iSCSI其他文件) 。

除了快照之外,假磁盘中的数据是可以使用的数据 – 但是和普通磁盘一样,文件可能仍然在磁盘上,只是没有文件系统指向它们。 我不熟悉那个特定的工具,但是检查整个磁盘上孤立文件的东西可能会诀窍。

之前我遇到过这个问题,只是再次遇到了这个问题。 我使用UFS Explorer工具作为删除卷的最后尝试数据恢复解决scheme。 在今天的情况下,我正在从位于VMWare VMDK中的NexentaStor VM共享的ZFS iSCSI导出顶部创build的Linux XFS分区恢复数据。 很多层的抽象…

数据在XFS文件系统级别被删除,所以我将该iSCSI导出redirect到UFS Explorer所在的Windows 2003 Server VM。 从那里,我将使用UFS资源pipe​​理器尝试将数据恢复到另一个存储设备上。

8小时后…

UFS资源pipe​​理器能够恢复数据和文件名是完整的。 我正在复制到另一个硬盘驱动器。 不幸的是,一些目录名不是,用“inodeXXXXXX”代替。 虽然这是相当典型的。 但总而言之,在某些情况下这种恢复是可能的。

在这里输入图像说明