在 Windows 中访问 ZFS 卷?

Dou*_* S. 36 windows-7 zfs

你会认为这会被问到,但我似乎找不到它所以......

假设我在这个机箱(8 bay USB3 JBOD)中有一个 ZFS 设置:https ://web.archive.org/web/20111018042134/http:
//www.sansdigital.com/towerraid-/tr8uplusb.html

现在,我将在直接连接的 Mac 上运行它,但我也希望在启动到 Windows 时能够访问这些文件。对于 HFS+ 卷,Apple 非常友好地提供了一种方法来执行此操作。但是,我找不到 ZFS 的一个。

我遇到的唯一解决方案是在虚拟机中使用 Open Solaris 来安装驱动器。然而,我也听说过很多关于这样做的噩梦,它导致了大量的失败......是的,与我想要的完全相反。

那么,从本质上讲,当前访问连接到 Windows 的 ZFS 卷的最佳方法是什么?如有必要,我会很高兴拥有只读访问权限。

哦,预期的操作系统是 Windows 7。

Gra*_*rin 20

zfs-win

… 可以安装只读驱动器 …

- 我猜进一步的开发可能会启用写访问。

在 Windows 7 上安装后:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Administrator>chdir "C:\Program Files (x86)"

c:\Program Files (x86)>zfs-win
ZFS for Windows

usage:
  mount <mountpoint> <dataset> <pool ..>
  list <pool ..>

examples:
  zfs-win.exe mount "m:\" "rpool/ROOT/opensolaris" "\\.\PhysicalDrive1" "\\.\PhysicalDrive2"
  zfs-win.exe list "Virtual Machine-flat.vmdk"
Run Code Online (Sandbox Code Playgroud)

在编辑OpenZFS wiki 的兼容性部分时,我被告知 zfs-win 无法读取 ZFS 池版本 28。(我不编写代码,因此从源代码中我无法确定支持哪个版本 - 抱歉。)


小智 14

有适用于 Windows 的本机 ZFS 实现(仅限 10?),网址为:

https://github.com/openzfsonwindows/ZFSin

这里的讨论表明它是一个高质量的端口:

https://news.ycombinator.com/item?id=15549190


not*_*ter 12

如果遵循一个永远不会欺骗 ZFS 的简单规则,那么虚拟机中的 ZFS 可以正常工作ZFS不遗余力地防止数据损坏(校验和、写时复制、dittoblocks、镜像或 raid-z 等),因此您应该尽一切努力让 ZFS 直接访问您的磁盘。虚拟化 ZFS 问题的所有恐怖故事都来自虚拟化软件缓冲区、磁盘控制器缓存或什至带有直写缓存的窗口的某种级别的缓冲 IO,如果您足够愚蠢,可以使用虚拟磁盘而不是整个原始磁盘。每个虚拟化包对原始磁盘的处理略有不同,但VMWare WorkstationVMWare FusionVirtualBox都支持它,无需太多努力。

你提到将它附加到你的 Mac,所以你可以使用 OSX 原生的东西,比如ZEVO(以前的Z-410),或者像在 Windows 7 中一样运行 ZFS 虚拟机。如果你在 mac/windows 之间移动你的池(ZEVO < -> VM)zpool export poolname在切换之前你会想要。如果您在两侧启动相同的 VM,则不需要。您应该努力避免在 HFS+ 或 NTFS 上托管任何虚拟磁盘(vmdk 文件),而是将其中一个外部磁盘(或内部磁盘的一个分区)设为可引导,这样您就可以毫不费力地以非虚拟方式引导它。

请注意,如果您的 Mac 有 Thunderbolt,您可以使用它而不是 USB2 或 FireWire 来连接多个磁盘以实现 ZFS。像 SonnetTech Thunderbolt PCIe 桥接器(ExpressCard 或 PCIe)结合 eSATA 或 SAS 卡(甚至 USB3 卡)之类的东西将比普通 USB2 快几个数量级。


Maj*_*nko 9

Windows 中没有对 ZFS 的操作系统级别支持。

正如其他海报所说,最好的办法是在 VM 中使用支持 ZFS 的操作系统。

选项是:

  • 打开 Solaris
  • FreeBSD
  • Linux(通过 zfs-fuse 或 zfs-on-linux)

另一种可能性是使用一台小型低功率计算机(比如基于 Atom 的系统)连接到驱动器,并充当磁盘的网络主机,通过像 CIFS 这样的标准协议通过网络共享数据(桑巴)。然后您可以直接在金属上运行 ZFS 感知操作系统。


小智 7

我敢打赌,你已经在这个话题的年龄,但我会投入我的两分钱,以帮助任何对此事仍有疑问的人。

我已经使用 ZFS 作为文件系统构建了几台 NAS 机器。最容易使用的一种是 FreeNAS 或 NAS4Free。在前两个在其 ZFS 发行版中提供重复数据删除和加密之前,我也使用过 Solaris。如前所述,您可以成功地将 Atom 处理器用作低功耗主板解决方案。只要确保为它们提供电路板可以支持的尽可能多的 RAM,以弥补 CPU 的供电不足。显然,NAS 不如本地磁盘快,但总比完全没有获得 ZFS 的好处要好。

我使用 VM 访问了一些 U 盘,然后在 RaidZ 池中使用 ZFS 对这些 U 盘进行了格式化。然后我通过虚拟化 LAN 连接将它们共享给主机。虽然它确实有效,但我不知道你会遇到什么样的可靠性或性能问题。USB 驱动器本质上很慢,以至于无法从该设置中获得有价值的数据......所以,我从不费心去测试它。但是,我想这样做会产生很多CPU 开销。

总之,如果你有预算,我建议在 VM 上做一个 NAS。上个月我用一个小的Chenbro 机箱和一个Supermicro Atom 板制作了一个。我在 RaidZ 中为它提供了 4GB 内存和 4x3TB SATA 驱动器。它以 135MBps 的持续速度为基准。我没有进行任何其他测试。