一种Cache加速在虚拟桌面云上的应用

2022-09-10 版权声明 我要投稿

随着云计算数据中心虚拟化技术的引入, 将一个物理服务器虚拟化多个虚拟服务器已经成为现实, 即虚拟化桌面云。采用虚拟化桌面云为核心的数据中心应用范围广泛, 应用类型众多, 同时面向不同的应用场景和客户群体。

目前虚拟化桌面云架构中, 存在以下三个因素, 限制了用户业务应用的性能和规模: (1) 服务器主机的CPU/内存; (2) 网络带宽; (3) 存储I/O。

随着服务器多核多线程的x86架构CPU和内存技术的发展, CPU/内存资源可以支持服务器主机上创建大规模数量的虚拟机。而10Gbe NICs和带TOE (TCP/IP offload) 的LOMs (LAN-on-motherboard) 技术的不断发展, 网络带宽也不是制约虚拟机规模化增长的瓶颈。在CPU、内存和网络带宽等资源不断增长的同时, 存储的I/O负载也在不断加大。

过去, 例如1台NAS/SAN的存储阵列, 可支持50台物理服务器, 即50个主机连接。如今, 平均一台物理服务器上平均创建10~30个虚拟机, 则同样50台物理服务器可支持500~1500个虚拟机, 即有500~1500个虚拟服务器连接这台存储阵列。每台物理服务器上的多个虚拟机产生的读写I/O数据之间是没有关联的, 数据访问模型以随机数据为主。因此, 存储的I/O会有两个瓶颈。

(1) 存储设备的瓶颈:存储设备需要处理大量的随机读写I/O请求, 若存储设备的CPU和磁盘I/O的性能不够, 会使业务应用产生停顿。

(2) 高延时:虚拟机的业务应用需要等待很高延时, 才能完成读或写的I/O请求。

为了同时满足众多的客户需求, 提供优质的数据服务, I/O虚拟化技术应运而生。通过将用户的I/O请求存储在高速缓存设备上, 加速I/O的响应性能, 来满足数据中心对I/O的高带宽、低延时的业务需求。随着SSD硬盘的价格不断降低, 在服务器端增加高速存储设备 (Cache) , 缓存用户数据, 提高读写I/O性能, 越来越被广泛应用。例如, 在数据库应用方面, 通过将数据库的日志等频繁刷新的非用户数据, 缓存在服务器的大容量Cache存储设备上, 提高数据库服务器的I/O性能。

因此, 本系统采用Cache软件, 利用SSD硬盘的高速读写能力, 应用在虚拟桌面云系统中, 实现对系统I/O访问的加速。

1 云计算系统I/O加速的设计实现

传统的虚拟桌面云系统采用三层结构:第一层是服务器, 运行虚拟机及用户的业务应用;第二层是数据存储网络;第三层是存储设备, 存储用户数据。服务器的虚拟机 (业务应用) 通过数据存储网络, 访问存储设备, 获取或存储用户数据。

当虚拟机用户数量增大时, 可以通过扩展服务器的性能 (CPU、内存等) 和存储设备的容量 (磁盘组数量) 来提高支持的用户数。虚拟机用户数的增加, 带来数据存储网络的读写I/O请求数也相应增加, 对存储设备的I/O性能要求也提高。若存储设备的性能不能满足要求时, 则系统就达到了I/O瓶颈。

在整个虚拟桌面云系统层面, 根据业务应用模型, 可从服务器端、存储端、网络端三个方面, 对I/O采用Cache数据的方法做性能优化。本方案在服务器端, 增加高速存储设备, 缓存用户的读写数据, 进而减少读写I/O响应时间, 如图1所示。

在服务器层增加Cache软件和SSD缓存设备, 存储用户的I/O数据, 可以减少存储设备的I/O压力。当虚拟机用户有写I/O请求时, 数据先存储到Cache软件写缓存区域上, Cache软件定期把汇聚后的I/O数据 (减少写I/O请求数) , 经过存储网络刷新到存储设备。当虚拟机用户有读I/O请求时, 在通过网络从存储设备读入I/O数据的同时Cache软件将I/O数据写入读缓存区域, 当下一次用户读取同一份I/O数据时, 直接通过Cache软件从读缓存区域中读取, 而不用从存储设备中读取, 如图2所示。

Cache软件根据读写模式不同, 具有writethrough (透写) 模式、WriteBack (回写) 模式和ReadOnly (只读) 模式。Writethrough (透写) 模式, 指的是Cache软件在将用户的写I/O数据写往后端存储设备的同时, 会缓存写I/O数据在SSD缓存设备上;WriteBack (回写) 模式, 指的是Cache软件中将用户的写I/O数据缓存在SSD缓存设备上, 而不直接写往后端存储设备, SSD设备上的数据会定期写入到后端存储中;ReadOnly (只读) 模式, 指的是Cache软件中只将用户的读I/O数据缓存到SSD设备中, 写I/O数据不做缓存。

2 应用效果分析

评价系统在I/O方面的应用效果, 以回写模式为主要方向, 从读I/O和写I/O两方面的处理过程来分析。

2.1 虚拟机用户的写I/O请求

虚拟机用户的写I/O请求, 采用存储在Cache软件写缓存区域中, 再汇聚多个写I/O数据后, 刷新到存储设备中, 这种模式, 具有以下特点。

(1) 减少数据存储网络中的写I/O请求数, 以及减少存储设备需要响应的写I/O请求数。

(2) 回写模式会在写I/O数据写入SSD设备后, 就认为写操作结束, 将结果返回给业务应用, 这种模式会减少写I/O延时。

(3) 将多个随机写I/O数据汇聚成一个顺序写I/O后, 再刷新到存储设备中, 可以减轻存储设备的I/O负载。

(4) 通过设置刷新脏数据的阀值或时间间隔, 提供不同的写性能。 (阀值:初始状态, 数据均写在cache中, 当脏数据超过总容量的阀值比率, 开始向后端存储刷新数据。时间间隔:每隔一定的时间, 向后端存储刷新数据。)

相比传统虚拟桌面云的架构, 通过汇聚I/O请求数, 间接提高存储设备的I/O处理能力, 从而提高整个系统的I/O处理能力, 增加支持的虚拟机用户数量。

虚拟机用户的汇聚多个写I/O请求, 只能对逻辑地址连续的I/O数据的写操作进行汇聚, 因此, 适用于对某部分区域频繁写操作的业务应用, 而对于写I/O随机性较大的业务应用, 性能提升不大。

2.2 虚拟机用户的读I/O请求

虚拟机用户的读I/O请求, 第一次读取I/O数据时, 还是从存储设备中读取, 当第二次读取同样的I/O数据时, 可以通过读取Cache软件读缓存区域, 而减少数据存储网络中的读I/O请求数, 以及减少存储设备需要响应的读I/O请求数。相比传统虚拟桌面云, 通过减少对存储的读I/O请求数, 间接提高存储设备的I/O处理能力, 从而提高整个系统的I/O处理能力, 增加支持的虚拟机用户数量。

虚拟机用户的读I/O请求, 若是集中在某些数据区域 (热点数据) , 也就是对某些数据区域产生多次读I/O, 则性能较传统虚拟桌面云模型, 会有明显改善。若数据区域完全离散, 即虚拟机用户的读I/O对所有数据区域的访问是均匀的, 则性能不会有明显改善。

2.3 三种模式对比 (回写、透写和只读)

Cache软件的回写和透写模式, 可以缓存用户的写I/O请求和读I/O请求, 而Cache软件的只读模式, 只对虚拟机用户的读I/O请求做缓存。因此, 只读模式适合绝大部份为读操作的业务模型。Cache软件的透写模式, 当读I/O数据是刚处理的写数据I/O数据, 则会减少读I/O的延时, 适合反复读写用户数据的业务模型。Cache软件的回写模式, 主要可以减少I/O延时和合并写I/O操作, 减少后端存储的写I/O处理总量, 适合具有热点数据的业务模型。

3 结语

在虚拟化桌面云系统中, 具有明显的热点数据, 例如虚拟机的系统盘数据, 根据测试, 在系统中, 把热点数据缓存在SSD高速存储设备上作为Cache, 会大幅度提高系统I/O性能, 并减少虚拟机用户的I/O请求的处理延时, 具有一定的实际应用意义。

摘要:传统的虚拟桌面云系统, 随着用户数的增加, 系统会显现I/O瓶颈, 用户体验降低等现象。本方案是在虚拟化桌面云系统中, 把热点数据缓存在SSD高速存储设备上作为Cache, 大幅度提高系统I/O性能, 并减少虚拟机用户的I/O请求的处理延时, 具有一定的实际应用意义。

关键词:虚拟技术,虚拟桌面云,虚拟机,SSD,Cache

参考文献

[1] Shawn Kung.Breaking Through The Storage I/O Barrier For Cloud Computing, 2011, 4.

上一篇:浅论车辆技术管理对降低运输成本的重要意义下一篇:城市道路动态园林景观初探