
存储和访问数据的任务是任何信息系统的痛点。 即使在操作期间设计良好的存储系统(以下称为SHD)也显示出与性能降低相关的问题。 当涉及的资源量接近存储开发人员设定的既定限制时,应特别注意一系列扩展问题。
发生这些问题的根本原因是基于与所使用的存储设备的硬件特性紧密绑定的传统体系结构。 大多数客户仍然选择存储和访问数据的方法,但要考虑到物理接口(SAS / SATA / SCSI)的特性,而不是所用应用程序的实际需求。
十几年前,这是一个合乎逻辑的决定。 系统管理员精心选择了具有所需规格的信息存储设备,例如SATA / SAS,并依靠磁盘控制器的硬件功能获得了一定的性能水平。 争夺RAID控制器高速缓存的数量以及防止数据丢失的选件。 现在,这种解决问题的方法不是最佳的。
在当前环境中,选择存储系统时,有意义的不是从物理接口开始,而是从以IOPS(每秒I / O操作数)表示的性能开始。 使用虚拟化可以使您灵活地使用现有的硬件资源,并保证所需的性能水平。 就我们而言,我们准备为资源提供应用程序真正必需的那些特征。
存储虚拟化
随着虚拟化系统的发展,有必要寻找一种创新的解决方案来存储和访问数据,同时确保容错能力。 这是创建SDS(软件定义的存储)的起点。 为了满足业务需求,设计这些存储库时将软件和硬件分开。
SDS体系结构从根本上不同于传统体系结构。 存储逻辑已在软件级别抽象化。 由于这种系统每个组件的统一和虚拟化,存储的组织变得更加容易。
阻碍各地实施SDS的主要因素是什么? 该因素通常是对所用应用程序需求的不正确评估以及不正确的风险评估。 对于企业而言,解决方案的选择取决于实施的成本,该成本基于当前消耗的资源。 很少有人想到-当信息量和所需的性能超过所选体系结构的功能时,会发生什么。 基于方法论原理的思考:“一个人不应该在没有必要的情况下使存在不相乘”(通常称为“ Occam的刀片”)决定了选择传统解决方案的选择。
只有少数人知道,对数据存储的可伸缩性和可靠性的需求比乍看起来更重要。 信息是一种资源,因此,必须确保信息丢失的风险。 传统存储系统出现故障时会发生什么? 您将需要使用保修或购买新设备。 并且,如果存储系统停止使用或已经终止了“寿命”(所谓的EOL-寿命终止)? 对于任何无法继续使用其自己熟悉的服务的组织来说,这可能是一个糟糕的日子。
没有没有单一故障点的系统。 但是有些系统可以轻松承受一个或多个组件的故障。 创建虚拟存储系统和传统存储系统时都考虑到了迟早会发生故障的事实。 那只是传统存储系统在硬件中设定的“强度极限”,而在虚拟存储系统中则由软件层确定。
整合性
IT基础架构的巨大变化始终是不受欢迎的现象,充满了停机时间和资金损失。 只有顺利实施新解决方案,才有可能避免负面影响并改善服务工作。 这就是为什么Selectel
基于VMware (虚拟化市场公认的领导者)设计并
发布云的原因。 我们提供的服务将使每个公司都能解决基础架构任务的全部范围,包括数据存储。
我们将准确告诉您我们如何决定存储系统的选择,以及这种选择给我们带来了哪些好处。 当然,传统存储系统和SDS都被考虑了。 为了清楚地了解运营和风险的各个方面,我们提供了对该主题的更深入了解。
在设计阶段,对存储系统提出了以下要求:
- 容错
- 表现
- 缩放
- 保证速度的能力;
- 在VMware生态系统中正确运行。
传统的硬件解决方案的使用无法提供所需的可伸缩性,因为由于架构限制,不可能不断增加存储量。 在整个数据中心一级进行预订也很困难。 这就是为什么我们将注意力转向SDS的原因。
SDS市场上有几种软件解决方案,非常适合我们基于VMware vSphere构建云。 在这些解决方案中可以注意到:
- Dell EMC ScaleIO;
- Datacore超融合Virtual SAN;
- HPE StoreVirtual。
这些解决方案适合与VMware vSphere一起使用,但是它们并未集成到虚拟机管理程序中,而是单独运行。 因此,选择了VMware vSAN。 让我们详细考虑这种解决方案的虚拟架构是什么样的。
建筑学
图片取自官方文件与传统存储系统不同,所有信息都不会存储在任何一点。 虚拟机数据均匀地分布在所有主机之间,可通过在主机上添加主机或安装其他磁盘驱动器来进行扩展。 支持两个配置选项:
- AllFlash配置 (仅固态驱动器,用于数据存储和缓存);
- 混合配置 (磁存储和固态缓存)。
添加磁盘空间的过程不需要其他设置,例如,创建LUN(逻辑单元号,逻辑磁盘号)并设置对其的访问权限。 将主机添加到群集后,其磁盘空间将对所有虚拟机可用。 这种方法有几个明显的优点:
- 对设备制造商缺乏约束力;
- 更高的容错能力;
- 发生故障时确保数据完整性;
- vSphere控制台中的单个控制中心;
- 方便的水平和垂直缩放。
但是,这种架构对网络基础架构提出了很高的要求。 为了确保最大吞吐量,在我们的云中,网络建立在Spine-Leaf模型上。
联播网
传统的三层网络模型(核心/聚合/访问)具有许多明显的缺点。 一个明显的例子是生成树协议的局限性。
Spine-Leaf模型仅使用两个级别,因此具有以下优点:
- 设备之间的可预测距离;
- 交通沿最佳路线;
- 易于扩展;
- 排除L2协议限制。
这种体系结构的关键特征是针对“水平”流量的通过进行了优化。 数据包仅经过一跳,因此可以清楚地估计延迟。
每个服务器使用几个10GbE链路来提供物理连接,其带宽使用聚合协议进行组合。 因此,每个物理主机都可以高速访问所有存储对象。
数据交换是使用VMware创建的专有协议来实现的,该协议可以使存储网络在以太网传输(10GbE及更高版本)上快速可靠地运行。
过渡到数据存储的对象模型后,可以根据客户的要求灵活调整存储的使用方式。 所有数据均以对象的形式存储,并以某种方式在群集主机之间分布。 我们阐明一些可以控制的参数的值。
容错能力
- FTT(容忍失败)。 指示群集在不中断常规操作的情况下能够处理的主机故障数。
- FTM(容错方法)。 确保磁盘级别的容错能力的方法。
一个 镜射
图片取自VMware博客。
表示对象的完整副本,副本始终位于不同的物理主机上。 与该方法最相似的是RAID-1。 它的使用使群集可以例行处理任何组件的多达三个故障(磁盘,主机,网络丢失等)。 通过设置FTT选项配置此参数。
默认情况下,此选项的值为1,并且为该对象创建1个副本(不同主机上仅2个实例)。 随着值的增加,份数将为N + 1。 因此,在FTT = 3的最大值下,该对象的4个实例将位于不同的主机上。
此方法使您能够以磁盘空间效率为代价获得最佳性能。 它可以在混合和全闪存配置中使用。
b。 擦除编码 (类似于RAID 5/6)。

图片取自cormachogan.com博客。
AllFlash配置仅支持此方法的工作。 在记录每个对象的过程中,将计算相应的奇偶校验块,这些奇偶校验块允许在发生故障的情况下唯一地恢复数据。 与镜像相比,此方法可大大节省磁盘空间。
当然,该方法的操作增加了开销,这表示为生产率的降低。 但是,考虑到AllFlash配置的性能,此缺陷得到了解决,对于大多数任务,使用擦除编码是一个可以接受的选项。
此外,VMware vSAN引入了“故障域”的概念,这是服务器机架或磁盘篮的逻辑分组。 一旦将必要的元素进行分组,这将导致在考虑故障域的情况下在不同节点之间分配数据。 由于对象的所有对应副本将位于不同故障域中的其他主机上,因此,群集可以在整个域丢失的情况下幸免。
最小的故障域是磁盘组,它是逻辑连接的磁盘驱动器。 每个磁盘组包含两种类型的媒体-缓存和容量。 作为缓存介质,系统仅允许使用固态磁盘,而磁盘和固态磁盘都可以充当容量载体。 缓存介质有助于加速磁盘并减少访问数据时的延迟。
实作
让我们谈谈VMware vSAN架构中存在哪些限制以及为什么需要它们。 无论使用哪种硬件平台,该体系结构都具有以下限制:
- 每个主机不超过5个磁盘组;
- 磁盘组中的容量载体不得超过7个;
- 磁盘组中的缓存载体不得超过1个;
- 每个主机不超过35个容量载波;
- 每个主机不超过9000个组件(包括见证组件);
- 群集中的主机不超过64个;
- 每个群集最多只能有1个vSAN数据存储。
为什么需要这个? 在超过指定的限制之前,系统将以声明的容量运行,从而在性能和存储容量之间保持平衡。 这使您可以保证整个虚拟存储系统的正确操作。
除了这些限制,还应记住一个重要功能。 建议不要使用超过总存储量70%的空间。 事实是,达到80%时,重新平衡机制会自动启动,并且存储系统开始在所有群集主机之间重新分配数据。 该过程非常耗费资源,并且可能严重影响磁盘子系统的性能。
为了满足各种客户的需求,我们已经实现了三个存储池,以方便在各种情况下使用。 让我们按顺序查看它们。
快速磁盘池
创建此池的优先级是获得可以为托管高负载系统提供最佳性能的存储。 该池中的服务器使用一对Intel P4600作为缓存,并使用10个Intel P3520进行数据存储。 使用此池中的缓存,以便直接从介质读取数据,并通过缓存进行写操作。
为了增加可用容量并确保容错能力,使用了一种称为擦除编码的数据存储模型。 该模型类似于常规RAID 5/6阵列,但是在对象存储级别。 为了消除数据损坏的可能性,vSAN使用每个4K数据块的校验和计算机制。
验证是在读/写操作期间在后台执行的,对于在一年中不要求访问的“冷”数据也要进行验证。 当检测到校验和不匹配并因此检测到数据损坏时,vSAN将通过覆盖自动恢复文件。
混合驱动器池
对于此池,其主要任务是提供大量数据,同时确保良好的容错水平。 对于许多任务而言,数据访问的速度不是优先事项,存储量和存储成本更为重要。 使用固态驱动器作为此类存储将导致不合理的高成本。
这是创建池的原因,该池是缓存固态驱动器(在其他池中是Intel P4600)和HGST开发的企业级硬盘的混合体。 混合工作流程通过缓存读取和写入操作来加快对经常请求的数据的访问。
在逻辑级别,对数据进行镜像以消除硬件故障时的丢失。 每个对象都分为相同的组件,系统将它们分配给不同的主机。
灾难恢复池

池的主要任务是实现最大程度的容错和性能。 利用
Stretched vSAN技术,我们可以在圣彼得堡的Tsvetochnaya-2数据中心和列宁格勒地区的Dubrovka-3之间
分配存储。 该池中的每个服务器都配备有一对用于高速缓存操作的高速Intel P4600驱动器和用于数据存储的6个Intel P3520驱动器。 在逻辑级别上,每个主机有2个磁盘组。
AllFlash配置没有严重的缺点-IOPS急剧下降,磁盘请求队列增加,并且对数据的随机访问量增加。 就像在具有快速磁盘的池中一样,写入操作将通过缓存,而读取则直接完成。
现在介绍与其余池的主要区别。 每个虚拟机的数据都镜像到一个数据中心内部,同时同步复制到属于我们的另一个数据中心。 因此,即使发生严重事故,例如数据中心之间的连接完全中断,也不会成为问题。 即使数据中心完全丢失也不会影响数据。
由于站点完全故障而导致的事故-这种情况非常罕见,但是vSAN可以幸免于难而不会丢失数据。 在我们
2018年SelectelTechDay活动中,来宾可以亲眼看到Stretched vSAN集群如何经历整个站点故障。 在其中一个站点上的所有服务器关闭电源后一分钟,虚拟机即可使用。 所有机制均按计划工作,但数据保持不变。
放弃熟悉的存储体系结构需要进行许多更改。 这些变化之一是出现了新的虚拟“实体”,其中包括见证设备。 此解决方案的含义是跟踪记录数据副本的过程并确定哪个副本相关。 同时,数据本身不存储在见证组件上,而仅存储有关记录过程的元数据。
如果在复制过程中发生故障时发生事故,该机制将生效,这将导致副本不同步。
, , . « », (1 ). « » witness-, , .
, «» 50%.
结论
VMware vSAN, , . , VMware.
, .
vSAN? .