虚拟磁盘存储空间的动态分配方法和装置制造方法及图纸

技术编号:6040779 阅读:413 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了虚拟磁盘存储空间的动态分配方法和装置,虚拟磁盘依托物理磁盘上的磁盘文件实现,该磁盘文件中的用户数据存储区的长度初始化为0,不占用物理磁盘上的存储空间,只在有数据写入时,才根据待写入数据的实际大小,动态扩展用户数据存储区的长度,这样使得虚拟磁盘没有数据写入时不会过多占用物理磁盘上的存储空间,提高了磁盘资源的利用率。

【技术实现步骤摘要】

本专利技术涉及虚拟磁盘
,特别涉及虚拟磁盘空间的动态分配方法和装置。
技术介绍
虚拟磁盘是目前比较常见的数据组织和管理方式。虚拟磁盘以物理存储设备为基 础,从物理存储设备中划分出一块存储空间作为虚拟磁盘的存储空间,并在用户界面上为 虚拟磁盘提供一个与物理磁盘相同的盘符。从用户角度来说,使用虚拟磁盘与物理磁盘没 有区别,因此虚拟磁盘的价值在于,在保持传统操作方法不变的前提下,提供附加的数据管 理手段。目前为虚拟磁盘分配的存储空间都是固定大小,这存在以下缺陷如果为虚拟磁盘分配的存储空间过大,则虚拟磁盘所依托的物理存储设备上的剩 余空间就很小,这可能妨碍某些基于该物理存储设备的软件的正常使用,另一方面,如果虚 拟磁盘的使用率不高,会使得分配给该虚拟磁盘的存储空间处于闲置状态,浪费了存储资 源。
技术实现思路
本专利技术提供一种虚拟磁盘存储空间的动态分配方法,依据需要写入虚拟磁盘中的 数据的大小,动态的为虚拟磁盘分配相应大小的存储空间。本专利技术提供一种虚拟磁盘存储空间的动态分配装置,依据需要写入虚拟磁盘中的 数据的大小,动态的为虚拟磁盘分配相应大小的存储空间。本专利技术的技术方案是这样实现的一种虚拟磁盘存储空间的动态分配方法,关键在于,在物理磁盘中创建磁盘文件, 该磁盘文件中包括长度初始化为0的用户数据存储区;该方法还包括向虚拟磁盘中写入数据的步骤,包括Al、根据待写入数据的扇区号,按照预定映射算法计算存储块序号;Bi、判断所述存储块序号对应的存储块是否已分配到所述用户数据存储区,如果 不是,执行步骤Cl,否则执行步骤Dl ;Cl、将磁盘文件的用户数据存储区扩大与所述存储块序号对应的存储块相同大小 的区域;D1、将待写入数据写入所述存储块序号对应的存储块中;从虚拟磁盘中读出数据的步骤,包括A2、根据待读出数据的扇区号,按照预定映射算法计算存储块序号;B2、判断所述存储块序号对应的存储块是否已分配到所述用户数据存储区、且所 述待读出数据的扇区号对应的扇区中是否存在数据,如果是,执行步骤C2,否则执行步骤 D2 ;C2、从所述存储块序号对应的存储块中读出待读出数据,并结束流程;D2、返回全0数据。一种虚拟磁盘存储空间的动态分配装置,关键在于,该装置包括磁盘文件创建模块,用于在物理磁盘中创建磁盘文件,该磁盘文件中包括长度初 始化为0的用户数据存储区;数据写入模块,用于根据待写入数据的扇区号、按照预定映射算法计算存储块序 号;判断自身计算出的存储块序号对应的存储块是否已分配到用户数据存储区,如果不是, 将磁盘文件的用户数据存储区扩大与所述存储块序号对应的存储块相同大小的区域,再将 待写入数据写入自身计算出的存储块序号对应的存储块中,否则直接将待写入数据写入自 身计算出的存储块序号对应的存储块中;数据读出模块,用于根据待读出数据的扇区号,按照预定映射算法计算存储块序 号;判断自身计算出的存储块序号对应的存储块是否已分配到用户数据存储区、且所述待 读出数据的扇区号对应的扇区中是否存在数据,如果是,从自身计算出的存储块序号对应 的存储块中读出待读出数据,否则返回全0数据。可见,在本专利技术虚拟磁盘存储空间的动态分配方法和装置中,虚拟磁盘依托物理 磁盘上的磁盘文件实现,该磁盘文件中的用户数据存储区的长度初始化为0,不占用物理磁 盘上的存储空间,只在有数据写入时,才根据待写入数据的实际大小,动态扩展用户数据存 储区的长度,这样使得虚拟磁盘没有数据写入时不会过多占用物理磁盘上的存储空间,提 高了磁盘资源的利用率。附图说明图1为本专利技术虚拟磁盘存储空间的动态分配装置与文件系统的关系示意图;图加为本专利技术中的虚拟磁盘存储空间的动态分配方法中向虚拟磁盘写入数据的 流程图;图2b为本专利技术中的虚拟磁盘存储空间的动态分配方法中从虚拟磁盘读出数据的 流程图;图3为本专利技术实施例中创建虚拟磁盘的方法流程图;图4为本专利技术实施例中磁盘文件的结构示意图;图5为本专利技术实施例中身份验证数据及数据密钥信息的生成流程图;图6为本专利技术实施例中向虚拟磁盘中写入数据的方法流程图;图7为本专利技术实施例中打开虚拟磁盘的流程图;图8为本专利技术实施例中从虚拟磁盘中读出数据的方法流程图;图9为本专利技术中的虚拟磁盘存储空间的动态分配装置的结构示意图。具体实施例方式为使本专利技术的目的和优点更加清楚,下面结合附图和实施例对本专利技术作进一步的 详细说明。在本专利技术中,以存储块作为虚拟磁盘的数据组织形式,每个存储块中包括相同数 量的扇区,还包括用于校验的附加信息。虚拟磁盘中的每个存储块具有存储块序号,所有存 储块中的扇区统一编号,即每个扇区还具有扇区号。上述扇区号和存储块序号之间具有映射关系。在上述物理磁盘中创建磁盘文件,该磁盘文件中包括长度初始化为0的用户数据 存储区。图1为本专利技术中虚拟磁盘与文件系统的关系示意图。本专利技术中的虚拟磁盘存储空间的动态分配方法包括向虚拟磁盘中写入数据的步 骤和从虚拟磁盘中读出数据的步骤,图加中为上述向虚拟磁盘中写入数据的流程图,图2b 为上述从虚拟磁盘中读出数据的流程图。上述向虚拟磁盘中写入数据的步骤包括步骤201 根据待写入数据的扇区号,按照预定映射算法计算存储块序号。步骤202 判断计算出的存储块序号对应的存储块是否已分配到用户数据存储 区,如果不是,执行步骤203,否则执行步骤204。步骤203 将磁盘文件的用户数据存储区扩大与所述存储块序号对应的存储块相 同大小的区域。步骤204 将待写入的数据写入计算出的存储块序号对应的存储块中。上述从虚拟磁盘中读出数据的步骤包括步骤201’ 根据待读出数据的扇区号,按照预定映射算法计算存储块序号。步骤202’ 判断计算出的存储块序号对应的存储块是否已分配到用户数据存储 区、且待读出数据的扇区号对应的扇区中是否存在数据,如果是,执行步骤203’,否则执行 步骤204,。步骤203’从计算出的存储块序号对应的存储块中读出待读出数据,并结束流程。步骤204,返回全0数据。可见,在本专利技术虚拟磁盘存储空间的动态分配方法中,虚拟磁盘依托物理磁盘上 的磁盘文件实现,该磁盘文件中的用户数据存储区的长度初始化为0,不占用物理磁盘上的 存储空间,只在有数据写入时,才根据待写入数据的实际大小,动态扩展用户数据存储区的 长度,这样使得虚拟磁盘没有数据写入时不会过多占用物理磁盘上的存储空间,提高了磁 盘资源的利用率。下面给出本专利技术方法的一个具体实施例,在本实施例中,磁盘文件中的用户数据 存储区占用的存储空间不仅能够随着写入数据量的增加而动态的扩大,且同时还能支持数 据加密。虚拟磁盘的每个存储块中,除了有效数据的写入区域外,还包括比特位图(BITMAP) 数据块,BITMAP中的每个比特位的取值指示所在存储块的一个扇区中是否包含有效数据, 例如将比特位置为0时指示对应扇区中不包含有效数据,将比特位置为1时指示对应扇区 中包含有效数据。上述BITMAP数据块中的比特位与所在存储块中的扇区的对应关系可以 使用下述公式确定ByteIndex = SectorIndexInBlock/8 ;BitIndex = ByteIndexInBlock % 8。其 中,kntoHndexInBlock表示待写入数据或待读出数据的扇区号在存储块中的特定编号, 例如,如上本文档来自技高网...

【技术保护点】
一种虚拟磁盘存储空间的动态分配方法,其特征在于,在物理磁盘中创建磁盘文件,该磁盘文件中包括长度初始化为0的用户数据存储区;该方法还包括:向虚拟磁盘中写入数据的步骤,包括:A1、根据待写入数据的扇区号,按照预定映射算法计算存储块序号;B1、判断所述存储块序号对应的存储块是否已分配到所述用户数据存储区,如果不是,执行步骤C1,否则执行步骤D1;C1、将磁盘文件的用户数据存储区扩大与所述存储块序号对应的存储块相同大小的区域;D1、将待写入数据写入所述存储块序号对应的存储块中;从虚拟磁盘中读出数据的步骤,包括:A2、根据待读出数据的扇区号,按照预定映射算法计算存储块序号;B2、判断所述存储块序号对应的存储块是否已分配到所述用户数据存储区、且所述待读出数据的扇区号对应的扇区中是否存在数据,如果是,执行步骤C2,否则执行步骤D2;C2、从所述存储块序号对应的存储块中读出待读出数据,并结束流程;D2、返回全0数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙吉平韩勇
申请(专利权)人:北京深思洛克软件技术股份有限公司
类型:发明
国别省市:11

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

1