CN102375695A - 一种磁盘的访问方法及计算机*** - Google Patents

一种磁盘的访问方法及计算机*** Download PDF

Info

Publication number
CN102375695A
CN102375695A CN2010102612396A CN201010261239A CN102375695A CN 102375695 A CN102375695 A CN 102375695A CN 2010102612396 A CN2010102612396 A CN 2010102612396A CN 201010261239 A CN201010261239 A CN 201010261239A CN 102375695 A CN102375695 A CN 102375695A
Authority
CN
China
Prior art keywords
address
file
physical disk
disk address
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010102612396A
Other languages
English (en)
Other versions
CN102375695B (zh
Inventor
李俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201010261239.6A priority Critical patent/CN102375695B/zh
Publication of CN102375695A publication Critical patent/CN102375695A/zh
Application granted granted Critical
Publication of CN102375695B publication Critical patent/CN102375695B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种磁盘的访问方法及计算机***。其中所述方法包括:获得并解析所述客户操作***对磁盘的读写命令,得到所述读写命令对应的第一虚拟磁盘地址;根据预先建立的虚拟磁盘地址与物理磁盘地址之间的对应关系,确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,所述物理磁盘地址是所述增量文件对应的数据部分在物理磁盘中的扇区地址信息,所述虚拟磁盘地址是所述增量文件对应的数据部分在所述虚拟磁盘中的扇区地址信息;根据所述第一物理磁盘地址对所述物理磁盘进行读写操作。按照本发明,能够提高虚拟磁盘的访问性能。

Description

一种磁盘的访问方法及计算机***
技术领域
本发明涉及虚拟机技术领域,具体涉及一种磁盘的访问方法及计算机***。
背景技术
目前流行的对硬盘的虚拟化一般采用QEMU技术实现。QEMU,是由Fabrice Bellard开发的通用开源机器模拟与虚拟化软件。QEMU将映像文件虚拟成块设备提供给客户操作***(Guest OS,Guest Operation System)使用。QCOW(QEMU写时复制,QEMU Copy-On-Write)是QEMU映像格式。这种格式的映像文件支持写时拷贝(Copy-On-Write),支持增量备份,支持快照(Snapshot),支持压缩和加密等功能。
在上述技术方案中,客户操作***看到的磁盘其实并不是真实的物理磁盘设备,而是通过一连串QCOW映像文件映射得到的虚拟磁盘,其中第1个QCOW映像文件作为baseline,第2、3、...、N-1和N个QCOW映像文件依次以前一个QCOW映像文件为父文件而生成,从而较容易地实现了增量备份和还原。图1以现有技术中的Xen虚拟机***为例,示出了基于QCOW映像文件的虚拟磁盘分布示意图。Xen虚拟机***中的伺服操作***(SOS,ServiceOperation System),即domain 0,的物理磁盘分区Domain0分区10中保存有第1~N个QCOW映像文件,这些映像文件被映射成客户操作***的虚拟磁盘。
如图2所示,现有技术中的QCOW映像文件是由文件头部分和数据部分组成的。其中,文件头部分包含了诸如版本、QCOW映像文件大小、父文件路径名、块大小、两级地址表(L1表和L2表)等等信息;数据部分则记录了扇区数据内容。通过两级地址表,QCOW文件***可以实现从虚拟磁盘地址到QCOW映像文件内偏移量的转换。以下结合两级地址表,简单说明现有技术的虚拟磁盘中的寻址方法。
在QCOW2中,硬盘设备的数据内容是以“簇”(cluster)的格式分配的。每个簇包含若干个扇区,每个扇区的大小为512字节。给定一个虚拟磁盘地址(如64位),该地址被分成三个部分,如图3所示:
虚拟磁盘地址的位数为64位(8个字节),其中低12位(第0-11位)代表簇内偏移量,第12-20位代表L2表内偏移量,第21-63位代表L1表内偏移量。
当客户操作***发起对虚拟磁盘的读写请求时,该读写请求首先会被Domain0截获,并由QEMU文件***进行地址转换,从而将Guest OS需要访问的虚拟磁盘地址映射到某一个QCOW映像文件的偏移量,从而从该QCOW映像文件的偏移量处获取所需数据。当然,QCOW映像文件与真实物理扇区的对应关系是由Domain0的文件***负责管理的,Domain0的文件***根据QCOW映像文件的偏移量,完成从文件偏移量到物理磁盘地址的转换。以下结合图3,详细说明虚拟磁盘地址到物理磁盘地址的映射过程:
QEMU文件***获得客户操作***的读写请求对应的虚拟磁盘地址后,根据该虚拟磁盘地址对QCOW映像文件进行索引:
步骤31,根据QCOW映像文件头的l1_table_offset获取该QCOW映像文件的L1表地址;
步骤32,以虚拟磁盘地址的高43位(第21-63位)为偏移量,在L1表中进行索引;
步骤33,根据在L1表中索引到的偏移量,获得L2表地址;
步骤34,在获得L2表地址后,以虚拟磁盘地址的中间9位(第12-20位)为偏移量,在L2表中进行索引;
步骤35,根据在L2表中索引到的偏移量,获得数据部分所在QCOW映像文件地址空间中的簇的地址,这里所述的数据部分是该QCOW映像文件的数据部分;
步骤36,以虚拟磁盘地址的低12位(第0-11位)中的高3位(即第9-11位)为偏移量,在步骤35中获得的簇内进行索引,得到虚拟磁盘地址对应的QCOW映像文件偏移量。
步骤37,最后,再由Domain0文件***(例如ext3)完成QCOW映像文件偏移量到物理扇区的地址转换,最终将虚拟磁盘地址转换为物理磁盘地址。
上述步骤说明了根据虚拟磁盘地址进行索引的过程。索引过程是从最后一个QCOW映像文件开始进行,如果在当前QCOW映像文件没有索引到相关结果,则进一步在当前QCOW映像文件的父文件进行索引。
从以上过程可以看出,在客户操作***发起的磁盘访问请求中,一个虚拟磁盘地址最终转换成真实的物理磁盘地址的过程经历了两次转换:QCOW文件***完成的虚拟磁盘地址到QCOW映像文件偏移量的转换,以及Domain0文件***完成的QCOW映像文件偏移量到物理磁盘地址的转换。显然,过多的地址转换处理会造成了虚拟磁盘访问性能上的损失。
发明内容
本发明所要解决的技术问题是提供一种磁盘的访问方法及计算机***,提高虚拟磁盘的访问性能。
为解决上述技术问题,本发明提供方案如下:
一种磁盘的访问方法,应用于一计算机***中,所述计算机***包括:
硬件平台,所述硬件平台至少包括物理磁盘;
运行在所述硬件平台上的虚拟机管理器;以及,
运行在所述虚拟机管理器上的客户操作***,所述客户操作***包括一虚拟磁盘,所述虚拟磁盘是通过增量文件***的增量文件映射得到的;
所述访问方法包括:
获得并解析所述客户操作***对磁盘的读写命令,得到所述读写命令对应的第一虚拟磁盘地址;
根据预先建立的虚拟磁盘地址与物理磁盘地址之间的对应关系,确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,所述物理磁盘地址是所述增量文件对应的数据部分在物理磁盘中的扇区地址信息,所述虚拟磁盘地址是所述增量文件对应的数据部分在所述虚拟磁盘中的扇区地址信息;
根据所述第一物理磁盘地址对所述物理磁盘进行读写操作。
优选地,上述的访问方法中,还包括:
在创建所述增量文件时,记录所述物理磁盘地址和虚拟磁盘地址,并建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系。
优选地,上述的访问方法中,所述增量文件包括文件头部分,所述对应关系记录在所述文件头部分中。
优选地,上述的访问方法中,
所述建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系是:
在创建所述增量文件时,为所述增量文件对应的数据部分分配所述物理磁盘地址,在所述物理磁盘地址处保存所述增量文件对应的数据部分并在所述文件头部分中的地址表中记录所述物理磁盘地址;
根据所述物理磁盘地址在所述地址表中的偏移量,确定所述物理磁盘地址对应的虚拟磁盘地址。
优选地,上述的访问方法中,
所述确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,包括:
以所述第一虚拟磁盘地址为偏移量,在所述地址表中进行索引,得到所述第一物理磁盘地址。
优选地,上述的访问方法中,
所述增量文件对应的数据部分直接保存在所述物理磁盘地址处,所述增量文件的文件头保存在所述增量文件中。
优选地,上述的访问方法中,
所述增量文件***是QEMU文件***,所述增量文件为仅包括文件头部分的QCOW映像文件。
本发明还提供了一种计算机***,包括:
硬件平台,所述硬件平台至少包括物理磁盘;
运行在所述硬件平台上的虚拟机管理器;以及,
运行在所述虚拟机管理器上的客户操作***,所述客户操作***包括一虚拟磁盘;
所述虚拟机管理器包括:
映射模块,用于将一增量文件***的增量文件映射为所述虚拟磁盘;
解析模块,用于获得并解析客户操作***对磁盘的读写命令,得到所述读写命令对应的第一虚拟磁盘地址;
寻址模块,用于根据预先建立的虚拟磁盘地址与物理磁盘地址之间的对应关系,确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,所述物理磁盘地址是所述增量文件对应的数据部分在物理磁盘中的扇区地址信息,所述虚拟磁盘地址是所述增量文件对应的数据部分在所述虚拟磁盘中的扇区地址信息;
访问模块,用于根据所述第一物理磁盘地址对所述物理磁盘进行读写操作。
优选地,上述的计算机***中,所述虚拟机管理器还包括:
第一拦截模块,用于拦截所述客户操作***对磁盘的读写命令,并将拦截到的读写命令发送给所述解析模块。
优选地,上述的计算机***中,还包括一运行在所述虚拟机管理器上的宿主操作***或服务操作***;
所述宿主操作***或服务操作***包括一第二拦截模块,用于拦截所述客户操作***对磁盘的读写命令,并将拦截到的读写命令发送给所述解析模块。
优选地,上述的计算机***中,所述虚拟机管理器还包括:
创建模块,用于创建所述增量文件,并在创建所述增量文件时,记录所述物理磁盘地址和虚拟磁盘地址,建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系。
优选地,上述的计算机***中,
所述增量文件包括文件头部分,所述对应关系记录在所述文件头部分中;
所述创建模块,进一步用于在创建所述增量文件时,为所述增量文件对应的数据部分分配所述物理磁盘地址,在所述物理磁盘地址处保存所述增量文件对应的数据部分并在所述文件头部分中的地址表中记录所述物理磁盘地址;以及,根据所述物理磁盘地址在所述地址表中的偏移量,确定所述物理磁盘地址对应的虚拟磁盘地址。
优选地,上述的计算机***中,
所述寻址模块,进一步用于以所述第一虚拟磁盘地址为偏移量,在所述地址表中进行索引,得到所述第一物理磁盘地址。
优选地,上述的计算机***中,
所述增量文件对应的数据部分直接保存在所述物理磁盘地址处,所述增量文件的文件头保存在所述增量文件中。
优选地,上述的计算机***中,
所述增量文件***是QEMU文件***,所述增量文件为仅包括文件头部分的QCOW映像文件。
从以上所述可以看出,本发明提供的磁盘的访问方法及计算机***,由于数据部分不再是保存在QCOW映像文件中,而是直接保存在物理磁盘扇区中,增量文件的文件头中记录了数据部分在物理磁盘扇区中的地址,通过索引两级地址表,就可以直接得到数据在物理磁盘中的地址,省去了现有技术中Domain0文件***完成的QCOW映像文件偏移量到物理磁盘地址的转换操作,从而能够提高硬盘虚拟化的性能,改善虚拟磁盘的访问性能。
附图说明
图1为现有技术中的Xen虚拟机***中的虚拟磁盘分布示意图;
图2为现有技术中的QCOW映像文件的组成示意图;
图3为现有技术中的虚拟磁盘地址到物理磁盘地址的映射过程示意图;
图4为本发明实施例所述磁盘的访问方法示意图;
图5为本发明实施例中QCOW映像文件及其对应的数据部分的分布示意图;
图6为本发明实施例中虚拟磁盘地址到物理磁盘地址的映射过程示意图;
图7为本发明实施例所述计算机***的结构示意图。
具体实施方式
本发明实施例提供了一种磁盘的访问方法,通过减少虚拟磁盘地址到物理磁盘地址的转换次数,提高了硬盘虚拟化的性能。本发明实施例所述磁盘的访问方法,应用于一计算机***中,其中所述计算机***包括:
硬件平台,所述硬件平台至少包括物理磁盘;
运行在所述硬件平台上的虚拟机管理器;以及,
运行在所述虚拟机管理器上的客户操作***,所述客户操作***包括一虚拟磁盘,所述虚拟磁盘是通过增量文件***的增量文件映射得到的;
如图4所示,本发明实施例所述磁盘的访问方法,包括以下步骤:
步骤41,获得并解析客户操作***对磁盘的读写命令,得到所述读写命令对应的第一虚拟磁盘地址,所述虚拟磁盘是通过增量文件***的增量文件映射得到的。
这里,预先通过配置一增量文件***,并将所述增量文件***的增量文件映射为所述客户操作***的虚拟磁盘。在为客户操作***创建虚拟磁盘时,映射底层虚拟机的增量文件***的增量文件为客户操作***的虚拟磁盘,其中,所述增量文件***则是安装在真实的物理磁盘中。而客户操作***可以使用自身支持的任意文件***,如文件分配表32(FAT32)、新技术文件***(NTFS)等。本实施例中,所述增量文件***具体是QEMU或者是ZFS文件***,但本发明并不局限于该QEMU或ZFS(Zettabyte File System)文件***,任何其它的增量文件***都适用于本实施例。
这里,客户操作***在需要读写磁盘时,会产生对磁盘的读写命令。由于客户操作***的磁盘是由增量文件***的增量文件映射得到的虚拟磁盘,因此这里的读写命令实际上是对虚拟磁盘的读写命令。上述的客户操作***对磁盘的读写命令,可以由虚拟机管理器直接截获,或者由计算机***中的宿主操作***(HOS,Host Operation System)或伺服操作***(SOS,Service OperationSystem)截获,然后再发送给虚拟机管理器。
步骤42,根据预先建立的虚拟磁盘地址与物理磁盘地址之间的对应关系,确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,所述物理磁盘地址是所述增量文件对应的数据部分在物理磁盘中的扇区地址信息,所述虚拟磁盘地址是所述增量文件对应的数据部分在所述虚拟磁盘中的扇区地址信息。
步骤43,根据所述第一物理磁盘地址对所述物理磁盘进行读写操作。
从以上步骤可以看出,本发明实施例通过预先建立的虚拟磁盘地址与物理磁盘地址之间的对应关系,根据该对应关系,经过一次地址转换,就可以从虚拟磁盘地址直接映射到物理磁盘地址,相对于现有技术,省去了增量文件(如QCOW映像文件)偏移量到物理磁盘地址的转换,从而可以提高硬盘虚拟化的性能,改善虚拟磁盘的访问性能。
本实施例在上述步骤41之前还可以包括:
步骤40,在为客户操作***创建虚拟磁盘时,配置一增量文件***,将所述增量文件***的增量文件映射为所述客户操作***的虚拟磁盘,并建立虚拟磁盘地址与物理磁盘地址之间的对应关系,所述物理磁盘地址是所述增量文件对应的数据部分在物理磁盘中的扇区地址信息,所述虚拟磁盘地址是所述增量文件对应的数据部分在所述虚拟磁盘中的扇区地址信息。
上述步骤40中,在为客户操作***创建虚拟磁盘时,映射底层虚拟机的增量文件***的增量文件为客户操作***的虚拟磁盘,其中,所述增量文件***则是安装在真实的物理磁盘中。而客户操作***可以使用自身支持的任意文件***,如FAT32、NTFS等,但是客户操作***对自身文件***的读写操作都被映射到增量文件。
上述步骤40中,在创建所述增量文件时,记录所述物理磁盘地址和虚拟磁盘地址,并建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系。所述对应关系记录在增量文件的文件头部分,所述建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系是:在创建所述增量文件时,为所述增量文件对应的数据部分分配所述物理磁盘地址,在所述物理磁盘地址处保存所述增量文件对应的数据部分并在所述文件头部分中的地址表中记录所述物理磁盘地址;根据所述物理磁盘地址在所述地址表中的偏移量,确定所述物理磁盘地址对应的虚拟磁盘地址。
上述步骤42中,所述确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,包括:以所述第一虚拟磁盘地址为偏移量,在所述地址表中进行索引,得到所述第一物理磁盘地址。
以下以QEMU文件***的qcow增量文件,对本实施例做进一步的说明。
在采用QEMU文件***时,本实施例对现有技术的QEMU文件***的增量文件-QCOW映像文件进行改进:将现有技术的QCOW映像文件的文件头和数据部分进行了分离,QCOW映像文件只包括有文件头部分,而没有数据部分,从而在Domain0分区中需要保存QCOW文件头。分离后的数据部分则直接保存在物理磁盘扇区中,而非现有技术的QCOW映像文件中。这样,在Domain0分区中只需要保存QCOW映像文件的文件头部分,因此可以极大地缩小Domain0分区的物理容量。QCOW映像文件对应的数据部分保存在客户操作***对应的物理分区中,如图5所示。本实施例中可以通过设置在虚拟机管理器中的扇区管理模块,建立维护扇区管理的机制,进行扇区分配和回收管理,以尽可能减少碎片的数量。
在采用QEMU文件***时,虚拟磁盘地址与物理磁盘地址之间的对应关系保存在qcow映像文件的文件头部分的两级地址表中。与现有技术不同的是,在创建qcow映像文件时,在虚拟磁盘地址对应的两级地址表中的偏移量处保存的的是该qcow映像文件对应的数据部分在物理磁盘中的扇区地址信息(物理磁盘地址),而非现有技术的数据部分在QCOW映像文件偏移量。由于本实施例对qcow映像文件的改变仅涉及数据部分的保存位置和相应的地址表的改变,除此之外,qcow映像文件的文件头部分的其它内容并未做变化,因此本实施例不会影响增量文件的原有功能,写时复制、快照、压缩加密等等功能依然能够与现有技术一样实现。
如图6所示,此时虚拟磁盘地址到物理磁盘地址的映射过程,包括:
步骤61,根据QCOW映像文件头的l1_table_offset获取该QCOW映像文件的L1表地址;
步骤62,以虚拟磁盘地址的高43位(第21-63位)为偏移量,在L1表中进行索引;
步骤63,根据在L1表中索引到的偏移量,获得L2表地址;
步骤64,在获得L2表地址后,以虚拟磁盘地址的中间9位(第12-20位)为偏移量,在L2表中进行索引;
步骤65,根据在L2表中索引到的偏移量,获得数据部分所在物理磁盘中的簇的地址,这里所述的数据部分是QCOW映像文件对应的数据部分;
步骤66,以虚拟磁盘地址的低12位(第0-11位)中的高3位(即第9-11位)为偏移量,在步骤65中获得的簇内进行索引,得到虚拟磁盘地址对应的物理磁盘地址的起始扇区,从而将虚拟磁盘地址转换为物理磁盘地址。
比较图6和图3可以看出,本实施例由于数据部分不再是保存在QCOW映像文件中,而是直接保存在物理磁盘扇区中,增量文件的文件头中记录了数据部分在物理磁盘扇区中的地址,通过索引两级地址表,就可以直接得到数据在物理磁盘中的地址,省去了现有技术中Domain0文件***完成的QCOW映像文件偏移量到物理磁盘地址的转换操作,从而能够提高硬盘虚拟化的性能,改善虚拟磁盘的访问性能。
基于上述磁盘的访问方法,本实施例还提供了一种计算机***,如图7所示,所述计算机***包括:
硬件平台,所述硬件平台至少包括物理磁盘,还可以包括CPU和内存等;
运行在所述硬件平台上的虚拟机管理器;以及,
运行在所述虚拟机管理器上的客户操作***,所述客户操作***包括一虚拟磁盘;
所述虚拟机管理器包括:
映射模块,用于将一增量文件***的增量文件映射为所述虚拟磁盘;
拦截模块,用于获得并解析客户操作***对磁盘的读写命令,得到所述读写命令对应的第一虚拟磁盘地址;
寻址模块,用于根据预先建立的虚拟磁盘地址与物理磁盘地址之间的对应关系,确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,所述物理磁盘地址是所述增量文件对应的数据部分在物理磁盘中的扇区地址信息,所述虚拟磁盘地址是所述增量文件对应的数据部分在所述虚拟磁盘中的扇区地址信息;
访问模块,用于根据所述第一物理磁盘地址对所述物理磁盘进行读写操作。
作为一个优选实施例,可以由虚拟机管理器直接拦截所述客户操作***对磁盘的读写命令,此时,所述虚拟机管理器还包括一第一拦截模块,用于拦截所述客户操作***对磁盘的读写命令,并将拦截到的读写命令发送给所述解析模块。
作为另一个优选实施例,所述计算机***还包括有运行在所述虚拟机管理器上的宿主操作***或服务操作***,此时可以由宿主操作***或服务操作***拦截所述客户操作***对磁盘的读写命令,然后再发送给虚拟机管理器。在这种情况下,所述宿主操作***或服务操作***包括一第二拦截模块,用于拦截所述客户操作***对磁盘的读写命令,并将拦截到的读写命令发送给所述虚拟机管理器的解析模块。
这里,上述虚拟机管理器还包括一创建模块,用于创建所述增量文件,并在创建所述增量文件时,记录所述物理磁盘地址和虚拟磁盘地址,建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系。具体的,所述增量文件包括文件头部分,所述对应关系记录在所述文件头部分中。
优选地,所述创建模块,进一步用于在创建所述增量文件时,为所述增量文件对应的数据部分分配所述物理磁盘地址,在所述物理磁盘地址处保存所述增量文件对应的数据部分并在所述文件头部分中的地址表中记录所述物理磁盘地址;以及,根据所述物理磁盘地址在所述地址表中的偏移量,确定所述物理磁盘地址对应的虚拟磁盘地址。
所述寻址模块,进一步用于以所述第一虚拟磁盘地址为偏移量,在所述地址表中进行索引,得到所述第一物理磁盘地址。
本实施例中,优选地,所述增量文件对应的数据部分直接保存在所述物理磁盘地址处,所述增量文件的文件头保存在所述增量文件中。所述增量文件***具体是QEMU文件***,所述增量文件为仅包括文件头部分的QCOW映像文件。
以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (15)

1.一种磁盘的访问方法,应用于一计算机***中,所述计算机***包括:
硬件平台,所述硬件平台至少包括物理磁盘;
运行在所述硬件平台上的虚拟机管理器;以及,
运行在所述虚拟机管理器上的客户操作***,所述客户操作***包括一虚拟磁盘,所述虚拟磁盘是通过增量文件***的增量文件映射得到的;
其特征在于,所述访问方法包括:
获得并解析所述客户操作***对磁盘的读写命令,得到所述读写命令对应的第一虚拟磁盘地址;
根据预先建立的虚拟磁盘地址与物理磁盘地址之间的对应关系,确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,所述物理磁盘地址是所述增量文件对应的数据部分在物理磁盘中的扇区地址信息,所述虚拟磁盘地址是所述增量文件对应的数据部分在所述虚拟磁盘中的扇区地址信息;
根据所述第一物理磁盘地址对所述物理磁盘进行读写操作。
2.如权利要求1所述的访问方法,其特征在于,还包括:
在创建所述增量文件时,记录所述物理磁盘地址和虚拟磁盘地址,并建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系。
3.如权利要求1所述的访问方法,其特征在于,所述增量文件包括文件头部分,所述对应关系记录在所述文件头部分中。
4.如权利要求2所述的访问方法,其特征在于,
所述建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系是:
在创建所述增量文件时,为所述增量文件对应的数据部分分配所述物理磁盘地址,在所述物理磁盘地址处保存所述增量文件对应的数据部分并在所述文件头部分中的地址表中记录所述物理磁盘地址;
根据所述物理磁盘地址在所述地址表中的偏移量,确定所述物理磁盘地址对应的虚拟磁盘地址。
5.如权利要求4所述的访问方法,其特征在于,
所述确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,包括:
以所述第一虚拟磁盘地址为偏移量,在所述地址表中进行索引,得到所述第一物理磁盘地址。
6.如权利要求4所述的访问方法,其特征在于,
所述增量文件对应的数据部分直接保存在所述物理磁盘地址处,所述增量文件的文件头保存在所述增量文件中。
7.如权利要求1所述的访问方法,其特征在于,
所述增量文件***是QEMU文件***,所述增量文件为仅包括文件头部分的QCOW映像文件。
8.一种计算机***,其特征在于,包括:
硬件平台,所述硬件平台至少包括物理磁盘;
运行在所述硬件平台上的虚拟机管理器;以及,
运行在所述虚拟机管理器上的客户操作***,所述客户操作***包括一虚拟磁盘;
所述虚拟机管理器包括:
映射模块,用于将一增量文件***的增量文件映射为所述虚拟磁盘;
解析模块,用于获得并解析客户操作***对磁盘的读写命令,得到所述读写命令对应的第一虚拟磁盘地址;
寻址模块,用于根据预先建立的虚拟磁盘地址与物理磁盘地址之间的对应关系,确定所述第一虚拟磁盘地址对应的第一物理磁盘地址,所述物理磁盘地址是所述增量文件对应的数据部分在物理磁盘中的扇区地址信息,所述虚拟磁盘地址是所述增量文件对应的数据部分在所述虚拟磁盘中的扇区地址信息;
访问模块,用于根据所述第一物理磁盘地址对所述物理磁盘进行读写操作。
9.如权利要求8所述的计算机***,其特征在于,所述虚拟机管理器还包括:
第一拦截模块,用于拦截所述客户操作***对磁盘的读写命令,并将拦截到的读写命令发送给所述解析模块。
10.如权利要求8所述的计算机***,其特征在于,还包括一运行在所述虚拟机管理器上的宿主操作***或服务操作***;
所述宿主操作***或服务操作***包括一第二拦截模块,用于拦截所述客户操作***对磁盘的读写命令,并将拦截到的读写命令发送给所述解析模块。
11.如权利要求8所述的计算机***,其特征在于,所述虚拟机管理器还包括:
创建模块,用于创建所述增量文件,并在创建所述增量文件时,记录所述物理磁盘地址和虚拟磁盘地址,建立所述物理磁盘地址和虚拟磁盘地址之间的对应关系。
12.如权利要求11所述的计算机***,其特征在于,
所述增量文件包括文件头部分,所述对应关系记录在所述文件头部分中;
所述创建模块,进一步用于在创建所述增量文件时,为所述增量文件对应的数据部分分配所述物理磁盘地址,在所述物理磁盘地址处保存所述增量文件对应的数据部分并在所述文件头部分中的地址表中记录所述物理磁盘地址;以及,根据所述物理磁盘地址在所述地址表中的偏移量,确定所述物理磁盘地址对应的虚拟磁盘地址。
13.如权利要求12所述的计算机***,其特征在于,
所述寻址模块,进一步用于以所述第一虚拟磁盘地址为偏移量,在所述地址表中进行索引,得到所述第一物理磁盘地址。
14.如权利要求12所述的计算机***,其特征在于,
所述增量文件对应的数据部分直接保存在所述物理磁盘地址处,所述增量文件的文件头保存在所述增量文件中。
15.如权利要求8所述的计算机***,其特征在于,
所述增量文件***是QEMU文件***,所述增量文件为仅包括文件头部分的QCOW映像文件。
CN201010261239.6A 2010-08-23 2010-08-23 一种磁盘的访问方法及计算机*** Active CN102375695B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010261239.6A CN102375695B (zh) 2010-08-23 2010-08-23 一种磁盘的访问方法及计算机***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010261239.6A CN102375695B (zh) 2010-08-23 2010-08-23 一种磁盘的访问方法及计算机***

Publications (2)

Publication Number Publication Date
CN102375695A true CN102375695A (zh) 2012-03-14
CN102375695B CN102375695B (zh) 2015-09-23

Family

ID=45794353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010261239.6A Active CN102375695B (zh) 2010-08-23 2010-08-23 一种磁盘的访问方法及计算机***

Country Status (1)

Country Link
CN (1) CN102375695B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461685A (zh) * 2014-11-19 2015-03-25 华为技术有限公司 虚拟机处理方法和虚拟计算机***
CN104598170A (zh) * 2015-01-30 2015-05-06 华为技术有限公司 确定读写路径的方法和装置
CN105468454A (zh) * 2015-10-21 2016-04-06 北京汉柏科技有限公司 基于qcow2的虚拟磁盘使用空间的计算方法、虚拟设备
CN105511938A (zh) * 2015-11-23 2016-04-20 国云科技股份有限公司 一种虚拟磁盘构建方法
CN106777288A (zh) * 2016-12-29 2017-05-31 北京安天网络安全技术有限公司 一种快速拆分虚拟化磁盘镜像的***及方法
CN107832011A (zh) * 2017-11-02 2018-03-23 郑州云海信息技术有限公司 一种数据存储方法、装置、设备及计算机可读存储介质
CN108228076A (zh) * 2016-12-14 2018-06-29 华为技术有限公司 访问磁盘的方法和主机
WO2018176911A1 (zh) * 2017-03-31 2018-10-04 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
CN109298894A (zh) * 2018-09-26 2019-02-01 四川巧夺天工信息安全智能设备有限公司 一种提取qcow镜像文件的方法
CN111367472A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 虚拟化方法和装置
CN114296641A (zh) * 2021-12-14 2022-04-08 北京欧珀通信有限公司 增量文件传输方法、装置、电子设备及可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107247618B (zh) * 2017-05-13 2021-01-15 成都长天信息技术有限公司 一种基于指令外部获取架构下的磁盘重定向方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105737A (zh) * 2006-07-11 2008-01-16 任永坚 存储介质处理方法、***及数据读写操作方法、***
US7437537B2 (en) * 2005-02-17 2008-10-14 Qualcomm Incorporated Methods and apparatus for predicting unaligned memory access
CN101770410A (zh) * 2009-01-07 2010-07-07 联想(北京)有限公司 基于客户操作***的***还原方法、虚拟机管理器及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437537B2 (en) * 2005-02-17 2008-10-14 Qualcomm Incorporated Methods and apparatus for predicting unaligned memory access
CN101105737A (zh) * 2006-07-11 2008-01-16 任永坚 存储介质处理方法、***及数据读写操作方法、***
CN101770410A (zh) * 2009-01-07 2010-07-07 联想(北京)有限公司 基于客户操作***的***还原方法、虚拟机管理器及***

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461685A (zh) * 2014-11-19 2015-03-25 华为技术有限公司 虚拟机处理方法和虚拟计算机***
WO2016078420A1 (zh) * 2014-11-19 2016-05-26 华为技术有限公司 虚拟机处理方法和虚拟计算机***
CN104461685B (zh) * 2014-11-19 2017-09-29 华为技术有限公司 虚拟机处理方法和虚拟计算机***
CN104598170A (zh) * 2015-01-30 2015-05-06 华为技术有限公司 确定读写路径的方法和装置
WO2016119322A1 (zh) * 2015-01-30 2016-08-04 华为技术有限公司 确定读写路径的方法和装置
US10642539B2 (en) 2015-01-30 2020-05-05 Huawei Technologies Co., Ltd. Read/write path determining method and apparatus
CN105468454A (zh) * 2015-10-21 2016-04-06 北京汉柏科技有限公司 基于qcow2的虚拟磁盘使用空间的计算方法、虚拟设备
CN105511938A (zh) * 2015-11-23 2016-04-20 国云科技股份有限公司 一种虚拟磁盘构建方法
CN108228076A (zh) * 2016-12-14 2018-06-29 华为技术有限公司 访问磁盘的方法和主机
US11321013B2 (en) 2016-12-14 2022-05-03 Huawei Technologies Co., Ltd. Disk access method and host
CN108228076B (zh) * 2016-12-14 2020-10-16 华为技术有限公司 访问磁盘的方法和主机
CN106777288B (zh) * 2016-12-29 2019-09-27 北京安天网络安全技术有限公司 一种快速拆分虚拟化磁盘镜像的***及方法
CN106777288A (zh) * 2016-12-29 2017-05-31 北京安天网络安全技术有限公司 一种快速拆分虚拟化磁盘镜像的***及方法
WO2018176911A1 (zh) * 2017-03-31 2018-10-04 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
CN108664523A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
CN108664523B (zh) * 2017-03-31 2021-08-13 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
US11256445B2 (en) 2017-03-31 2022-02-22 Huawei Technologies Co., Ltd. Virtual disk file format conversion method and apparatus
CN107832011A (zh) * 2017-11-02 2018-03-23 郑州云海信息技术有限公司 一种数据存储方法、装置、设备及计算机可读存储介质
CN109298894A (zh) * 2018-09-26 2019-02-01 四川巧夺天工信息安全智能设备有限公司 一种提取qcow镜像文件的方法
CN109298894B (zh) * 2018-09-26 2022-03-04 四川巧夺天工信息安全智能设备有限公司 一种提取qcow镜像文件的方法
CN111367472A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 虚拟化方法和装置
CN114296641A (zh) * 2021-12-14 2022-04-08 北京欧珀通信有限公司 增量文件传输方法、装置、电子设备及可读存储介质
CN114296641B (zh) * 2021-12-14 2023-09-19 北京欧珀通信有限公司 增量文件传输方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN102375695B (zh) 2015-09-23

Similar Documents

Publication Publication Date Title
CN102375695B (zh) 一种磁盘的访问方法及计算机***
US9256474B2 (en) Automatically aligning virtual blocks to physical blocks
US9038066B2 (en) In-place snapshots of a virtual disk configured with sparse extent
US8924664B2 (en) Logical object deletion
US8805788B2 (en) Transactional virtual disk with differential snapshots
US8683156B2 (en) Format-preserving deduplication of data
US7546307B2 (en) Virtual block storage to filesystem translator
US9348842B2 (en) Virtualized data storage system optimizations
US8200924B2 (en) Emulated storage system
US8555278B2 (en) Method and system for migrating a selected set of virtual machines between volumes
US7631158B2 (en) Disk snapshot method using a copy-on-write table in a user space
US20120158647A1 (en) Block Compression in File System
US9015417B2 (en) Deduplication-aware page cache
US20110022811A1 (en) Information backup/restoration processing apparatus and information backup/restoration processing system
JP5314158B2 (ja) ダイナミックストレージティアリング構成に基づいてデータをプレステージングする方法、及び、コンピュータ可読媒体
US9558074B2 (en) Data replica control
US7809908B2 (en) Disk snapshot acquisition method
US9922039B1 (en) Techniques for mitigating effects of small unaligned writes
US9940331B1 (en) Proactive scavenging of file system snaps
US20070288717A1 (en) System and method for expandable non-volatile storage devices
US20050165853A1 (en) Method and apparatus for localized protected imaging of a file system
US11263090B2 (en) System and method for data packing into blobs for efficient storage
US9158469B2 (en) Flash based memory comprising a Flash translation layer and method for storing a file therein
US11899542B2 (en) File data access method, apparatus, and computer-readable storage medium
CN106709014B (zh) 一种文件***转换方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant