我想将媒体资产等存储为 Windows 驱动器路径,以便多个虚拟机可以访问。问题是我可以(并且应该)这样做吗:
A) 将物理硬盘分区为 NTFS,并共享对所有虚拟机的访问权限。
-或者-
B) 有一个由 VMWare 创建的虚拟硬盘(因此物理分区是 VMFS,但虚拟分区是 NTFS)并共享对所有虚拟机的访问权限。
哪一个是可能的和/或最好的?
如果出现问题,我是否最好拥有一个可以使用大多数可启动操作系统连接的本机文件系统?
答案1
狭义上讲,目前不支持在多台服务器上安装相同的 NTFS 格式分区。唯一的例外是当 NTFS 分区托管 HyperV 虚拟磁盘时,而这并不是您要做的。问题归结为如何调解锁定。HyperV MSCS 角色包括一个用于执行此操作的层,本质上是通过选举一个 MSCS 节点作为元数据服务器,并且所有元数据更新都通过该节点进行处理。
看看您的问题,需要能够从多个服务器访问同一个媒体文件数据存储,看起来文件级共享解决方案可以满足您的需求,例如用于存储的专用 Windows 服务器。如果 Web 服务器和媒体存储都在同一个 AD 域中,则完全可以配置 Web 服务以通过网络访问文件存储。
答案2
这是一个比您想象的要复杂得多的领域,答案在很大程度上依赖于您尚未提供的大量信息。
首先,您是否拥有多个 ESXi 主机,如果是,这些主机之间是否有共享存储(即 FC/FCoE/iSCSI/NFS SAN/NAS)?
其次,您如何看待这些多个 Windows VM 访问此共享磁盘;在块或文件级别?您是否有特定的性能要求?您是否预见到任何写锁问题?
如果您需要块级共享,并且只有一台主机,那么您可以简单地使用向所有虚拟机公开的“独立”磁盘,但您必须使用 Windows 群集服务来管理块锁定。如果您有相同的要求,但有多个主机和共享存储,那么您需要将您的磁盘(目前不超过 2TB 的块)作为称为 RDM 的东西呈现给您的所有主机/虚拟机,同样,这将需要一些东西来管理块锁,例如 MSCS 或类似的东西。
如果您需要在虚拟机之间进行文件级共享,并且没有立即的写锁定问题,那么可能只需将常规 .vmdk 公开给两个或更多 Windows 虚拟机并切换到 DFS 就足够了。
还有许多其他场景可供使用,但如果您回来提供一些更多信息,我们可以根据需要更详细地介绍它们 - 但至少这些是基础知识。
答案3
除非使用故障转移群集,否则您不能让多台 Windows 计算机同时使用单个(虚拟或物理)磁盘;Windows 不支持并且从未支持此功能。如果您一次只需要一台计算机访问数据,则可以实施故障转移群集,然后可以选择使用虚拟或物理共享磁盘;但如果您需要两台或更多台服务器来访问数据同时,您需要使用一些文件共享系统;最简单的方法是将磁盘连接到文件服务器并将其共享。
如果您想使用故障转移群集,那么您可以选择共享虚拟磁盘还是物理磁盘;这里有两种可能的情况:如果群集虚拟机在同一台服务器上运行,或者它们在不同的服务器上运行。
如果它们在不同的服务器上运行,你真的没有任何选择:你需要共享存储(如 SAN LUN),并且你需要展示它直接地到您的虚拟机(使用 RDM - 原始设备映射)。
如果它们在同一台服务器上运行,您仍然可以使用 RDM 将它们连接到物理磁盘,或者可以使用 .VMDK 虚拟磁盘并将其连接到多个 WM(这需要一些配置);这两个选项之间的性能差异确实可以忽略不计。
关于您的最后一个问题:物理磁盘具有明显的优势,您可以使用任何可以连接到它的服务器直接访问它,而虚拟磁盘需要操作虚拟化层才能访问。