在本系列的第一篇文章中,我比较了Nutanix ADSF和VMware vSAN在相同硬件上的实际可用容量。
我们看到,Nutanix提供的可用容量大约要高30-40%。
我们接下来比较了重复数据删除和压缩技术,发现与vSAN相比,Nutanix在容量效率、灵活性、弹性和性能方面拥有绝对优势。
我们然后比较了纠删码,发现Nutanix纠删码(称为EC-X)动态灵活,可实时均衡性能和容量优化技术。
另一方面,vSAN采用“全有或全无”的初级方法,可能导致更大的前端影响,并且不会动态地将纠删码应用于最合适的数据。
现在,让我们了解一下两种平台如何扩展存储容量:
功能 | Nutanix | VMware vSAN |
添加单独的驱动器 | ✅ | ✅ |
添加节点 | ✅ | ✅ |
从典型的“勾选框”比较来看,两个平台都可以添加单独的驱动器或额外的节点来扩展容量。现在需要强调的是(也正如您可能从本人前几篇文章所了解的那样),上述比较极具误导性。
客户在选择平台或扩展现有平台容量时,需要考虑许多关键因素。
vSAN第1号问题–在将驱动器添加到已启用重复数据删除和压缩选项的磁盘组时,新添加的驱动器不会自动参与重复数据删除和压缩过程。
参考网址:https://blogs.vmware.com/virtualblocks/2017/11/29/vsan-operations-adding-removing-drives-deduplication-compression-enabled/
新驱动器用于存储数据,但不能对此类数据进行重复数据删除和压缩操作。必须删除并重新创建磁盘组,磁盘组中的所有驱动器(包括新驱动器)才能启用重复数据删除和压缩技术。
在Nutanix环境,将驱动器添加到一个或多个节点时,几乎立即可以使用此驱动器的容量,并且适用所有配置的数据容量优化技术,无需重新格式化或批量移动数据。
Nutanix没有磁盘组的约束,因此也不需要删除和重新创建磁盘组。
现在,让我们了解一下两种平台在扩展存储容量时的数据效率:
功能 | Nutanix | VMware vSAN |
添加具有数据容量优化的单独驱动器(重复数据删除/压缩) | ✅ | ❌ |
添加具有数据容量优化的节点(重复数据删除/压缩) | ✅ | ⚠* |
*对于容量的利用,需要按照第3号问题的讨论进行数据再均衡操作。
我们可以在这里看到一个明显的问题:当使用单独驱动器扩展vSAN容量时,如果没有管理员的手动干预和大动作干预(重新创建磁盘组),vSAN环境将无法受益于重复数据删除和压缩。
这使得通过向现有节点添加更多驱动器来扩展vSAN的容量不具吸引力,并进一步降低了我们之前讨论过的vSAN的压缩和重复数据删除技术的潜在价值。
vSAN第2号问题– vSAN在容量高达255GB的大“对象”级别均衡数据/容量。
这将迫使vSAN客户使用vSAN集群重新均衡,即当集群容量利用达到80%时,集群将启动重新均衡操作(例如反应式均衡)或根据VMware配置自动重新均衡,这将影响性能,可能需要关闭:
默认情况下,vSAN会自动重新均衡磁盘组中的数据。您可以配置自动重新均衡的设置。
由于设备的I/O模式不均衡,或者在添加主机或容量设备时,您的vSAN集群可能变得不均衡。如果集群变得不均衡,vSAN会自动重新均衡磁盘。此操作将组件从利用率过高的磁盘移动到利用率过低的磁盘。
您可以启用或禁用自动重新均衡功能,并配置触发自动重新均衡的差异阈值。如果集群中的任何两个磁盘的容量差异满足重新均衡阈值,那么vSAN将开始重新均衡集群。
磁盘重新均衡会影响vSAN集群的I/O性能。为了避免这种性能影响,您可以在需要最高性能时关闭自动重新均衡功能。
参考网址:HTTPS://DOCS.VMWARE.COM/EN/VMWARE-VSPHERE/6.7/COM.VMWARE.VSPHERE.VSAN-MONITORING.DOC/GUID-968C05CA-FE2C-45F7-A011-51F5B53BCBF9.HTML
因为vSAN重新均衡是后期处理(或“反应性”)操作,在对象/组件级别自动或手动执行,所以操作并非细粒度级,需要移动大量数据。如VMware所示,自动重新均衡对性能有重大影响,可能需要关闭这个功能。
vSAN的容量管理实际上是容量和性能之间的折衷。
另一方面,Nutanix在写入路径中使用主动智能副本放置机制(也称为“Inline”),根据单个节点/驱动器容量和性能利用率实时放置新数据。
因此,新节点/驱动器获得动态利用,可确保整个集群的均衡,提高弹性和性能,并避免我们之前讨论的碎片化/不可用容量。
如果集群严重失衡,这也最大限度地减少了后期处理磁盘均衡的要求和潜在工作负载。两者主要区别在于,Nutanix在扩展组(4MB)级别进行均衡,而不是在对象(高达255GB)级别进行均衡,意味着需要移动的数据量更少,导致低效的碎片数据几乎为零。
vSAN第3号问题–在创建新的vDisks或VM或管理员手动干预之前,不会使用新添加节点的容量。
例外情况是,当驱动器的利用率>= 80%,vSAN自动重新均衡集群时,但是此时集群没有保持VMware建议的25-30%的“闲置空间”,这可能导致问题。
扩展(vSAN)集群容量后,手动重新均衡,以便在集群间平均分配资源。有关更多信息,请参见vSAN监控和故障排除中的“手动重新均衡”。
参考网址:HTTPS://DOCS.VMWARE.COM/EN/VMWARE-VSPHERE/6.7/COM.VMWARE.VSPHERE.VIRTUALSAN.DOC/GUID-41F8B336-D937-498E-AE87-94953A66DF00.HTML
在Nutanix添加单个驱动器或节点时,由于ADSF有更多驱动器来发送数据和/或更多Controller VM(CVM)来处理来自分布式存储结构的工作负载,将立即提高现有VM的性能。
vSAN要求客户在容量管理和性能之间做出选择,这既不合理,也不切实际。
因此,我们了解到,虽然可以通过添加单个驱动器来扩展vSAN的容量,但带来了许多难题,而在Nutanix中,Acropolis分布式存储矩阵(ADSF)可以确保所有组件正常工作。
让我们总结一下到目前为止所了解的功能:
Feature 功能 | Nutanix Nutanix | VMware vSAN VMware vSAN |
线内(实时)容量均衡 | ✅ | ❌ |
基于性能的线内(实时)均衡 | ✅ | ❌ |
粒度级(4MB)全自动后期处理均衡 | ✅ | ❌* |
*vSAN将自动均衡任何存储设备80%以上的利用率,但在大型对象级(高达255GB)完成均衡操作。
只扩展存储容量而不扩展CPU/RAM资源怎么样?
让我们回到勾选框比较:
功能 | Nutanix | VMware vSAN |
仅存储节点 | ✅ | ✅ |
我们看到两个平台都可以提供“仅存储节点”,让这一话题的讨论变得十分有趣。
VMware通常不谈论仅存储节点的概念,具体原因(长话短说)就是vSAN只能实现Nutanix仅存储节点的一小部分价值,它需要在遵从DRS规则的vSAN环境中引入显著的复杂性/风险,并考虑向主机提供什么样的网络。
一篇名为《如何将vSAN设为仅存储节点(而且不是购买大型机!)》的文章描述了这一过程的隐患,试图淡化仅存储节点的价值。这篇文章也表明作者对HCI与仅存储节点相结合的价值缺乏基本的了解,究其原因,我认为是作者更喜欢不具备这些功能的产品。
此文章将仅存储节点定义为:
仅存储节点是不向集群提供计算的节点。不更改配置,就无法运行虚拟机。
虽然仅存储节点不提供计算,但是提高了集群的存储性能和容量。
就此功能而言,vSAN和Nutanix是否相等?再想想!
让我们来看第一个定义“仅存储节点是不向集群提供计算的节点。不更改配置,就无法运行虚拟机。”
正如VMware员工博客所述,vSAN可根据客户有权获得的vSAN许可(我将提出的另一要点),通过两种方式实现这一功能。
1. 为存储主机部署单独的vDS,不设置虚拟机端口组。虚拟机无法在找不到端口组的主机上启动。
2. 您可以利用DRS“反关联性”规则,阻止虚拟机在主机上运行。确保使用“MUST”规则,并定义虚拟机永远不在主机上运行。
现在,让我们了解一下如何使用Nutanix部署仅存储节点(2015年发布)。
1. 在初始设置(称为Foundation)期间,可以将节点标记为仅存储节点即可。
2. 如果您希望将现有的“计算+存储”节点转换为仅存储节点,那么将此节点标记为“不可调度”即可。
3. 在将VM手动或动态移动到主机之前,集群中加入的HCI节点本质上充当仅存储节点。
由于Nutanix仅存储节点仅运行Acropolis Hypervisor(AHV),借助于Nutanix,即使在ESXi环境中也不需要vSphere许可。
甚至借助运行AHV的仅存储节点,也可以将这些节点无缝集成到Nutanix集群中,并几乎立即为vSphere或Hyper-V集群的存储提供所有价值。
简而言之,vSAN实际上并没有仅存储节点的概念,VMware员工博客所述的方法充其量只是一种技巧,而Nutanix提供了全面的仅存储功能。
以下是使用这两种产品设置仅存储节点的概述:
功能 | Nutanix | VMware vSAN |
仅在初始部署期间标记为仅存储的节点 | ✅ | ❌ |
现有节点转换为仅仅存储节点 | ✅ | ⚠️* |
需要获得vSphere DRS的许可 | ❎ | ⚠️ |
需要自定义网络来防止VM在节点上运行 | ❎ | ⚠️ ⚠️ |
*仅通过使用手动操作(DRS规则和自定义网络)
现在,我们假设您不同意上述观点,并且您坚信vSAN能够并且确实支持仅存储节点的概念。让我们来谈谈vSAN和Nutanix ADSF如何使用仅存储节点。在本节之后,我相信您会了解主要的架构差异和Nutanix提供的价值。
示例:一个四节点集群,有大量可用的CPU/RAM,但存储增长速度快于预期,利用率接近75%。这也意味着集群环境将跨越不再保持N+1可用容量的边界。
需求:客户需要将存储容量增加一倍。
让我们从假设采用默认配置的vSAN开始。
我们向集群添加4个新节点,并按照VMware朋友的描述,执行所需的DRS配置或组网。
由于集群中的容量设备已满(<= 80%),在默认情况下,vSAN不会启动自动重新均衡。管理员必须手动启动这一过程。
因为VM对象尚未分布在新节点上,所以VM的性能没有变化。
⚠新的vSAN节点基本上没有为集群提供价值。⚠
现在让我们比较一下假设采用默认配置的Nutanix ADSF。
我们通过Nutanix Foundation(裸机成像)工具向集群中添加4个标记为仅存储节点的节点。
注:如果新节点是HCI节点,那么将发生与下述过程相同的过程。
集群范围内的平均延时立即降低,VM读写延时也减少。
VM IOPS也显著增加,并且我们看到虚拟机的CPU利用率降低。
还等什么?因为仅存储节点,Nutanix提供了更高的存储性能和更高效的VM资源利用率?
是的,由于ADSF是真正的分布式存储矩阵,从添加仅存储节点的那一刻起,写入副本就可以立即在现有的八(8)节点集群中主动均衡。
这意味着所有VM现在都受益于八个存储控制器(CVM)和针对混合环境的额外SSD或SSD & HDD。
由于在仅存储节点上动态放置大部分写入副本,HCI节点上的控制器VM(CVM)执行的工作较少,为更多VM和/或更佳VM性能释放了CPU资源。
这不是理论或营销话术,而是易于测试的东西,我很久以前就在《Nutanix仅存储节点横向扩展性能测试》一文中证明了这一点。
有趣的是,性能提升(总IOPS)几乎完全是线性的,而写入和读取延迟显著降低。
因为Nutanix ADSF不依赖于大型对象(如vSAN),而是拥有主动写入路径,可以根据集群性能和容量均衡写入,所以才能显著提高性能。
Nutanix数据本地化怎么样?
仅存储节点不是突破了这一概念和削弱了这一优势吗?
恰恰相反,添加仅存储节点会减少存储在HCI节点上的写入副本数量,释放更多的容量来存储本地数据,以最大限度提高数据本地化的优势。
vSAN之所以深受复杂性的困扰,以及在这种情况下无法从仅存储节点提供实际价值,是因为底层架构受到磁盘组和大型255GB对象概念的限制。
如果我们使用仅存储节点,并且集群出现节点故障,那么会发生什么情况?
助于Nutanix,集群中的所有节点都积极参与重建过程,ADSF基于容量利用率和性能在所有节点之间动态均衡重建(仅限HCI和存储),从而在重建完成后实现更快的恢复和均衡的集群。
另一方面,vSAN重建的数据粒度要小得多,重建过程将对象(高达255GB)从一个节点复制到另一个节点,导致集群内出现碎片和热点。由于vSAN的底层对象存储架构,不会在写入路径中将写入动态均衡到集群中的最佳位置。
让我们总结一下平台之间的仅存储节点功能:
仅存储节点的功能 | Nutanix | VMware vSAN |
实时增加容量 | ✅ | ❌* |
Increase performance in real time 实时提高性能 | ✅ | ❌ |
实时提高弹性 | ✅ | ❌ |
主动(线内)磁盘均衡 | ✅ | ❌ |
反应式(后期处理)磁盘均衡 | ✅ | ✅** |
*vSAN数据存储的容量在技术上有所增加,但是在重新均衡操作完成或创建新的VMs/vDisks之前,此容量不会被使用/可用。
**在默认情况下:仅适用于存储设备利用率超过80%的情况。
总结
当在“勾选框”或“101”级别进行比较时,两个平台具有相似的功能。我们了解到,由于实际功能与幻灯片展示的功能有很大不同,有必要了解幕后的细节。
我们了解到, Nutanix Acropolis分布式存储矩阵(ADSF)允许客户通过添加单个驱动器、HCI节点或仅存储节点来扩展存储容量,而无需手动干预。
此外,Nutanix客户可以享受到改进的性能、弹性和所有数据容量优化技术,而不会受到任何影响。(重复数据删除、压缩和纠删码)。
Nutanix还提供了独特的仅存储节点功能,无需任何复杂的管理/配置即可提高存储容量、性能和弹性。
vSAN根本不具备以高效和高性能的方式扩展容量的基础架构。