CN108701048A - 数据加载方法及装置 - Google Patents

数据加载方法及装置 Download PDF

Info

Publication number
CN108701048A
CN108701048A CN201780004610.0A CN201780004610A CN108701048A CN 108701048 A CN108701048 A CN 108701048A CN 201780004610 A CN201780004610 A CN 201780004610A CN 108701048 A CN108701048 A CN 108701048A
Authority
CN
China
Prior art keywords
data
volume
virtual machine
snapshot
target data
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
CN201780004610.0A
Other languages
English (en)
Other versions
CN108701048B (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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN108701048A publication Critical patent/CN108701048A/zh
Application granted granted Critical
Publication of CN108701048B publication Critical patent/CN108701048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据加载方法及装置,涉及计算机领域,所述方法包括:在虚拟机启动之后获取所述虚拟机的数据加载请求(301),所述数据加载请求用于请求加载镜像文件中的目标数据;确定虚拟机对应的卷和快照中是否存储有目标数据(302),快照是在创建虚拟机时根据虚拟机对应的空白的卷得到的;在卷和快照中均未存储有目标数据时,从镜像服务器中将目标数据写入快照(303),将目标数据读出并传递给虚拟机(304);获取虚拟机生成的虚拟机数据,将虚拟机数据写入卷(305);可以解决数据加载过程中的新旧数据冲突的问题;由于虚拟机数据和目标数据分别写入不同的位置,因此,不会出现新旧数据冲突的问题,可以降低虚拟机加载数据出错的概率。

Description

数据加载方法及装置
技术领域
本申请涉及计算机领域,特别涉及一种数据加载方法及装置。
背景技术
虚拟化技术是云计算***中的一种重要技术,通过虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。通过虚拟化技术对中央处理器(Central Processing Unit,CPU)、内存、网络等进行虚拟化,可以允许一个云计算***中同时运行多个虚拟机,并且每一个虚拟机都可以独立运行而互不影响。另外,为了提高创建虚拟机的效率,云计算***中会保存镜像文件,镜像文件是创建虚拟机所需要的光盘镜像文件,通过对镜像文件的拷贝能够创建一台新的虚拟机。
云计算***通常包括以下几个模块:云平台、云主机、云存储和镜像服务器。其中,云平台是管理员与云计算***进行人机交互的平台,云平台中运行有虚拟机管理程序,该虚拟机管理程序可以是web版的网页客户端,该虚拟机管理程序用于触发云主机执行虚拟机的创建、启动、删除等操作。云主机中运行有至少一个卷管理程序和镜像管理程序,当卷管理程序为多个时,该多个卷管理程序中包括一个主卷管理程序。主卷管理程序用于为虚拟机在云存储中创建对应的卷,并通过镜像管理程序从镜像服务器中获取镜像文件写入卷,该主卷管理程序还用于为其他卷管理程序分配数据加载任务。云存储包括每个卷管理程序所管理的卷,每个卷管理程序负责管理至少一个卷。镜像服务器中存储有至少一个镜像文件。
由于镜像文件的数据量较大,相关技术提供了一种延迟加载(Lazyload)技术来实现虚拟机的快速创建。在管理员通过虚拟机管理程序触发云主机创建虚拟机时,云主机先通过卷管理程序在云存储中创建与该虚拟机对应的空白的延迟加载卷,并将该延迟加载卷挂载至云主机,然后通过镜像管理程序创建该空白的卷与镜像文件之间的关联关系,这时可以不用将镜像文件全部载入到延迟加载卷中,就可以将这个延迟加载卷挂载给云主机中的虚拟机进行正常使用。在虚拟机需要加载镜像文件中的目标数据时,先通过卷管理程序查询延迟加载卷中是否存储有目标数据;若延迟加载卷中存储有该目标数据,则从延迟加载卷中读取该目标数据并传递给虚拟机;若延迟加载卷中未存储有该目标数据,则卷管理程序通过镜像管理程序根据关联关系从镜像服务器中将该目标数据读取至延迟加载卷中,并将该延迟加载卷中的目标数据传递给虚拟机。虚拟机获取到请求加载的目标数据后,根据该目标数据进行输入/输出(Input/Output,I/O)操作,得到虚拟机数据,通过卷管理程序将该虚拟机数据写入延迟加载卷中。
除了虚拟机按需加载镜像文件中的目标数据之外,其它卷管理程序还会后台将镜像文件按照数据顺序加载到延迟加载卷中。当镜像文件全部加载至延迟加载卷后,延迟加载卷转成普通卷,并删除延迟加载卷与镜像文件之间的关联关系。但是在后台加载镜像文件时,若虚拟机产生的虚拟机数据需要写入延迟加载卷的存储位置A,后台加载的镜像文件也需要写入延迟加载卷的存储位置A时,会发生数据写入冲突而导致数据错误。
发明内容
本申请提供了一种数据加载方法及装置,可以解决数据加载过程中产生的数据冲突的问题。所述技术方案如下:
第一方面,提供了一种数据加载方法,该方法包括:在虚拟机启动之后获取虚拟机的数据加载请求;确定虚拟机对应的快照中是否存储有数据加载请求指示的目标数据;在快照中未存储有目标数据时,从镜像服务器中将目标数据写入快照,再将目标数据读出并传递给虚拟机;然后,获取虚拟机生成的虚拟机数据,并将该虚拟机数据写入卷。其中,数据加载请求用于请求加载镜像文件中的目标数据;快照是在创建虚拟机时根据虚拟机对应的空白的卷得到的,卷和对应的快照相关联;快照用于延迟加载镜像文件,快照与镜像文件相关联。
通过创建卷对应的快照,在数据加载过程中将从镜像服务器加载得到的数据写入快照,将虚拟机生成的虚拟机数据写入卷;可以解决将虚拟机产生的虚拟机数据写入卷后,存在从镜像服务器中加载的目标数据覆盖该虚拟机数据,导致新旧数据冲突的问题;由于虚拟机数据和目标数据分别写入不同的位置,因此,不会出现新旧数据冲突的问题,可以降低虚拟机加载数据出错的概率。
结合第一方面,在第一方面的第一种实现中,该方法还包括:将镜像文件中除目标数据之外的数据加载至快照中;在镜像文件的全部数据加载至快照后,将快照的属性从延迟加载属性转变为普通属性。
通过在后台将镜像文件中虚拟机未请求加载的数据加载至快照,可以在虚拟机请求加载该数据之前将该数据写入快照中,这样,后续虚拟机在请求该数据时可以直接将快照中的数据发送至虚拟机,提高了虚拟机加载数据的速度。
另外,若镜像文件中的数据全部加载至快照后,卷管理程序未修改快照的属性,在后台从镜像服务器加载数据的卷管理程序可能会不断地检测该快照中是否存在未加载的数据,浪费后台加载数据的资源。因此,通过在镜像文件中的数据全部加载至快照中时,将快照的属性由延迟加载属性转变为普通属性,可以指示卷管理程序无需再检测该快照中是否存在未加载的数据,节省了后台加载数据的资源。
结合第一方面的第一种实现,在第一方面的第二种实现中,将镜像文件中除目标数据之外的数据加载至快照中之后,还包括:将快照中的数据合并存储至卷中。
可选地,将镜像文件中除目标数据之外的数据加载至快照中之后,还包括:删除快照。
结合第一方面或第一方面的任意一种实现,在第一方面的第三种实现中,从镜像服务器中将目标数据写入快照,包括:从镜像服务器中将目标数据写入镜像文件对应的缓存卷中;将缓存卷中的目标数据写入快照中。
通过创建缓存卷,使得各个卷管理程序在从镜像服务器加载目标数据之前,先在该缓存卷中查找目标数据;这样,缓存卷中每个存储位置对应的数据只需要从镜像服务器中加载一次;镜像服务器无需对同一存储位置的数据处理多次,降低了镜像服务器处理镜像数据的压力。
结合第一方面的第三种实现,在第一方面的第四种实现中,从镜像服务器中将目标数据写入镜像文件对应的缓存卷中,包括:当虚拟机是第一个请求加载目标数据的虚拟机时,从镜像服务器中将目标数据写入缓存卷中。
结合第一方面的第三种实现,在第一方面的第五种实现中,将缓存卷中的目标数据写入快照中之前,还包括:当虚拟机不是第一个请求加载目标数据的虚拟机且目标数据正在被其他虚拟机请求写入缓存卷时,暂停响应数据加载请求,直至将目标数据写入缓存卷时,响应数据加载请求。
结合第一方面的第三种实现至第五种实现中的任意一种实现,在第一方面的第六种实现中,缓存卷是已创建的虚拟机所对应的快照,已创建的虚拟机包括发送数据加载请求的虚拟机;从镜像服务器中将目标数据写入快照之后,还包括:当镜像文件中的全部数据已加载至缓存卷,且镜像文件中的全部数据已加载至使用镜像文件的其他虚拟机所对应的快照时,将缓存卷中的数据合并存储至已创建的虚拟机所对应的卷中。
可选地,当镜像文件中的全部数据已加载至缓存卷,且镜像文件中的全部数据已加载至使用镜像文件的其他虚拟机所对应的快照时,删除缓存卷。
通过将已创建的虚拟机的快照设置为缓存卷,无需在云存储中额外创建缓存卷,这样,缓存卷无需额外占用云存储中的存储资源,节省了云存储中的存储资源。
另外,当镜像文件中的全部数据已加载至缓存卷,且镜像文件中的全部数据已加载至使用镜像文件的其他虚拟机所对应的快照时,将缓存卷中的数据合并存储至已创建的虚拟机所对应的卷中,保证了在缓存卷已加载镜像文件中的全部数据时,与缓存卷相关联的快照仍旧能够从缓存卷中加载数据,保证了缓存卷的有效性。
结合第一方面至第一方面的第二种实现中的任意一种实现,在第一方面的第八种实现中,获取虚拟机生成的虚拟机数据,将虚拟机数据写入卷之后,还包括:将卷中存储的数据发送至备份存储***,备份存储***用于将卷中存储的数据作为虚拟机的增量备份数据,将镜像服务器中存储的镜像文件作为虚拟机的全量备份数据,根据全量备份数据和增量备份数据对虚拟机进行数据恢复。
通过将卷中的数据作为增量备份数据,将镜像服务器中的镜像文件作为全量备份数据,由于备份存储***与镜像文件使用同一存储***,因此,卷管理程序在首次备份时,只需要备份卷中的数据,减少卷管理程序所需备份的数据量。
第二方面,提供了一种数据加载装置,该装置具有实现上述第一方面或第一方面任意一种实现所提供的数据加载方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多于一个与上述功能相对应的单元。
第三方面,提供了一种数据加载装置,该装置包括:处理器、与所述处理器相连的存储器,所述处理器执行所述存储器中存储的指令实现上述第一方面或第一方面任意一种实现所提供的数据加载方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在数据加载设备上运行时,使得数据加载设备执行上述第一方面或第一方面中的任意一种实现所提供的数据加载方法。
附图说明
图1是本申请一个示例性实施例提供的数据加载***的结构示意图;
图2A和图2B是本申请一个示例性实施例提供的相关技术中的数据加载方法的示意图;
图3是本申请一个示例性实施例提供的数据加载方法的流程图;
图4是本申请一个示例性实施例提供的数据加载的示意图;
图5是本申请一个示例性实施例提供的写入虚拟机数据的示意图;
图6是本申请一个示例性实施例提供的数据加载的示意图;
图7是本申请一个示例性实施例提供的数据加载的示意图;
图8是本申请一个示例性实施例提供的数据加载的示意图;
图9是本申请一个示例性实施例提供的数据加载的示意图;
图10是本申请一个示例性实施例提供的数据备份的示意图;
图11是本申请一个实施例提供的数据加载装置的框图;
图12是本申请一个实施例提供的数据加载设备的结构图。
具体实施方式
本文所提及的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,如无特殊说明,只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
在本文中提及的“单元”通常是指按照逻辑划分的功能性结构,该“单元”可以由纯硬件实现,或者,软硬件的结合实现。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
首先,对本申请涉及的若干个名词进行介绍。
虚拟机(Virtual Machine,VM):是指通过软件模拟的计算机***。虚拟机具有完整的硬件***功能、且运行在与真实的操作***相隔离的运行环境中。
虚拟机是根据真实的操作***的镜像文件生成的,它具有与真实的操作***相同的功能。在使用虚拟机时,所有操作是在一个全新的、独立的虚拟的操作***中进行,并且在该虚拟机中可以安装软件、保存数据,拥有该虚拟机对应的桌面,且不会对真实的操作***产生影响。
卷:是指用于供虚拟机访问数据的存储资源。
可选地,本申请中的卷为逻辑卷。逻辑卷是由多个逻辑分区组成的集合,逻辑卷中的逻辑分区是连续的,但是两个连续的逻辑分区对应的物理分区可能不连续。比如:两个连续的逻辑分区对应的物理分区在不同的磁盘上。
逻辑分区是指映射到物理分区上的逻辑单位,一个逻辑分区可以对应一个或多个物理分区。
物理分区是把物理卷划分成连续的、大小相等的存储单位得到的。
物理卷是用于存储数据的存储设备,包括可移动存储设备和不可移动存储设备,比如:硬盘。
下面对本申请的一种示例性的实施环境进行介绍。
请参考图1,其示出了本申请一个示例性实施例提供的数据加载***的结构示意图。该数据加载***包括:云平台110、至少一台云主机120、云存储130和镜像服务器140。
云平台110用于对云主机120中的虚拟机进行管理。可选地,云平台110中运行有管理客户端,该管理客户端用于供用户对云主机120中的虚拟机进行管理。
可选地,云平台110对云主机120中的虚拟机进行管理,包括但不限于:在云主机120中创建虚拟机、启动云主机120中的虚拟机、删除云主机120中的虚拟机。
其中,云平台110与云主机120通过有线或无线的方式连接。示意性地,云平台110与云主机120通过互联网连接。
示意性地,用户通过云平台110向云主机120发送虚拟机创建请求,从而在云主机120中创建虚拟机;云主机120接收到虚拟机创建请求后,根据虚拟机创建请求中携带的创建信息创建虚拟机。
创建信息包括但不限于:虚拟机运行时所需的计算资源、存储资源和网络资源中的至少一种。
云主机120用于运行虚拟机,并对虚拟机运行时所需的资源进行管理。比如:对中央处理器(Central Processing Unit,CPU)(对应计算资源)、内存(对应存储资源)、网络(对应网络资源)等进行管理。
可选地,每台云主机120支持运行至少一台虚拟机。
可选地,云主机120是服务器主机,至少一台云主机120构成服务器集群。
每台云主机120中运行有一个或多个卷管理程序(图1中以一台云主机中运行有一个卷管理程序为例),该卷管理程序用于在云存储130中创建卷,根据虚拟机的数据加载请求将镜像服务器140中的镜像文件写入卷,并访问卷中的数据。
可选地,卷管理程序在创建虚拟机时在云存储130中创建该虚拟机对应的空白的卷。可选地,每个卷管理程序对应管理至少一个卷。
可选地,在云主机120尚未创建虚拟机时,该云主机120中的至少一个卷管理程序不对卷进行管理。
可选地,每个卷管理程序所管理的每个虚拟机对应一个卷。比如:在图1中,云主机2中的虚拟机2对应卷2,虚拟机5对应卷3,卷2和卷3是云主机2中的业务管理程序管理的卷;云主机3中的虚拟机3对应卷4,云主机中的虚拟机6对应卷5,卷4和卷5是云主机3中的业务管理程序管理的卷。
但在一些实施例中,多个虚拟机也可以共用同一个卷。比如:在图1中,云主机1中的虚拟机1和虚拟机4共用云存储130中的卷1,卷1是主管理程序所管理的卷。
可选地,卷管理程序也可以称为虚拟块***(Virtual Block System,VBS)。
在云主机120中的虚拟机启动之前,卷管理程序需要将该虚拟机对应的卷挂载至云主机120中。
可选地,将卷挂载至云主机120中是指:将卷作为云主机120的一个分区挂接到云主机120的特定目录中。
可选地,当不同的虚拟机共用云存储中的同一个卷时,卷管理程序需要将该卷挂载至每个虚拟机对应的特定目录中。其中,不同的虚拟机对应的特定目录不同。
可选地,当存在多个卷管理程序时,卷管理程序包括主管理程序和业务管理程序。
其中,主管理程序用于创建每个虚拟机对应的空白的卷。
业务管理程序用于处理所管理的虚拟机的数据加载请求。比如:在图1中,业务管理程序1处理云主机1中的虚拟机1和虚拟机2的数据加载请求。
可选地,主管理程序还用于处理自身所管理的虚拟机的数据加载请求。
可选地,主管理程序还用于为业务管理程序分配后台加载数据的任务,其中,后台加载数据的任务是指业务管理程序在后台自动加载(Load)镜像服务器140中的数据的任务。比如:为业务管理程序分配在后台将镜像服务器140中的数据加载至快照2的任务。
数据加载请求用于请求卷管理程序从对应的卷中加载对应存储位置的数据。可选地,数据加载请求中携带有虚拟机请求加载的数据(目标数据)在卷中的存储位置。
可选地,云主机120与云存储130通过有线或无线的方式相连。示意性地,云主机120与云存储130通过局域网连接。
云存储130包括至少一个对象存储设备(Object Storage Device,OSD),卷和快照以逻辑形式在至少一个对象存储设备中存储数据。
镜像服务器140中存储有至少一个镜像文件,该镜像文件中存储有镜像数据。镜像数据用于支持虚拟机的运行。或者说,每个镜像文件用于创建一种类型的虚拟机。
可选地,镜像服务器140与云主机120通过有线或无线的方式相连。示意性地,镜像服务器140与云主机120通过局域网连接。
在虚拟机创建完成时,该虚拟机对应有一个空白的卷,为了保证虚拟机能够通过卷管理程序从卷中读取到待加载的数据,需要将镜像服务器140中镜像文件的镜像数据加载至卷中。
由于卷管理程序无法直接从镜像服务器中140中加载镜像数据,因此,在云主机120中还运行有镜像数据加载程序,卷管理程序通过镜像数据加载程序从镜像服务器140中加载镜像数据。
可选地,每台云主机上运行有至少一个镜像数据加载程序,镜像数据加载程序用于接收卷管理程序的数据加载请求,并从镜像服务器获取镜像数据。
可选地,镜像数据加载程序也称为数据网关服务(Data Gate Way,DGW)。
可选地,本申请中,卷管理程序创建的卷具有延迟加载属性,延迟加载属性是指:在虚拟机创建完成后,根据虚拟机的数据加载请求从镜像服务器中加载数据的属性。
延迟加载属性与全量加载属性相对,全量加载属性是指:在虚拟机启动之前,将虚拟机运行时所需的全量数据从镜像服务器加载至卷的属性。
可选地,在本申请中,卷管理程序在创建虚拟机对应的空白的卷之后,还会对该空白的卷进行快照操作,得到该卷对应的快照。其中,卷和快照相关联。比如:在图1中,快照1’是对卷1进行快照操作得到,卷1与快照1’相关联;快照’2是对卷2进行快照操作得到,卷2与快照2’相关联。
其中,卷管理程序将卷和快照相关联是指:记录卷与快照之间的关联关系。示意性地,卷管理程序在创建快照时会生成该快照对应的快照标识,在创建卷时会生成卷对应的卷标识,卷管理程序记录快照标识与卷标识之间的关联关系。
其中,快照标识可以根据卷的标识确定;或者,是卷管理程序随机分配的字符串,本实施例不对快照标识的形式作限定。卷标识可以是卷管理程序随机分配的字符串;或者,是按照生成顺序生成的字符串;或者,是按照生成顺序和所属云主机的标识生成的字符串,本实施例不对卷标识的形式作限定。
其中,卷对应的快照本质上也是一种卷,快照是对卷进行复制得到的。卷与对应快照可以分别存储不同的数据。卷对应的快照也具有延迟加载属性。快照中数据的存储位置与卷中数据的存储位置一一对应。比如:对于数据1来说,数据1在卷中的存储位置为位置1,则在快照中的存储位置也为位置1。
请参考图2A,其示出了相关技术提供的数据加载方法的示意图。
1、云平台210向云主机220发送虚拟机创建请求,云主机220中的卷管理程序221根据虚拟机创建请求中的创建信息创建虚拟机222,并在云存储230中创建空白的卷231。卷管理程序在虚拟机222启动之前,将空白的卷231挂载至云主机220中,并将卷231与镜像服务器240中的镜像文件相关联。
可选地,将空白的卷231挂载至云主机220中是指将卷231作为云主机220的一个分区挂接到云主机220的特定目录中。这样,当虚拟机222需要访问卷231中的数据时,通过卷管理程序221来访问该特定目录,即可访问到卷231。
可选地,卷管理程序221将卷231与镜像文件相关联是指:记录卷231与镜像文件之间的关联关系。
2、虚拟机222启动后,向卷管理程序221发送数据加载请求,卷管理程序221根据数据加载请求在卷231中查找该数据加载请求指示的目标数据。
3、卷管理程序221在卷231中未查找到目标数据时,通过镜像数据加载程序223从镜像服务器240中将目标数据写入卷231。
4、卷管理程序221读取卷231中的目标数据,将该目标数据发送至虚拟机222。
5、其它卷管理程序224在后台通过镜像数据加载程序223从镜像服务器240中,按照数据顺序将除卷231中的数据之外的其它数据加载至卷231中(图中未示出)。
可选地,数据顺序是指卷231中数据的存储位置的顺序,比如:数据顺序为数据在卷中的逻辑标号由小到大的顺序。
在上述数据加载过程中,参考图2B,若卷管理程序221根据虚拟机222的数据加载请求从镜像服务器240加载数据1(左斜线阴影部分表示),此时,其它卷管理程序224在后台按照数据顺序从镜像服务器240加载数据1,则可能出现以下情况:
卷管理程序221先将数据1写入卷231,然后将卷231中的数据1读出并发送给虚拟机222,虚拟机222接收到数据1后,生成虚拟机数据,将该虚拟机数据再次写在数据1对应的位置(横线阴影部分表示)。此时,其它卷管理程序224在后台按照数据顺序将数据1写入卷231,产生旧数据(数据1)覆盖新数据(虚拟机数据)的问题,也即数据冲突问题。
另外,当存在至少两个虚拟机(包括第一虚拟机和第二虚拟机)共用相同的卷时,第一虚拟机先请求卷管理程序加载数据1,卷中未存储有数据1,卷管理程序通过镜像数据加载程序从镜像服务器中加载该数据1。
若此时第二虚拟机也请求卷管理程序加载数据1,由于卷管理程序还未将该数据1写入卷中,因此,卷管理程序会再次通过镜像数据加载程序从镜像服务器中加载该数据1。
之后,卷管理程序根据第一虚拟机的数据加载请求,将数据1写入卷,并将卷中的数据1发送至虚拟机,虚拟机获取到数据1后生成虚拟机数据,将该虚拟机数据写入卷。
若在虚拟机数据写入卷之后,卷管理程序根据第二虚拟机的数据加载请求,再次将数据1写入卷,此时,会产生旧数据(数据1)覆盖新数据(虚拟机数据)的问题,也即数据冲突问题。
基于上述技术问题,本申请提供如下技术方案。
请参考图3,其示出了本申请一个示例性实施例提供的数据加载方法的流程图,该方法用于图1所示的数据加载***中,且各个步骤的执行主体为卷管理程序。该方法包括以下几个步骤。
步骤301,在虚拟机启动之后获取虚拟机的数据加载请求。
数据加载请求用于请求加载镜像文件中的目标数据。目标数据是指在虚拟机运行过程中请求的数据,也即虚拟机根据当前运行情况所需要的数据。镜像文件存储于镜像服务器中。
虚拟机创建在云主机中,并根据云平台的控制在云主机中启动。在虚拟机启动之前,云主机中的卷管理程序需要将该虚拟机对应的卷挂载至云主机中。
其中,虚拟机对应的卷是在云主机中创建该虚拟机时,由卷管理程序(主管理程序)在云存储中创建的。在虚拟机初次启动之前,该虚拟机对应的卷为空白的卷。也即,在卷管理程序创建虚拟机时,创建的对应的卷为空白的卷。
本申请中,虚拟机对应的卷具有延迟加载属性。
另外,在本申请中,卷管理程序在创建虚拟机对应的空白的卷之后,还会对该空白的卷进行快照操作,得到该卷对应的快照。卷管理程序创建卷对应的快照后,将该卷和快照相关联。
主管理程序在创建空白的卷以及对应的快照之后,会将快照与镜像服务器中的镜像文件相关联。通过将快照与镜像服务器中的镜像文件相关联,使得卷管理程序(虚拟机对应的卷管理程序,可以是主管理程序,也可以是业务管理程序)可以通过镜像数据加载程序将镜像文件中的数据写入快照中。
可选地,将快照与镜像文件相关联是指:记录快照与镜像文件的关联关系。示意性地,卷管理程序在创建快照时会生成该快照对应的快照标识,镜像服务器中存储的镜像文件存在对应的文件标识,卷管理程序记录快照标识与文件标识之间的关联关系。
其中,文件标识可以通过镜像数据加载程序从镜像服务器中读取得到。文件标识可以是镜像文件的名称;或者,可以是镜像服务器随机分配的字符串,本实施例不对文件标识的形式作限定。
在卷管理程序将卷挂载至云主机之后,若虚拟机启动,且需要从镜像服务器中加载镜像文件中的目标数据,则虚拟机向卷管理程序发送数据加载请求;相应地,卷管理程序接收该数据加载请求。
可选地,数据加载请求中携带有目标数据在卷中的存储位置。
步骤302,确定虚拟机对应的快照中是否存储有目标数据。
快照是在创建虚拟机时根据虚拟机对应的空白的卷得到的,卷和对应的快照相关联;快照用于延迟加载镜像文件,快照与镜像文件相关联。
可选地,卷管理程序确定虚拟机对应的快照中是否存储有目标数据,包括但不限于以下几种实现方式:
在第一种实现方式中:卷管理程序在快照中查找数据加载请求指示的存储位置是否存储有目标数据,在快照中未存储有目标数据时,执行步骤303。
可选地,当快照中存储有目标数据时,卷管理程序将快照或者该快照对应的卷中的目标数据发送至虚拟机。
在第二种实现方式中,卷管理程序根据数据加载请求指示的存储位置,在卷中查找该存储位置是否存储有目标数据;当卷中该存储位置未存储有目标数据时,在该卷对应的快照中查找该存储位置是否存储有目标数据。
当卷中的该存储位置存储有目标数据时,卷管理程序将卷中的目标数据读出并传递至虚拟机。
当卷中的该存储位置未存储有目标数据,且快照中的该存储位置存储有目标数据时,卷管理程序将快照中的目标数据读出并传递至虚拟机。
当卷和快照中均未存储有目标数据时,执行步骤303。
参考图4,当目标数据的存储位置在区域41中时,由于卷和快照在区域41中均未存储有目标数据,因此,卷管理程序通过镜像数据加载程序从镜像服务器的镜像文件中读取该目标数据并写入至快照中,然后再将目标数据读出并返回给虚拟机;当目标数据的存储位置在区域42中时,由于卷中的区域42中存储有目标数据,而快照的区域42中未存储有目标数据,因此,卷管理程序向虚拟机返回卷中的目标数据;当目标数据的存储位置在区域43中时,由于卷中的区域43中未存储有目标数据,而快照的区域43中存储有目标数据,因此,卷管理程序向虚拟机返回快照中的目标数据;当目标数据的存储位置在区域44中时,由于卷和快照的区域44中均存储有目标数据,因此,卷管理程序向虚拟机返回卷中的目标数据。
步骤303,当快照中未存储有目标数据时,从镜像服务器中将目标数据写入快照。
卷管理程序通过镜像数据加载程序从镜像服务器中将目标数据写入快照。镜像数据加载程序用于对镜像服务器中的镜像文件进行管理,并根据卷管理程序的数据加载指示将镜像文件中的数据写入快照。
卷管理程序从镜像服务器中将目标数据写入快照,包括:卷管理程序向镜像数据加载程序发送数据加载指示,镜像数据加载程序根据数据加载指示将目标数据发送至卷管理程序,卷管理程序将目标数据写入快照。
可选地,数据加载指示包括目标数据对应的存储位置。
另外,卷管理程序还会在后台将镜像文件中除目标数据之外的数据加载至快照中。
可选地,后台加载镜像文件中的数据的卷管理程序与加载目标数据的卷管理程序不同。
卷管理程序将镜像文件中除目标数据之外的数据加载至快照中,包括:卷管理程序在后台从镜像文件中加载数据之前,检测卷和快照中是否存储待加载的数据;在卷和快照中均未存储有待加载的数据时,从镜像文件中加载该待加载的数据;在卷或快照中存储有该待加载的数据时,将待加载数据替换为下一部分存储位置的数据,再次执行检测卷和快照中是否存储待加载的数据的步骤。
步骤304,将目标数据读出并发送给虚拟机。
卷管理程序将目标数据写入快照后,卷管理程序按照正常的读数据操作读出目标数据。
由于卷和快照是关联的,该正常的读数据操作包括:卷管理程序先查找卷中是否存储有目标数据,此时,卷中未存储有目标数据;然后,卷管理程序查找卷对应的快照是否存储有目标数据,此时,快照中存储有目标数据,则卷管理程序将该目标数据从快照中读出并发送给虚拟机。
可选地,如果目标数据中的第一部分数据位于卷中,第二部分数据位于快照中,则卷管理程序先查找卷中是否存储有目标数据,此时,卷中存储有第一部分数据,则卷管理程序先从卷中读取出第一部分数据;然后,卷管理程序查找卷对应的快照是否存储有第二部分数据,由于快照中存储有第二部分数据,则卷管理程序将该第二部分数据从快照中读出后,将第一部分数据和第二部分数据合并为目标数据并发送给虚拟机。
步骤305,获取虚拟机生成的虚拟机数据,将虚拟机数据写入卷。
可选地,虚拟机数据是根据目标数据生成的。此时,卷管理程序将数据加载请求指示的存储位置中的目标数据发送给虚拟机后,虚拟机根据该目标数据生成虚拟机数据,并将虚拟机数据发送给卷管理程序,卷管理程序将该虚拟机数据写入卷中对应的存储位置。
可选地,卷管理程序根据对卷和快照进行输入/输出(Input/Output,I/O)操作的粒度,将虚拟机数据写入卷中。
其中,I/O操作的粒度是指:卷管理程序从卷或快照中读取数据的最小数据量,或者,卷管理程序向卷中写入数据的最小数据量。
卷管理程序根据I/O操作的粒度,将虚拟机数据写入卷中,包括:在目标数据的大小小于I/O操作的粒度时,卷管理程序从快照中读取包括该目标数据的数据块,并将该数据块发送至虚拟机,该数据块的大小等于I/O操作的粒度;虚拟机接收数据块,根据数据块中的目标数据生成虚拟机数据(与目标数据的数据量相同);卷管理程序获取虚拟机数据,将该虚拟机数据与读取的数据块合并,得到新的虚拟机数据(与数据块的数据量相同),并将该新的虚拟机数据写入卷。
可选地,卷管理程序将虚拟机数据与读取的数据块合并,包括:将数据块中存储位置与虚拟机数据的存储位置相同的数据替换为虚拟机数据。
参考图5所示的卷管理程序将虚拟机数据写入卷的示意图。假设卷管理程序50对卷51进行I/O操作的粒度是8千字节(KBytes,KB),当虚拟机数据52的大小小于8KB时,如:5KB时,卷管理程序先从快照53中读取8KB数据(图中左斜线阴影部分表示)。其中,8KB数据对应的存储位置中存在该5KB的虚拟机数据对应的存储位置。卷管理程序获取到8KB数据后,将该8KB数据与5KB虚拟机数据合并,得到新的8KB虚拟机数据53,再将该新的8KB的虚拟机数据53写入卷51。新的8KB虚拟机数据53包括虚拟机生成的5KB的虚拟机数据(图中双斜线阴影部分表示)。
下面将本实施例提供的数据加载方法举一个实例进行介绍。
参考图6,卷管理程序61接收虚拟机发送的数据加载请求,数据加载请求指示的目标数据的存储位置为62。
卷管理程序查找卷63的存储位置62中是否存储有目标数据,该存储位置62未存储有目标数据,继续查找卷63对应的快照64的存储位置62是否存储有目标数据,该存储位置62未存储有目标数据。
卷管理程序61通过镜像数据加载程序65从镜像服务器66中加载镜像文件中的目标数据,卷管理程序61将该目标数据写入快照64的存储位置62(图中左斜线阴影表示),再按照正常的读操作策略将快照64的存储位置62中存储的目标数据读出后,发送至虚拟机。
虚拟机根据目标数据生成虚拟机数据,将该虚拟机数据发送至卷管理程序61。
卷管理程序61将虚拟机数据写入卷63(图中右斜线阴影表示)。此时,即使存在卷管理程序67(与卷管理程序61相独立)在后台按照数据存储顺序再次从镜像服务器66中读取出目标数据,也是将该目标数据写入快照64,不会存在旧数据(目标数据)覆盖卷63中的新数据(虚拟机数据)的问题。
另外,在多个虚拟机共享卷63时,卷管理程序61将虚拟机数据写入卷63之后,即使卷管理程序61响应另一个虚拟机的数据加载请求,通过镜像数据加载程序65从镜像服务器66中加载镜像文件中的目标数据,该目标数据也会写入快照64中,覆盖的是快照中的目标数据,不会存在旧数据(目标数据)覆盖卷63中的新数据(虚拟机数据)的问题。
综上所述,本申请提供的数据加载方法,通过创建卷对应的快照,在数据加载过程中将镜像服务器中的数据写入快照,将虚拟机生成的虚拟机数据写入卷;可以解决卷管理程序将虚拟机产生的虚拟机数据写入卷后,存在再次从镜像服务器中加载的目标数据写入卷,使得目标数据覆盖虚拟机数据,导致新旧数据冲突的问题;由于卷管理程序将虚拟机数据和目标数据分别写入不同的位置,独立地管理,因此,不会出现新旧数据冲突的问题,可以降低虚拟机加载数据出错的概率。
可选地,本申请中,虚拟机数据也可以不基于镜像文件中的目标数据生成。当虚拟机数据不是基于目标数据生成的,且该虚拟机数据的大小与I/O操作的粒度呈倍数关系时,卷管理程序可以直接将该虚拟机数据写入卷中,无需执行从快照中读取数据块,将数据块与虚拟机数据合并的步骤。
可选地,当虚拟机数据不是基于目标数据生成的,且该虚拟机数据的大小小于I/O操作的粒度时,卷管理程序需要从卷管理程序从快照中读取数据块,该数据块的大小等于I/O操作的粒度,且该数据块包括存储位置与虚拟机数据的存储位置相同的数据;卷管理程序获取虚拟机数据,将该虚拟机数据与读取的数据块合并,得到新的虚拟机数据,并将该新的虚拟机数据写入卷。其中,新的虚拟机数据包括虚拟机生成的虚拟机数据。
可选地,当卷管理程序按照后台加载策略,将镜像文件的全部数据加载至快照后,卷管理程序将快照的属性从延迟加载属性转变为普通属性。
可选地,普通属性是指:卷管理程序不再将镜像服务器中的镜像文件加载至快照中的属性。
可选地,卷管理程序将快照的属性从延迟加载属性转变为普通属性,包括:将快照的属性从延迟加载属性修改为普通属性。
卷管理程序记录有每个快照的属性,在镜像文件中的数据未全部加载至快照中时,卷管理程序设置快照的属性为延迟加载属性,在镜像文件中的数据全部加载至快照中时,卷管理程序将快照的属性修改为普通属性。
可选地,延迟加载属性和普通属性通过字符表示,比如:字符1表示延迟加载属性,字符0表示普通属性。
若镜像文件中的数据全部加载至快照后,卷管理程序未修改快照的属性,在后台从镜像服务器加载数据的卷管理程序可能会不断地检测该快照中是否存在未加载的数据,浪费后台加载数据的资源。本实施例中,由于镜像文件中的数据全部加载至快照中时,无需再从镜像服务器中加载数据,此时,将快照的属性由延迟加载属性转变为普通属性,可以指示卷管理程序无需再检测该快照中是否存在未加载的数据,节省了后台加载数据的资源。
可选地,在镜像文件的全部数据加载至快照后,快照与镜像文件不再关联。示意性地,卷管理程序删除快照与镜像文件的关联关系。
本实施例中,由于镜像文件中的数据全部加载至快照中时,无需再在后台从镜像服务器加载数据,因此,不再需要存储快照与镜像文件之间的关联关系,此时,将快照与镜像文件之间的关联关系删除,可以节省云主机的存储空间。
可选地,在镜像文件中的全部数据加载至快照后,卷管理程序将快照中的数据合并存储至卷中。
卷管理程序将快照中的数据合并存储至卷中符合如下原则:
1、若卷和快照中的同一存储位置均存储有数据,则卷中的数据保持不变。
2、对于某一存储位置,若卷中该存储位置中未存储数据,而快照中该存储位置中存储有数据,则将快照中的数据拷贝至卷中。
3、对于某一存储位置,若卷中该存储位置中存储有数据,而快照中该存储位置中未存储有数据,则卷中的数据保持不变。
可选地,卷管理程序将卷与对应的快照合并后,删除该快照。
本实施例中,由于镜像文件中的数据全部加载至快照中时,无需再在后台从镜像服务器加载数据,因此,不会再出现旧数据覆盖新数据的问题,此时,将快照与卷合并且删除快照,既可以保证虚拟机加载的数据的准确性,又可以节省云存储中的存储资源。
可选地,由于可能存在多个卷管理程序请求从镜像服务器加载同一镜像文件的同一存储位置的数据,请求该存储位置的数据的卷管理程序越多,镜像服务器管理镜像文件的压力越大。
参考图7,假设存在三个卷管理程序请求存储位置71对应的数据(阴影部分表示),则镜像服务器需要将存储位置71对应的数据向云主机发送三次,镜像服务器处理镜像数据的压力较大。
为了降低镜像服务器的压力,本申请中,卷管理程序在云存储中创建缓存卷,加载同一镜像文件的多个卷管理程序可以共享该缓存卷,缓存卷存储有不同卷管理程序请求加载的同一镜像文件的同一存储位置的数据;每个卷管理程序在从镜像服务器加载目标数据之前,先检测缓存卷中是否存储有该目标数据,这样,同一镜像文件的同一存储位置的数据只需要从镜像服务器中加载一次即可,降低了镜像服务器处理镜像文件的压力。
可选地,对于同一个镜像文件,缓存卷是在创建第一台虚拟机对应的卷和快照时创建的。缓存卷位于云存储中。缓存卷中数据的存储位置与卷中数据的存储位置一一对应。
可选地,主管理程序在创建缓存卷后,将缓存卷与各个虚拟机对应的卷管理程序相关联,将缓存卷与镜像文件相关联,这样,可以保证虚拟机对应的卷管理程序根据数据加载请求在缓存卷中加载数据,并将镜像文件中的数据写入缓存卷。
可选地,缓存卷也可以称为缓存快照、镜像缓存卷等,本实施例不对缓存卷的名称作限定。
若主卷管理程序在云存储中创建了缓存卷,则基于图3所述的实施例,步骤303还包括:从镜像服务器中将目标数据写入镜像文件对应的缓存卷中;将缓存卷中的目标数据写入快照中。
当虚拟机是第一个请求加载目标数据的虚拟机时,该虚拟机对应的卷管理程序从镜像服务器中将目标数据写入该缓存卷中。
示意性地,当虚拟机是第一个请求加载目标数据的虚拟机时,虚拟机对应的卷管理程序查找缓存卷中是否存储有目标数据;在缓存卷中未存储有目标数据时,该卷管理程序通过镜像数据加载程序从镜像服务器中加载目标数据,将该目标数据写入缓存卷中。然后,虚拟机对应的卷管理程序将缓存卷中的目标数据写入对应的快照中,再将快照中的数据发送给虚拟机。
可选地,在虚拟机对应的卷管理程序通过镜像数据加载程序从镜像服务器中加载目标数据时,标记该目标数据的暂停响应权限,这样,在存在其它虚拟机也请求该目标数据时,其它虚拟机对应的卷管理程序根据该暂停响应权限,暂停响应其它虚拟机的数据加载请求;虚拟机对应的卷管理程序在将目标数据写入缓存卷中后,将该目标数据的暂停响应权限修改为允许响应权限,此时,其它虚拟机对应的卷管理程序再根据允许响应权限,将缓存卷中的目标数据写入其它虚拟机对应的快照中。
可选地,缓存卷中各个存储位置存储的数据的初始响应权限为允许响应权限。
其中,数据的允许响应权限是指允许卷管理程序响应数据加载请求的权限,比如:在缓存卷中存储有目标数据时,允许将该目标数据写入对应的快照的权限;又比如:在缓存卷中未存储有目标数据时,允许卷管理程序从镜像服务器中加载目标数据,并将该目标数据写入对应的快照的权限。
其中,数据的暂停响应权限是指暂时禁止卷管理程序响应数据加载请求的权限,比如:在缓存卷中未存储有目标数据,且存在一个卷管理程序正在从镜像服务器中加载目标数据时,禁止卷管理程序再次从镜像服务器中加载该目标数据的权限。
示意性地,当虚拟机不是第一个请求加载目标数据的虚拟机时,若该目标数据未存储在缓存卷中,则虚拟机对应的卷管理程序暂停响应虚拟机的数据加载请求,直至将目标数据写入缓存卷时,虚拟机对应的卷管理程序再响应数据加载请求。
可选地,当虚拟机不是第一个请求加载目标数据的虚拟机时,虚拟机对应的卷管理程序根据目标数据的暂停响应权限,暂停响应虚拟机的数据加载请求,直至该目标数据由暂停响应权限修改为允许响应权限时,虚拟机对应的卷管理程序将缓存卷中的目标数据写入对应的快照中,再将快照中的数据发送给虚拟机。
可选地,参考图8,假设存在卷管理程序81、82和83均需要加载存储位置84对应的目标数据,且卷管理程序81、82和83所管理的卷和快照中均未存储该目标数据。卷管理程序81所管理的虚拟机为第一次请求加载目标数据的虚拟机,则卷管理程序81获取缓存卷85的响应权限,该响应权限为允许响应权限。然后,卷管理程序81查询缓存卷85中是否存储有存储位置84对应的目标数据;在缓存卷85未存储该目标数据时,卷管理程序81从镜像服务器86中加载该目标数据,并设置该目标数据的暂停响应权限。
卷管理程序82和83所管理的至少一台虚拟机发送了数据加载请求,卷管理程序82和83接收到数据加载请求后,获取缓存卷85的响应权限。此时,响应权限为暂停响应权限,卷管理程序82和83暂停响应至少一台虚拟机发送的数据加载请求。
卷管理程序81将目标数据写入缓存卷85之后(图中左斜线阴影部分表示),设置该目标数据的允许响应权限。卷管理程序82和83根据允许响应权限,响应所管理的虚拟机的数据加载请求。
卷管理程序81将缓存卷85中的目标数据写入对应的快照1(图中左斜线阴影部分表示);然后,将快照1中的目标数据发送至发送数据加载请求的虚拟机,该虚拟机由卷管理程序81管理。
卷管理程序82将缓存卷85中的目标数据写入对应的快照2(图中左斜线阴影部分表示);然后,将快照2中的目标数据发送至发送数据加载请求的虚拟机,该虚拟机由卷管理程序82管理。
卷管理程序83将缓存卷85中的目标数据写入对应的快照3(图中左斜线阴影部分表示);然后,将快照3中的目标数据发送至发送数据加载请求的虚拟机,该虚拟机由卷管理程序83管理。
综上所述,本实施例提供的数据加载方法,通过在云存储中创建缓存卷,云主机中的各个卷管理程序在从镜像服务器加载目标数据之前,先在该缓存卷中查找目标数据;这样,缓存卷中每个存储位置对应的数据只需要从镜像服务器中加载一次;使得镜像服务器无需对同一存储位置的数据处理多次,降低了镜像服务器处理镜像数据的压力。
可选地,对于同一个镜像文件,在从缓存卷请求数据的至少一个卷管理程序对应的快照中均已加载该镜像文件的完整数据时,主管理程序将该缓存卷删除。
可选地,主管理程序确定从缓存卷请求数据的至少一个卷管理程序;在缓存卷中的数据全部加载完成之后,周期性地检测该至少一个卷管理程序对应的快照的属性是否为普通属性;在该至少一个卷管理程序对应的快照的属性均为普通属性时,说明至少一个卷管理程序对应的快照中均已加载该镜像文件的完整数据,此时,删除缓存卷。
可选地,主卷管理程序通过云平台确定从缓存卷请求数据的至少一个卷管理程序。
本实施例中,通过在从缓存卷请求数据的至少一个卷管理程序对应的快照中均已加载数据完成时,主卷管理程序将该缓存卷删除,使得缓存卷在数据延迟加载过程完成后无需再占用云存储中的资源,节省了云存储的存储资源。
可选地,云存储中的缓存卷可以为已创建的虚拟机所对应的快照,已创建的虚拟机包括发送数据加载请求的虚拟机。
在一个示例中,对于某一镜像文件,缓存卷为云平台中第一个根据该镜像文件所创建的虚拟机对应的快照。
对于同一个镜像文件,主管理程序在创建第一个虚拟机对应的卷和快照后,设置快照的属性为缓存卷属性,比如:主管理程序记录第一个创建的虚拟机对应的快照的属性为缓存卷属性;主管理程序在根据该镜像文件创建其它虚拟机对应的快照之后,检测是否已创建具有缓存卷属性的快照;在检测出已创建具有缓存卷属性的快照时,不再将其它虚拟机对应的快照的属性设置为缓存卷属性。
在另一个示例中,缓存卷为第一个请求镜像文件中的数据的虚拟机对应的快照。
主管理程序在创建了至少两个虚拟机对应的快照之后,在各个虚拟机运行的过程中,第一个发送数据加载请求的虚拟机对应的卷管理程序将对应的快照标记为缓存卷,将该快照的快照标识发送至主管理程序。其中,至少两个虚拟机请求加载同一镜像文件中的数据。
在本实施例中,缓存卷对应的卷管理程序与第一个请求目标数据的虚拟机对应的卷管理程序可能相同。
可选地,卷管理程序创建了具有缓存卷属性的快照后,将该快照与其它虚拟机对应的卷管理程序相关联。比如:卷管理程序创建了具有缓存卷属性的快照后,将快照的标识发送至其它虚拟机对应的卷管理程序;其它虚拟机对应的卷管理程序记录该快照的标识。
参考图9,假设存在卷管理程序91、92和93均需要加载存储位置94对应的目标数据,且卷管理程序91、92和93所管理的卷和快照中均未存储该目标数据。卷管理程序91所管理的虚拟机为第一次请求加载该目标数据的虚拟机,且卷管理程序91对应的快照1为缓存卷。
卷管理程序91根据虚拟机发送的数据加载请求获取缓存卷95中目标数据的响应权限(包括暂停响应权限或允许响应权限);该响应权限为允许响应权限。然后,卷管理程序91查询快照1中是否存储有存储位置94对应的目标数据;在快照1中未存储该目标数据时,卷管理程序91从镜像服务器96中加载该目标数据,并设置该目标数据的暂停响应权限。
卷管理程序92和93所管理的至少一台虚拟机发送了数据加载请求,卷管理程序92和93接收到数据加载请求后,获取快照1中目标数据的响应权限。数据加载请求用于请求存储位置94对应的目标数据。此时,目标数据为暂停响应权限,卷管理程序92和93暂停响应至少一台虚拟机发送的数据加载请求。
卷管理程序91将目标数据写入快照1之后,设置该目标数据的允许响应权限。卷管理程序92和93根据允许响应权限响应所管理的虚拟机的数据加载请求。
卷管理程序92将快照1中的目标数据写入对应的快照2;然后,将快照2中的目标数据发送至发送数据加载请求的虚拟机,该虚拟机由卷管理程序92管理。
卷管理程序93将快照1中的目标数据写入对应的快照3;然后,将快照3中的目标数据发送至发送数据加载请求的虚拟机,该虚拟机由卷管理程序93管理。
综上所述,本实施例提供的数据加载方法,通过将已创建的虚拟机的快照设置为缓存卷,使得主管理程序无需在云存储中额外创建缓存卷,这样,缓存卷无需额外占用云存储中的存储资源,节省了云存储中的存储资源。
可选地,当镜像文件中的全部数据已加载至缓存卷,且镜像文件中的全部数据已加载至使用镜像文件的其他虚拟机所对应的快照时,将缓存卷中的数据合并存储至已创建的虚拟机所对应的卷中。
由于在具有缓存卷属性的快照已加载镜像文件中的全部数据时,该快照对应的卷管理程序需要将快照中的数据与卷中的数据合并,本实施例中,为了保证依赖于该快照进行数据加载的虚拟机能够继续从该快照中加载数据,在使用镜像文件的其他虚拟机所对应的快照已加载镜像文件中的全部数据时,卷管理程序再将具有缓存卷属性的快照与对应的卷合并。
可选地,在具有缓存卷属性的快照已加载镜像文件中的全部数据时,具有缓存卷属性的快照对应的卷管理程序查找相关联的快照的属性是否为普通属性,在所有相关联的快照的属性均为普通属性时,将快照与对应的卷合并。
其中,与具有缓存卷属性的快照相关联的快照是卷管理程序从主管理程序中获取得到;或者,是卷管理程序预先存储的。
本实施例中,通过当镜像文件中的全部数据已加载至缓存卷,且镜像文件中的全部数据已加载至使用镜像文件的其他虚拟机所对应的快照时,将缓存卷中的数据合并存储至已创建的虚拟机所对应的卷中,保证了在缓存卷已加载镜像文件中的全部数据时,与缓存卷相关联的快照仍旧能够从缓存卷中加载数据,保证了缓存卷的有效性。
可选地,在缓存卷中的数据合并存储至已创建的虚拟机所对应的卷中之后,缓存卷对应的卷管理程序将该缓存卷删除。
可选地,本申请中,虚拟机对应的快照已加载镜像文件中的全部数据之后,卷管理程序将卷中存储的数据发送至备份存储***,该备份存储***用于将卷中存储的数据作为虚拟机的增量备份数据,将镜像服务器中存储的镜像文件作为虚拟机的全量备份数据,根据全量备份数据和增量备份数据对虚拟机进行数据恢复。
由于在虚拟机对应的卷可能存在损坏或数据丢失,因此,为了保证虚拟机能够正常访问卷中的数据,需要对卷中的数据进行备份,从而使得卷管理程序能够恢复出卷中的数据。
可选地,备份存储***与镜像文件的存储***相同,备份存储***用于存储卷管理程序发送的增量备份数据。
其中,全量备份数据是对存储于镜像服务器中未经修改过的镜像文件进行备份(拷贝)得到的。增量备份数据是在全量备份或上一次增量备份之后,对与前一次备份相比增加或者被修改的文件的进行备份(拷贝)得到的。比如:第一次增量备份是备份与全量备份数据相比增加或者被修改的文件;第二次增量备份是备份与第一次增量备份数据相比增加或者被修改的文件;第三次增量备份是备份与第二次增量备份数据相比增加或者被修改的文件,依次类推。
可选地,本申请中,将镜像服务器中存储的镜像文件作为全量备份数据,将卷中的数据进行增量备份。这样,卷管理程序在首次备份数据时,只需要备份卷中的数据,无需备份镜像文件中的数据,减少了卷管理程序首次备份时所需备份的数据量。
可选地,卷管理程序每隔预设时长对卷进行一次增量备份。
预设时长由开发者或用户设置,预设时长可以为一天、12小时等,本实施例不对预设时长的取值作限定。
参考图10,卷管理程序将镜像文件101作为全量备份数据(图中左斜线阴影表示),将卷中的数据进行增量备份得到增量备份数据(图中右斜线阴影表示),镜像文件101和增量备份数据存储于备份存储***中。
综上所述,本实施例提供的数据加载方法,通过将卷中的数据作为增量备份数据,将镜像服务器中的镜像文件作为全量备份数据,由于备份存储***与镜像文件使用同一存储***,因此,卷管理程序在首次备份时,只需要备份卷中的数据,减少卷管理程序所需备份的数据量。
可选地,卷管理程序在首次备份时,也可以对快照和卷中的数据进行全量备份得到全量备份数据,后续仅对卷中的数据进行增量备份,得到增量备份数据。此时,镜像文件可以与备份存储***是不同的存储***。
需要补充说明的是,本申请中,以各个虚拟机所依赖的快照和缓存卷从镜像服务器中加载同一份镜像文件为例进行说明,在实际实现时,可以存在至少两个不同的快照从镜像服务器中加载不同的镜像文件,存在至少两个不同的缓存卷从镜像服务器中加载不同的镜像文件,每个快照和/或缓存卷加载对应的镜像文件的方式参考上述实施例,本实施例在此不作赘述。
请参考图11,其示出了本申请一个实施例提供的数据加载装置的框图。该数据加载装置可以通过软件、硬件或者两者的结合实现成为图1所示的数据加载***中的云主机120的全部或者一部分。该数据加载装置可以包括:请求获取单元1110、数据检测单元1120、数据读取单元1130和数据写入单元1140。
请求获取单元1110,用于在虚拟机启动之后获取所述虚拟机的数据加载请求,所述数据加载请求用于请求加载镜像文件中的目标数据;
数据检测单元1120,用于确定所述虚拟机对应的快照中是否存储有所述目标数据,所述快照是在创建所述虚拟机时根据所述虚拟机对应的空白的卷得到的,所述卷和对应的快照相关联;所述快照用于延迟加载所述镜像文件,所述快照与所述镜像文件相关联;
数据读取单元1130,用于在所述快照中未存储有所述目标数据时,从镜像服务器中将所述目标数据写入所述快照,将所述目标数据读出并发送给所述虚拟机;
数据写入单元1140,还用于获取所述虚拟机生成的虚拟机数据,将所述虚拟机数据写入所述卷。
可选地,所述装置还包括:后台加载单元和属性转变单元。
后台加载单元,用于将所述镜像文件中除所述目标数据之外的数据加载至所述快照中;
属性转变单元,用于在所述镜像文件的全部数据加载至所述快照后,将所述快照的属性从延迟加载属性转变为普通属性。
可选地,所述装置还包括:数据合并单元。
数据合并单元,用于在将所述镜像文件中除所述目标数据之外的数据加载至所述快照中之后,将所述快照中的数据合并存储至所述卷中。
可选地,所述数据写入单元1140,用于:
从所述镜像服务器中将所述目标数据写入所述镜像文件对应的缓存卷中;
将所述缓存卷中的所述目标数据写入所述快照中。
可选地,所述数据写入单元1140,用于:
当所述虚拟机是第一个请求加载所述目标数据的虚拟机时,从所述镜像服务器中将所述目标数据写入所述缓存卷中。
可选地,所述数据写入单元1140,用于:
当所述虚拟机不是所述第一个请求加载所述目标数据的虚拟机且所述目标数据正在被其他虚拟机请求写入所述缓存卷时,暂停响应所述数据加载请求,直至将所述目标数据写入所述缓存卷时,响应所述数据加载请求。
可选地,所述缓存卷是已创建的虚拟机所对应的快照,所述已创建的虚拟机包括发送所述数据加载请求的所述虚拟机;
所述数据合并单元,还用于:
当所述镜像文件中的全部数据已加载至所述缓存卷,且所述镜像文件中的全部数据已加载至使用所述镜像文件的其他虚拟机所对应的快照时,将所述缓存卷中的数据合并存储至所述已创建的虚拟机所对应的卷中。
可选地,所述装置还包括:备份单元。
备份单元,用于在获取所述虚拟机生成的所述虚拟机数据,将所述虚拟机数据写入所述卷之后,将所述卷中存储的数据发送至备份存储***,所述备份存储***用于将所述卷中存储的数据作为所述虚拟机的增量备份数据,将所述镜像服务器中存储的镜像文件作为所述虚拟机的全量备份数据,根据所述全量备份数据和所述增量备份数据对所述虚拟机进行数据恢复。
相关细节可结合参考上述方法实施例。
请参考图12,其示出了本申请一个示例性实施例提供的数据加载设备的结构示意图,该数据加载设备可以是图1所示的数据加载***中的云主机120。该数据加载设备包括:处理器121、存储器122和总线123。
处理器121包括一个或者一个以上处理核心,处理器121通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
存储器122通过总线123与处理器121相连。存储器122存储有数据加载设备在数据加载过程中必要的程序指令和数据。
处理器121用于执行存储器122中的程序指令和/或数据以实现本申请各个方法实施例提供的数据加载方法的功能。
此外,存储器122可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
可以理解的是,图12仅仅示出了数据加载设备的简化设计。在其他的实施例中,数据加载设备可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信单元等,而所有可以实现本申请的数据加载设备都在本申请的保护范围之内。
可选地,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在数据加载设备上运行时,使得数据加载设备执行上述各个方法实施例所提供的数据加载方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种数据加载方法,其特征在于,所述方法包括:
在虚拟机启动之后获取所述虚拟机的数据加载请求,所述数据加载请求用于请求加载镜像文件中的目标数据;
确定所述虚拟机对应的快照中是否存储有所述目标数据,所述快照是在创建所述虚拟机时根据所述虚拟机对应的空白的卷得到的,所述卷和对应的快照相关联;所述快照用于延迟加载所述镜像文件,所述快照与所述镜像文件相关联;
在所述快照中未存储有所述目标数据时,从镜像服务器中将所述目标数据写入所述快照后,将所述目标数据读出并发送给所述虚拟机;
获取所述虚拟机生成的虚拟机数据,将所述虚拟机数据写入所述卷。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述镜像文件中除所述目标数据之外的数据加载至所述快照中;
在所述镜像文件的全部数据加载至所述快照后,将所述快照的属性从延迟加载属性转变为普通属性。
3.根据权利要求2所述的方法,其特征在于,所述将所述镜像文件中除所述目标数据之外的数据加载至所述快照中之后,还包括:
将所述快照中的数据合并存储至所述卷中。
4.根据权利要求1至3任一所述的方法,其特征在于,所述从镜像服务器中将所述目标数据写入所述快照,包括:
从所述镜像服务器中将所述目标数据写入所述镜像文件对应的缓存卷中;
将所述缓存卷中的所述目标数据写入所述快照中。
5.根据权利要求4所述的方法,其特征在于,所述从所述镜像服务器中将所述目标数据写入所述镜像文件对应的缓存卷中,包括:
当所述虚拟机是第一个请求加载所述目标数据的虚拟机时,从所述镜像服务器中将所述目标数据写入所述缓存卷中。
6.根据权利要求4所述的方法,其特征在于,所述将所述缓存卷中的所述目标数据写入所述快照中之前,还包括:
当所述虚拟机不是所述第一个请求加载所述目标数据的虚拟机,且所述目标数据正在被其他虚拟机请求写入所述缓存卷时,暂停响应所述数据加载请求,直至将所述目标数据写入所述缓存卷时,响应所述数据加载请求。
7.根据权利要求4至6任一所述的方法,其特征在于,所述缓存卷是已创建的虚拟机所对应的快照,所述已创建的虚拟机包括发送所述数据加载请求的所述虚拟机;
所述从镜像服务器中将所述目标数据写入所述快照之后,还包括:
当所述镜像文件中的全部数据已加载至所述缓存卷,且所述镜像文件中的全部数据已加载至使用所述镜像文件的其他虚拟机所对应的快照时,将所述缓存卷中的数据合并存储至所述已创建的虚拟机所对应的卷中。
8.根据权利要求1至7任一所述的方法,其特征在于,所述获取所述虚拟机生成的所述虚拟机数据,将所述虚拟机数据写入所述卷之后,还包括:
将所述卷中存储的数据发送至备份存储***,所述备份存储***用于将所述卷中存储的数据作为所述虚拟机的增量备份数据,将所述镜像服务器中存储的镜像文件作为所述虚拟机的全量备份数据,根据所述全量备份数据和所述增量备份数据对所述虚拟机进行数据恢复。
9.一种数据加载装置,其特征在于,所述装置包括:
请求获取单元,用于在虚拟机启动之后获取所述虚拟机的数据加载请求,所述数据加载请求用于请求加载镜像文件中的目标数据;
数据检测单元,用于确定所述虚拟机对应的快照中是否存储有所述目标数据,所述快照是在创建所述虚拟机时根据所述虚拟机对应的空白的卷得到的,所述卷和对应的快照相关联;所述快照用于延迟加载所述镜像文件,所述快照与所述镜像文件相关联;
数据读取单元,用于在所述快照中未存储有所述目标数据时,从镜像服务器中将所述目标数据写入所述快照后,将所述目标数据读出并发送给所述虚拟机;
数据写入单元,还用于获取所述虚拟机生成的虚拟机数据,将所述虚拟机数据写入所述卷。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
后台加载单元,用于将所述镜像文件中除所述目标数据之外的数据加载至所述快照中;
属性转变单元,用于在所述镜像文件的全部数据加载至所述快照后,将所述快照的属性从延迟加载属性转变为普通属性。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
数据合并单元,用于在将所述镜像文件中除所述目标数据之外的数据加载至所述快照中之后,将所述快照中的数据合并存储至所述卷中。
12.根据权利要求9至11任一所述的装置,其特征在于,所述数据写入单元,用于:
从所述镜像服务器中将所述目标数据写入所述镜像文件对应的缓存卷中;
将所述缓存卷中的所述目标数据写入所述快照中。
13.根据权利要求12所述的装置,其特征在于,所述数据写入单元,用于:
当所述虚拟机是第一个请求加载所述目标数据的虚拟机时,从所述镜像服务器中将所述目标数据写入所述缓存卷中。
14.根据权利要求12所述的装置,其特征在于,所述数据写入单元,用于:
当所述虚拟机不是所述第一个请求加载所述目标数据的虚拟机且所述目标数据正在被其他虚拟机请求写入所述缓存卷时,暂停响应所述数据加载请求,直至将所述目标数据写入所述缓存卷时,响应所述数据加载请求。
15.根据权利要求12至14任一所述的装置,其特征在于,所述缓存卷是已创建的虚拟机所对应的快照,所述已创建的虚拟机包括发送所述数据加载请求的所述虚拟机;
所述数据合并单元,还用于:
当所述镜像文件中的全部数据已加载至所述缓存卷,且所述镜像文件中的全部数据已加载至使用所述镜像文件的其他虚拟机所对应的快照时,将所述缓存卷中的数据合并存储至所述已创建的虚拟机所对应的卷中。
16.根据权利要求9至15任一所述的装置,其特征在于,所述装置还包括:
备份单元,用于在获取所述虚拟机生成的所述虚拟机数据,将所述虚拟机数据写入所述卷之后,将所述卷中存储的数据发送至备份存储***,所述备份存储***用于将所述卷中存储的数据作为所述虚拟机的增量备份数据,将所述镜像服务器中存储的镜像文件作为所述虚拟机的全量备份数据,根据所述全量备份数据和所述增量备份数据对所述虚拟机进行数据恢复。
17.一种数据加载装置,其特征在于,所述装置包括:处理器、与所述处理器相连的存储器,所述处理器执行所述存储器中存储的指令实现权利要求1至8任一所述的数据加载方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可执行程序,所述可执行程序由处理器执行以实现权利要求1至8任一所述的数据加载方法。
CN201780004610.0A 2017-09-29 2017-09-29 数据加载方法及装置 Active CN108701048B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/104581 WO2019061352A1 (zh) 2017-09-29 2017-09-29 数据加载方法及装置

Publications (2)

Publication Number Publication Date
CN108701048A true CN108701048A (zh) 2018-10-23
CN108701048B CN108701048B (zh) 2020-09-11

Family

ID=63844074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780004610.0A Active CN108701048B (zh) 2017-09-29 2017-09-29 数据加载方法及装置

Country Status (4)

Country Link
US (1) US10838829B2 (zh)
EP (1) EP3502877B1 (zh)
CN (1) CN108701048B (zh)
WO (1) WO2019061352A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710459A (zh) * 2018-12-15 2019-05-03 无锡北方数据计算股份有限公司 一种基于镜像的快照技术
CN110163241A (zh) * 2019-03-18 2019-08-23 腾讯科技(深圳)有限公司 数据样本生成方法、装置、计算机设备及存储介质
CN111026333A (zh) * 2019-12-10 2020-04-17 北京金山云网络技术有限公司 访问请求处理方法、处理装置、电子设备及存储介质
CN111522621A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 快照缓存创建方法、装置、电子设备及计算机存储介质
CN113821173A (zh) * 2021-09-17 2021-12-21 济南浪潮数据技术有限公司 一种数据存储方法、装置、设备及计算机可读存储介质
CN114168262A (zh) * 2021-12-03 2022-03-11 中国人寿保险股份有限公司上海数据中心 一种基于lru置换算法的云平台镜像缓存管理方法
WO2024140900A1 (zh) * 2022-12-30 2024-07-04 华为云计算技术有限公司 一种虚拟机的加速启动方法及其相关设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108701048B (zh) * 2017-09-29 2020-09-11 华为技术有限公司 数据加载方法及装置
US11182094B2 (en) 2018-09-06 2021-11-23 International Business Machines Corporation Performing a recovery copy command using a recovery copy data structure for a backup volume lookup
US11182081B2 (en) 2018-09-06 2021-11-23 International Business Machines Corporation Performing a recovery copy command to restore a safeguarded copy backup to a production volume
US10789132B2 (en) * 2018-09-06 2020-09-29 International Business Machines Corporation Performing a recovery copy command to create a recovery volume for a consistency group
US11782610B2 (en) * 2020-01-30 2023-10-10 Seagate Technology Llc Write and compare only data storage
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210781A1 (en) * 2008-02-20 2009-08-20 Hagerott Steven G Web application code decoupling and user interaction performance
CN102331949A (zh) * 2011-10-12 2012-01-25 华为技术有限公司 一种虚拟机内存快照生成和恢复方法、装置及***
US20120066677A1 (en) * 2010-09-10 2012-03-15 International Business Machines Corporation On demand virtual machine image streaming
CN103299311A (zh) * 2011-12-29 2013-09-11 英特尔公司 用于可信引导优化的方法和设备
CN103389884A (zh) * 2013-07-29 2013-11-13 华为技术有限公司 处理输入/输出请求的方法、宿主机、服务器和虚拟机
CN103914647A (zh) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 基于本地虚拟化机制的程序隔离运行方法
CN104461785A (zh) * 2014-12-15 2015-03-25 中电长城网际***应用有限公司 虚拟机数据备份方法、恢复方法及装置和物理机
CN104866435A (zh) * 2015-06-06 2015-08-26 成都云祺科技有限公司 一种连续数据保护方法
US20150242283A1 (en) * 2014-02-27 2015-08-27 Red Hat Israel, Ltd. Backing up virtual machines
CN105068856A (zh) * 2015-07-16 2015-11-18 武汉噢易云计算有限公司 基于镜像快照的虚拟机备份***及备份方法
CN105094948A (zh) * 2015-07-31 2015-11-25 杭州华为数字技术有限公司 一种虚拟机的***镜像文件更新方法、云数据中心及***
US20160063014A1 (en) * 2014-08-29 2016-03-03 Nimble Storage, Inc. Methods and systems for creating and removing virtual machine snapshots based on groups of metrics
CN105739918A (zh) * 2016-01-07 2016-07-06 杭州华三通信技术有限公司 虚拟机的存储在线迁移方法及装置
CN107092538A (zh) * 2017-03-14 2017-08-25 平安科技(深圳)有限公司 虚拟机数据备份方法及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286030B1 (en) * 2009-02-09 2012-10-09 American Megatrends, Inc. Information lifecycle management assisted asynchronous replication
US9304867B2 (en) * 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
CN108701048B (zh) * 2017-09-29 2020-09-11 华为技术有限公司 数据加载方法及装置

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210781A1 (en) * 2008-02-20 2009-08-20 Hagerott Steven G Web application code decoupling and user interaction performance
US20120066677A1 (en) * 2010-09-10 2012-03-15 International Business Machines Corporation On demand virtual machine image streaming
CN102331949A (zh) * 2011-10-12 2012-01-25 华为技术有限公司 一种虚拟机内存快照生成和恢复方法、装置及***
CN103299311A (zh) * 2011-12-29 2013-09-11 英特尔公司 用于可信引导优化的方法和设备
CN103389884A (zh) * 2013-07-29 2013-11-13 华为技术有限公司 处理输入/输出请求的方法、宿主机、服务器和虚拟机
US20150242283A1 (en) * 2014-02-27 2015-08-27 Red Hat Israel, Ltd. Backing up virtual machines
CN103914647A (zh) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 基于本地虚拟化机制的程序隔离运行方法
US20160063014A1 (en) * 2014-08-29 2016-03-03 Nimble Storage, Inc. Methods and systems for creating and removing virtual machine snapshots based on groups of metrics
CN104461785A (zh) * 2014-12-15 2015-03-25 中电长城网际***应用有限公司 虚拟机数据备份方法、恢复方法及装置和物理机
CN104866435A (zh) * 2015-06-06 2015-08-26 成都云祺科技有限公司 一种连续数据保护方法
CN105068856A (zh) * 2015-07-16 2015-11-18 武汉噢易云计算有限公司 基于镜像快照的虚拟机备份***及备份方法
CN105094948A (zh) * 2015-07-31 2015-11-25 杭州华为数字技术有限公司 一种虚拟机的***镜像文件更新方法、云数据中心及***
CN105739918A (zh) * 2016-01-07 2016-07-06 杭州华三通信技术有限公司 虚拟机的存储在线迁移方法及装置
CN107092538A (zh) * 2017-03-14 2017-08-25 平安科技(深圳)有限公司 虚拟机数据备份方法及***

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710459A (zh) * 2018-12-15 2019-05-03 无锡北方数据计算股份有限公司 一种基于镜像的快照技术
CN111522621A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 快照缓存创建方法、装置、电子设备及计算机存储介质
CN110163241A (zh) * 2019-03-18 2019-08-23 腾讯科技(深圳)有限公司 数据样本生成方法、装置、计算机设备及存储介质
CN110163241B (zh) * 2019-03-18 2022-12-30 腾讯科技(深圳)有限公司 数据样本生成方法、装置、计算机设备及存储介质
CN111026333A (zh) * 2019-12-10 2020-04-17 北京金山云网络技术有限公司 访问请求处理方法、处理装置、电子设备及存储介质
CN113821173A (zh) * 2021-09-17 2021-12-21 济南浪潮数据技术有限公司 一种数据存储方法、装置、设备及计算机可读存储介质
CN113821173B (zh) * 2021-09-17 2023-12-22 济南浪潮数据技术有限公司 一种数据存储方法、装置、设备及计算机可读存储介质
CN114168262A (zh) * 2021-12-03 2022-03-11 中国人寿保险股份有限公司上海数据中心 一种基于lru置换算法的云平台镜像缓存管理方法
CN114168262B (zh) * 2021-12-03 2022-09-23 中国人寿保险股份有限公司上海数据中心 一种基于lru置换算法的云平台镜像缓存管理方法
WO2024140900A1 (zh) * 2022-12-30 2024-07-04 华为云计算技术有限公司 一种虚拟机的加速启动方法及其相关设备

Also Published As

Publication number Publication date
EP3502877B1 (en) 2021-03-03
US20190138405A1 (en) 2019-05-09
US10838829B2 (en) 2020-11-17
CN108701048B (zh) 2020-09-11
WO2019061352A1 (zh) 2019-04-04
EP3502877A4 (en) 2020-03-11
EP3502877A1 (en) 2019-06-26

Similar Documents

Publication Publication Date Title
CN108701048A (zh) 数据加载方法及装置
US20210056074A1 (en) File System Data Access Method and File System
US9612966B2 (en) Systems, methods and apparatus for a virtual machine cache
US6618736B1 (en) Template-based creation and archival of file systems
US10303499B2 (en) Application aware graph driver
US10423532B2 (en) Guest ordering of host file system writes
US20180157674A1 (en) Distributed nfs metadata server
CN107239319B (zh) 一种虚拟机的数据存储方法和装置
US9183130B2 (en) Data control system for virtual environment
US8122182B2 (en) Electronically addressed non-volatile memory-based kernel data cache
CN107209683A (zh) 备份映像恢复
US11409451B2 (en) Systems, methods, and storage media for using the otherwise-unutilized storage space on a storage device
US8332844B1 (en) Root image caching and indexing for block-level distributed application management
CN107832097A (zh) 数据加载方法及装置
US9588855B2 (en) Management and utilization of fault domains in distributed cache systems
US20220236999A1 (en) Unified way to track user configuration on a live system
US20190050455A1 (en) Adaptive page rendering for a data management system
CN109508140B (zh) 存储资源管理方法、装置、电子设备及电子设备、***
EP3264254B1 (en) System and method for a simulation of a block storage system on an object storage system
US9063656B2 (en) System and methods for digest-based storage
US11989159B2 (en) Hybrid snapshot of a global namespace
US11074003B2 (en) Storage system and restoration method
JP2010237742A (ja) 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム
CN113590309B (zh) 一种数据处理方法、装置、设备及存储介质
CN117667964B (zh) 数据处理方法、装置、设备、数据库及计算机程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220216

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.