一种桌面虚拟化环境下的镜像分布式存储方法

文档序号:6440229阅读:723来源:国知局
专利名称:一种桌面虚拟化环境下的镜像分布式存储方法
技术领域
本发明属于桌面虚拟应用领域,具体涉及桌面虚拟化环境下,虚拟机磁盘镜像文件分布式存储方法。
背景技术
桌面虚拟化是指计算机的桌面进行虚拟化,使用户桌面集中运行于数据中心虚拟机中,已达到桌面使用的安全性和灵活。用户可以通过任何设备,在任何地点访问到个性化的桌面系统。随着桌面虚拟化技术的普及,越来越多的企业都开始部署桌面虚拟化系统。目前虚拟桌面镜像存储系统大部分采用SAN,NAS等集中式存储。如Citrix桌面虚拟化产品一般采用NAS存储。VMware的桌面虚拟化产品采用SAN存储,使用VMFS集群文件系统管理SAN存储设备。而SAN,NAS等系统存在着价格昂贵,存储的吞吐量率有限,难以动态的扩展系统。因此并不能满足中大型企业,廉价大规模部署桌面虚拟化的需求。

发明内容
为了克服目前桌面虚拟化环境中SAN, NAS等存储系统的价格昂贵,可扩展性不佳的情况。本发明提供了一种廉价的,高I0PS,高可扩展性的分布式虚拟机磁盘镜像组织,存储方案。一种桌面虚拟化环境下的虚拟机磁盘镜像分布式存储方法,其特征在于,该方法包括以下步骤(1)接收用户的虚拟机存储请求;(2)从所述读请求中提取访问地址;(3)若存储请求为读请求,则进入步骤(4);若存储请求为写请求,则进入步骤 (7);(4)在本地缓存中查询是否存在所述访问地址对应的数据块,若存在,则从本地缓存中读取所述数据块,结束,否则进入步骤(5);(5)采用一致性哈希算法对所述访问地址的前33位作哈希计算,依据计算得到的地址索引找到对应的存储节点;(6)在所述存储节点上以所述访问地址的后31位作为地址索引查找数据块,读取所述数据块并保存到本地缓存中,在本地缓存中使用所述访问地址建立所述数据块的地址索引,结束;(7)采用一致性哈希算法对所述访问地址的前33位作哈希计算,依据计算得到的地址索引找到对应的存储节点;(8)在所述存储节点内,将数据写入所述存储节点,并使用所述访问地址的后31 位建立写入数据的地址索引。进一步地,在所述本地缓存中采用基数树或哈希算法或B+树建立数据块的地址索引。
进一步地,在所述存储节点中采用B+树建立写入数据的地址索引。进一步地,若所述本地缓存的存储量达到缓存阈值,则淘汰访问次数最少的数据块。进一步地,所述步骤(8)具体为首先将数据记录到日志中,使用所述访问地址的后31位建立写入数据的地址索引;然后将数据写入内存,等到内存数据达到存储阈值时, 集中写入磁盘。本发明的有益效果如下1.存储系统成本低,本发明中存储系统所使用的设备,均为普通廉价的PC设备, 不涉及到昂贵的SAN,磁盘阵列等设备,从而减少了系统的硬件投入成本。2.可扩展性高,不存在单点性能瓶颈。本发明采用去中心化存储,采用一致性哈希算法在存储节点中寻址,没有单点性能瓶颈,可扩展性高。3.性能高符合桌面虚拟化存储的应用场合。本发明针对存储节点的数据存储格式上采用B+树存储,计算节点上缓存根镜像等方式提供系统的读写性能。


图1为本发明的系统总体流程图;图2为磁盘镜像缓存策略流程图;图3为数据分布式访问策略流程图;图4为存储策略流程图。
具体实施例方式下面结合附图和实例对本发明进行详细说明。本发明主要在分布式环境下针对桌面虚拟化的小块10,高IOPS高可扩展性需求设计。如图1所示,本发明整体流程如下(1)接收用户的虚拟机存储请求;(2)从所述读请求中提取访问地址;(3)若存储请求为读请求,则进入步骤(4);若存储请求为写请求,则进入步骤 (7);(4)在本地缓存中查询是否存在所述访问地址对应的数据块,若存在,则从本地缓存中读取所述数据块,结束,否则进入步骤(5);(5)采用一致性哈希算法对所述访问地址的前33位作哈希计算,依据计算得到的哈希值找到对应的存储节点;(6)在所述数据存储节点上以所述访问地址的后31位作为索引查找数据块,读取所述数据块并保存到本地缓存中,在本地缓存中使用所述访问地址建立所述数据块的地址索引,结束;(7)采用一致性哈希算法对所述访问地址的前33位作哈希计算,依据计算得到的哈希值找到对应的存储节点;(8)在所述存储节点内,将数据写入所述存储节点,并使用所述访问地址的后31 位建立写入数据的地址索引。
本发明方法体现了三个核心策略一、磁盘镜像缓存策略在桌面虚拟化环境下,一台物理机上多个虚拟机,会同时使用到同一个根镜像的数据块。通过缓存这些数据块到物理机本地磁盘,可以减少整个分布式系统的压力。在所述本地缓存中采用基数树(radix tree)或哈希算法或B+树建立数据块的地址索引。参见图2,下面以基数树算法示例说明(1)从虚拟机的存储请求获取访问地址a ;(2)在缓存索引基数树上查找访问地址a ;(3)如果地址a在缓存索引中,从本地缓存中读取数据块,并增加数据块命中次数,结束,否则,跳转到步骤(4)。(4)根据访问地址a,采用数据分布式访问策略读取数据块。(5)判断缓存是否已经满,如果没有满则把数据写入到缓存,否则淘汰命中次数最少的数据块。二、数据分布式访问策略存储系统中采用去中心化的存储结构,系统中不存在单点性能瓶颈。整个系统的寻址策略采用两级寻址模型。第一级,是存储节点之间的路由寻址。第二级是存储节点内文件之间的寻址。虚拟机中每次访问数据块的地址长度为64位,在系统中对64位地址进行映射使之能够使虚拟机磁盘镜像能够均勻分布在存储系统中。64位地址分为两部分前 33位用于寻址存储节点,后31位用于在存储节点文件中寻址数据块。前33位寻址虚拟机的方式采用一致性哈希算法,后31位采用B+树寻址。参见图3,具体步骤如下(1)计算虚拟机访问地址的前33位的MD5值;(2)依据MD5值利用一致性哈希算法查找出存储数据的存储节点;(3)在存储节点中,找到以访问地址的前33位命名的存储文件;(4)以访问地址的后31位为地址,在存储文件中访问数据块;(5)把数据块访问的结果返回给虚拟机。三、存储策略首先将数据记录到日志中,使用所述访问地址的后31位建立写入数据的地址索引;然后再将数据写入内存,等到内存数据达到存储阈值时,集中写入磁盘。作为优选,存储节点采用B+树建立写入数据的地址索引。数据的访问方式大致如下读数据(1)根据地址,在内存中的B+树中读取出在数据文件中的地址(2)在数据文件中读取出数据块。写数据块(1)在日志中记录写数据地址及数据块内容(2)修改B+树索引更具体的实现方式为写数据先把数据写在日志中,然后在内存中存储一份,当内存缓冲区中数据达到存储阈值的时候,启动Dump线程,把数据顺序写到磁盘中,通过采用这种方式把随机的写转化为顺序写,提高存储系统的写性能。存储阈值根据存储节点内存大小设置,一般设置为400 600M。参见图4,具体步骤如下(1)在日志中记录写数据块的地址和数据块的内容;(2)在B+树索引中加入数据块的地址索引;(3)在内存缓冲区中存储数据块;(4)如果内存缓冲区超过阈值,启动Dump线程。Dump线程顺序的把数据块写入到缓冲区中;(5)返回结果给客户端。本发明不仅局限于上述具体实施方式
,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方式
实施本发明,因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护的范围。
权利要求
1.一种桌面虚拟化环境下的虚拟机磁盘镜像分布式存储方法,其特征在于,该方法包括以下步骤(1)接收用户的虚拟机存储请求;(2)从所述读请求中提取访问地址;(3)若存储请求为读请求,则进入步骤(4);若存储请求为写请求,则进入步骤(7);(4)在本地缓存中查询是否存在所述访问地址对应的数据块,若存在,则从本地缓存中读取所述数据块,结束,否则进入步骤(5);(5)采用一致性哈希算法对所述访问地址的前33位作哈希计算,依据计算得到的地址索引找到对应的存储节点;(6)在所述存储节点上以所述访问地址的后31位作为地址索引查找数据块,读取所述数据块并保存到本地缓存中,在本地缓存中使用所述访问地址建立所述数据块的地址索引,结束;(7)采用一致性哈希算法对所述访问地址的前33位作哈希计算,依据计算得到的地址索引找到对应的存储节点;(8)在所述存储节点内,将数据写入所述存储节点,并使用所述访问地址的后31位建立写入数据的地址索引。
2.根据权利要求1所述的虚拟机磁盘镜像分布式存储方法,其特征在于,在所述本地缓存中采用基数树或哈希算法或B+树建立数据块的地址索引。
3.根据权利要求1所述的虚拟机磁盘镜像分布式存储方法,其特征在于,在所述存储节点中采用B+树建立写入数据的地址索引。
4.根据权利要求1所述的虚拟机磁盘镜像分布式存储方法,其特征在于,若所述本地缓存的存储量达到缓存阈值,则淘汰访问次数最少的数据块。
5.根据权利要求1所述的虚拟机磁盘镜像分布式存储方法,其特征在于,所述步骤(8) 具体为首先将数据记录到日志中,使用所述访问地址的后31位建立写入数据的地址索引;然后将数据写入内存,等到内存数据达到存储阈值时,集中写入磁盘。
全文摘要
本发明提供了一种桌面虚拟化环境下的虚拟机磁盘镜像分布式存储方法,具体为读数据,首选本地缓存,若本地缓存中不存在对应数据,则访问存储节点;依据访问地址的前33位索引到存储节点,在存储节点中依据访问地址的后31位索引到数据,将读取的数据写入本地缓存;写数据,依据访问地址的前33位索引到存储节点,将数据写入存储节点,并使用访问地址的后31位建立数据的地址索引。本发明不涉及昂贵的SAN、磁盘阵列等设备从而减少了系统的硬件投入成本,采用去中心化存储提高了扩展性,符合桌面虚拟化存储的应用场合。
文档编号G06F17/30GK102521330SQ20111040202
公开日2012年6月27日 申请日期2011年12月7日 优先权日2011年12月7日
发明者姜跃, 廖小飞, 李鹤, 金海 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1