CN101419535B - 虚拟机的分布式虚拟磁盘系统 - Google Patents

虚拟机的分布式虚拟磁盘系统 Download PDF

Info

Publication number
CN101419535B
CN101419535B CN200810226649XA CN200810226649A CN101419535B CN 101419535 B CN101419535 B CN 101419535B CN 200810226649X A CN200810226649X A CN 200810226649XA CN 200810226649 A CN200810226649 A CN 200810226649A CN 101419535 B CN101419535 B CN 101419535B
Authority
CN
China
Prior art keywords
data
disk
request
virtual machine
user
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.)
Expired - Fee Related
Application number
CN200810226649XA
Other languages
English (en)
Other versions
CN101419535A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN200810226649XA priority Critical patent/CN101419535B/zh
Publication of CN101419535A publication Critical patent/CN101419535A/zh
Application granted granted Critical
Publication of CN101419535B publication Critical patent/CN101419535B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

一种通过为虚拟机构建存储的系统,将位于网络上服务器中的存储设备分配给多个运行在各自终端主机上的虚拟机,作为它们的虚拟磁盘。虚拟机运行的主机上提供一个虚拟磁盘驱动和数据转发守护进程,将来自虚拟机的I/O请求转发给提供实际数据的服务器。服务器上维护虚拟机的系统映像,并响应来自虚拟机的I/O请求。系统映像的维护采用一种映射机制,实现物理存储的数据到虚拟机所需系统映像之间的转化。为了提高性能,在终端提供了缓存和预取功能,减少网络上数据传输量。同时,利用同步机制保证缓存和服务器系统映像之间的一致性。

Description

虚拟机的分布式虚拟磁盘系统
技术领域
本发明涉及计算机科学中的虚拟机领域,特别是涉及虚拟机中利用网络来实现磁盘数据的分布式存储机制。
背景技术
虚拟机是一种物理机器的软件实现,能够使程序在虚拟机上像在实际主机上一样运行。位于主机硬件和操作系统之间的系统级虚拟机软件能够提供一个完全的虚拟硬件资源环境,在这个虚拟硬件环境上运行的客户操作系统所面对的不是实际的物理硬件设备。因此,实际物理设备的实现对操作系统来说是透明的,可以用不同的方法实现虚拟机的物理设备来给操作系统提供统一的虚拟硬件环境。
通过网络为虚拟机提供虚拟存储在实际应用中得到了广泛的应用,本发明把通过网络向虚拟机提供存储的方式称之为虚拟磁盘,因为在虚拟机上的客户操作系统看来,这种存储方式就像是连接在本机设备上的磁盘一样。当前,利用已有的网络存储协议,为虚拟机提供存储的具体实施方案主要有:
(1)利用NBD(Network Block Device)为虚拟机提供网络存储
在Linux系统中,NBD是一个设备节点,它的数据内容由位于网络上的服务器提供,所以NBD是用来访问位于远程主机上实际物理存储设备的本地设备节点。NBD由两部分构成,在NBD工作的客户主机上,NBD内核模块控制设备。客户主机上所有对NBD设备节点的访问请求被这个模块转发到实际存储数据的服务器主机。另一部分运行在提供物理存储的服务器上,与NBD交互提供对物理存储设备的访问。
(2)利用iSCSI(internet SCSI)为虚拟机提供网络存储
iSCSI协议中,客户端将SCSI命令发送给位于远程服务器上的存储设备,在IP网上通过两台主机协商交换SCSI命令来获取和同步数据。因此,iSCSI在广域网上模拟了一个高性能的本地存储总线。利用iSCSI协议,在虚拟机中使从网络上获取数据的过程对运行在虚拟机上面的操作系统透明,从而为其提供网络存储服务。
(3)利用网络文件系统为虚拟机提供网络存储
网络文件系统是一种在网络上支持文件共享的文件系统,如NFS(Network File System),AFS(Andrew File System)等。对用户而言,在终端计算机上通过网络访问文件,这些网络存储设备就像是连接在本地的磁盘一样。因此,网络文件系统对应用程序来说是透明的,应用程序不知道操作的是本地文件还是远程的文件,由网络文件系统来负责定位文件并进行传输。
根据所面对的数据类型不同,(1)和(2)是基于块的网络存储方案。它们操作的数据是磁盘上的一个数据块序列,不关注这些数据块序列上的逻辑组织结构。因此实现方案跟上层的文件系统类型无关。(3)是基于文件系统的网络存储方案,它操作的数据对象是文件。
这些网络存储方式都提供了多用户并发情况下文件共享的通用功能,能够满足通过网络为虚拟机提供存储的一般性需求。但由于网络存储需求的多样性和通过网络为虚拟机提供虚拟磁盘的特殊需求,在实际应用中,往往需要将服务器上存储设备不同的部分提供给特定的虚拟机作为其实际的存储设备。此外,为了增加服务器端数据管理的灵活性,往往需要在将数据提供给虚拟机之前做一些处理,从而获得一些特殊的功能。因此,本申请针对这些特殊需求,发明了一种通过网络为虚拟机提供虚拟磁盘的方法。
发明内容
本发明以通过网络为虚拟机提供存储为目标,设计并实现了一种满足虚拟机存储特殊需求的虚拟磁盘。具体包括:
1.在虚拟机运行的终端上提供一个负责数据转发的虚拟磁盘驱动和守护进程。这个守护进程从虚拟机获得数据请求,并将这个请求转发给提供数据存储服务的服务器。从服务器获得请求的数据以后,转发给请求数据的虚拟机。为了提高性能,对从服务器获得的数据进行缓存。同时,为了减少数据请求时延,该进程具有“预取”功能。这样,即使虚拟机没有请求,守护进程也从服务器获取未被缓存的数据并进行缓存,以备将来虚拟机请求时直接从缓存中获取数据。
2.服务器端虚拟磁盘映像维护及表示。服务器端根据虚拟机的用户身份为每个虚拟机组织并管理它的实际物理存储。在服务器上,一个虚拟机的磁盘被分成若干部分,每个部分是一个磁盘映像文件。服务器端通过用户身份、请求数据的地址和磁盘类型进行寻址,定位是哪个文件中的哪个数据块,然后将物理存储的数据发送给请求方。因此,服务器提供给虚拟机存储设备的视图是一个统一的数据磁盘,但实际上物理存储的方式和这种视图截然不同。
3.磁盘映像的传输和同步。在虚拟机和服务器之间,数据以块为单位进行传输。这样,与实际磁盘的文件系统无关。本发明采用位图机制在虚拟机运行终端的缓存和服务器的物理存储设备之间进行数据同步,以保证经过修改的数据被写回到服务器上,从而保证每一次虚拟机获取数据的一致性。
与现有技术相比较,本发明的创新之处在于:根据虚拟机的特殊存储需求,设计针对性很强的网络存储方案,更好地满足通过网络为虚拟机提供存储的需求。另外,在服务器端增加了虚拟磁盘映射机制,来达到节省存储空间、方便系统维护的目的。具体体现在:
1.本发明中,为每个虚拟机分配一片独占的存储空间,对他们共享的存储空间只允许读。现有的网络存储技术目的是为了实现网络上存储的共享,因此,同一片存储区域允许多个实例并发访问。但对于虚拟机来讲,它的存储空间就是它的系统数据磁盘,读写只能由它上面的客户操作系统进行。如果被别的虚拟机修改后,那么会导致系统数据的不一致,严重的话会导致运行在虚拟机上的客户操作系统崩溃。
2.本发明中对每个虚拟机的存储空间进行分块,可以在不同的块上有不同的访问权限和操作方式。通过映射的机制,服务器将这些块整合成一个统一的虚拟磁盘,并提供给虚拟机作为它的虚拟磁盘。
附图说明
图1为虚拟磁盘的体系结构;图2为虚拟磁盘终端I/O驱动处理逻辑;图3为虚拟磁盘映像映射机制(在图3中,VSI表示“虚拟磁盘映像”;S表示“系统映像文件”;Ui表示“用户映像文件”;Ai表示“辅助映像文件”;Si表示“虚拟系统映像”);图4为位图-块状态记录方法;图5为数据传输交互命令格式。
具体实施方式
请参阅图1,本发明由两部分构成:(1)在终端,如图1(a),以虚拟磁盘驱动为核心,为虚拟机提供虚拟磁盘I/O请求处理服务。(2)在服务器端,如图1(b),是一个层次化结构的磁盘映像处理方法,为虚拟机在网络上提供实际的存储服务。图中的系统映像或磁盘映像,是一个系统中以文件形式存在的所有数据的集合,其中包括操作系统或应用程序的文件、用户个人文件等。在存储的形式上,磁盘映像是一个大的映像文件。映像文件中数据的逻辑组织格式与磁盘的文件系统(ext3、NTFS等)相同,因此,这个磁盘映像就是一个按照磁盘存储数据的格式存储数据的大文件,也是一个系统必不可少的数据存储映像。如图1所示,实际的数据内容存储在服务器上,(1)负责根据虚拟机的需求,从本地文件系统或(2)上获取数据并提供给虚拟机。如果数据来自服务器,为了增加访问的速度,(1)同时对这些数据进行缓存。虚拟机对磁盘的读写都发生在本地,当本地缓存数据被虚拟机修改后,会造成与存储在服务器上的数据不一致。因此,还需要增加同步功能进行存储数据的管理。下面,首先分别具体介绍(1)、(2)的具体工作机制,最后,介绍(1)和(2)之间的数据传输和同步机制。
在这里,虚拟磁盘主要针对Xen虚拟机设计。(1)中,Xen虚拟机上可以创建多个客户操作系统,其中有一个称为域0的特殊客户操作系统,其它称为域U的客户操作系统都是普通客户操作系统。利用Xen的block tap接口,设计了一个用户态的虚拟磁盘驱动程序模块。该模块用来在Xen中为一个域U创建一个作为其磁盘的虚拟块设备。block tap接口能够将来自虚拟机的块I/O请求发送到用户态的磁盘驱动程序。这样,利用block tap,驱动程序就可以处理来自域U的I/O请求。如发送一个数据块、更新一个数据块、创建一个数据块等。这里的块是一个数据处理的单位,一个块由若干字节构成,这里采用的块大小是512字节。所以,本发明的虚拟磁盘是数据块级的实现,而不是文件系统级的。数据块级的实现能够为存储提供一个更加底层的接口,从而屏蔽各个不同版本操作系统之间的差别。
请参考图1(a),终端提供的虚拟磁盘包括两个部分,分别是临时存储区域和虚拟机的文件系统(系统映像缓存)。存储在缓存中的系统映像是域U操作系统的文件系统。在计算机系统运行过程中,有些保存在磁盘上的临时数据是不需要永久保存的,如Web缓存页。因此,在终端的存储设备上,开辟一定的临时存储区域用来存储这些数据,当机器关闭时,直接丢弃这些数据,从而减少数据维护量,增加处理性能。而对于系统映像,虚拟机对磁盘的操作都直接在系统映像缓存上进行。具体操作逻辑如下:
如图2所示,虚拟机的I/O请求到达磁盘驱动后,“I/O请求处理”逻辑根据请求类型(读或写)分别进行处理。本发明中采用位图记录缓存中的每个数据块的状态,根据其状态对每个数据块分别进行操作,位图的具体方法在稍后数据传输和同步过程介绍。(1)若是虚拟机的读请求,首先根据请求地址从位图中查询所请求数据块的当前状态。如果所请求的所有数据块已经在缓存中,则直接从缓存中读取请求数据,并将这些数据发送回给“I/O请求处理”,再由“I/O请求处理”发送给虚拟机。如果所请求数据块在相应位图中状态是未被缓存,这表明需要到服务器上去获取请求数据,这时,磁盘驱动将读请求发送给数据转发守护进程。数据转发守护进程收到读请求后,与服务器连接并转发读请求给服务器。从服务器获得数据后,再转发给磁盘驱动。磁盘驱动收到请求的数据后,立即发回给“I/O请求处理”,同时,将这些数据写入缓存中,并在位图中将相应的位置为“已缓存”。下一次虚拟机再读取这些数据的时候,就可以直接从缓存中读取数据。(2)若请求是写请求,磁盘驱动直接将数据写入到缓存中,并将位图中相应的位置为“已修改”,表明当前缓存中的数据是最新的。执行完写操作后,立即向“I/O请求处理”返回写响应。
在服务器端,如图1(b)所示,磁盘映像提供逻辑为多个用户维护并提供系统磁盘映像。每一个用户对应一个磁盘映像,但用户在终端从服务器上最终获取的系统磁盘映像并不是物理上实际存在的磁盘映像,而是虚拟磁盘映像(VSI)。磁盘映像提供逻辑通过一个对用户透明的映射过程为用户提供虚拟磁盘映像。磁盘映像提供逻辑由物理存储层(磁盘映像文件仓库)、磁盘映射层和磁盘映像表示层三层构成。物理存储层负责实际磁盘映像文件的存储,磁盘映像映射层完成从物理存储的磁盘映像文件到用户最终获得的虚拟磁盘映像的映射过程,而磁盘映像表示层则在网络上提供用户对其虚拟磁盘映像的访问,用户在网络上对虚拟磁盘映像的访问都是通过磁盘映像表示层完成的。在磁盘映像的管理中,本发明采用基于用户的管理方式。因为服务器要为多个用户在网络上提供存储服务,每个用户唯一标识一个虚拟磁盘映像。物理存在的映像文件包括三种:(1)系统映像文件,(2)辅助系统映像文件和(3)用户映像文件。一个用户的虚拟磁盘映像最终由这三种实际存在的磁盘映像文件构成,每种一个。系统文件映像对应于安装有某种版本操作系统的系统磁盘,因此,每个虚拟磁盘映像必须基于一个系统文件映像,作为终端虚拟机上运行的客户操作系统的系统磁盘。在本发明的系统中,每个具体的操作系统只有一个系统文件映像,因此一个系统文件映像可能被多个用户所共享。这种方法可以节省服务器上的存储空间,同时也有利于系统的更新。这样做的代价是需要将各个用户的虚拟磁盘映像与一个特定的系统文件映像进行映射。一个用户对共享的系统文件映像的修改可能会导致用户之间的冲突,为了避免这种冲突,本发明中为每个虚拟磁盘映像增加了一个辅助系统文件映像。每个用户对系统文件映像的所有修改都要写入用户的辅助系统文件映像中。用户文件映像用来存储每个用户自己的数据。
图3显示了如何将三种不同类型的文件映像通过映射为用户提供一个虚拟磁盘映像。一个虚拟磁盘映像表示的是一个虚拟磁盘,虚拟磁盘的块地址是从0开始到虚拟磁盘所有块数的连续地址,一个块地址对应虚拟磁盘中的一个数据块。系统映像文件和用户映像文件是虚拟磁盘映像中的两个分区,用户映像文件是每个用户自己的存储区,用户可以对其进行任意读写。系统映像文件是被多个用户共享的,因此,每个用户对系统映像文件只有读权限。当用户要对系统映像文件进行写操作的时候,需要在该系统映像文件对应的辅助系统映像文件中相同的地址上进行。每个用户都有一个和系统映像文件地址空间大小相同的辅助系统映像文件。为了记录系统映像文件和辅助系统映像文件之间的对应关系,为每个用户添加一个映射表(S·A表)用来记录其系统映像文件中每个数据块的状态,映射表中的每一位表示系统映像中每一个数据块的状态。在初始状态下,映射表所有位都为0,表示用户没有对系统映像进行过修改。当用户对系统映像文件中的某个块地址的数据进行写操作时,该操作被重定向到辅助系统映像文件上,数据将被写到辅助系统映像文件的相同地址上。同时,将映射表中该块对应的位被置为1,表示对用户而言,当前这个块的数据存在辅助系统映像文件中。
对虚拟磁盘映像的读写如图3所示,系统磁盘请求转发器负责根据请求者的用户身份将数据块请求分发到相应虚拟磁盘映像,并将获得的请求数据发回给请求者。图中S(系统映像文件),Ui(用户映像文件)和Ai(辅助系统映像文件)是实际存在的映像文件,其中的数据是数据块序列。每个请求地址对应一个S,Ui或Ai中的数据块。当一个地址为t/addr.的请求到达以后,通过下列映射方式映射到实际的物理磁盘映像上:
a.系统磁盘请求转发器接受到地址为t/addr.的请求,根据当前用户和用户配置信息,将请求转发到一个VSIi
b.在VSIi中,如果地址t/addr.中t的类型是系统映像文件请求,就将请求转发到Si(虚拟系统映像),否则就在Ui的块地址addr.上执行请求的操作;
c.在Si中,检查S·A表是否有一项将块地址addr.从S映射到Ai。如果有这样的项,则在Ai中和S所对应的地址同为addr.的块上执行操作,否则在S中地址addr.所对应的块中执行请求的操作。如果请求是读请求,则读数据块,否则在Ai中创建一个数据块,在这个块上执行请求的操作,并在S·A表中增加一条记录将S中地址addr.上的操作映射到刚刚创建的Ai中的数据块上。
d.系统磁盘请求转发器将请求的数据发送给请求方。
上面介绍了终端与虚拟机I/O请求方法以及服务器端磁盘映像的维护方法,下面介绍两者之间数据的传输和同步。图1(a)中,域0中的数据转发守护进程与服务器中的磁盘映像表示层交互,从而获取用户磁盘映像的数据,并将用户的修改发送到服务器。传输磁盘映像是系统中最耗时间的操作。为了接近本地访问性能,守护进程获取磁盘映像数据的同时在本地存储设备中缓存这些数据。缓存也是一个映像文件,其中的每个数据块对应于VSI中的相应数据块。每个块或许被缓存了,或者被修改了,如前所述,为了表示缓存中每个数据块的当前状态,本发明中使用位图来记录当前每个数据块的状态。如图4所示,缓存映像文件中的每个数据块对应位图中的2位,因此每个数据块在位图中共有四种状态来表示:0,1,2,3。各自表示的意义是:
0:该数据块没有被缓存;
1:该数据块应经被缓存;
2:该数据块正在被获取;
3:该数据块的内容已经被更新。
在本发明的设计中,采用了一种称为“按需”的方法从服务器获取数据。域U中虚拟机的操作系统可以在所有的系统映像数据被缓存之前启动,因此,可能系统映像中的关键数据没有被缓存在本地缓存映像文件中。这种情况发生时(数据块在位图中对应状态为0),如前所述,虚拟磁盘驱动将I/O请求转发到数据转发守护进程,并暂时将虚拟机阻塞。接着数据转发守护进程从服务器请求指定的数据,获得数据后保存在缓存映像文件中,并将位图中相应的位置为1(数据块已缓存)。如果请求的数据块当前位图中的状态是2(正在获取中),则守护进程不再重复从服务器请求数据。I/O请求过程中,往往连续地址的数据块在同一时间被请求,因此,在一个请求操作过程中可以获取几个连续的数据块。当数据转发守护进程空闲时,从服务器中提前预取未被缓存的系统映像关键数据能很大程度上增加系统性能。
虚拟机对它的虚拟磁盘的操作,最终都会被解释为对缓存映像文件上相应数据块的操作。为了保持缓存映像文件和服务器VSI中相应数据块之间状态的一致性,虚拟磁盘驱动程序需要记录所有被虚拟机更新过的数据块(位图状态置为3),并在虚拟机关闭之前,将更新过的数据写回到服务器上VSI中对应的位置上。写回以后,这些块在位图中的状态必须重新置为1,从而避免重复写回。数据转发守护进程对写回操作的优先级较低,但是,所有这些操作在虚拟机停止运行前必须被完成。
图5给出了数据转发守护进程和服务器磁盘映像表示层之间交互传输数据的命令格式。
(a)是一般格式,一个交互命令由操作命令、命令长度和可变长的数据部分构成。操作命令给出了一个交互命令的类型和操作方法,可变长的数据部分是一个命令的操作数,因此是可变长的,命令长度给出一个命令的实际长度。这些命令中,(b)-(f)是数据转发守护进程发送给服务器磁盘映像表示层的,(g)和(h)是服务器磁盘映像表示层发送给守护进程的响应,它们各自的实际意义如下:
(b)VND_NET_CREATE命令是请求在服务器上创建一个用户的VSI,该用户及VSI的信息在数据部分给出。用户名和密码是用户信息,操作系统类型对应一个指定的系统映像文件,用户磁盘大小用来创建用户映像文件。
(c)VND_NET_SETUP命令是守护进程向表示层请求建立一个连接。用户名和密码是用户信息,分区类型指定要连接VSI中的是系统映像分区(S)还是用户映像分区(Ui)。
(d)VND_NET_CLOSE,关闭建立起来的连接。
(e)VND_NET_READ,读取若干数据块的请求命令。第一个块地址是要读取的连续块中第一个块的地址,块数量表示连续读几个块的数量。
(f)VND_NET_WRITE,写若干个数据块到服务器。第一个块地址是要写的连续块中第一个块的地址,块数量表示连续写几个块的数量,数据部分是连续几个块的数据内容。
下面两条命令是服务器磁盘映像表示层发送给数据转发守护进程的响应命令。
(g)VND_NET_ACK,给守护进程发回的处理响应,处理结果表示操作是否成功。
(h)VND_NET_RES,给守护进程读请求发回的处理响应,其中的数据部分是守护进程读请求地址所指定的数据内容。

Claims (6)

1.一种为虚拟机提供分布式存储的系统,将位于网络上服务器中的存储设备分配给多个运行在各自终端主机上的虚拟机,从而为终端主机上运行的虚拟机提供数据存储服务,每个虚拟机作为一个用户,每个用户唯一标识一个虚拟磁盘映像,其特征在于,该系统包括虚拟磁盘驱动、数据转发守护进程、磁盘映像文件仓库、磁盘映像映射层和磁盘映像表示层,其中:
虚拟磁盘驱动设置在终端主机上,用于创建一个作为磁盘的虚拟块设备,该虚拟磁盘驱动处理虚拟机中的I/O请求,并将I/O请求进一步发送给数据转发守护进程;
数据转发守护进程设置在终端主机上,用于从虚拟磁盘驱动获得所述I/O请求,并将该I/O请求转发给提供数据存储服务的服务器,请求服务器上的系统映像数据,系统映像是终端主机所看到的服务器上磁盘映像表示层提供的虚拟磁盘映像,从服务器获得请求的数据以后,通过虚拟磁盘驱动转发给请求数据的虚拟机;
磁盘映像文件仓库设置在服务器上,负责物理映像文件的存储和维护,物理映像文件包括系统映像文件、辅助系统映像文件和用户映像文件,多个用户共享系统文件映像,每个用户具有一个辅助系统映像文件和一个用户映像文件,每个用户对系统文件映像的修改写入辅助系统文件映像中,用户映像文件用来存储每个用户的数据;
磁盘映像映射层设置在服务器上,完成从物理映像文件到用户最终获得的虚拟磁盘映像的映射过程,虚拟磁盘映像是提供给终端主机的逻辑视图,对一个虚拟磁盘映像,分为系统数据区和用户数据区,用户数据区对应于所述用户映像文件,而系统数据区对应于所述系统映像文件和所述辅助系统映像文件;
磁盘映像表示层设置在服务器上,其包括系统磁盘请求转发器,磁盘映像表示层从数据转发守护进程收到虚拟机的I/O请求后,交给系统磁盘请求转发器,系统磁盘请求转发器根据请求者的用户身份将数据块请求对应到相应虚拟磁盘映像文件,根据请求类型和请求数据的地址通过磁盘映像映射层的映射机制在相应的物理映像文件上执行请求的操作,并将获得的请求数据发回给请求者。
2.如权利要求1所述的系统,其特征在于:终端提供存储区,其包括两个部分,临时存储区域和系统映像缓存,临时存储区域用来存储临时数据,当机器关闭时,直接丢弃这些数据;存储在系统映像缓存中的系统映像缓存数据为客户操作系统的文件系统数据。
3.如权利要求2所述的系统,其特征在于:系统映像缓存文件与服务器之间通过增加一个位图表示系统映像缓存文件中每个数据块的状态来实现同步。
4.如权利要求2所述的系统,其特征在于:如果虚拟机所请求的数据在系统映像缓存中,则直接从系统映像缓存中读取请求数据;如果虚拟机所请求的数据不在系统映像缓存中,则要从服务器获取所请求的数据,虚拟磁盘驱动收到请求的数据后,将这些数据写入系统映像缓存中。
5.如权利要求1或2所述的系统,其特征在于所述虚拟机是Xen虚拟机。
6.如权利要求1所述的系统,其特征在于为了记录系统映像文件和辅助映像系统文件之间的对应关系,为每个用户添加一个映射表来记录其系统映像文件每个数据块的状态,映射表中的每一位表示系统映像文件中每一个数据块的状态,当有一个请求到达时,根据映射表中的状态决定该请求是在系统映像文件上执行,还是在辅助系统映像文件上执行。
CN200810226649XA 2008-11-19 2008-11-19 虚拟机的分布式虚拟磁盘系统 Expired - Fee Related CN101419535B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810226649XA CN101419535B (zh) 2008-11-19 2008-11-19 虚拟机的分布式虚拟磁盘系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810226649XA CN101419535B (zh) 2008-11-19 2008-11-19 虚拟机的分布式虚拟磁盘系统

Publications (2)

Publication Number Publication Date
CN101419535A CN101419535A (zh) 2009-04-29
CN101419535B true CN101419535B (zh) 2010-07-14

Family

ID=40630333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810226649XA Expired - Fee Related CN101419535B (zh) 2008-11-19 2008-11-19 虚拟机的分布式虚拟磁盘系统

Country Status (1)

Country Link
CN (1) CN101419535B (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996051A (zh) * 2009-08-25 2011-03-30 联想(北京)有限公司 一种虚拟磁盘系统、虚拟磁盘实现方法及终端设备
CN101859256B (zh) * 2009-11-25 2013-03-06 北京航空航天大学 一种硬件虚拟机中精简模式切换的i/o虚拟化方法
CN101741866B (zh) * 2010-02-01 2012-12-12 浪潮(北京)电子信息产业有限公司 一种在线存储系统及方法
CN102209082B (zh) * 2010-03-29 2015-06-03 联想(北京)有限公司 一种终端的运行方法及终端
CN102314321B (zh) * 2010-07-07 2015-11-25 深圳市朗科科技股份有限公司 存储系统、运用存储系统进行数据访问的方法和装置
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
CN102833080A (zh) * 2011-06-15 2012-12-19 康佳集团股份有限公司 一种应用软件的进程间通信方法和系统
CN102622187A (zh) * 2011-11-28 2012-08-01 苏州奇可思信息科技有限公司 基于网络映射的文件分布式存储方法
CN102801768A (zh) * 2012-01-20 2012-11-28 华为技术有限公司 数据处理方法及系统、网络设备
CN102708060B (zh) * 2012-05-14 2015-03-25 华为技术有限公司 一种镜像文件访问方法、装置及系统
CN102902782A (zh) * 2012-09-27 2013-01-30 浙江大学 一种海量多源异构空间信息数据无缝集成管理方法
CN103412519B (zh) * 2013-04-24 2015-11-25 昆山三泰新电子科技有限公司 远端周边的控制系统、方法及其远端服务器
CN104636076B (zh) * 2013-11-15 2017-12-05 中国电信股份有限公司 一种用于云存储的分布式块设备驱动方法和系统
CN104636077B (zh) * 2013-11-15 2017-10-10 中国电信股份有限公司 用于虚拟机的网络块设备存储系统与方法
CN103618780B (zh) * 2013-11-22 2017-10-10 华为技术有限公司 一种实现多虚拟机挂载外设部件的方法及装置
CN103607471A (zh) * 2013-12-02 2014-02-26 中标软件有限公司 一种桌面系统之间的文件交换方法及系统
CN103713952B (zh) * 2013-12-17 2017-02-15 创新科存储技术(深圳)有限公司 一种基于ufs的虚拟磁盘分布式存储方法
CN103853599B (zh) * 2014-03-17 2017-10-03 北京京东尚科信息技术有限公司 一种节点计算能力的扩展方法
CN104951238A (zh) * 2014-03-24 2015-09-30 国际商业机器公司 用于在分布式虚拟环境中管理数据存储的方法和装置
CN104049912B (zh) * 2014-05-23 2017-09-15 上海爱数信息技术股份有限公司 基于虚拟化平台的分布式存储管理方法
CN105516223B (zh) * 2014-09-25 2019-09-13 中国电信股份有限公司 虚拟存储系统及其实现方法、服务器和虚拟机监控器
CN104331375B (zh) * 2014-10-29 2018-08-07 中国建设银行股份有限公司 共享虚拟化资源池环境下的共享虚拟资源管理方法和装置
CN104461685B (zh) * 2014-11-19 2017-09-29 华为技术有限公司 虚拟机处理方法和虚拟计算机系统
CN104461940A (zh) * 2014-12-17 2015-03-25 南京莱斯信息技术股份有限公司 网络虚拟磁盘客户端高效缓存及延迟写入方法
CN104598170B (zh) 2015-01-30 2017-12-05 华为技术有限公司 确定读写路径的方法和装置
US10698620B2 (en) 2015-03-27 2020-06-30 Intel Corporation Dynamic cache allocation
CN106293994A (zh) * 2015-05-15 2017-01-04 株式会社日立制作所 网络文件系统中的虚拟机克隆方法和网络文件系统
US10129357B2 (en) 2015-08-21 2018-11-13 International Business Machines Corporation Managing data storage in distributed virtual environment
CN105242990A (zh) * 2015-10-28 2016-01-13 浪潮(北京)电子信息产业有限公司 基于云平台的数据备份方法和装置
CN105468541B (zh) * 2015-12-11 2019-01-08 中南大学 一种面向透明计算智能终端的缓存管理方法
CN105389522B (zh) * 2015-12-23 2022-03-04 普华基础软件股份有限公司 一种虚拟机安全管理系统及计算机终端
CN105677256A (zh) * 2016-01-08 2016-06-15 中电科华云信息技术有限公司 基于本地缓存的虚拟磁盘系统及调度方法
CN106997431B (zh) * 2016-01-22 2020-09-25 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN107515725B (zh) * 2016-06-16 2022-12-09 中兴通讯股份有限公司 一种核心网虚拟化系统共享磁盘的方法、装置及网管mano系统
CN106777288B (zh) * 2016-12-29 2019-09-27 北京安天网络安全技术有限公司 一种快速拆分虚拟化磁盘镜像的系统及方法
CN106961475B (zh) * 2017-03-14 2020-07-14 云宏信息科技股份有限公司 一种基于nbd的远程磁盘共享方法和共享系统
CN107688483A (zh) * 2017-09-04 2018-02-13 郑州云海信息技术有限公司 一种读写控制方法及控制装置
CN107528925A (zh) * 2017-10-10 2017-12-29 广东易达电子科技有限公司 终端设备启动方法和系统
CN109375874B (zh) * 2018-09-28 2021-12-21 深信服科技股份有限公司 一种分布式存储的调用方法、装置及设备
CN110602072A (zh) * 2019-08-30 2019-12-20 视联动力信息技术股份有限公司 一种虚拟磁盘访问方法及装置
CN110928639B (zh) * 2019-10-22 2022-12-02 西安雷风电子科技有限公司 一种Windows虚拟化镜像分层管理方法及装置
CN112631732B (zh) * 2020-12-30 2024-03-29 国云科技股份有限公司 批量ISO创建CephX认证虚拟机的实现方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542930B1 (en) * 2000-03-08 2003-04-01 International Business Machines Corporation Distributed file system with automated file management achieved by decoupling data analysis and movement operations
CN101132329A (zh) * 2007-09-17 2008-02-27 北京航空航天大学 移动虚拟环境系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542930B1 (en) * 2000-03-08 2003-04-01 International Business Machines Corporation Distributed file system with automated file management achieved by decoupling data analysis and movement operations
CN101132329A (zh) * 2007-09-17 2008-02-27 北京航空航天大学 移动虚拟环境系统

Also Published As

Publication number Publication date
CN101419535A (zh) 2009-04-29

Similar Documents

Publication Publication Date Title
CN101419535B (zh) 虚拟机的分布式虚拟磁盘系统
US11593319B2 (en) Virtualized data storage system architecture
CN104903872B (zh) 用于自适应持久化的系统、方法和接口
US5887151A (en) Method and apparatus for performing a modified prefetch which sends a list identifying a plurality of data blocks
US9075528B2 (en) High-efficiency virtual disk management system
KR100899462B1 (ko) 블록 맵 캐싱 및 vfs 적층 가능 파일 시스템 모듈들에기초한 분산 저장 아키텍처
US6301605B1 (en) File array storage architecture having file system distributed across a data processing platform
AU2006239882B2 (en) System and method for caching network file systems
US20020188592A1 (en) Outboard data storage management system and method
US20050138312A1 (en) Method for acquiring snapshot
US20090193207A1 (en) Computer system, remote copy method and first computer
CN101388824B (zh) 一种机群系统中分片存储模式下文件读取的方法及系统
Van Hensbergen et al. Dynamic policy disk caching for storage networking
JP2005011316A (ja) 記憶領域割当方法、システム及び仮想化装置
US8595458B2 (en) Intelligent extent initialization in storage environment
JP2009059374A (ja) ファイルのコピー・オン・ライトを実施する方法、システム、およびコンピュータ・プログラム
CN111143234A (zh) 存储设备、包括这种存储设备的系统及其操作方法
US8769196B1 (en) Configuring I/O cache
Sun et al. Baoverlay: A block-accessible overlay file system for fast and efficient container storage
US10852954B1 (en) Running an enterprise storage subsystem as a virtual machine
KR100663827B1 (ko) 스토리지 제어 장치 및 스토리지 제어 방법
US9779108B1 (en) Lustre file system
JP2002312210A (ja) ディスクアレイへのファイルシステムアクセスを提供する方法
US10848555B2 (en) Method and apparatus for logical mirroring to a multi-tier target node
CN110209343B (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100714

Termination date: 20131119