产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面产品方案中心
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

VDI分布式存储数据布局技术白皮书

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

  • 发布时间:2020-04-10

  • 点击量:

  • 点赞:

分享至

我想评论

 

  1. 概述

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

  1. VDI场景数据读写特性

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

 

 

  • Boot Storm:起机风暴,需要提供分钟级的起机支持,不能影响正在运行的虚拟机,1000台桌面会产生超过100K的IOPS。起机风暴的IO情况,又分成如下两种:
  • 完整克隆:51%的48KB和64KB顺序读,17%顺序和随机各半的32KB读,最后是17%的4KB的随机读IO。完整的克隆压力同时体现在高带宽,按照xstream io的测试,4000个桌面10分钟起机完成,IOPS 250K,峰值BW在9GB/s。
  • 链接克隆:与完整克隆相比,其bw小了,IOPS更高了,主要是因为在链接克隆下的起机,小IO(512B/4KB)更多。和完整克隆同样的测试环境,IOPS 310K,峰值BW 4.4GB/s,但IO基本上都为512和4K随机读写IO。
  • Login Storm:登录风暴,读写各半。
  • Virus Scanning:病毒扫描,主要是读。
  • Patching & Recomposing:补丁,重写,主要是写。
  • Steady State。常规的工作阶段,90%的IOPS是4KB、8KB的随机写IO。
  • 补丁阶段随机读写各半。

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

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

  1. 浅谈RAID写惩罚与IOPS计算
    1. RAID写惩罚

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

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

 

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

 

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

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

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

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

 

RAID类型

写惩罚

RAID-0

1

RAID-1

2

RAID-5

4

RAID-6

6

RAID-10

2

 

    1. IOPS计算

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

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

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

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

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

  1. 缓存加速的日志数据布局技术
    1. 数据写入概述

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

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

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。系统会将这些数据聚合成条带,计算校验值之后,写入后端磁盘,然后标记数据(1 B)为垃圾数据。

 

 

 

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

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

 

 

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

 

 

    1. 技术优势

该技术有如下优点:

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

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

    1. 传统3副本

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

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

5000 IOPS * 10% * 20% = 100 IOPS

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

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

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

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

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

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

5000IOPS * 90% * 1.25 * 8KB / 128KB = 351 IOPS

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

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

读IOPS同样为100。

写IOPS需求为:5000 IOPS * 90% * 3 * 8KB / 128KB = 844 IOPS

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

    1. 方案总结

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

 

传统3副本

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

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

有效容量

33%

33%

80%

每磁盘满足的业务IOPS

312

1000

1667

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

    1. 方案价值

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

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

 

相关推荐:

相关标签:

点赞

任何需要,请联系我们

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式
是否找到您想要的内容?
您遇到了什么问题?
找不到想要的信息
筛选功能不好用
加载速度太慢
页面体验差
提交
您是否找到了与产品相关的文档
筛选功能是否帮助您更快找到所需的文档?
有帮助
一般
没有帮助
没用过
请问您遇到了什么问题?
需要填写的内容太多
有些信息不懂怎么填
页面有问题/错误
其他
确定
这些客户案例是否对您有帮助?
非常有帮助
比较有帮助
没有帮助
请您对这个客户案例进行评价
兴趣度
相关性
可信度
确定
感谢您的反馈!
感谢您的反馈!