CN111045859B - 用于备份虚拟机的方法、设备和计算机程序产品 - Google Patents

用于备份虚拟机的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN111045859B
CN111045859B CN201811247622.9A CN201811247622A CN111045859B CN 111045859 B CN111045859 B CN 111045859B CN 201811247622 A CN201811247622 A CN 201811247622A CN 111045859 B CN111045859 B CN 111045859B
Authority
CN
China
Prior art keywords
file path
operating system
virtual machine
file
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.)
Active
Application number
CN201811247622.9A
Other languages
English (en)
Other versions
CN111045859A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201811247622.9A priority Critical patent/CN111045859B/zh
Priority to US16/291,025 priority patent/US20200117545A1/en
Publication of CN111045859A publication Critical patent/CN111045859A/zh
Application granted granted Critical
Publication of CN111045859B publication Critical patent/CN111045859B/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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • 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
    • 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/1464Management of the backup or restore process for networked environments
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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
    • 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/45583Memory management, e.g. access or allocation
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及一种用于备份虚拟机的方法、设备和计算机程序产品。方法包括获得在虚拟机上安装的第一操作系统中的第一文件路径,其中虚拟机运行在第二操作系统之上。方法还包括基于第一文件路径来确定第二操作系统中与第一文件路径相对应的第二文件路径,并且基于第二文件路径来备份虚拟机中的文件。本公开的实施例通过将虚拟机中的文件路径映射到真实操作系统中的文件路径,能够在虚拟机备份的过程中,排除和/或保留用户指定的文件夹或文件,由此能够节省存储空间并且节约网络带宽。

Description

用于备份虚拟机的方法、设备和计算机程序产品
技术领域
本公开的实施例总体上涉及存储备份领域,并且更具体地涉及用于备份虚拟机的方法、设备以及计算机程序产品。
背景技术
数据备份是指将数据备份到其他存储装置中,当发生数据故障或者发生灾难时,可以通过备份来恢复数据,从而避免不必要的损失。数据备份的备份种类可以分为全部备份、增量备份、差异备份以及选择性备份等。数据备份根据系统是否处于正常运行状态,又可以分为热备份和冷备份。
虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟化软件,用户可以在一台物理计算机上模拟出一个或多个虚拟机,计算机硬件资源经过虚拟化技术变成一个可以拆分的资源,拆分后的资源组成一个个虚拟机,拥有原有硬件可提供的服务能力。例如,可以在一种操作系统之上安装另一种操作系统,使得计算机能够同时运行两种操作系统。虚拟机可用于软件的开发和测试,并且广泛用于服务器行业。
发明内容
本公开的实施例提供了一种用于备份虚拟机的方法、设备和计算机程序产品。
在本公开的一个方面,提供了一种用于备份虚拟机的方法。该方法包括:获得在虚拟机上安装的第一操作系统中的第一文件路径,其中虚拟机运行在第二操作系统之上;基于第一文件路径,确定第二操作系统中与第一文件路径相对应的第二文件路径;以及基于第二文件路径,备份虚拟机中的文件。
在本公开的另一方面,提供了一种用于备份虚拟机的设备。该设备包括处理单元以及存储器,其中存储器被耦合至处理单元并且存储有指令。所述指令在由处理单元执行时执行以下动作:获得在虚拟机上安装的第一操作系统中的第一文件路径,其中虚拟机运行在第二操作系统之上;基于第一文件路径,确定第二操作系统中与第一文件路径相对应的第二文件路径;以及基于第二文件路径,备份虚拟机中的文件。
在本公开的又一方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行根据本公开的实施例的方法或过程。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。本发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的各个实施例的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施例中,相同的附图标记通常代表相同的元素。
图1示出了根据本公开的实施例的用于备份虚拟机的架构的示意图;
图2示出了根据本公开的实施例的用于备份虚拟机的方法的流程图;
图3示出了根据本公开的实施例的用于确定与盘符相对应的分区的方法的流程图;
图4示出了根据本公开的实施例的主文件表(MFT)文件记录的示图;
图5示出了根据本公开的实施例的GUID分区表(GPT)的示图;以及
图6示出了可以用来实施本公开的实施例的设备的示意性块图。
具体实施例
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的一些具体实施例,然而应该理解,可以以各种形式实现本公开,而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象,除非明确指示不同。
通常,可以在真实操作系统之上安装虚拟机,然后在虚拟机中运行虚拟操作系统。由于虚拟操作系统是一个封闭的完整系统,运行在真实操作系统中的应用或软件无法获得虚拟操作系统中用户指定的路径的真实路径。因此,通常只能对虚拟机采用整体备份的方式,而不能实现对虚拟机的部分备份。如果用户需要排除备份或者仅备份虚拟机中的某个指定路径时,传统的方案无法实现,相反,传统的方法只能是进行完整备份,浪费了过多的存储空间和网络带宽。
为此,本公开的实施例提出了一种用于备份虚拟机的新方案。本公开的实施例通过将虚拟机中的文件路径映射到真实操作系统中的文件路径,能够在虚拟机备份的过程中,排除和/或保留用户指定的文件夹或文件,由此能够节省存储空间并且节约网络带宽。因此,根据本公开的实施例,极大地扩展了数据备份的场景,用户可以指定排除备份和/或仅备份虚拟机中的某些路径和/或文件。
以下参考图1至图6来说明本公开的基本原理和若干示例实现方式。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
图1示出了根据本公开的实施例的用于备份虚拟机的架构100的示意图。如图1所示,在计算设备105上,虚拟机(VM)110正在运行在真实操作系统120(称为“第二操作系统”,简称为OS2)之上,其中虚拟机110中安装了操作系统111(称为“第一操作系统”,简称为OS1)。应当理解,操作系统120和操作系统111通常为不同类型的操作系统,例如,操作系统120可以为基于Linux的操作系统,而操作系统111可以为Windows操作系统。以这种方式,能够在计算设备105上通过虚拟化的方式同时支持两种不同类型的操作系统。然而,操作系统120和操作系统111也可以为其他的操作系统,或者可以是相同的操作系统。此外,用户设备105可以为普通计算机,也可以为专用服务器,等等。
参考图1,在操作系统120上还可以运行备份应用121,其为用于数据备份和恢复的软件。此外,在操作系统120上还可以运行专用于操作系统120的应用122。相应地,在操作系统111上可以运行专用于操作系统111的应用112。以这种方式,可以在计算设备105上运行基于不同操作系统平台的多种类型的应用(诸如应用122和112)。
由于备份应用121运行在操作系统120之上,其不了解虚拟操作系统111中的盘符(例如“D:”)的含义。因此,本公开的实施例通过将两个操作系统的文件路径相映射,能够将虚拟操作系统中的盘符映射到真实操作系统中。通常,备份应用121可以使用新技术文件系统(NTFS)的主文件表(MFT)来定位文件的逻辑簇号(LCN)、虚拟簇号(VCN)以及长度,对于需要排除备份的文件,备份应用121在备份时将绕过这些文件的块。
图2示出了根据本公开的实施例的用于备份虚拟机的方法200的流程图。应当理解,方法200可以由以上参考图1所描述的计算设备105来执行。
在202,获得在虚拟机上安装的第一操作系统中的第一文件路径,其中虚拟机运行在第二操作系统之上。例如,备份应用121可以获得虚拟机110上所安装的操作系统111中的用户指定的路径,诸如,用户可以在备份应用121中输入路径“d:\logs”,其可以用于指示用户想要排除备份这个路径中的文件,或者用户仅需要备份这个文件中的文件。
在204,基于第一文件路径,确定第二操作系统中与第一文件路径相对应的第二文件路径。例如,可以将虚拟操作系统111中的文件路径“d:\1ogs”映射到真实操作系统120中的相应分区或路径,在确定与盘符“d:”对应的分区之后,就可以确定文件路径“d:\logs”相对应的真实路径。以下参考图3描述了如何确定与盘符相对应的分区的示例实现。
在206,基于第二文件路径,备份虚拟机中的文件。在获得对应的第二文件路径之后,备份应用121可以执行相应的虚拟机备份动作。例如,备份应用121可以排除备份文件路径“d:\logs”中的内容(其为虚拟系统中的运行日志,可以选择不备份以便节省存储空间和网络带宽)。在一些实施例中,备份应用121可以确定用户想要备份的一个或多个文件路径和/或用户不想要备份的一个或多个文件路径,然后执行相应的虚拟机备份过程。
因此,本公开的实施例通过将虚拟机中的文件路径映射到真实操作系统中的文件路径,能够在虚拟机备份的过程中,排除和/或保留用户指定的文件夹或文件,由此能够节省存储空间并且节约网络带宽。相反,传统的备份系统最多只能排除根路径中的一些文件,但是其不能排除用户指定的虚拟机文件路径中的内容的备份。
图3示出了根据本公开的实施例的用于确定与盘符相对应的分区的方法300的流程图。应当理解,方法300可以由以上参考图1所描述的计算设备105来执行,此外方法300可以为以上参考图2所描述的动作204的示例实现。
在302,在针对虚拟机110创建快照之后,使用虚拟机工具将虚拟快照安装到备份应用121,然后向虚拟机110中的虚拟盘(VMDK)文件分配回环设备命令,使得备份应用121能够像操作块设备一样来操作虚拟盘文件。VMDK是虚拟机创建的虚拟硬格式,文件存在于虚拟文件系统中,被称为VMFS(虚拟机文件系统)。一个VMDK文件通常代表VMFS在虚拟机上的一个物理硬盘驱动。所有用户数据和虚拟服务器有关的配置信息都存储在VMDK文件中。
在304,确定虚拟盘的分区表格式。如果分区表是主引导记录(MBR)格式,则在306获得MBR盘的磁盘签名,其通常位于第一个扇区的偏移440处。如果分区表是GUID分区表(GPT)格式,则在308获得GPT盘的第二扇区以找到GPT头部信息以便获得分区概要信息。然后,根据分区概要信息,跳转相应偏移到相关分区以在偏移16处获得唯一的分区GUID。
例如,图5示出了根据本公开的实施例的GPT的示图500,其中每个逻辑块可以为512字节大小,每个分区条目为128字节,对应的分区条目被假设位于逻辑块寻址(LBA)2-33,受保护的MBR位于LBA 0,主GPT头部信息位于LBA 1,GPT头部具有到分区表的指针,LBA34为磁盘上第一个可用的扇区。此外,与主GPT相对,还存在次GPT,其从卷的末端开始,并且使用带“-”标记的LBA。因此,在306和308可以针对MBR盘和GPT盘分别获得相应的分区标识符信息。
MBR是位于磁盘最前边的一段引导代码,其负责磁盘操作系统对磁盘进行读写时分区合法性的判别、分区引导信息的定位,其由磁盘操作系统在对硬盘进行初始化时产生的。GPT是一个硬盘的分区表的结构布局的标准,其是可扩展固件接口(EFI)标准的一部分,被用于替代BIOS系统中的32比特来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。
返回图3,在310,对磁盘签名或者分区GUID进行字节转换,例如将小字节序的磁盘签名或者分区GUID转换成大字节序,以用于跨操作系统的字节转换。
在312,定位虚拟操作系统所处的文件夹,并且从文件夹获得虚拟操作系统的注册表文件。例如,查找NTFS的MFT,搜索包括虚拟操作系统的文件夹。例如,对于Windows虚拟操作系统来说,可以首先尝试搜索“windows”、“winnt”、“Windows”等,如果没有找到,可以在根层搜索“bootstat.dat”,其为特定于Windows操作系统的一个文件。在定位了Windows操作系统所处的文件夹之后,从文件夹中获得注册表文件。图4示出了根据本公开的实施例的MFT文件记录的示意图400,其包括标准信息410、文件或目录名称420、安全描述符430、数据或索引440以及其他信息450。这种结构对于小文件或目录(通常小于512字节)特别有利,可以将数据直接完全包含在MFT表内,从而使得文件访问更为迅速。
应当理解,虽然本公开的实施例以Windows操作系统作为虚拟的第一操作系统而进行描述,然而,第一操作系统也可以为其他的操作系统。此外,可以使用特定于其他操作系统的特定信息,来在另一操作系统中定位这个操作系统的文件夹。
注册表是Windows操作系统的核心数据库,存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行。返回图3,在314,从注册表中的指定路径获得具有指定前缀的一个或多个条目。例如,打开注册表文件,并且从“HKLM\SYSTEM\MountedDevices”或者“HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices”文件获取信息,获得以“\DosDevices\”开始的所有条目,例如,“\DosDevices\D:”表示被分配有盘符“D”。
所获得的具有指定前缀的条目可以被存储或缓存为存储库或字典316,字典316中多个条目,每个条目包括盘符和对应的标识符。在一些实施例中,每个条目具有键值对,键值对中的键包括指定前缀和虚拟操作系统的文件路径中的盘符,诸如“\DosDevices\D:”,而键值对中的值包括分区标识符,诸如“65 91 e2 fd 00...”。
接下来,在318,可以执行磁盘签名或分区GUID与字典316中的条目之间的匹配。例如,对于MBR盘,使用其磁盘签名+分区开始偏移来与字典316中的分区标识符相匹配,进而可以确定虚拟机中的MBR盘符所对应的实际分区。再例如,对于GPT盘,可以使用前缀444d494f3a49443a+分区GUID与字典316中的分区标识符相匹配,进而可以确定虚拟机中的GPT盘符所对应的实际分区。在确定虚拟机中的盘符所对应的实际分区之后,然而可以确定出与虚拟文件路径相对应的实际文件路径,进而实现针对虚拟机的部分备份的功能。
图6示出了可以用来实施本公开的实施例的设备600的示意性块图,设备600可以为以上参考图1所描述的计算设备105。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个方法或过程可由处理单元601执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU601执行时,可以执行上文描述的方法或过程中的一个或多个步骤或动作。
在一些实施例中,以上所描述的方法和过程可以被实现为计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,以及常规的过程式编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或块图中的一个或多个方块中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或块图中的一个或多个方块中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或块图中的一个或多个方块中规定的功能/动作。
附图中的流程图和块图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或块图中的每个方块可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方块实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,块图和/或流程图中的每个方块、以及块图和/或流程图中的方块的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (13)

1.一种用于备份虚拟机的方法,包括:
获得在虚拟机上安装的第一操作系统中的第一文件路径,所述虚拟机运行在第二操作系统之上;
基于所述第一文件路径,确定所述第二操作系统中与所述第一文件路径相对应的第二文件路径;以及
基于所述第二文件路径,备份所述虚拟机中的文件;
其中确定所述第二文件路径包括:
根据所述虚拟机的虚拟盘的分区表格式,确定标识符,其中所述标识符为所述虚拟盘的磁盘签名或全局唯一标识符GUID;
对所述标识符进行字节转换;
通过在主文件表MFT中搜索特定于所述第一操作系统的特定信息,来定位所述第一操作系统所处的文件夹,所述特定信息包括所述第一操作系统的名称和特定于所述第一操作系统的文件的信息中的至少一项;
从所述文件夹获得所述第一操作系统的注册表文件;以及
通过将经转换的所述标识符与所述注册表文件中的一个或多个条目进行匹配,来确定所述第二文件路径。
2.根据权利要求1所述的方法,其中所述第一文件路径为用户指定的路径,并且备份所述虚拟机中的文件包括:
备份所述虚拟机中除了所述第一文件路径之外的文件。
3.根据权利要求1所述的方法,其中确定所述第二操作系统中与所述第一文件路径相对应的第二文件路径还包括:
从所述注册表中的指定路径获得具有指定前缀的所述一个或多个条目,所述一个或多个条目中的条目具有键值对,所述键值对中的键包括所述指定前缀和盘符,所述键值对中的值包括分区标识符;以及
基于所述一个或多个条目来确定所述第二文件路径。
4.根据权利要求3所述的方法,其中基于所述一个或多个条目来确定所述第二文件路径包括:
响应于所述虚拟机的所述虚拟盘为第一类型的分区表格式,获得所述虚拟盘的所述磁盘签名;以及
基于所述磁盘签名和所述一个或多个条目,确定所述第二文件路径。
5.根据权利要求3所述的方法,其中基于所述一个或多个条目来确定所述第二文件路径包括:
响应于所述虚拟机的所述虚拟盘为第二类型的所述分区表格式,获得所述虚拟盘的所述GUID;以及
基于所述GUID和所述一个或多个条目,确定所述第二文件路径。
6.根据权利要求1所述的方法,还包括:
在确定所述第二文件路径之前,获得所述虚拟机的快照;以及
向所述虚拟机中的虚拟盘文件分配用于回环设备的命令。
7.一种用于备份虚拟机的设备,包括:
处理单元;以及
存储器,其耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
获得在虚拟机上安装的第一操作系统中的第一文件路径,所述虚拟机运行在第二操作系统之上;
基于所述第一文件路径,确定所述第二操作系统中与所述第一文件路径相对应的第二文件路径;以及
基于所述第二文件路径,备份所述虚拟机中的文件;
其中确定所述第二文件路径包括:
根据所述虚拟机的虚拟盘的分区表格式,确定标识符,其中所述标识符为所述虚拟盘的磁盘签名或全局唯一标识符GUID;
对所述标识符进行字节转换;
通过在主文件表MFT中搜索特定于所述第一操作系统的特定信息,来定位所述第一操作系统所处的文件夹,所述特定信息包括所述第一操作系统的名称和特定于所述第一操作系统的文件的信息中的至少一项;
从所述文件夹获得所述第一操作系统的注册表文件;以及
通过将经转换的所述标识符与所述注册表文件中的一个或多个条目进行匹配,来确定所述第二文件路径。
8.根据权利要求7所述的设备,其中所述第一文件路径为用户指定的路径,并且备份所述虚拟机中的文件包括:
备份所述虚拟机中除了所述第一文件路径之外的文件。
9.根据权利要求7所述的设备,其中确定所述第二操作系统中与所述第一文件路径相对应的第二文件路径还包括:
从所述注册表中的指定路径获得具有指定前缀的所述一个或多个条目,所述一个或多个条目中的条目具有键值对,所述键值对中的键包括所述指定前缀和盘符,所述键值对中的值包括分区标识符;以及
基于所述一个或多个条目来确定所述第二文件路径。
10.根据权利要求9所述的设备,其中基于所述一个或多个条目来确定所述第二文件路径包括:
响应于所述虚拟机的所述虚拟盘为第一类型的所述分区表格式,获得所述虚拟盘的所述磁盘签名;以及
基于所述磁盘签名和所述一个或多个条目,确定所述第二文件路径。
11.根据权利要求9所述的设备,其中基于所述一个或多个条目来确定所述第二文件路径包括:
响应于所述虚拟机的所述虚拟盘为第二类型的分区表格式,获得所述虚拟盘的所述GUID;以及
基于所述GUID和所述一个或多个条目,确定所述第二文件路径。
12.根据权利要求7所述的设备,所述动作还包括:
在确定所述第二文件路径之前,获得所述虚拟机的快照;以及
向所述虚拟机中的虚拟盘文件分配用于回环设备的命令。
13.一种包括计算机可执行指令的非瞬态计算机可读介质,所述计算机可执行指令在被执行时使计算机执行根据权利要求1至6中任一项所述的方法。
CN201811247622.9A 2018-10-12 2018-10-12 用于备份虚拟机的方法、设备和计算机程序产品 Active CN111045859B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811247622.9A CN111045859B (zh) 2018-10-12 2018-10-12 用于备份虚拟机的方法、设备和计算机程序产品
US16/291,025 US20200117545A1 (en) 2018-10-12 2019-03-04 Method, device and computer program product for backuping virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811247622.9A CN111045859B (zh) 2018-10-12 2018-10-12 用于备份虚拟机的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN111045859A CN111045859A (zh) 2020-04-21
CN111045859B true CN111045859B (zh) 2023-11-03

Family

ID=70159064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811247622.9A Active CN111045859B (zh) 2018-10-12 2018-10-12 用于备份虚拟机的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US20200117545A1 (zh)
CN (1) CN111045859B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118152192B (zh) * 2024-05-10 2024-07-19 北京鲲鹏凌昊智能技术有限公司 一种Linux操作系统备份还原方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461685A (zh) * 2014-11-19 2015-03-25 华为技术有限公司 虚拟机处理方法和虚拟计算机系统
CN105446826A (zh) * 2014-06-30 2016-03-30 国际商业机器公司 虚拟机备份、恢复的方法及设备
CN107341072A (zh) * 2016-11-18 2017-11-10 新华三技术有限公司 一种数据备份方法及装置
US9946559B1 (en) * 2012-02-13 2018-04-17 Veritas Technologies Llc Techniques for managing virtual machine backups

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234469B2 (en) * 2009-07-09 2012-07-31 Microsoft Corporation Backup of virtual machines using cloned virtual machines
US9507670B2 (en) * 2010-06-14 2016-11-29 Veeam Software Ag Selective processing of file system objects for image level backups

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946559B1 (en) * 2012-02-13 2018-04-17 Veritas Technologies Llc Techniques for managing virtual machine backups
CN105446826A (zh) * 2014-06-30 2016-03-30 国际商业机器公司 虚拟机备份、恢复的方法及设备
CN104461685A (zh) * 2014-11-19 2015-03-25 华为技术有限公司 虚拟机处理方法和虚拟计算机系统
CN107341072A (zh) * 2016-11-18 2017-11-10 新华三技术有限公司 一种数据备份方法及装置

Also Published As

Publication number Publication date
US20200117545A1 (en) 2020-04-16
CN111045859A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
US11741046B2 (en) Method and apparatus for creating system disk snapshot of virtual machine
US8924954B2 (en) Application software installation method and application software installation apparatus
US9218197B2 (en) Virtual machine image migration
US10210191B2 (en) Accelerated access to objects in an object store implemented utilizing a file storage system
CN104346153A (zh) 用于翻译应用程序的文本信息的方法和系统
US20160239509A1 (en) File explorer system usable in an emulated integrated development environment (ide)
WO2017020459A1 (zh) 一种为宿主配置插件包的方法与装置
US11281623B2 (en) Method, device and computer program product for data migration
CN113760306B (zh) 安装软件的方法、装置、电子设备及存储介质
CN104407890A (zh) 一种从OTG设备启动Android系统的方法
CN109726039B (zh) 用于管理虚拟机的方法和设备
US8589454B2 (en) Computer data file merging based on file metadata
US10983949B2 (en) File system quota versioning
JP2021515299A (ja) 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム
JP2021515304A (ja) システムにおける時系列ログ構造のキーバリュー・ストア内のチェックポイントを使用した障害後のリカバリのための方法、コンピュータ・プログラム、および装置
WO2019152748A1 (en) System and method for preserving entity identifiers for virtual machines
CN110674084A (zh) 用于数据保护的方法、设备和计算机可读存储介质
US11449388B1 (en) Synthesized network block devices for recovery of image backups
CN111045859B (zh) 用于备份虚拟机的方法、设备和计算机程序产品
CN113687837A (zh) 启动方式的转换方法及系统、虚拟机运行方法
US20080154574A1 (en) Application emulation on a non-production computer system
CN109144948B (zh) 应用文件定位的方法、装置、电子设备和存储器
CN114726719B (zh) 网元操作系统部署方法、装置、电子设备及存储介质
CN105094837A (zh) 引导计算机启动的方法、装置及启动引导介质的制作方法
JP2021515301A (ja) システムにおけるガベージ・コレクション処理中の障害からのリカバリのための方法、システムにおけるガベージ・コレクション処理中の障害からのリカバリのためのコンピュータ・プログラム、および装置

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