CN102375695B - 一种磁盘的访问方法及计算机系统 - Google Patents

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

Info

Publication number
CN102375695B
CN102375695B CN201010261239.6A CN201010261239A CN102375695B CN 102375695 B CN102375695 B CN 102375695B CN 201010261239 A CN201010261239 A CN 201010261239A CN 102375695 B CN102375695 B CN 102375695B
Authority
CN
China
Prior art keywords
address
disk address
physical disk
file
delta file
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.)
Active
Application number
CN201010261239.6A
Other languages
English (en)
Other versions
CN102375695A (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

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 (11)

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

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

Families Citing this family (11)

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

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 (1)

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

Also Published As

Publication number Publication date
CN102375695A (zh) 2012-03-14

Similar Documents

Publication Publication Date Title
CN102375695B (zh) 一种磁盘的访问方法及计算机系统
US9038066B2 (en) In-place snapshots of a virtual disk configured with sparse extent
US8635429B1 (en) Method and apparatus for mapping virtual drives
US9256474B2 (en) Automatically aligning virtual blocks to physical blocks
US8095577B1 (en) Managing metadata
US7941632B2 (en) Storage virtualization system with dynamic allocation of physical storage space
US8880797B2 (en) De-duplication in a virtualized server environment
US8924664B2 (en) Logical object deletion
US20180267856A1 (en) Distributed storage system, data storage method, and software program
US20120158647A1 (en) Block Compression in File System
US8527720B2 (en) Methods of capturing and naming dynamic storage tiering configurations to support data pre-staging
US7631158B2 (en) Disk snapshot method using a copy-on-write table in a user space
US20190129971A1 (en) Storage system and method of controlling storage system
US7809908B2 (en) Disk snapshot acquisition method
JP6450598B2 (ja) 情報処理装置、情報処理方法およびプログラム
US9922039B1 (en) Techniques for mitigating effects of small unaligned writes
US20050165853A1 (en) Method and apparatus for localized protected imaging of a file system
US9256373B1 (en) Invulnerable data movement for file system upgrade
US11544159B2 (en) Techniques for managing context information for a storage device while maintaining responsiveness
CN102467352A (zh) 减少存储系统请求的响应延迟
US20070288717A1 (en) System and method for expandable non-volatile storage devices
US9158469B2 (en) Flash based memory comprising a Flash translation layer and method for storing a file therein
US9009440B2 (en) Adjustment of data storage capacity provided by a storage system
CN106709014B (zh) 一种文件系统转换方法及装置
US20150019807A1 (en) Linearized dynamic storage pool

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