Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1|回复: 0

今日更新汇总分布式存储 - VDI分布式存储数据布局技术白皮书

[复制链接]

18万

主题

0

回帖

55万

积分

超级版主

Rank: 8Rank: 8

积分
553452
发表于 3 天前 | 显示全部楼层 |阅读模式




概述


本文介绍VDI分布式存储产品中采用的缓存加速的日志数据布局技术,该技术相比当前市面上主流的开源分布式存储产品,比如Ceph,能够带来2倍以上的有效容量和2倍以上的性能提升。


VDI场景数据读写特性


VDI活动,一天大概包含如下几个阶段:








BootStorm:起机风暴,需要提供分钟级的起机支持,不能影响正在运行的虚拟机,1000台桌面会产生超过100K的IOPS。起机风暴的IO情况,又分成如下两种:



完整克隆:%的48KB和64KB顺序读,17%顺序和随机各半的32KB读,比较后是17%的4KB的随机读IO。完整的克隆压力同时体现在高带宽,按照xstreamio的测试,4000个桌面10分钟起机完成,IOPS250K,峰值BW在9GBs。
链接克隆:与完整克隆相比,其bw小了,IOPS更高了,主要是因为在链接克隆下的起机,小IO(2B4KB)更多。和完整克隆同样的测试环境,IOPS310K,峰值BW44GBs,但IO基本上都为2和4K随机读写IO。



LoginStorm:登录风暴,读写各半。
VirusScanning:病扫描,主要是读。
PatchingRecomposing:补丁,重写,主要是写。
SteadyState。常规的工作阶段,90%的IOPS是4KB、8KB的随机写IO。
补丁阶段随机读写各半。


其中,启机登陆风暴的技术见《VDI启机风暴技术白皮书》,病扫描相关技术见《Cache加速技术白皮书》。这里描述用户SteadyState阶段的数据读写问题。

由上面的统计数据可知,SteadyState阶段主要是4KB、8KB的随机写IO。随机写IO在纠删码配置下有RAID写惩罚(参考下一节描述),性能往往满足不了业务需求。故VDI场景,传统上存储一般配置为副本,用更低的得盘率来获得性能上一定的提升。


浅谈RAID写惩罚与IOPS计算

RAID写惩罚


存储方案规划的过程中,比较基本的考虑因素有两个,性能和容量。计算后端物理磁盘的IOPS不能简单的把物理磁盘的比较大IOPS相加。原因是对于不同的RAID级别,为了保证当物理磁盘损坏的情况下可以恢复数据,数据写入的过程中都需要进行一些特别的计算。

比如对于RAID-5,条带上的任意磁盘上的数据改变,都会重新计算校验位。下图,一个7+1的RAID-5的条带中,7个磁盘存储数据,比较后一个磁盘存储校验位。







对于一个数据的写入,我们假设在第5个磁盘上写入数据1111,如下图所示。





那么整个RAID-5需要完成写入的过程分为如下几步:


读取原数据0110,然后与新的数据1111做XOR操作:0110XOR1111=1001
读取原有的校验位数据0010
用步骤1计算出的数值与原校验位再做一次XOR操作:0010XOR1001=1011
将新数据1111写入到数据磁盘,将新的校验值1011写入校验盘


由上述几个步骤可见,对于任何一次写入,在存储端,需要分别进行2次读取和2次写入,所以说RAID-5的写惩罚值是4。

不同RAID级别的写惩罚,如下表所示:




RAID类型
写惩罚
RAID-0
1
RAID-1
2
RAID-5
4
RAID-6
6
RAID-10
2





IOPS计算


根据上文的描述,在际存储方案设计的过程中,计算际可用IOPS的过程中必须纳入RAID的写惩罚机上。计算公式如下:


物理磁盘总IOPS=物理磁盘的IOPS*磁盘数目
可用的IOPS=(物理磁盘总IOPS*写百分比RAID写惩罚)+(物理磁盘总IOPS*读百分比)


假设组成RAID-5的物理磁盘总IOPS为1000,使用该存储的应用程序读写比例是10%90%,那么对于前端主机而言,际可用的IOPS为:

(1000*90%4)+(1000*10%)=325

故,在VDI场景SteadyState阶段,RAID或者纠删码配置下,际业务可用的IOPS非常低,往往满足不了业务需求。


缓存加速的日志数据布局技术

数据写入概述


VDI分布式存储采用缓存加速的日志数据布局技术,加速虚拟桌面用户的数据读写性能。具体步骤如下:


桌面操作系统,数据写入存储
首先数据在本地节点的内存保留一份,同时根据系统可靠性配置,用户数据写入1个或者2个镜像节点的SSD上,SSD采用FIFO的形式顺序保存这些Journal
数据镜像完成之后,操作系统数据写入成功
本地节点数据聚合条带,计算纠删码之后,顺序写入后端磁盘
同时,根据智能缓存算法,热点数据保存到SSDCache上,供操作系统后续读取访问
数据落盘之后,镜像节点的FIFOJournal通过尾部指针地址偏移,释放Journal空间
日志数据布局技术


VDI分布式存储的日志数据布局采用ROW方式,不论是追加写还是改写现有数据,都重新分配一个连续的地址空间写入。这样,论用户的业务模型如何,所有的写数据对于后端磁盘来说都是顺序的,避免了传统RAID写流程所需的写惩罚。并且所有的数据都可以均匀的分布到不同的后端磁盘上,可以有效利用后端磁盘的总带宽和总IOPS。

如下图所示,LUN1写入A、B、C、D四个数据,LUN2写入A、B两个数据,存储系统将LUN1、LUN2的数据合并成一个条带,并计算出2个校验值之后,将数据写入后端磁盘。







当修改数据发生时,如下图所示。LUN1将数据B修订成b,LUN2写入C、D、E,LUN3写入数据A、B。系统会将这些数据聚合成条带,计算校验值之后,写入后端磁盘,然后标记数据(1B)为垃圾数据。









但是,当系统经过长时间的修改和写入后,会产生大量的垃圾数据,从而导致法找到条带用于新的数据写入。日志数据布局技术,通过全局垃圾回收来重新整理空间,从而做到在任何容量利用率的情况下,都可以找到新条带用来数据写入。

如果条带上的数据都为垃圾数据,则直接回收该条带。







如果条带上仅有部分脏数据,则将这些条带上的有效数据拷贝到新的条带之后,回收这些条带。








技术势


该技术有如下点:


SSD上Journal和Cache的数据写入都是顺序的,极大减少了SSD的擦写次数,可以将SSD寿命提高1个数量级。
将随机写IO聚合成顺序写IO,避免了RAID算法的写惩罚,极大提升磁盘IOPS。以4KB的随机IO,128KB条带深度大小为例,每个磁盘可以提供32(1284)倍IOPS。
智能缓存预期算法,VDI数据读取操作尽量SSD命中,加速VDI数据读取性能,同时减少对后端磁盘的IOPS压力。以Cache命中率80%为例,后端磁盘仅需要提供20%的读IO即可满足业务需求。



方案对比


考虑如下需求:每个VDI节点50个VDI桌面,每个桌面100IOPS,共需要存储提供5000IOPS,其中写IO占90%。假设每个磁盘的吞吐为200MBs,且能够提供200IOPS。同时,我们假设读缓存命中率为80%,假设SSD缓存性能足够满足该场景需求,同时假设VDI有效工作时间为每天8小时。比较传统3副本、缓存加速日志数据布局技术8D2PEC和3副本下的有效容量和每磁盘能满足的业务IOPS需求。


传统3副本


在该场景下,读操作首先判断Cache是否命中,否则从后端磁盘读。写操作首先3副本写到对应的SSD上,后台异步将这些IO刷到对应的磁盘。

VDI节点需要后端磁盘提供的读IOPS为:总IOPS需求*读IO比例*缓存不命中率。

5000IOPS*10%*20%=100IOPS

3副本的写惩罚为3,在VDI节点一整天开机的情况下,需要的写IOPS为:总IOPS*写IO比例*写惩罚*每周工作时间每周开机时间。

5000IOPS*90%*3*(8*5)(24*7)=3214IOPS

该场景下,共需要(3214+100)200,约16个磁盘。平均每个磁盘能够满足该场景312(500016)业务IOPS需求。


缓存加速日志数据布局8D2P


VDI节点需要后端提供的读IOPS和3副本类型的相同,为100IOPS。

8D2P配置下,写惩罚系数为125,假设平均每个IO8KB。同时,VDI产品中配置的条带深度为128KB。则需要的写IOPS为:总IOPS*写IO比例*写惩罚*平均每个IO大小条带深度。

5000IOPS*90%*125*8KB128KB=3IOPS

该场景下,共需要(100+3)200,约3个磁盘。平均每个磁盘满足该场景1667(50003)业务IOPS需求。


缓存加速日志数据布局3副本


读IOPS同样为100。

写IOPS需求为:5000IOPS*90%*3*8KB128KB=844IOPS

该场景下,共需要(100+844)200,约5个磁盘。平均每个磁盘满足1000业务IOPS需求。


方案总结


下表比较该场景下,3副本和8D2P有效容量、每个硬盘提供的有效容量和性能。


传统3副本
缓存加速日志数据布局3副本
缓存加速日志数据布局8D2PEC配置
有效容量
33%
33%
80%
每磁盘满足的业务IOPS
312
1000
1667


缓存加速日志数据布局下,纠删码和副本有相似的数据可靠性,建议以纠删码配置为主。


方案价值


存储方案规划中,比较基本的考虑因素有两个:性能和容量。在VDI场景中,缓存加速日志数据布局,相比传统存储具备如下势:


支持在生产系统上使用纠删码,使用纠删码相比Ceph等以副本为主要数据可靠性保证的方案来说,同时具备2倍以上的有效容量和2倍以上的性能提升。
即使同样也采用副本,缓存加速日志数据布局方案,也会获得2倍以上的性能提升。




相关推荐:


RCO52VDI终端双切换技术白皮书
IDV的那些特长之总分布署
锐捷云桌面IDV终端开机技术白皮书
英特尔:IDV何以如此神通广大







国产数据库的参考价值来看,也能给其他行业带来很多的启发。OceanBase 完全自主研发,已连续 10 余年稳定支撑双 11 ,创新推出“三地五中心”城市级容灾新标准,是全球唯一在 TPC-C 和 TPC-H 测试上都刷新了世界纪录的原生分布式数据库。https://www.oceanbase.com/topic/techwiki-guochanshujuku

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|芷惯网

GMT+8, 2025-1-2 20:54 , Processed in 0.050208 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表