我正在创建 Hyper-V 2012 R2 集群。我有 3 个物理主机(每个主机有 128GB RAM、双 Hex-core 和 12 个 NIC)和一个 SAN 可供使用。SAN 是一个虚拟存储系统 (Datacore),通过 iSCSI 为其虚拟磁盘提供服务,我可以根据自己的需要创建任意数量的虚拟磁盘(即 LUNS)(我有容量!)。我们已经在 ESX 集群中成功使用了 Datacore SAN 好几年了,但由于许可成本以及它现在提供的功能与我们目前使用的 ESX 相当,我们正在转向 Hyper-V(我们也运行了几个独立的 Hyper-V 服务器作为备份好几年了,所以我们也非常熟悉这项技术)。
因此,这个问题专门涉及 2012 R2 中的混合集群角色
我已经创建了 Hyper-V 集群,该集群使用来自所有主机都可以看到 SAN 的多个 iSCSI LUN 上的 CSV(用于存储 VM 文件),但我的下一步是配置一些高可用性文件服务器供一般用户使用。我应该指出,我确实知道使用主动-主动且主要为应用程序使用而设计的 CSV(如 Hyper-V)与文件服务器集群使用的主动-被动共享存储之间的区别,我不建议做任何不同的事情:但是,我可以通过几种不同的方式实现文件服务器。
我可以做到这一点的第一个主要方法是创建一个“来宾集群” - 即 2 个虚拟机作为集群文件服务器节点(位于不同的主机上)。它们的操作系统卷显然是分开的,但是我可以通过两种方法让它们共享文件存储卷(即共享所在的位置)
a. 它们都共享一个 VHDX,该 VHDX 显然位于 Hyper-V CSV 上
b. 或者使用 iSCSI 启动器并直接访问 SAN 上的专用 LUN
第二种方法是根本不对文件服务器节点使用 Hyper-V,而是在集群中的相同主机上创建文件服务器(通用)角色(与 Hyper-V 角色一起):然后这些角色将访问 SAN 提供的专用(非 CSV)LUN 上的共享存储。
每种方法的缺陷是什么?我的感觉是第二种方法实际上开销更小(无需虚拟层,也不需要 VM),但这确实意味着集群中的主机同时提供集群 Hyper-V 和集群文件服务器服务 - 这会是个问题吗?我还认为我甚至可以利用一些粗略的负载平衡,通过将我的文件共享拆分到集群上的 3 个文件服务器角色中,每个角色主要在一个节点上运行(当所有功能都正常工作时!),并且每个角色都使用单独的 LUN。
我知道答案取决于我计划运行多少台虚拟机等,但假设我会密切关注资源(例如确保虚拟机不会占用所有主机 RAM)并且我会正确管理 NIC 分配所以不会出现带宽问题。
有什么技术原因导致我无法选择选项 2 吗?非常感谢!
答案1
在 Hyper-V 主机上运行文件服务器角色没有问题。一般来说,将其他角色与 Hyper-V 混合使用并不是一件好事。但是,文件服务器角色经过专门设计和测试,可以与 Hyper-V 一起运行。我建议使用 Windows 2012 R2 的 QoS 功能为您的 Hyper-V 角色与文件服务器角色划分网络容量。
我不会为了创建集群文件服务器而创建多个虚拟机。如果出于业务原因需要这种复杂程度,那么企业应该购买专用硬件来创建集群文件服务器。文件服务器角色的故障转移时间将比在来宾中运行集群更快。
答案2
就我个人而言,我不会这么做。Microsoft 的最佳做法是仅在主机服务器上安装 Hyper-V 角色,我不完全理解您通过让两个 VMS 指向 SAN 上的同一共享来获得什么。
最好的办法是将文件服务器作为虚拟机放在集群上。将其放在集群上将提供高可用性,但如果您想要一个冗余虚拟机,那么我会在集群上(或理想情况下在另一个集群上)设置第二个文件共享并启用 DFS。