ESXi数据存储下的软件RAID

我正在build立一个小型企业的虚拟环境。 它基于一台ESXi 5.1主机,它将托pipe半打左右的虚拟机。 我对如何实现存储有一些怀疑。 我自然希望数据存储具有容错能力,但我无法获得独立存储机器的资金,也没有昂贵的硬件RAID解决scheme,所以我想使用一些软件RAID(lvm / mdadm,很可能)。 这怎么能被执行? 我到目前为止唯一的想法是创build一个虚拟机,它具有存储适配器作为直通,将一些软件RAID置于磁盘上,然后将结果卷“返回”到ESXi主机,然后创build一个数据存储,得到他们的存储呈现。

这似乎有点儿圆,我有更好的select吗? 从我的研究来看,传递似乎有很多缺点,比如没有暂停/恢复等。

ESXi不是一个通用的操作系统,不应该被认为是如此 – 绝对坚持硬件兼容性列表,因此使用经过testing和认可的硬件RAID适配器。 select做别的事情,你会join其他人的angular落,最后回到这里抱怨说,他们的系统不工作,或者他们已经失去了数据 – 我们得到的很多。

这似乎有点儿圆,我有更好的select吗?

你的总体想法是点亮的。 我个人build议在Solaris或者FreeBSD上使用ZFS,但是mdadm也可以。 也许虽然你在这篇文章中没有得到我所写的所有优点,那么把它作为一个免责声明吧。 这篇文章会很长,我为文本墙提前道歉。

从我的研究来看,传递似乎有很多缺点,比如没有暂停/恢复等。

有一些,值得注意的是:

  1. 仅适用于CPU(Intel)或CPU + board(AMD)上的vt-d(或AMD IOMMU)支持:没问题,如果没有它,今天很难find服务器,因为除Atom以外的每个Intel CPU都有在惠普,戴尔等基本系统中)
  2. 所有具有传递元素的虚拟机的VMware快照无法创build:理论上存在一个问题,但是这只会影响您的存储虚拟机,它只有最less的configuration设置,没有别的用处。 您可以在存储级别执行快照,更快,更便宜,不会降低系统速度。 此外,您可以快照主机上的所有其他虚拟机(甚至可以将其与文件系统快照结合使用,以实现强大的还原选项和长期存档状态)。
  3. 您的内部复杂性在一些地方增加了:乍一看,这是事实 – 您需要添加一个额外的层,您需要pipe理更多的内容,如新的内部SAN(VMware中的networking/ VLAN设置)或存储虚拟机本身(更新等等)。 但另一方面,你也有简单和灵活:
    • 运行虚拟机的一致性备份可以通过几个简单的脚本自动创build,并且完全免费。 它们也可以存储在另一台机器,磁盘或云(encryption)上,而不需要任何其他昂贵的软件解决scheme。
    • 如果您的服务器死亡,只需购买另一个现成的更换件,安装ESXi,启用直通,configuration您的networking,添加磁盘并引导您的存储虚拟机。 它启动后,重新扫描您的存储,就好像只是电源故障,所有的数据是安全的,你知道它(而不是硬件RAID,你希望它)。
    • 特殊要求可以根据需要以最小的变化来满足。 企业有一个传统的应用程序需要本地磁盘进行备份? 只需configurationiSCSI并透明地展示您的存储。 他们经历增长,需要更多的存储? 只需使用更多的磁盘来增加池,并直接通过iSCSI或通过VMware(NFS或带有vmdk的iSCSI)将其呈现在上面。 他们想在一个健壮的单独的服务器上使用数据库? 只需在另一个局域网/ VLAN上打开NFS,并将其作为“真正的”SAN提供给新的服务器即可。
  4. GPU直通仅适用于昂贵的Nvidia显卡和所有的AMD显卡:目前这是事实,但是您的存储虚拟机在任何情况下都不需要专用GPU。

还有一些普遍的烦恼与直通无关:

  1. 要重新启动存储虚拟机,所有依赖它的其他虚拟机都需要先关机:这个显而易见的问题很less被提及,但在我眼中却是最烦人的。 当然,对ESXi本身的更新也需要完全重新启动,但是现在您有两个系统,时间可能不完全同步。 我推荐一个稳定的操作系统,并在两个系统之间排列非关键更新。 另外,您应该将存储虚拟机限制在自己的内部虚拟局域网中,从而进一步减less在发布后立即应用修复程序的需求。 请注意,这也适用于从GUI意外重启存储虚拟机。
  2. 底层堆栈中的错误导致整个机器无法运行:与ESXi相比,此风险增加了,因为现在您有两个系统和两个networking堆栈。 光明的一面,你的存储虚拟机和ESXi通常应该是稳定的,错误应该很less。 不过,我build议在发布后的几天/几周内安排更新,以便您可以查看其他人是否遇到问题。 另一方面,不改变configuration意味着它非常稳定,这对于中小型企业来说是一个优势(需要较less的支持)。
  3. 解决scheme不为第三方支持人员所知:这是一个非常罕见的设置,所以你的随机replace可以在没有你的文档从头开始计算的机会很渺茫 – 这可能是一个问题或优势,这取决于你的业务目标。 这可以通过解释设置结构的一些基本文档(使用图片/图表),与传统的RAID设置进行比较,以及在常见的问题情况下执行(备份,还原,更换磁盘,更新,更改networking,硬件扩展)。

抛开技术问题,你必须考虑你的目标和实现目标的方法。 这决定了您select的解决scheme的实用性,以及它的优点和缺点,以及您的总体结果(成功或失败)。 这在很大程度上取决于企业本身的需求。 从业务angular度考虑或反对您提出的解决scheme:

  • 预算:有些企业可以certificate每年支付数千美元的支持合同几乎从不使用,因为一次使用它,这是值得更多的。 有些企业只能为即时的价值付出代价,而且这样的企业能够应付意想不到的停机时间,而且价格相当便宜/灵活,所以这些钱就会被浪费掉。
  • 安全要求:有些企业10年前的单一破坏或损坏的文件是不可取的,而其他甚至完全丢失所有当前数据的文件只是一个不便之处。 备份,快照等的需求依赖于此而改变。
  • 支持结构:有些企业希望购买一台机器,然后设置并永久运行(虚拟),而不需要任何支持,而其他人则需要持续不断的更新,升级和直接支持。
  • 灵活性要求:有些企业变化非常迅速,以至于无法预先看到他们的需求,这可能会或可能不会成为更灵活设置的理由。 另一方面,那些从来没有改变过的东西,重视稳定性和可预测性。

无论如何你都应该牢记这些观点。 只有达到目标,你的解决scheme才能取得成功,大多数人的select并不重要,只有a)在技术上可行,b)在预算范围内,c)达到业务目标。 如果所有这些要点都得到满足,您仍然需要做出决定,请select简单/不太复杂的解决scheme(KISS)。 如果他们同样容易,决定为你带来更多的钱和/或幸福。

如果我是一个小企业,我会解雇你,而你部署这样的东西…这是一个普遍的主题。 VMware有一个定义明确的硬件兼容性列表 。 但是,当用作独立服务器时,您需要硬件RAID。 非RAID磁盘也可以工作,但这不是你想要的。 所以我的问题:

  • 没有足够的存储资金? 这是什么types的服务器硬件? 你可以买得起磁盘,但没有RAID控制器? 兼容的RAID控制器并不昂贵。
  • 这不是pipe理客户期望的情况吗? 单独的存储显然比硬件RAID更昂贵。
  • 虽然所有function于一身的存储解决scheme是可能的,但他们是最好的具体技术要求,而不是成本削减。

这是VMware滥用的情况。 软件RAID不受支持。 我会回顾客户并修改构build/需求。

“你的数据值多less钱?”

查看这个博客,了解使用ZFS作为后备存储的示例http://blog.laspina.ca/ubiquitous/encapsulating-vt-d-accelerated-zfs-storage-within-esxi

这就是说使用标准硬件的警告是有效的。 ESXi相当挑剔。

“我自然希望数据存储具有容错能力,但我无法获得独立存储机器的资金,也没有昂贵的硬件RAID解决scheme,所以我想使用一些软件RAID(最有可能的是lvm / mdadm)。这可以实施吗?

如果没有基于硬件的基于RAID的数据存储,esxi将无法正常工作 。 甚至不是基于BIOS的软件RAID将工作。

I run a HW backed 2x1TB SSD datastore for VMS 

得到我的RAID控制器Adaptec 6405e在Ebay 100 $!

但是关于下一部分,

我到目前为止唯一的想法是创build一个虚拟机,它具有存储适配器作为直通,将一些软件RAID放在磁盘上,然后将结果卷“返回”到ESXi主机,然后创build一个数据存储,从其中的其他虚拟机得到他们的存储介绍。“

我的“文件服务器”由直接传递给虚拟机4x5TB HD组成。 然后,我build立了总共约14TB的mdadm Raid 5,并通过NFS将其导出到我的所有虚拟机。 任何时候大约15/20,10/20 dev虚拟机closures,除非被使用。 这对我来说工作得很好,但这不是与一大群用户。 事实上,我真的是唯一的本地用户,但我做主机网站产生一些stream量,但他们大多是静态的。

在这种情况下要问一个好问题,如果你正在考虑使用这个想法,FileServer是什么?

就我而言,我的虚拟机中有90%(如果不是全部的话)托pipe虚拟机(linux)中的所有必要数据,并且小于20GB的大小。 我使用FileServer作为备份的中央库,同样,Plex等任何媒体应用程序都将从FileServer中读取,而我的P2P直接保存到FileServer,但是我的主机没有任何数据库或驻留在FileServer上的任何东西。 但是,他们做所有的备份到文件服务器。 我的文件服务器是我唯一托pipe2个服务的虚拟机,也就是虚拟机的NFS和通过GUI访问Windows的SMB。 这对我来说非常有效。 我也通过NFS将文件服务器挂载为数据存储,并且可以从数据存储中挂载ISO到新的VM。 我也通过Windows备份OVA snapshopts在Windows直接到文件服务器。 在导出的NFS软件RAID上运行虚拟机是非常困难的,但是将大型NFS数据存储导出回esXi主机有很多好处。

我是软件RAID(Linux)的忠实粉丝,因为它们是灵活的,具有成本效益,易于pipe理和完全可预测的。 在现实生活中,他们总是击败中档硬件RAID控制器来提高速度。 唯一的问题 – 获得可靠的RDM或磁盘控制器传递到运行NAS的VM。 在IT模式中,大多数廉价的LSI控制器都是有用的。 通过基于Openmediavault的虚拟NAS(Vmxnet3适配器,Paravirtual磁盘控制器)上的软件RAID10,可以通过NFS(10Gbit内部链接)在同一主机上导出另一台VM的数据存储,从而获得惊人的速度和稳定性。

这只是预算的问题。 如果您的预算是无限的,请使用白名单中的顶级RAID适配器。 如果您想节省一些资金,并且熟悉ESXi和NAS内部版本,请使用软件search。

我认为你的想法可以工作得很好。 例如,请参阅https://communities.vmware.com/message/2368577#2368577

很遗憾,ESXi不支持mdadm。 所以,你的想法听起来像是一个圆桌会议,但我认为,如果你将正确地configuration一切,只会有一个非常小的性能开销。 请参阅以下有关性能的文章: https : //www.linux.com/news/hardware/servers/8222-benchmarking-hardware-raid-vs-linux-kernel-software-raid

如果你有一个小的设置,mdadm可能会只使用单CPU核心的5-25%。 根据我自己的经验,在CentOS服务器上使用mdadm的CPU使用率非常低,RAID 5通过1 Gbitnetworking连接到ESXi,作为NFS共享。 但是,我们在使用磁盘的虚拟机时遇到了问题(主要不是因为软件RAID,而是因为NFS)。 请参阅我的另一个答案的细节: https : //serverfault.com/a/608120/118677 。

这种设置的另一个好处是,mdadm是有据可查的,在服务器故障的情况下很容易重新连接到另一台服务器。

但是,您应该考虑到ESXi的常规设置并不指望数据存储与ESXi本身位于同一台服务器上。 在你的情况下,如果使用ESXi和/或“有存储适配器作为直通的虚拟机”的硬盘出现故障(当然它不在RAID中),那么你的数据存储就不能再被访问了。 如果您已经分离了数据存储,那么在出现故障的情况下,您将需要更less的步骤来恢复您的设置。 所以我认为你应该再次尝试为单独的数据存储PC寻找资金。 它可能是一台使用了1-2 GHz CPU和SATA控制器的PC,可以使用mdadm设置Linux操作系统。

PS不要忘记设置有关mdadm RAIDarrays状态的监控(例如电子邮件通知)。

HPEdynamic智能arrays控制器的ESXi中存在软件RAID支持。 我用DL20 g9镜像企业级固态硬盘,效果很好。

http://www8.hp.com/us/en/products/servers/solutions.html?compURI=1499005#tab=TAB4

也就是说,我刚刚从eBay拿到了Smart Array 440,价格是200美元,除了给出select之外,没有任何理由,硬件RAID总是硬件。