如何:在两个不同的虚拟机之间共享单个 VHD

如何:在两个不同的虚拟机之间共享单个 VHD

我需要共享单个 VHDX,其中 1 个大分区不包含操作系统,只包含普通文件(主要是图片),并将其同时提升到 2 个具有不同操作系统的不同的虚拟机:

  1. 带有库存和编辑程序(用于管理文件、编辑等)的 VM Windows 和
  2. 带有电子商务系统的 Linux Ubuntu 虚拟机....两个系统将使用相同的“包含图片的文件夹,大约 150GB”,为了减少使用某些第三方工具的“同步”过程(这对于 Linux 来说很奇怪),我需要在两个虚拟机之间共享此“磁盘”。两个虚拟机都需要具有读/写权限。

有没有办法一次性将这个独立的 VHDx 共享给两个虚拟机?(请不要使用 DFS,我尝试过后发现无法保持文件同步)。理想情况下,两个虚拟机都需要将其安装为“内部存储”或类似的东西,以允许两个程序“本地”运行。(iSCSI??...我猜简单的网络共享“映射驱动器”可能会使程序功能出现问题)有办法吗?为了保持简单但具有冗余性,我有 2 台相同的服务器,并在它们之间启用了复制。两者都有相同的 SSD RAID5 卷、相同的 NIC、相同的内存、相同的 CPU... 一些虚拟机(10 台中的 6 台)在 1 台服务器上运行,其他虚拟机(10 台中的 4 台)在另一台服务器上运行,....另一台服务器始终用于复制(理想情况下只想使用此硬件,它具有很多功能)....所以我将在主服务器上创建的任何东西,理想情况下都需要在另一台机器上创建为“从属”,以防 1.server 发生故障....(+ 将 VHDx 物理复制到其他服务器)谢谢,我感谢任何帮助。WServer 2012 R2

答案1

您可以尝试替代路线。使用 StarWind VSAN 或其他替代方案(Windows Server 2016 提供 S2D)部署故障转移群集,它将在节点之间复制块级别的数据,而群集将对您的虚拟机进行故障转移。在这种情况下,您可以在两个节点上使用现有的 RAID5。以下指南可能会有所帮助: https://www.starwindsoftware.com/resource-library/starwind-virtual-san-for-hyper-v-2-node-hyperconverged-scenario-with-windows-server-2012-r2/

答案2

您无法在多个虚拟机之间共享单个块设备(磁盘映像)并期望它处于一致状态。实际上,所有文件系统都需要对其正在使用的块设备的独占访问权。

最好的选择是将数据 VHD 添加到任一虚拟机,然后使用网络文件系统连接另一台 VM。

如果将卷添加到 Windows,请使用常规 Windows 文件共享来共享文件系统,并使用 Ubuntu 上的 Samba 连接到共享。

相关内容