随着云计算数据中心虚拟化技术的引入,将一个物理服务器虚拟化多个虚拟服务器已经成为现实,即虚拟化桌面云。采用虚拟化桌面云为核心的数据中心应用范围广泛,应用类型众多,同时面向不同的应用场景和客户群体。
目前虚拟化桌面云架构中,存在以下三个因素,限制了用户业务应用的性能和规模:(1)服务器主机的CPU/内存;(2)网络带宽;(3)存储I/O。
随着服务器多核多线程的x86架构CPU和内存技术的发展,CPU/内存资源可以支持服务器主机上创建大规模数量的虚拟机。而l0Gbe NICs和带TOE(TCP/IP offlOAd)的LOMs(LAN-on—motherboard)技术的不断发展,网络带宽也不是制约虚拟机规模化增长的瓶颈。在CPU、内存和网络带宽等资源不断增长的同时,存储的I/O负载也在不断加大。
过去,例如l台NAS/SAN的存储阵列,可支持50台物理服务器,即50个主机连接。如今,平均一台物理服务器上平均创建l0~30个虚拟机,则同样50台物理服务器可支持500~1500个虚拟机,即有500~l500个虚拟服务器连接这台存储阵列。每台物理服务器上的多个虚拟机产生的读写I/O数据之间是没有关联的,数据访问模型以随机数据为主。因此,存储的I/O会有两个瓶颈。
(1)存储设备的瓶颈:存储设备需要处理大量的随机读写I/O请求,若存储设备的CPU和磁盘I/O的性能不够,会使业务应用产生停顿。
(2)高延时:虚拟机的业务应用需要等待很高延时,才能完成读或写的I/O请求。
为了同时满足众多的客户需求,提供优质的数据服务,I/O虚拟化技术应运而生。通过将用户的I/0请求存储在高速缓存设备上,加速I/0的响应性能,来满足数据中心对I/O的高带宽、低延时的业务需求。随着SSD硬盘的价格不断降低,在服务器端增加高速存储设备(Cache),缓存用户数据,提高读写I/0性能,越来越被广泛应用。例如,在数据库应用方面,通过将数据库的日志等频繁刷新的非用户数据,缓存在服务器的大容量Cache存储设备上,提高数据库服务器的I/O性能。
因此,本系统采用Cache软件,利用SSD硬盘的高速读写能力,应用在虚拟桌面云系统中,实现对系统I/O访问的加速。
一、云计算系统I/O加速的设计实现
传统的虚拟桌面云系统采用三层结构:第一层是服务器,运行虚拟机及用户的业务应用;第二层是数据存储网络;第三层是存储设备,存储用户数据。服务器的虚拟机(业务应用)通过数据存储网络,访问存储设备,获取或存储用户数据。
当虚拟机用户数量增大时,可以通过扩展服务器的性能(CPU、内存等)和存储设备的容量(磁盘组数量)来提高支持的用户数。虚拟机用户数的增加,带来数据存储网络的读写I/O请求数也相应增加,对存储设备的I/O性能要求也提高。若存储设备的性能不能满足要求时,则系统就达到了I/O瓶颈。
在整个虚拟桌面云系统层面,根据业务应用模型,可从服务器端、存储端、网络端三个方面,对I/0采用Cache数据的方法,做性能优化。本方案在服务器端,增加高速存储设备,缓存用户的读写数据,进而减少读写I/O响应时间,如图l所示。
在服务器层增加Cache软件和SSD缓存设备,存储用户的I/O数据,可以减少存储设备的I/O压力。当虚拟机用户有写I/O请求时,数据先存储到Cache软件写缓存区域上,Cache软件定期把汇聚后的I/0数据(减少写I/O请求数),经过存储网络刷新到存储设备。当虚拟机用户有读I/O请求时,在通过网络从存储设备读入I/0数据的同时,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数据不做缓存。
图1
图2
二、应用效果分析
评价系统在I/0方面的应用效果,以回写模式为主要方向,从读I/O和写I/0两方面的处理过程来分析。
2.1 虚拟机用户的写I/O请求
虚拟机用户的写I/O请求,采用存储在Cache软件写缓存区域中,再汇聚多个写I/O数据后,刷新到存储设备中,这种模式,具有以下特点。
(1)减少数据存储网络中的写I/O请求数,以及减少存储设备需要响应的写I/O请求数。
(2)回写模式会在写I/0数据写入SSD设备后,就认为写操作结束,将结果返回给业务应用,这种模式会减少写I/O延时。
(3)将多个随机写I/0数据汇聚成一个顺序写I/O后,再刷新到存储设备中,可以减轻存储设备的I/0负载。
(4)通过设置刷新脏数据的阀值或时间间隔,提供不同的写性能。(阀值:初始状态,数据均写在Cache中,当脏数据超过总容量的阀值比率,开始向后端存储刷新数据。时间间隔:每隔一定的时间,向后端存储刷新数据。)
相比传统虚拟桌面云的架构,通过汇聚I/O请求数,间接提高存储设备的I/O处理能力,从而提高整个系统的I/0处理能力,增加支持的虚拟机用户数量。
虚拟机用户的汇聚多个写I/0请求,只能对逻辑地址连续的I/0数据的写操作进行汇聚,因此,适用于对某部分区域频繁写操作的业务应用,而对于写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/0的延时,适合反复读写用户数据的业务模型。Cache软件的回写模式,主要可以减少I/O延时和合并写I/O操作,减少后端存储的写I/O处理总量,适合具有热点数据的业务模型。
三、结语
在虚拟化桌面云系统中,具有明显的热点数据,例如虚拟机的系统盘数据,根据测试,在系统中,把热点数据缓存在SSD高速存储设备上作为Cache,会大幅度提高系统I/O性能,并减少虚拟机用户的I/O请求的处理延时,具有一定的实际应用意义。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:一种Cache加速在虚拟桌面云上的应用