VMware 替代专题 | 浅析 VMware 与 SmartX 超融合 I/O 路径差异及其影响

news2024/9/23 17:17:00

不同的超融合软件,其读写机制有一定的差异性,I/O 路径也不尽相同,这使得他们在 I/O 读写效率以及资源占用上都有不同的表现。有兴趣着手构建超融合基础架构的用户,可能会希望了解更多关于 I/O 路径的细节,从而在实施之前,进行更充足的准备和更合理的规划(例如针对不同 I/O 路径选择更合适的网络带宽)。为了帮助读者更好地理解超融合架构 I/O 路径对集群性能的影响,本文将对比 VMware 和 SmartX 超融合 I/O 路径,分析不同场景下 I/O 读写的方式、发生概率及其对存储性能和集群的相关影响

重点摘要

  • 基于 SDS 的超融合架构中,I/O 既可能发生在主机内部的本地磁盘上,也有可能发生在外部的网络主机上。相同软硬件配置下,本地 I/O 操作时延更短。
  • 在写入场景下,vSAN 至少有 1 个副本需要经过网络写入。在读取场景下,读 I/O 路径在正常状态下不会出现 100% 本地读取情况;在故障状态下仅有 25% 概率出现 100% 本地读取,其余情况均为 100% 远程读取,且易因故障恢复导致性能瓶颈。
  • 在写入场景下,ZBS* 在正常状态下不会发生 100% 远程写入的情况,并针对虚拟机迁移后的 I/O 路径进行了优化,最大限度避免 100% 远程写入的情况。在读取场景下,正常状态时可确保 100% 本地读;数据恢复时优先进行本地恢复,并通过弹性副本恢复策略平衡恢复速度与业务 I/O。
  • 在正常和数据恢复状态下,ZBS 的本地 I/O 访问概率比 vSAN 更高,理论上时延会更低;而在需要频繁迁移的场景下,vSAN 本地 I/O 访问概率更高。
  • 即使超融合的整体 I/O 性能有富余,更多的远程 I/O 也可能引起网络资源争抢等问题。

*ZBS 是 SmartX 超融合软件 SMTX OS 中与 vSAN 对应的分布式块存储组件。

一、传统虚拟化架构与超融合架构的 I/O 路径对比

业务系统经过运算后生成了数据,并通过系统的 I/O 路径将数据传输到存储介质上(一般是磁盘)进行持久化存储。通常情况下,I/O 的持久化存储过程会经历不同的硬件设备和软件逻辑,而经过每一个硬件/软件都会占用一定的系统资源并增加处理时间(产生时延),因此 I/O 路径的设计优劣跟业务系统的整体运行效率是息息相关的。

1.传统虚拟化架构下的 I/O 路径

在传统三层式基础架构中,I/O 从虚拟机端发起,需要经过 hypervisor(虚拟化软件),然后通过主机的 FC HBA 卡,发送至 SAN 交换机,然后到 SAN 存储控制器,并最终将数据存储到物理磁盘当中。

1.png

图 1

I/O 路径中涉及的硬件设备和软件逻辑包括:

  • 硬件设备:服务器主机 / SAN 存储网络交换机 / SAN 存储设备……
  • 软件逻辑:虚拟机操作系统 / 虚拟磁盘 / 虚拟化软件 ……

2.超融合架构下的 I/O 路径

超融合架构将计算、网络和存储进行了融合,I/O 从虚拟机发起,同样需要经过 hypervisor,然后发送到软件定义存储(SDS),最终在本地或通过以太网络将数据存储到物理磁盘当中。

2.png

图 2

I/O 路径中涉及的硬件设备和软件逻辑包括:

  • 硬件设备:服务器主机 / 以太网交换机……
  • 软件逻辑:虚拟机操作系统 / 虚拟磁盘 / 虚拟化软件 / 软件定义存储……

使用 SAN 存储的场景中,虚拟机数据必须通过 SAN 网络存储到服务器外部的 SAN 存储设备上,也就是数据读写 100% 需要经过网络。而与此不同的是,超融合架构里面虚拟机的 I/O 是通过内置的 SDS 存储软件写入磁盘的,而 SDS 属于分布式架构,I/O 既可能发生在主机内部的本地磁盘上,也有可能发生在外部的网络主机之上

其中不难理解的一点:在同样的软、硬件条件下,本地 I/O 操作显然要比远程主机上的 I/O 操作的响应时间更短毕竟 I/O 需要经过网络传输到远程节点执行,势必会增加 I/O 操作的时延。即使网络交换机的速度越来越快,依然无法完全避免时延的增加。

二、vSAN 与 ZBS I/O 路径分析与对比

1.vSAN 的 I/O 路径

VMware 超融合中的存储软件 vSAN 本质上是对象存储,它将虚拟机磁盘文件(.vmdk 文件)以对象(object)的形式进行存储,并提供了包括 FTT=1(RAID1 Mirror/RAID5),FTT=2(RAID1 Mirror/RAID6)等多种数据冗余机制。下面以较为常用的 FTT=1(RAID1 Mirror)为例展开 I/O 路径的讨论(RAID5/6 只适用于全闪集群,实际上混合存储在超融合环境更为常见)。

在 FTT=1 的存储策略下,虚拟磁盘(.vmdk)的副本数量是 2,两个副本会分别放置在 2 台不同的服务器主机上。而 vSAN 中 object 默认大小是 255GB,条带数为 1。举个例子:当虚拟机创建了一个 200GB 的虚拟磁盘,vSAN 会创建一组镜像组件,它包含 2 个 object 组件(实际上还有 1 个见证组件,但不包含业务数据,暂不讨论),分别放置在 2 台不同的主机上。如果虚拟磁盘的容量大于 255GB,则以 255GB 为单位拆分为多个 object。

3.png

图 3

(1)写 I/O 路径

a. 正常状态下的 I/O 路径

前面提到在 SDS 当中,本地读写相比远程读写而言是一个更优的选择,因为它的时延更低,网络开销更少。vSAN 对于副本(object)的放置并没有优先写入本地的策略,而是随机写入两个节点。下面将分析 vSAN 在不同情况下的写 I/O 路径。

以 4 节点的集群为例,2 个副本的放置节点位置共有 6 种可能性,当中有 3 种情况(½ 的概率),虚拟机写入的两个 object 均不在虚拟机运行所在服务器主机,需要 100% 远程写入(两个副本都需要经过网络进行写入),其余 3 种情况都是有一个副本是本地写入(另外一个副本经过网络进行写入),显然后者是更优的路径选择(2 个副本,必然导致至少有 1 个副本需要经过网络写入)。

4.png

图 4

(2)读 I/O 路径

a. 正常状态下的 I/O 路径

根据 VMware World1 的技术资料透露,vSAN 的 I/O 读取会遵循 3 个原则:

  • 副本间负载均衡读。
  • 非必然发生的本地读(如果只剩下一个副本)。
  • 确保同一数据块从同一个副本中读取。

vSAN 的平衡读机制,意味着即使虚拟机所在的主机本地有数据副本(图 4 中虚拟机本地拥有副本的概率为 ½),也将会有 50% 的读取是通过网络进行的。另外,有 ½ 概率虚拟机所在的节点没有任何一个本地副本,需要 100% 远程读取。总而言之,vSAN 在正常状态下是不会发生 100% 本地读

5.png

图 5

6.png

图 6

b. 故障状态下的 I/O 路径

当集群中发生硬盘故障时,由于副本降级(其中 1 个副本由于硬盘故障而损失),无法再执行平衡读,所有读 I/O 将发生在同一个副本内。

其中,故障场景下将有 ¼ 概率发生 100% 本地读,这是相比正常状态更优的 I/O 路径。

7.png

图 7

剩余 ¾ 概率都是 100% 远程读。

8.png

图 8

当硬盘遭遇故障时,需通过读取(唯一)可用副本进行数据恢复。由于 vSAN 中 object 的默认大小为 255GB,条带为 1,这种设置使得虚拟机数据副本很容易集中到单一、两块硬盘当中。在数据恢复时触发的读取操作容易受限于单块硬盘的性能瓶颈,难以利用多块硬盘执行并发恢复因此,VMware 会建议在存储策略中通过增加“条带数”配置,以便尽量利用多块硬盘的读能力。

2.ZBS 的 I/O 路径

SmartX 分布式块存储 ZBS 将虚拟磁盘切分为多个数据块(extent),并为数据块提供 2 副本或 3 副本的数据冗余保护。其中 2 副本在数据冗余保护级别与 vSAN 的 FTT=1(RAID1 Mirror)是相对应的,下面将以 2 副本策略分析 ZBS 的 I/O 路径。

在 2 副本存储策略下,虚拟磁盘由多个数据块(extent 大小为 256MB)组成,而 extent 以一组镜像(Mirror)的方式存在,默认条带数为 4。ZBS 支持数据本地化功能,可精准控制副本的位置:虚拟机运行所在主机放置一份虚拟磁盘的完整副本,另外一份副本则放置在远程主机。

9.png

(1)写 I/O 路径

a. 正常状态下的 I/O 路径

同样以 4 节点集群为例,由于 ZBS 可以保证虚拟机所在节点一定会有 1 个数据副本,写 I/O 操作可以一直保证 50% 写入发生在本地,50% 写入发生在远程,无论另外一个副本如何放置,都不会受到影响。因此,ZBS 在正常状态下不会发生 100% 远程写入的情况

b. 虚拟机迁移后的 I/O 路径

数据本地化功能可确保虚拟机的一份数据副本完整存放在本地主机,从而降低 I/O 访问的时延。但大家可能会思考一个问题:如果虚拟机发生了在线迁移,离开了原有主机,那么数据本地化是否失效了?通常来讲,迁移后的虚拟机可能遭遇到以下 2 种情况:

情况 1:迁移后,两个副本都不在本地,100% 远程写入(触发概率 66.6%);

10.png

情况 2:迁移后,虚拟机移动到对应的副本位置,50% 远程写入(触发概率 33.3%);

11.png

从分析中可以看到,当虚拟机迁移后,发生 100% 远程写入的概率比较高。ZBS 针对这类场景提供了专门的 I/O 路径优化:当虚拟机迁移后,新写入的数据将直接存放在本地新节点,并且会在 6 小时后,将虚拟机原有节点上对应的数据副本移动到新节点,重新形成数据本地化同时可以解决迁移后远程读的问题。

(2)读 I/O 路径

a. 正常状态下的 I/O 路径

虚拟机运行所在的主机总是拥有一份完整的副本,可以一直确保 100% 本地读

12.png

b. 数据恢复状态下的 I/O 路径

场景 1:虚拟机所在节点发生硬盘故障

I/O 访问从本地快速切换到远程节点维持正常业务的运行,同时触发数据恢复,优先在本地的可用空间进行恢复,并重新形成数据本地化。

13.png

场景 2:虚拟机远程节点发生硬盘故障

I/O 读取依然保持本地访问,并同时触发数据恢复。数据恢复的 I/O 流是从本地可用副本读取,然后向远程节点写入恢复数据。

14.png

大家可能会意识到:在数据恢复过程中,唯一可用的副本需要同时响应业务的正常 I/O 读写和数据恢复读访问,是否会给存储系统造成较大的压力?

ZBS 针对故障恢复场景也有专门的优化方案:

  • ZBS 的数据块划分相比 vSAN 更小(vSAN object 大小为 255GB,ZBS extent 大小为 256MB),加上条带化策略,使得虚拟机的数据更容易分散在多个硬盘,利用多个硬盘的读取能力以及多个硬盘的写入能力,有效提升数据恢复速度,避免单个硬盘性能成为瓶颈。
  • 内置弹性副本恢复策略:ZBS 支持自动感知当前业务压力并根据压力调整数据恢复速度。当节点 I/O 繁忙,恢复速度下降至最低水平;节点负载下降,系统会逐步提升恢复速度,以求平稳、快速地恢复数据副本级别。

三、小结

根据上面的 I/O 路径分析,我们汇总和对比 vSAN 与 ZBS 在不同状态的 I/O 路径情况,其中以 100% 本地访问为最优,50% 远程访问为次之,100% 远程访问为再次之。

15.png

从对比表格上看到,无论在正常还是数据恢复的状态下,ZBS 的本地 I/O 访问的概率都要比 vSAN 更高,理论上时延会更低;而 vSAN 在绝大部分情况下都会有远程 I/O 发生,换言之,对网络的占用要更高一些。在虚拟机发生在线迁移的场景下,ZBS 的本地 I/O 的概率有所下降,而 vSAN 的 I/O 路径显得要更好一些,随着 ZBS 重新完成数据本地化,这种情况会有所改善(至少需要几个小时)。

基于以上的分析,ZBS 在不频繁发生虚拟机在线迁移(几小时就发生一次迁移)的环境下具有明显的优势,反之,vSAN 会有一定优势而在实际生产环境下,频繁的在线迁移并不常见。

1.I/O 路径对于集群的其他影响

文章上面提到过,在超融合场景中,本地 I/O 发生概率越大,理论上存储的性能也会更好。但同时也会有另外一种声音:如果超融合的整体 I/O 性能是有富余的,那么是否就不需要考虑本地读写的优势呢?答案依然是否定的,因为更多的远程 I/O,除了增加了时延,还额外占用了网络资源在集群正常状态下,或许这些网络的开销未必会造成很大的压力,但针对部分特定场景,这部分影响还是无法忽略的,如:

  • 虚拟机高密度部署
    当虚拟机发生远程 I/O 的比例比较高的时候,虚拟机部署密度增大,远程 I/O 的流量也会剧增,有可能最终无法满足虚拟机的 SLA 要求。
  • 数据平衡
    当集群容量使用率较高时,系统一般会触发数据平衡(执行数据迁移),平衡过程中通常都会涉及主机之间的数据复制,这时候网络带宽的压力会较大。此时,数据平衡和虚拟机的远程 I/O 容易造成网络资源争抢的情况,使得数据平衡完成的时间延长,甚至带来不必要的风险。
  • 数据恢复数据恢复与数据平衡类似,需要依赖网络完成数据复制,但通常情况下,数据恢复需要更多的网络带宽,对业务的影响更大。一旦出现资源争抢的情况,将延长数据恢复时间,引入更大的风险。

最终,为了避免网络资源争抢的问题,用户可能需要付出额外的成本(如切换至 25G 网络),也许这并不是用户所期望的。

2.写在最后

超融合在选型和规划上有许多值得关注的细节,充分了解和重视细节可以帮助用户最大程度发挥超融合架构的优势。后续我们将与读者探讨更多关于超融合基础架构的技术话题。

推荐阅读:

VMware 与 SmartX 分布式存储缓存机制浅析与性能对比

VMware 与 SmartX 快照原理浅析与 I/O 性能对比

生产级 VMware 虚拟化方案替换路线与评估

1 VMworld 2016: STO7875 – A Day in the Life of a vSAN I/O.

https://www.youtube.com/watch?v=oxi1_Eb7vxA

点击了解 完整版 VMware 替代方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1534528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能商品计划系统:鞋服品牌的未来价值引擎

在数字化浪潮席卷全球的今天,智能商品计划系统正成为鞋服品牌转型升级的重要引擎。那么,什么是智能商品计划系统?它又能给鞋服品牌带来怎样的价值?本文将深入探讨这一话题,为鞋服品牌企业指引方向。 智能商品计划系统…

京东云开发者:DDD 学习与感悟 —— 向屎山冲锋

原文地址:https://mp.weixin.qq.com/s/Hvq1ttBopbxypatVcKcLiA 软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计…

使用QGIS将shp数据导入到数据库

QGIS将shp数据导入到数据库步骤: 1、在QGIS中查看携带地理坐标的数据,可以右键查看数据的属性数据源,可以修改数据使用的编码(防止乱码),如下图 2、选择数据右键Export导出,在导出的页面可以选…

Springboot+vue的高校教师科研管理系统+数据库+报告+免费远程调试

项目介绍: Javaee项目,springboot vue前后端分离项目 本文设计了一个基于Springbootvue的前后端分离的高校教师科研管理系统,采用M(model)V(view)C(controller)三层体系结构&#xf…

09 事务和连接池

文章目录 properties文件连接池service层实现类dao层实现类dao层实现类 连接池类: 创建线程池静态常量,用于放连接。 创建Properties静态常量,用于解析properties文件 静态代码块中,解析properties文件,将解析结果用于创建连接池 …

innovus中path group 的策略和应用(下)

BPG(basic path group)和PG(path group)的异同 INVS默认使用了BPG,但是基于SDC理论下PG(path group)也是天然存在,两者在数据库里边有各自存在的方式,也可以共融共生中&…

100个openharmony开源demo:1.日历

准备用开发者手机写100个开源的demo不知道能不能实现,日拱一卒,期待蜕变。 第一个demo:日历,借鉴了网上的日历算法,自己用arkts写了界面和点击事件,各位可根据此demo写自己的日历选择器等组件。 1.目录结…

【JAVA笔记】IDEA配置本地Maven

文章目录 1 配置本地Maven1.1 Maven下载1.2 Maven安装与配置1.2.1 安装1.2.2 配置1.2.2.1 环境配置1.2.2.2 本地仓库配置 2 IDEA设置本地Maven 1 配置本地Maven 1.1 Maven下载 官网:http://maven.apache.org/下载地址:http://maven.apache.org/downloa…

SinoDB客户端工具dbaccess

类似Oracle的客户端工具sqlplus,Mysql的客户端工具mysql,SinoDB数据库也有自带的命令行客户端工具dbaccess。 dbaccess 识别用户输入,将用户输入的 SQL 语句打包发送给 SinoDB 数据库服务器执行,然后接收服务器的执行结果&#xf…

windows上打开redis服务闪退问题处理

方法1:在windows上面打开redis服务时,弹窗闪退可能是6379端口占用,可以用以下命令查看: netstat -aon | findstr 6379 如果端口被占用可以用这个命令解决: taskkill /f /pid 进程号 方法2: 可以使用…

Java特性之设计模式【装饰器模式】

一、装饰器模式 概述 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装 装饰器模式通过将对象包装在装饰器类中,以…

数据泄露问题怎么解决?迅软DSE加密软件助您守护重要信息

企业信息泄露的危害 企业数据泄露事件不仅给企业带来了经济损失和声誉损害,还可能导致用户个人信息的泄露,引起社会广泛关注。 因此,企业需要采取更加严格的数据保护措施,使用数据加密系统以防范潜在的数据泄露风险。同时&#…

Vue.js前端开发零基础教学(三)

目录 2.6 计算属性 2.7侦听器 2.8 样式绑定 2.8.1 绑定class属性 2.8.2 绑定style属性 2.9 阶段案例——学习计划表 2.6 计算属性 概念:Vue提供了计算属性来描述依赖响应式数据的复杂逻辑。 计算属性可以实时监听数据的变化,返回一个计算…

Premiere模板|200个视频标题文字动画pr字幕模板包

Premiere模板,13个类别200个Pr视频标题字幕文字动画模板mogrt包。 几乎适用于任何场景。粗体标题,标注,未来主义和线条标题,下三分之一,霓虹灯,带数字的标题,倒计时,表格&#xff0c…

智慧商显安卓主板MT8788_联发科MTK平台多媒体广告一体机方案

MT8788高性能智能主板,支持Android 9.0操作系统,支持双屏异显功能;MT8788是基于12nm工艺制程四核A73四核A53架构的八核心CPU,主频高达2.0GHz,拥有超强的通用计算性能。 MT8788主板采用10层二阶超高密度PCB板,集成了4G、百兆以太网、2.4G/5G 双频WiFi、蓝…

C# xaml框架以及Java的ORM介绍

c#有ASP.Net,.NET以及EF Core这几个重要的运行时和框架.分别用于web,应用以及数据库的ORM. 目前跨平台的有Avalonia UI,.Net MAUI以及Uno Platform,至于WPF等本身不是跨平台的,但可以依靠其他库实现跨平台.这里面Avalonia应该是认为bug比较少的. 当然目前最火的跨平台解决方案…

Python使用指定端口进行http请求的例子

使用requests库 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class SourcePortAdapter(HTTPAdapter): """"Transport adapter" that allows us to set the source port.""" def __init__(self, port, *args, **kwargs): self.poolm…

Spring Cloud Alibaba微服务从入门到进阶(七)(服务容错-Sentinel)

雪崩效应 我们把基础服务故障,导致上层服务故障,并且这个故障不断放大的过程,成为雪崩效应。 雪崩效应,往往是因为服务没有做好容错造成的。 微服务常见容错方案 仓壁模式 比如让controller有自己独立的线程池,线程池满…

数据结构的概念大合集06(树和二叉树)

概念大合集06 1、树1.1 树的相关定义1.2 树的基本运算1.3 树的基本术语1.3.1 结点的度,树的度1.3.2 分支结点,叶子节点1.3.3 路径,路径长度1.3.4 孩子结点,双亲结点,兄弟结点1.3.5 结点层次,树的高度1.3.6 …

24.两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …