一种用于虚拟机的虚拟存储映像版本管理方法和系统技术方案

技术编号:13424809 阅读:83 留言:0更新日期:2016-07-29 11:11
本发明专利技术公开了一种用于虚拟机的虚拟存储映像版本管理方法和系统,该方法包括:保存元数据以及区间块数据,其中,元数据包括VSI的逻辑区间块号与物理块号的映射关系、VSI版本号、与之关联的时间顺序上的下一个VSI版本号、版本ID、当前版本计数器、VSI最新版本数据以及VSI历史版本数据;接收对虚拟磁盘的操作请求,在所述操作请求中携带VSI版本号以及操作类型,确定所述VSI版本号的物理块号,并进行数据操作。本发明专利技术通过将块划分为区间块,从而在版本管理过程中,可以节省内存开销。

【技术实现步骤摘要】

本专利技术涉及云计算领域,特别是涉及一种用于虚拟机的虚拟存储映像版本管理方法和系统
技术介绍
云计算作为服务共享的计算模式,在系统部署、管理维护和安全性等方面,具有传统计算模式无法比拟的优势。云计算虚拟存储系统具有巨大的存储能力,能够存储并处理不断增长的海量的用户数据(包括操作系统及应用程序)。然而,管理海量数据是一项艰巨的工作,其中建立、使用及维护存储子系统开销巨大并且任务复杂,为云计算建立低开销和低复杂性的自管理存储系统是非常重要的问题。云计算中用户的所有数据都以虚拟存储映像(VSI)的形式存储在服务器上,如图1,因此VSI历史版本的创建、维护和恢复是一个重要而复杂的管理问题。这个问题随着客户端规模越来越大将显得越来越突出。目前,云计算系统使用常规的备份方法实现对VSI管理。虽然备份是用于解决上述需求的一种有效且重要的机制,然而,传统的备份系统所提供的功能非常有限,并带来很高的访问量和恢复开销,费时费力且价格昂贵。目前云计算服务器使用以天为单位的粗粒度的备份周期,存在巨大的管理开销。自动的版本控制可以作为解决上述问题的方法。版本控制方法支持在线的数据存储和备份,具有以下三点好处:(1)从用户误操作中恢复版本控制允许频繁的存储快照,这些快照相对于传统备份系统能够极大程度的降低数据量。用户通过回滚至先前保存过的版本将意外删除和更改的数据恢复原状。(2)从系统崩溃中恢复对于系统产生的恶意事件,管理员能够快速的定位遭到破坏的数据并恢复至先前的一致性系统状态。(3)历史数据分析在某些场景下,人们需要了解某个数据段是如何达到一个特定状态的,版本控制是进行历史数据分析的有效工具。虽然存储的版本控制方面的研究很早就被提出,但大多数的研究在文件系统层。云计算要求对上层操作系统和文件系统透明,需要在块级实现VSI的版本管理,上述方法不能直接适用于云计算系统。基于块级的版本控制存在以下挑战:(1)内存开销大版本控制发生在接近物理磁盘的系统底层,对于上层的数据内容以及相关信息是不可知的。块级的版本控制仅仅能够获得块级信息,却不具备这些块所对应的程序和数据的语义信息和访问模式,维护相关的块级元数据信息需要占用大量的内存空间,因此支持块级的版本控制将会加大内存开销。(2)版本管理开销大创建VSI新版本时,需要为每个块维护新的版本信息。版本管理对象的数量大,操作复杂,因而存在很大的管理开销。
技术实现思路
本专利技术要解决的技术问题是减少内存开销。根据本专利技术一方面,提出一种用于虚拟机的虚拟存储映像版本管理方法,包括:保存元数据以及区间块数据,其中,元数据包括逻辑块区间表(LCT)、VSI版本表(VVL)和设备超级块表(DSB),其中,所述LCT保存VSI的逻辑区间块号与物理块号的映射关系,所述VVL保存版本信息,包括VSI版本号、与之关联的时间顺序上的下一个VSI版本号、版本ID,所述DSB记录VSI属性信息,包括当前版本计数器;区间块数据是多个连续的数据块,所述数据块包括主数据和备份数据,所述主数据为VSI最新版本数据,所述备份数据为VSI历史版本数据;接收对虚拟磁盘的操作请求,在所述操作请求中携带VSI版本号以及操作类型,确定所述VSI版本号的物理块号,并进行数据操作。进一步,所述操作类型包括创建版本、删除版本、显示版本、版本读操作、或版本写操作。进一步,所述操作类型为版本写操作,如果写到没有被分配的块,则使用分配指针从主数据的起点开始扫描到终点结束,扫描到空闲区间块则停止扫描,分配空闲区间块并保存分配指针,当扫描至物理磁盘的末端时,倒置分配指针的方向,从反方向开始执行扫描操作并分配空闲区间块,获取该可用的物理区间块,更新LCT中的映射关系,并将写操作转发至物理磁盘。进一步,所述操作类型为版本写操作,如果写到已存在的块,且该块在最后一次快照后已被更改,则待写区间块的版本号与当前版本号一致,将请求的区间块地址转换为物理磁盘的物理区间块地址,并对该区间块进行写操作。进一步,所述操作类型为版本写操作,如果写到已存在的块,且该块在最后一次快照后没有被更改,即待写块的版本号比当前的版本号低,则在新位置创建该区间块的新版本,分配新的LCT条目并且将新老LCT的条目进行交换。进一步,在每一个LCT条目中加入子位图,区间块内的每一个数据块对应于子位图中的一位,当写操作发生时对子位图内的有效数据块进行标记;当读写操作发生时,检查区间块对应的子位图的有效位是否被标记,如果被标记则代表该位所指向的数据块包含有效数据,反之是无效数据。进一步,所述操作类型为版本读操作,通过请求的版本号来确定VSI的目标版本,遍历版本列表查找指定的区间块和子区间位图,寻址到具体的物理块;如果读请求的版本号与当前版本号不相等,则该读请求的目标数据位于历史版本中,根据版本号遍历版本列表,在LCT备份段中查找到对应的版本条目。进一步,所述操作类型为创建版本,将当前的版本计数器加一,增加元数据的新条目,创建VSI新版本。进一步,所述操作类型为删除版本,检查是否存在待删除VSI版本号的时间顺序的下一个版本号,如果是,将请求删除的VSI版本号删除,否则,将请求删除的VSI版本号标记为VSI最新版本号,不予删除。进一步,物理磁盘中预留出可配置的存储空间用于保存VSI历史版本,VSI历史版本占用固定或者容量可变的空间,对于占用容量可变的空间的大小取决于数据量的更新大小以及版本的更新频率。根据本专利技术一方面,提出一种用于虚拟机的虚拟存储映像版本管理系统,包括:存储单元,用于保存元数据以及区间块数据,其中,元数据包括逻辑块区间表(LCT)、VSI版本表(VVL)和设备超级块表(DSB),其中,所述LCT保存VSI的逻辑区间块号与物理块号的映射关系,所述VVL保存版本信息,包括VSI版本号、与之关联的时间顺序上的下一个VSI版本号、版本ID,所述DSB记录VSI属性信息,包括当前版本计数器;区间块数据是多个连续的数据块,所述数据块包括主数据和备份数据,所述主数据为VSI最新版本数据,所述备份数据为VSI历史版本数据;数据操作单元,用于接收对虚拟磁盘的操作请求,在所述操作请求中携带VSI版本号以及操作类型,确定所述VSI版本号的物理块号,并进行数据操作。本文档来自技高网
...

【技术保护点】
一种用于虚拟机的虚拟存储映像版本管理方法,包括:保存元数据以及区间块数据,其中,元数据包括逻辑块区间表(LCT)、VSI版本表(VVL)和设备超级块表(DSB),其中,所述LCT保存VSI的逻辑区间块号与物理块号的映射关系,所述VVL保存版本信息,包括VSI版本号、与之关联的时间顺序上的下一个VSI版本号、版本ID,所述DSB记录VSI属性信息,包括当前版本计数器;区间块数据是多个连续的数据块,所述数据块包括主数据和备份数据,所述主数据为VSI最新版本数据,所述备份数据为VSI历史版本数据;接收对虚拟磁盘的操作请求,在所述操作请求中携带VSI版本号以及操作类型,确定所述VSI版本号的物理块号,并进行数据操作。

【技术特征摘要】
1.一种用于虚拟机的虚拟存储映像版本管理方法,包括:
保存元数据以及区间块数据,其中,元数据包括逻辑块区间表
(LCT)、VSI版本表(VVL)和设备超级块表(DSB),其中,所
述LCT保存VSI的逻辑区间块号与物理块号的映射关系,所述VVL
保存版本信息,包括VSI版本号、与之关联的时间顺序上的下一个
VSI版本号、版本ID,所述DSB记录VSI属性信息,包括当前版本
计数器;区间块数据是多个连续的数据块,所述数据块包括主数据和
备份数据,所述主数据为VSI最新版本数据,所述备份数据为VSI历
史版本数据;
接收对虚拟磁盘的操作请求,在所述操作请求中携带VSI版本号
以及操作类型,确定所述VSI版本号的物理块号,并进行数据操作。
2.根据权利要求1所述用于虚拟机的虚拟存储映像版本管理方
法,包括:
所述操作类型包括创建版本、删除版本、显示版本、版本读操作、
或版本写操作。
3.根据权利要求2所述用于虚拟机的虚拟存储映像版本管理方
法,包括:
所述操作类型为版本写操作,如果写到没有被分配的块,则使用
分配指针从主数据的起点开始扫描到终点结束,扫描到空闲区间块则
停止扫描,分配空闲区间块并保存分配指针,当扫描至物理磁盘的末
端时,倒置分配指针的方向,从反方向开始执行扫描操作并分配空闲
区间块,获取该可用的物理区间块,更新LCT中的映射关系,并将写
操作转发至物理磁盘。
4.根据权利要求2所述用于虚拟机的虚拟存储映像版本管理方

\t法,包括:
所述操作类型为版本写操作,如果写到已存在的块,且该块在最
后一次快照后已被更改,则待写区间块的版本号与当前版本号一致,
将请求的区间块地址转换为物理磁盘的物理区间块地址,并对该区间
块进行写操作。
5.根据权利要求2所述用于虚拟机的虚拟存储映像版本管理方
法,包括:
所述操作类型为版本写操作,如果写到已存在的块,且该块在最
后一次快照后没有被更改,即待写块的版本号比当前的版本号低,则
在新位置创建该区间块的新版本,分配新的LCT条目并且将新老LCT
的条目进行交换。
6.根据权利要求3至5任一所述用于虚拟机的虚拟存储映像版
本管理方法,包括:
在每一个LCT条目中加入子位图,区间块内的每一个数据块对
应于子位图中的一位,当写操作发生时对子位图内的有效数据块进行
标记;当读写操作发生时,检查区间块对应的子位图的有效位是否被
标记,如果被标记则代表该位所指向的数据块包含有效数据,反之是
无效数据。
7.根据权利要求6所述用于虚拟机的虚拟存储映像版本管理方
法,包括:
所述操作类型为版本读操作,通过请求的版本号来确定VSI的目
标版本,遍历版本列表查找指定的区间块和子区间位图,寻址到具体
的物理块;
如果读请求的版本号与当前版本号不相等,则该读请求的目标数
据位于历史版本中,根据版本号遍历版本列表,在LCT备份段中查找
到对应的版本条目。
8.根据权利要求2所述用于虚拟机的虚拟存储映像版本管理方
法,包括:
所述操作类型为创建版本,将当前的版本计数器加一,增加元数
据的新条目,创建VSI新版本。
9.根据权利要求2所述用于虚拟机的虚拟存储映像版本管理方
法,包括:
所述操作类型为删除版本,检查是否存在待删除VSI版本号的时
间顺序的下一个版本号,如果是,将请求删除的VSI版本号删除,否
则,将请求删除的VSI版本号标记为VSI最新版本号,不予删除。
10.根据权利要求1所述用于虚拟机的虚拟存储映像版本管理方
法,包括:
物理磁盘中预留出可配置的存储空间用于保存VSI历史版本,
VSI历史版本占用固定或者容量可变的空间,对于占用容量可变的空
间的大小取决于数据量的更新大小以及版本的更新频率。
11.一种用于虚拟机的虚拟存储映像版本...

【专利技术属性】
技术研发人员:高原全小飞广小明
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1