我正在为一家小型企业构建虚拟环境。它基于单个 ESXi 5.1 主机,该主机将托管大约六个虚拟机。不过,我对如何实现存储有些疑惑。我自然希望数据存储具有容错能力,但我没有足够的资金购买单独的存储机器,也没有昂贵的硬件 RAID 解决方案,所以我想使用一些软件 RAID(最有可能是 lvm/mdadm)。如何实现?到目前为止,我唯一的想法是创建一个具有存储适配器作为直通的虚拟机,将一些软件 RAID 放在磁盘顶部,然后将生成的卷“返回”给 ESXi 主机,然后 ESXi 主机创建一个数据存储,其他虚拟机可以从中获取其存储。
这确实有点绕弯子,我还有更好的选择吗?根据我的研究,直通似乎有很多缺点,例如无法暂停/恢复等。
答案1
ESXi 不是通用操作系统,也不应被视为通用操作系统 - 严格遵守硬件兼容性列表,因此请使用经过测试和认可的硬件 RAID 适配器。选择做其他任何事情,您就会加入那些偷工减料的人的行列,最终回到这里抱怨他们的系统无法正常工作或丢失了数据 - 我们遇到过很多这样的情况。
答案2
这确实看起来有点迂回,我还有更好的选择吗?
您的总体想法是正确的。我个人建议在 Solaris 或 FreeBSD 上使用 ZFS,但 mdadm 也可能有效。不过,也许您没有获得我在这篇文章中写到的所有优势,所以请将其视为免责声明。这篇文章会很长,我提前为冗长的文字道歉。
根据我的研究,直通似乎有很多缺点,例如无法暂停/恢复等。
其中包括:
- 仅适用于 CPU(Intel)或 CPU+board(AMD)上的 vt-d(或 AMD IOMMU)支持:没问题,现在很难找到没有它的服务器,因为除了 Atoms 之外的每个英特尔 CPU 都有它(即使在 HP、戴尔和其他公司的基本系统中也是如此)
- 无法创建所有带有直通元素的虚拟机的 VMware 快照:理论上是个问题,但这只会影响您的存储虚拟机,该虚拟机上只有最低限度的配置设置,不用于其他目的。您可以在存储级别进行快照,这样速度更快、更便宜,而且不会减慢系统速度。此外,您还可以毫无问题地对主机上的所有其他虚拟机进行快照(甚至可以将其与文件系统快照结合使用,以获得强大的恢复选项和长期状态存档)。
- 您在某些方面的内部复杂性有所增加:乍一看,这是真的——你添加了一个额外的层,你需要管理更多的东西,比如你的新内部 SAN(VMware 中的网络/VLAN 设置)或你的存储 VM 本身(更新等)。但另一方面,你也拥有简单性和灵活性:
- 只需几个简单的脚本即可自动创建正在运行的虚拟机的一致备份,而且完全免费。它们还可以存储在另一台机器、磁盘或云上(加密),所有这些都无需任何额外的昂贵软件解决方案。
- 如果您的服务器死机了,只需购买另一个现成的替代品,安装 ESXi,启用直通,配置网络,添加磁盘并启动存储 VM。启动后,重新扫描存储,就像只是断电一样,您的所有数据都是安全的,您知道这一点(而不是使用 HW RAID,您希望如此)。
- 特殊要求可以通过最小的更改在需要时满足。企业有一个需要本地磁盘进行备份的旧应用程序?只需配置 iSCSI 并透明地呈现您的存储。他们经历了增长并需要更多存储?只需使用更多磁盘扩展池并直接通过 iSCSI 或通过 VMware(NFS 或 iSCSI 加上 vmdk)呈现它们。他们想在强大的独立服务器上使用数据库?只需在另一个 LAN/VLAN 上打开您的 NFS 并将其作为“真实”SAN 提供给新服务器。
- GPU 直通仅适用于昂贵的 Nvidia 卡和所有 AMD 卡:目前确实如此,但无论如何,您的存储虚拟机不需要专用 GPU。
还存在一些与直通无关的一般烦恼:
- 要重新启动存储虚拟机,需要先关闭所有依赖于它的其他虚拟机:这个明显的问题很少被提及,但在我看来却是最烦人的。当然,ESXi 本身的更新也需要完全重启,但由于您现在有两个系统,时间可能无法完美同步。我建议使用稳定的操作系统,并在两个系统之间排列非关键更新。此外,您应将存储 VM 限制在其自己的内部虚拟 LAN 中,从而进一步减少在发布修复程序后立即应用修复程序的需要。请注意,这也适用于从 GUI 意外重启存储 VM。
- 底层堆栈中的错误会导致整个机器无法运行:与仅使用 ESXi 相比,这种风险有所增加,因为现在您有两个系统和两个网络堆栈。从好的方面来看,您的存储 VM 和 ESXi 通常都应该是稳定的,错误应该很少。尽管如此,我建议在发布后几天/几周安排更新,以便您可以查看其他人是否遇到问题。另一方面,不更改配置意味着它非常稳定,这对 SME 来说是一个优点(需要的支持更少)。
- 第三方支持人员不知道解决方案:这是一种非常罕见的设置,因此您的随机替换者从一开始就没有您的文档就搞清楚的可能性很小 - 这可能是一个问题,也可能是一个优势,具体取决于您的业务目标。可以通过一些基本文档来缓解这种情况,这些文档解释了设置的结构(使用图片/图表!),与传统 RAID 设置的比较,以及在常见问题情况下该怎么做(备份、恢复、磁盘更换、更新、网络更改、硬件扩展)。
除了技术问题之外,您还必须考虑您的目标以及实现目标的方法。这决定了您选择的解决方案的实用性及其优缺点,以及您的整体结果(成功或失败)。这在很大程度上取决于业务本身的需求。从业务角度来看,支持或反对您提出的解决方案的一些考虑因素:
- 预算:有些企业愿意每年为几乎从未使用过的支持合同支付数千美元,因为一旦使用,对他们来说价值就大得多。有些企业只能为即时价值付费,并且可以相当便宜/灵活地应对意外停机,因此这些钱就浪费了。
- 安全要求:有些企业不允许 10 年前的单个文件被毁坏或损坏,而有些企业甚至不允许所有当前数据完全丢失,这只会带来不便。备份、快照等需求会根据这种情况而变化。
- 支持结构:有些企业希望购买一台机器,将其设置好,然后(虚拟地)永远运行它,而根本不需要任何支持,而有些企业则希望并需要他们信任的人的持续变化、升级和直接支持。
- 灵活性要求:有些企业变化太快,你无法提前知道他们的需求,这可能是或可能不是更灵活设置的理由。另一方面,有些企业永远不会改变,他们更看重稳定性和可预测性。
无论如何,您都应该牢记这些要点。只有满足目标,您的解决方案才能成功,大多数人的选择并不重要,重要的是 a) 技术上可行,b) 在预算范围内,c) 满足业务目标。如果满足所有这些要点,而您仍需做出决定,请选择更简单/更简单的解决方案 (KISS)。如果它们同样简单,请选择能为您带来更多金钱和/或幸福的解决方案。
答案3
如果我是小企业,而你部署了类似的东西,我会解雇你……不过,这是一个常见的主题。VMware 有一个定义明确的硬件兼容性列表。但是,当用作独立服务器时,您需要硬件 RAID。非 RAID 磁盘也可以工作,但这不是你想要的。所以我的问题是:
- 没有足够的资金购买存储?这是什么类型的服务器硬件?您可以买得起磁盘但没有 RAID 控制器?兼容的 RAID 控制器并不昂贵。
- 这难道不是管理客户期望的例子吗?单独的存储显然比硬件 RAID 更昂贵。
- 尽管一体化存储解决方案是可能的,它们最适合特定的技术要求,而不是削减成本。
这是 VMware 滥用的一个案例。不支持软件 RAID。我会回去找客户并修改构建/要求。
“你的数据值多少钱?”
答案4
“我自然希望数据存储具有容错能力,但我没有足够的资金购买单独的存储机器,也没有昂贵的硬件 RAID 解决方案,所以我想使用一些软件 RAID(最有可能是 lvm/mdadm)。如何实现呢?
如果没有基于硬件的数据存储 RAID,esxi 将无法工作. 甚至基于 BIOS 的软件 raid 也无法工作。
I run a HW backed 2x1TB SSD datastore for VMS
我在 Ebay 上以 100 美元的价格买到了我的突袭控制器 Adaptec 6405e!
但关于下一部分,
到目前为止,我唯一的想法是创建一个具有存储适配器作为直通的虚拟机,在磁盘顶部放置一些软件 RAID,然后将生成的卷“返回”到 ESXi 主机,然后创建一个数据存储,其他虚拟机可以从该数据存储中获取其存储。”
我的“文件服务器”包括4x5TB HD 直接传送至虚拟机.然后我建造了mdadm Raid 5,总共约 14TB,并通过 NFS 导出到我所有的虚拟机。任何时候大约有 15/20,10/20 的开发虚拟机除非使用,否则处于关闭状态。这对我来说效果很好,但对于大量用户来说效果并不好。事实上,我真的是唯一的本地用户,但我确实托管了一些产生一些流量的网站,但同样,它们大多是静态的。
如果您正在考虑使用这个想法,那么在这种情况下要问的一个好问题是,文件服务器是用来做什么的?
就我而言,90% 的虚拟机(如果不是全部)都在虚拟机(Linux)内托管所有必要的数据,大小不到 20GB。我使用文件服务器作为备份的中央存储库,而且任何媒体应用程序(如 Plex)都将从文件服务器读取,我的 P2P 直接保存到文件服务器,但我的所有主机都没有数据库或任何驻留在文件服务器上的东西。但是,它们确实将所有备份都备份到文件服务器。我的文件服务器是我唯一托管 2 个服务的虚拟机,即用于虚拟机的 NFS 以及用于通过 GUI 访问 Windows 的 SMB。这对我来说非常有效。我还通过 NFS 将文件服务器安装为数据存储,并且我可以从数据存储内将 ISO 安装到新虚拟机。我还将 Windows 中的 SMB 上的 OVA 快照直接备份到文件服务器。 在导出的 NFS 软件 raid 上运行 VM 会很疯狂,但将大型 NFS 数据存储导出回 esXi 主机有很多好处。