- 概述
本文介绍VDI分布式存储产品中采用的缓存加速的日志数据布局技术,该技术相比当前市面上主流的开源分布式存储产品,比如Ceph,能够带来2倍以上的有效容量和2倍以上的性能提升。
- 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场景,传统上存储一般配置为副本,用更低的得盘率来获得性能上一定的提升。
- 浅谈RAID写惩罚与IOPS计算
- RAID写惩罚
存储方案规划的过程中,最基本的考虑因素有两个,性能和容量。计算后端物理磁盘的IOPS不能简单的把物理磁盘的最大IOPS相加。原因是对于不同的RAID级别,为了保证当物理磁盘损坏的情况下可以恢复数据,数据写入的过程中都需要进行一些特别的计算。
比如对于RAID-5,条带上的任意磁盘上的数据改变,都会重新计算校验位。下图,一个7+1的RAID-5的条带中,7个磁盘存储数据,最后一个磁盘存储校验位。
对于一个数据的写入,我们假设在第5个磁盘上写入数据1111,如下图所示。
那么整个RAID-5需要完成写入的过程分为如下几步:
- 读取原数据0110,然后与新的数据1111做XOR操作:0110 XOR 1111 = 1001
- 读取原有的校验位数据0010
- 用步骤1计算出的数值与原校验位再做一次XOR操作:0010 XOR 1001 = 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场景Steady State阶段,RAID或者纠删码配置下,实际业务可用的IOPS非常低,往往满足不了业务需求。
- 缓存加速的日志数据布局技术
- 数据写入概述
VDI分布式存储采用缓存加速的日志数据布局技术,加速虚拟桌面用户的数据读写性能。具体步骤如下:
- 桌面操作系统,数据写入存储
- 首先数据在本地节点的内存保留一份,同时根据系统可靠性配置,用户数据写入1个或者2个镜像节点的SSD上,SSD采用FIFO的形式顺序保存这些Journal
- 数据镜像完成之后,返回操作系统数据写入成功
- 本地节点数据聚合条带,计算纠删码之后,顺序写入后端磁盘
- 同时,根据智能缓存算法,热点数据保存到SSD Cache上,供操作系统后续读取访问
- 数据落盘之后,镜像节点的FIFO Journal通过尾部指针地址偏移,释放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。系统会将这些数据聚合成条带,计算校验值之后,写入后端磁盘,然后标记数据(1 B)为垃圾数据。
但是,当系统经过长时间的修改和写入后,会产生大量的垃圾数据,从而导致无法找到条带用于新的数据写入。日志数据布局技术,通过全局垃圾回收来重新整理空间,从而做到在任何容量利用率的情况下,都可以找到新条带用来数据写入。
如果条带上的数据都为垃圾数据,则直接回收该条带。
如果条带上仅有部分脏数据,则将这些条带上的有效数据拷贝到新的条带之后,回收这些条带。
-
- 技术优势
该技术有如下优点:
- 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即可满足业务需求。
- 方案对比
考虑如下需求:每个VDI节点50个VDI桌面,每个桌面100 IOPS,共需要存储提供5000 IOPS,其中写IO占90%。假设每个磁盘的吞吐为200MB/s,且能够提供200 IOPS。同时,我们假设读缓存命中率为80%,假设SSD缓存性能足够满足该场景需求,同时假设VDI有效工作时间为每天8小时。比较传统3副本、缓存加速日志数据布局技术8D2P EC和3副本下的有效容量和每磁盘能满足的业务IOPS需求。
-
- 传统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需求。
-
- 缓存加速日志数据布局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需求。
-
- 缓存加速日志数据布局3副本
读IOPS同样为100。
写IOPS需求为:5000 IOPS * 90% * 3 * 8KB / 128KB = 844 IOPS
该场景下,共需要(100 + 844)/ 200 ,约5个磁盘。平均每个磁盘满足1000业务IOPS需求。
-
- 方案总结
下表比较该场景下,3副本和8D2P有效容量、每个硬盘提供的有效容量和性能。
|
传统3副本 |
缓存加速日志数据布局3副本 |
缓存加速日志数据布局8D2P EC配置 |
有效容量 |
33% |
33% |
80% |
每磁盘满足的业务IOPS |
312 |
1000 |
1667 |
缓存加速日志数据布局下,纠删码和副本有相似的数据可靠性,建议以纠删码配置为主。
-
- 方案价值
存储方案规划中,最基本的考虑因素有两个:性能和容量。在VDI场景中,缓存加速日志数据布局,相比传统存储具备如下优势:
- 支持在生产系统上使用纠删码,使用纠删码相比Ceph等以副本为主要数据可靠性保证的方案来说,同时具备2倍以上的有效容量和2倍以上的性能提升。
- 即使同样也采用副本,缓存加速日志数据布局方案,也会获得2倍以上的性能提升。
相关推荐:
更多技术博文
-
全调度以太网(GSE),中国智算网络新标准
GSE网络作为一种全调度以太网技术,专为大规模AI训练集群设计,通过按需调度实现无损性能,提供灵活快速的部署方案,构建开放生态,显著提升智算效率和运维体验。
-
#知识百科
-
-
以太和PON,谁能更好地支撑办公室横向流量业务?
了解以太彩光与PON的区别,解析办公资源共享难题,锐捷极简以太彩光方案助您高效适配办公网,共享打印无压力!
-
#交换机
-
-
场景无线 驱动高效办公!锐捷新一代企业无线办公解决方案全新发布!
面对企业数智化转型中的无线办公网络挑战,锐捷新一代企业无线办公解决方案通过全场景AP、智能调度与云端智能运维等技术,实现网络性能、用户体验与运维效率的全面提升。
-
#无线网
-
#办公网
-
-
以太彩光和PON,运维管理谁技高一筹?
锐捷网络提供极简以太全光方案,简化配置流程,降低学习成本,让全光网络升级更平滑。
-
#交换机
-