01
2024
06
01:43:43

浅析VMware超融合VSAN存储软件架构细节


1、VSAN对象



VSAN 通过名为对象的灵活数据容器的形式管理数据。虚拟机文件称为对象。



–存在四种不同类型的虚拟机对象:



•虚拟机主目录(主机命名空间)



•虚拟机交换文件



•VMDK



•快照



•Memory(vmem,虚拟机内存文件),VSAN 5.5时,当快照创建时,虚拟机内存以文件形式存放在VM Home里。而在VSAN 6.0时,虚拟机内存在vsanDatastore里实例化为独立的对象



•虚拟机对象基于虚拟机存储配置文件中定义的性能和可用性要求划分为多个组件


57b5cbf39d99f63b570a4ffeb4f3586e_738b4710b912c8fcc2c752393326fa49d688213b.jpeg




2、VSAN组件



•VSAN 组件是对象区块,这些对象区块跨集群中的多台主机分布,以便容许同时发生多个故障并满足性能要求。



•VSAN 利用分布式RAID 体系结构将数据分发到整个集群中。



•组件的分布主要采用两种技术:



–镜像(RAID1)



–条带化(RAID0)



•创建多少组件副本将基于对象策略定义决定。

3fbf23abbc1b06e56b14cef1b1d70816_0b46f21fbe096b6366821556dc16ef48eaf8accb.jpeg

549bcb3483dc10f1aaf398a1eb010314_7c1ed21b0ef41bd561d7100e85ffe9c738db3d72.jpeg



3、举例说明VSAN对象和组件


549bcb3483dc10f1aaf398a1eb010314_7c1ed21b0ef41bd561d7100e85ffe9c738db3d72.jpeg







4、允许的故障数



允许的故障数(FTT)



–定义存储对象能容许的主机、磁盘或网络故障的数量。若要容许“n”个故障,则要创建“n+1”个对象副本,并且需要“2n+1”台主机提供存储。



171fb7843bd0f43654f6aef9ae9b5209_908fa0ec08fa513d9ca4194bf2483df7b3fbd9cf.jpeg



5、纠删码



•“FTT=2” 的高可用性RAID-6



–4+2 (最少6台主机)



–1.5倍的开销,以往的开销是3倍



•以往20GB数据消耗60GB空间, 现在约为30GB



–可以实现在vmdk的颗粒度上,在SPBM里设置



–不支持VSAN Stretched Cluster

985ab39d9e8d9a343170921a1dafa63c_d8f9d72a6059252d650d4186fbbe6b375ab5b9c8.jpeg





6、vSAN 的 I/O 路径浅析



这部分内容参考浅析 VMware 与 SmartX 超融合 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。


08a05df2e320866fee011d73dd580bb7_64380cd7912397ddfbee740189a7dabbd1a287d6.jpeg




图 3



写 I/O 路径



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



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



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


25a7244c92bb220c87f5999e1de20100_3b292df5e0fe9925f1714871e48d36d38db17147.jpeg




图 4



读 I/O 路径



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



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



副本间负载均衡读。



非必然发生的本地读(如果只剩下一个副本)。



确保同一数据块从同一个副本中读取。




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



4d879b76f1f52f4b17926c523fc745da_5bafa40f4bfbfbed675cec3da8d59f3aafc31f19.jpeg



图 6



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



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



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


821edb67fc4dad45df7328f07ccedbea_b2de9c82d158ccbf1ec97f1ec9fdd432b135414b.jpeg


图 8



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




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/6412.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: