在 Windows 中挂载远程 ZFS 共享并使其出现在本地或接近本地的最佳方法

在 Windows 中挂载远程 ZFS 共享并使其出现在本地或接近本地的最佳方法

我主要使用 Linux 和 Mac,在这些操作系统上共享文件夹和块设备既简单又好用。我有一个 38TB 的 ZFS 支持的 Ubuntu 文件服务器,它几乎存储了我所有设备的所有数据。

其中一个设备是 Windows 7 机顶盒,我用它来玩游戏和制作音乐。它非常快,但就存储而言,我移除了它的 2TB ICH10R 支持的 RAID5 阵列,只留下一个中型 SSD,希望能够使用千兆位连接的 ZFS 机顶盒上的 NFS 共享作为安装游戏和应用程序的主要位置。实际上,NFS 共享的速度与我拆下的 Intel RAID-5 阵列一样快,甚至更快。虽然它确实使用了更多的 CPU 周期,因为它是基于以太网的。这是我愿意接受的权衡,因为在这个机顶盒上有一个 ZFS 支持的可快照安装目标绝对很棒。

问题是,在 Windows 上,将应用程序和游戏安装到非本地驱动器上通常非常困难。根据我的经验,如果我将物理外部驱动器(如 USB 或 Firewire)映射到通常是 NFS 或 Samba 共享的驱动器号并在那里安装应用程序,然后将其移动到网络共享并在安装后将其重新安装到同一驱动器号,则该应用程序或游戏将正常运行。当驱动器号包含网络共享时,它将拒绝在那里安装。

随着时间的推移,这种解决方法变得非常繁琐,尤其是当你在玩《模拟人生》这样的游戏时,你需要在一个已经接近 30GB 大小的游戏文件夹上安装扩展包。为了实现这一点,我必须卸载我的 NFS 共享,将所有这些文件夹移动到物理驱动器,使用旧驱动器号安装,安装,将文件移回,重新安装,然后就该睡觉了,因为整个过程花了五个小时。

我真的很想避免这个问题,不管用什么聪明又有效的方式。我的想法是这样的:

  1. 存在一些应用程序/黑客,使得已安装的网络驱动器对于安装程序来说就像是本地驱动器一样。

  2. 我可以通过某种方式将网络共享安装到文件夹而不是驱动器,这样我就可以拥有本地混合搭配的文件夹,例如:

    [local]  c:\Games\The Sims 3
    [remote] c:\Games\The Sims 3\The Sims 3 Fast Lane Stuff
    

    然后任何新的扩展包都会在本地安装(没有错误,因为包含的文件夹将驻留在物理连接的驱动器上),之后我将其移动到 ZFS NFS 共享并将其安装在 下c:\Games\The Sims 3\\[foldername]

  3. 我可以使用 ZVOL 在 Windows 中创建 VHD 并将其用作目标。

您对选项 1 和 2 的可能性有什么意见吗?至于选项 3,这是否可能,或者我是否必须使用 NFS 共享上的物理文件,如果是这样,性能损失是什么,挂载又如何呢,因为 NFS 自动挂载似乎在 Windows 7 中不起作用,所以非自动挂载 NFS 共享中的 .vhd 文件的自动挂载显然也不会挂载?

答案1

ZFS 将通过 NFS 或 CIFS 共享文件系统,通过 iSCSI 共享 ZVOLS。

如果您确实想要接近本地,则必须通过 iSCSI 导出 ZVOL。您的第二选择是 CIFS。

考虑到您如此随意地谈论 Windows 上的 NFS,您是否正在运行 Ultimate 或 Enterprise?目前我不知道 Windows 上还有其他流行的 NFS 客户端。

相关内容