论文部分内容阅读
[摘 要]随着虚拟桌面的部署规模在不断增大,出现了磁盘阵列存储能力不能够满足桌面虚拟化环境建设要求的问题。本文提出一种面向桌面虚拟化的分布式镜像存储系统,并阐述了该系统体系架构和功能模块,对该系统的工作流程进行描述。
[关键词]桌面虚拟化;分布式;镜像存储
中图分类号:TP331 文献标识码:A 文章编号:1009-914X(2015)26-0240-01
通过采用桌面虚拟化技术,多个操作系统可以实现硬件资源共享,从而是硬件资源得到合理高效的利用。对于用户而言,虚拟桌面的操作方法与传统PC机桌面操作方法一直;而对于桌面虚拟化技术而言,呈现在用户面前仅仅是操作系统的桌面,桌面的所有存储和运算操作均在服务器端实现。随着桌面虚拟化技术的发展,虚拟桌面的部署规模在不断增大,出现了磁盘阵列存储能力不能够满足桌面虚拟化环境建设要求的问题。本文将重点讨论面向桌面虚拟化的分布式镜像存储技术。
一、系统简介
目前,在虚拟桌面的镜像存储系统中较多的采用了SAN、NAS等企业级专有存储设备。SAN、NAS等系统在使用中存在着存储吞吐量不够、价格昂贵、难以进行动态扩展等缺点,无法满足桌面虚拟化大规模部署的需求。
为了克服当前存储系统存在的上述问题,本文提出了一种针对于桌面虚拟化I/O特性的、易扩展的分布式镜像存储系统。该系统使用COWB+树以实现虚拟机镜像,采用记录日志和缓存等手段把随机写转化成为顺寻写,在分布式寻址时采用一致性哈希算法,同时通过对常用的根镜像进行缓存来减少存储系统的负担。
应用服务器主要用于为用户提供各种桌面虚拟化服务,其上可运行各种不同的虚拟机,用户可通过协议实现对虚拟机的操作和使用。每一台应用服务器上均支持30至50台虚拟机同时运行。
元数据服务器用于记录虚拟机镜像在各数据服务器上的实时分布情况和各数据服务器的磁盘空间情况,同时提供数据服务器的登入、退出、列表查询、运行状态监控等功能。
数据服务器用于虚拟机磁盘镜像存储。磁盘镜像存储采用COWB+树格式,可有效节省磁盘空间。磁盘镜像的写操作具体过程为:先写日志,将数据块内容存储到缓冲区中,当缓冲区的数据量达到事先设定的某一阈值时,再将数据写入磁盘之中。
VME驱动用于接收来自于应用服务器虚拟机的I/O请求,与元数据服务器和数据服务器进行交互,使用分布式的寻址算法寻找对应的数据服务器,并通过相应的网络协议将I/O请求传递至数据服务器。
管理模块为该分布式镜像存储系统提供了基于Web界面的用户管理接口。
二、体系架构与功能模块
从系统的体系架构上来说,该分布式镜像存储系统由管理模块、VMS驱动、数据服务器、元数据服务器等四部分构成。系统功能模块图如图1所示。
VMS驱动在接收到来自虚拟机的读写请求之后,通过分布式寻址模块,将读写请求传送给对应的数据服务器,当数据服务器完成该请求之后,VME驱动通过调用回调函数将此次读写结果返回虚拟机。数据服务器用于存储虚拟机镜像,为VME驱动提供相应的读写访问操作。管理模块为该存储系统提供用户管理接口。
VMS驱动由异步blktap驱动模块、缓存模块、分布式寻址模块、网络模块四部分构成。网络模块提供数据包接口,并将从网络中接收到的数据根据数据包格式进行解析。虚拟机在访问数据块时,会为数据块赋予一个64位的地质标识,分布式寻址模块截取该地址的前33位,并通过采用一致性哈希算法计算出该数据块所在的数据服务器的IP地址,随后VMS驱动通过该IP地址实现与数据服务器的交互,并将数据块地址的后31位作为文件地址,对数据服务器中的文件寻址,从而实现数据块内容的读写访问。缓存模块主要用于缓存来自于数据服务器的根镜像数据块。VME驱动在读取数据时会首先在缓存中进行查找,检查缓存中是否含有需要进行访问的数据块。如果含有该数据块,则直接从缓存中读取该数据块,如果不含有该数据块,则到数据服务器中进行数据读取操作。异步blktap驱动由blktap线程和完成线程两部分组成。blktap线程用于对虚拟机读写操作的异步提交,完成线程则在服务器I/O读写完成后,及时通知blktap线程完成回调操作。
数据服务器模块由网络模块、读写访问模块、COWB+树模块组成。其中,网络模块又分为I/O事件管理模块、解析模块、处理模块、发送模块。模块解析模块负责对数据包进行解析和序列化操作,处理模块用于对数据包进行相关处理操作,发送模块实现对数据包的发送。COWB+树模块用于实现镜像格式,并支持快照功能。读写访问模块实现数据服务器中读写访问的具体操作。
元数据服务器由网络模块、集群管理模块、元数据管理模块组成。
三、工作流程
面向桌面的虚拟化分布式镜像存储系统工作流程如下:1.接收来自于用户端的存储请求。2.从存储请求中获取访问地址。3.将访问地址转换为物理地址。4.若该请求为读请求,则进行步骤5,若该请求为写请求则进行步骤8。5.在本地缓存中查找数据块,若存在该数据块,则从缓存中直接读取数据块,结束。否则,进入步骤6。6.根据访问地址的前33位寻找存储节点。7.根据访问地址的后31位寻找数据块,并将找到的数据块保存至本地缓存,在缓存中建立相应的地址索引,结束。8.根据访问地址的前33位查找存储节点。9。将数据写入该存储节点,并将访问地址的后31位写入地址索引。
四、结束语
本文对面向桌面虚拟化的分布式镜像存储系统进行了简介,并着重介绍了该系统体系架构和功能模块,最后对该系统的工作流程进行了描述。面向桌面的虚拟化分布式镜像存储系统较以往的存储系统具有成本低、可扩展性高等特点,具有广阔的发展前景和应用空间。
参考文献
[1] 怀进鹏,胡春明,李沁.基于虚拟机的虚拟计算环境研究与设计[J].软件学报,2007,18(08):2016-2026.
[2] 陈昊罡,汪小林,王振林.面向虚拟机的远程磁盘缓存[J].计算机科学与探索,2010,4(12):1073-1088.
[关键词]桌面虚拟化;分布式;镜像存储
中图分类号:TP331 文献标识码:A 文章编号:1009-914X(2015)26-0240-01
通过采用桌面虚拟化技术,多个操作系统可以实现硬件资源共享,从而是硬件资源得到合理高效的利用。对于用户而言,虚拟桌面的操作方法与传统PC机桌面操作方法一直;而对于桌面虚拟化技术而言,呈现在用户面前仅仅是操作系统的桌面,桌面的所有存储和运算操作均在服务器端实现。随着桌面虚拟化技术的发展,虚拟桌面的部署规模在不断增大,出现了磁盘阵列存储能力不能够满足桌面虚拟化环境建设要求的问题。本文将重点讨论面向桌面虚拟化的分布式镜像存储技术。
一、系统简介
目前,在虚拟桌面的镜像存储系统中较多的采用了SAN、NAS等企业级专有存储设备。SAN、NAS等系统在使用中存在着存储吞吐量不够、价格昂贵、难以进行动态扩展等缺点,无法满足桌面虚拟化大规模部署的需求。
为了克服当前存储系统存在的上述问题,本文提出了一种针对于桌面虚拟化I/O特性的、易扩展的分布式镜像存储系统。该系统使用COWB+树以实现虚拟机镜像,采用记录日志和缓存等手段把随机写转化成为顺寻写,在分布式寻址时采用一致性哈希算法,同时通过对常用的根镜像进行缓存来减少存储系统的负担。
应用服务器主要用于为用户提供各种桌面虚拟化服务,其上可运行各种不同的虚拟机,用户可通过协议实现对虚拟机的操作和使用。每一台应用服务器上均支持30至50台虚拟机同时运行。
元数据服务器用于记录虚拟机镜像在各数据服务器上的实时分布情况和各数据服务器的磁盘空间情况,同时提供数据服务器的登入、退出、列表查询、运行状态监控等功能。
数据服务器用于虚拟机磁盘镜像存储。磁盘镜像存储采用COWB+树格式,可有效节省磁盘空间。磁盘镜像的写操作具体过程为:先写日志,将数据块内容存储到缓冲区中,当缓冲区的数据量达到事先设定的某一阈值时,再将数据写入磁盘之中。
VME驱动用于接收来自于应用服务器虚拟机的I/O请求,与元数据服务器和数据服务器进行交互,使用分布式的寻址算法寻找对应的数据服务器,并通过相应的网络协议将I/O请求传递至数据服务器。
管理模块为该分布式镜像存储系统提供了基于Web界面的用户管理接口。
二、体系架构与功能模块
从系统的体系架构上来说,该分布式镜像存储系统由管理模块、VMS驱动、数据服务器、元数据服务器等四部分构成。系统功能模块图如图1所示。
VMS驱动在接收到来自虚拟机的读写请求之后,通过分布式寻址模块,将读写请求传送给对应的数据服务器,当数据服务器完成该请求之后,VME驱动通过调用回调函数将此次读写结果返回虚拟机。数据服务器用于存储虚拟机镜像,为VME驱动提供相应的读写访问操作。管理模块为该存储系统提供用户管理接口。
VMS驱动由异步blktap驱动模块、缓存模块、分布式寻址模块、网络模块四部分构成。网络模块提供数据包接口,并将从网络中接收到的数据根据数据包格式进行解析。虚拟机在访问数据块时,会为数据块赋予一个64位的地质标识,分布式寻址模块截取该地址的前33位,并通过采用一致性哈希算法计算出该数据块所在的数据服务器的IP地址,随后VMS驱动通过该IP地址实现与数据服务器的交互,并将数据块地址的后31位作为文件地址,对数据服务器中的文件寻址,从而实现数据块内容的读写访问。缓存模块主要用于缓存来自于数据服务器的根镜像数据块。VME驱动在读取数据时会首先在缓存中进行查找,检查缓存中是否含有需要进行访问的数据块。如果含有该数据块,则直接从缓存中读取该数据块,如果不含有该数据块,则到数据服务器中进行数据读取操作。异步blktap驱动由blktap线程和完成线程两部分组成。blktap线程用于对虚拟机读写操作的异步提交,完成线程则在服务器I/O读写完成后,及时通知blktap线程完成回调操作。
数据服务器模块由网络模块、读写访问模块、COWB+树模块组成。其中,网络模块又分为I/O事件管理模块、解析模块、处理模块、发送模块。模块解析模块负责对数据包进行解析和序列化操作,处理模块用于对数据包进行相关处理操作,发送模块实现对数据包的发送。COWB+树模块用于实现镜像格式,并支持快照功能。读写访问模块实现数据服务器中读写访问的具体操作。
元数据服务器由网络模块、集群管理模块、元数据管理模块组成。
三、工作流程
面向桌面的虚拟化分布式镜像存储系统工作流程如下:1.接收来自于用户端的存储请求。2.从存储请求中获取访问地址。3.将访问地址转换为物理地址。4.若该请求为读请求,则进行步骤5,若该请求为写请求则进行步骤8。5.在本地缓存中查找数据块,若存在该数据块,则从缓存中直接读取数据块,结束。否则,进入步骤6。6.根据访问地址的前33位寻找存储节点。7.根据访问地址的后31位寻找数据块,并将找到的数据块保存至本地缓存,在缓存中建立相应的地址索引,结束。8.根据访问地址的前33位查找存储节点。9。将数据写入该存储节点,并将访问地址的后31位写入地址索引。
四、结束语
本文对面向桌面虚拟化的分布式镜像存储系统进行了简介,并着重介绍了该系统体系架构和功能模块,最后对该系统的工作流程进行了描述。面向桌面的虚拟化分布式镜像存储系统较以往的存储系统具有成本低、可扩展性高等特点,具有广阔的发展前景和应用空间。
参考文献
[1] 怀进鹏,胡春明,李沁.基于虚拟机的虚拟计算环境研究与设计[J].软件学报,2007,18(08):2016-2026.
[2] 陈昊罡,汪小林,王振林.面向虚拟机的远程磁盘缓存[J].计算机科学与探索,2010,4(12):1073-1088.