0 回复 最新回复: Oct 31, 2018 10:33 PM Leo Zhenjun Li RSS

【工程师笔记】VxRail数据服务最佳实践

Leo Zhenjun Li

前言

本文主要讨论戴尔易安信超融合一体机VxRail的数据服务,包括去重和压缩、存储空间效率和服务质量限制QoS、纠删码、数据完整性软件校验和,以及VxRail设备的高可用性故障域。供规划、安装和维护VxRail的人员参考。


VxRail数据服务的最佳实践

最新IDC报告显示,戴尔易安信在2018年第二季度以28.8%的市场份额再次成为HCI市场无可争议的领导者。

2018Q2全球超融合系统供应商收入、收入占比份额和增长

(单位:百万美元)

市场佳绩背后是完整的产品线,戴尔易安信超融合基础设施种类齐全,适合不同用户的各种应用场景。

下面将着重介绍戴尔易安信超融合家族的一员猛将——VxRail主要分析其高可用性、I/O加速、数据安全等企业就绪存储数据服务。

VxRail是VMware和戴尔易安信在VMware HCI(vSAN、vSphere和vCenter)基础上联合开发的超融合基础设施,附带了vSAN、vCenter、Log Insight以及来自Dell  EMC和VMware的一整套行业领先的数据服务,包括恢复、数据保护、云分层和备份

作为软件定义数据中心(Software Defined Data Center,SDDC)最简单的构建块,VxRail支持多种形式的硬件和软件(2U4节点、1U1节点和2U1节点),其交钥匙方案可提供最佳的vSAN体验。

VxRail软件快速视图

VxRail数据服务的最佳实践

VxRail数据服务的核心技术包括以下几部分内容:

去重和压缩:可以启用vSAN集群的去重和压缩,减少存储数据所需的空间量;

纠删码:可以在VMS上设置故障容忍方法策略属性,使用RAID 5或RAID 6纠删码。纠删码可以保护您的数据,且使用的存储空间比默认RAID 1镜像小;

QoS服务质量限制:可以为对象,如VDMK设置IOPS限制。如果超过限制,则I/O操作受限;

软件校验和:默认情况下,启用校验和以确保数据完整性;

故障域:一个高可用性特征,以确保对物理设备节点等故障的保护。

1去重和压缩

vSAN可以执行块级重删和压缩,以节省存储空间。在vSAN全Flash集群上,重复数据删除和压缩两个功能一起执行,可以提高存储资源操作效率,减少磁盘组内的冗余数据。

具体过程是,vSAN在将数据从缓存移动到容量层时去重,然后压缩,如图所示。

Web管理客户端的健康页面提供了重复数据删除和压缩数据的详细报告,可以预期用于存储元数据的原始存储容量开销,以及CPU和内存开销

若要启用,首先将“添加磁盘到存储”的设置从“自动”改为“手动”,并允许重复删除和压缩。当VxRail磁盘组启用重复数据删除和压缩时,所有数据必须撤出。

另外,磁盘格式的升级是在没有停机时间的滚动方式下完成的,升级期间性能可能会受到影响。当禁用该功能时,通过类似操作,根据簇大小和磁盘组的数目而决定不等的时间。

注意事项:

只有全闪存设备支持重删和压缩功能,默认情况下,在VxRail上该功能是禁用的;

如果要使用重删和压缩,建议在部署之前启用它们。如果在部署后打开,所有数据必须重新处理以应用重删和压缩算法,会产生密集的资源开销;

重删和压缩是一起启用的,没有办法单独启用;

  使用去重删和压缩时,建议集群中至少有4个节点,以便在所有条件下保持高可用性;

  启用去重删和压缩时,向磁盘组添加或删除容量设备的过程需要重新创建磁盘组

启用重删和压缩会消耗少量的元数据。此元数据所消耗的空间与vSAN数据存储的大小有关,通常占总容量的5%左右;

  对象空间预留必须是所有存储策略的0或100%,尽管100%对于重删效率不高。这个数字表示部署虚拟机时必须分配VM对象的逻辑大小。将其设置为0意味着虚拟磁盘将被配置为精简配置

2纠删码

VxRail通过两种方式为VM提供数据保护——“纠删码(RAID-5/6)”和“镜像(RAID-1)”

镜像创建了VM对象的完整副本,并将其保存在单独的主机中,以便在故障出现时从其他副本中得到服务。

RAID 5或RAID 6纠删码提供了防止数据丢失提高存储效率的另一种方式。纠删码可以提供与镜像(RAID-1)相同的数据保护级别,却使用较少的存储容量,且允许每个VM及其对象根据需求选择不同的保护方式。

全Flash集群上配置RAID-5,具有四个或更多VxRail节点,RAID-5保护一个故障。

全Flash集群上配置RAID-6,使用六个或更多VxRail节点,RAID-6保护两个并发故障。纠删码与vSAN的去重/压缩、QoS校验和特性可兼容同时启用。

RAID-5当配置允许故障容忍数一个(FTT=1)来提供对一个故障的保护。那么最少需要四个节点(3+1),但开销是1.33倍,而不是用镜像的2倍。换句话说,20GB的磁盘只需要大约27 GB来提供数据保护,而不是镜像所需的40GB。

RAID-6当配置允许故障容忍数两个(FTT=2)来提供对两个故障的保护。最少需要六个节点(4+2),但开销是1.5倍,而不是用镜像的3倍。也就是说,20GB的磁盘只需要大约30GB来提供数据保护,而不是镜像所需的60GB

注意事项:

使用纠删码对性能的影响。例如,由于需要的读取-修改-写入步骤,使用纠删码会影响随机写入性能计算奇偶校验的CPU开销

vSAN延伸集群不支持在VxRail中使用纠删码,因为它只支持3个故障域。

3QoS服务质量限制

服务质量(QoS)可在每个VM/VMDK基础上通过设置IOPS限制来获得。如果磁盘的IOPS超过指定限制,则I/O操作被节流;如果对象的IOP限制设置为0,则不执行IOPS限制。这些限制允许针对不同应用的不同级别的服务,可以为不同的工作负载提供服务级协议(SLAs),并保护TIER-1应用性能。

这个特性完全兼容vSAN的其他特性,对VxRail是透明的。VM/VMDK所有包括快照的读/写操作中是等价的,计算IOPS作为限制级别。

若要启用对象的IOPS限制,需要先创建一个新的存储策略规则并设置所需限制。统一按32KB的块大小, 64KB的读或写就会被当作两个独立的操作,导致所配置的IOPS限制的一半,是所执行的操作的数量

注意事项:

QoS的设置不是为所有工作负载创建策略,包括优先级工作负载。相反,使用QoS来避免“嘈杂邻居”问题,为的是那些不希望其消耗多余资源的低优先级应用程序而创建限制。

4软件校验和

通过确认VxRail上文件的每个副本与源文件相同,可启用端到端校验和以确保数据的完整性

校验和可提供对VxRail管理器透明的附加数据完整性级别,用于检测和解决内存和磁盘组件中未发现的磁盘错误和损坏。

当校验和验证失败时,就从冗余副本中获取数据,如果检测到校验和错,vSAN会自动修复,用正确数据将不正确的数据重写。此外,校验和计算及纠错是作为后台操作来执行的。

注意事项:

⊗ 禁用校验和是立即操作,但启用校验和后需要完整的数据副本来请求校验和,若所有数据都得重写,则需要密集的资源开销;如果有大量数据,这个过程会产生大量的CPU和资源开销,要尽可能早地计算校验和;

校验和在VxRail中是缺省启用的,如果应用程序已经提供了数据完整性机制,可禁用 ;

校验和也可以检测网络和磁盘错误

vSAN校验和功能支持混合和全闪的VxRail设备。

5故障域

故障域有高级弹性特征,VxRail集群可以被划分为故障域,从而在物理组件之间提供额外的保护级别。这可以帮助最小化虚拟机停机时间,当整个物理机失效时,它通过定义跨越物理结构的办法来实现这一点,例如物理机的逻辑分离。

下图是应用示例:

在这个例子中,一个机架中的节点可以被分配给一个故障域。vSAN把冗余的VM对象/组件放置在不同的故障域中,以便在机架故障时保持VM对象/组件的可用性。

vSAN数据布局方式,是将VM数据跨集群放置在不同节点。要实现基于存储策略的管理,部署在vSAN数据存储中的每个虚拟机都具有至少一个分配的策略。当创建VM并分配一个存储策略时,就将策略要求推送到vSAN层。

这些策略确定在数据存储中如何配置和分配存储对象以保证所需的服务水平,即希望VM能够容忍的故障数量,就是“Number Of Failures To Tolerate(FTT)”。如图可以把四个主机看作一个VxRail设备。当我们创建具有FTT=1策略的VM时,vSAN创建副本并将其放置在另一个节点中。在一个节点失败的情况下,可用的副本可以服务任何数据请求。

单独使用FTT策略只能防止“主机故障”。当系统伸缩时,或者当希望确保VM数据在“主机故障”vSAN故障域之外可用时,vSAN故障域提供了所需功能。

VxRail的故障域考虑

VxRail具有不同的形状因子和节点类型。基于不同的配置,节点可以部署在单个机架内或跨多个机架。一个集群至少需要三个节点,可以是由单个节点或3节点G系列设备组成的3个设备。

在为VxRail设备定义故障域时,我们需要考虑在VxRail集群中使用什么设备类型和配置,以确定如何跨机架布局设备,以便创建机架级别的弹性。

G系列设备在一个机箱最多可以容纳4个节点,因此包含的所有节点将属于单个机箱。

E、S、P和V系列设备在单独的机箱中具有单个节点,它们可以放置在单个机架中,或者跨数据中心内的各种机架来创建VxRail集群。

以下是针对特定VxRail集群的故障域最佳实践建议

由于整个机箱的故障,同一VxRail机箱中的所有节点都应该是同一故障域的一部分;

节点的数量将根据FTT的定义和故障域的配置要求而变化;

建议每个故障域具有相同数量的节点,以确保在发生故障时有足够的可用资源来提供完全的业务支撑;

可根据数据中心的保护计划为VxRail基础设施软件以及其他服务组件(包括vCenter Server和Log Insight)定义故障域。

对于单系列VxRail集群中的G系列设备,请使用以下故障域指南

对于所有其他设备E、S、P和V系列,每个节点VxRail集群的最佳实践方式:

应用场景一S、P、V或E系列的故障域

在这个场景中,VxRail设备的三个节点跨多个机架放置。相同的故障域特征可以用不同的方式配置,代替同一机架中的多个节点,我们可以为VxRail设备配置不同机架中的节点,并提供类似的弹性级别。

应用场景二:G系列的故障域

在这个场景中,有三个4节点G系列VxRail设备,都在一个单独的机架中。当部署FTT=1时,在不使用故障域时,两个副本放置到同一机架中的不同主机。因此,如果机架、机箱或网络交换机宕机,则VM不受保护。

然而,如果启用了故障域,则可以将同一机箱中的主机分组在一起以形成故障域。vSAN不再将虚拟机数据的副本放在与原始相同的故障域中。若要按FTT计算所需的故障域数,参照上表。每个故障域包含一个或多个VxRail设备机箱。

我们使用vSphere Web Client工具配置以下故障域:

故障域1包含VxRail设备1,具有三至四个节点(机架1)

故障域2包含VxRail设备2,具有三至四个节点(机架2)

故障域3包含VxRail设备2,具有三至四个节点(机架3)

  总结

VxRail为应用于不同场景的数据保护,助力效率和服务质量提供了许多功能,这些功能中的每一种都有特定的最佳实践,可以帮助我们在最大限度地使用VxRail。在使用这些特性中的任何一种时,确保理解其用途和含义,并遵循本文所给出的最佳指导实践。