WO2017034596A1 - Virtual machine storage management - Google Patents

Virtual machine storage management Download PDF

Info

Publication number
WO2017034596A1
WO2017034596A1 PCT/US2015/055065 US2015055065W WO2017034596A1 WO 2017034596 A1 WO2017034596 A1 WO 2017034596A1 US 2015055065 W US2015055065 W US 2015055065W WO 2017034596 A1 WO2017034596 A1 WO 2017034596A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
data object
production
mirrored
datastore
Prior art date
Application number
PCT/US2015/055065
Other languages
French (fr)
Inventor
Lokesh Murthy Venkatesh
Nandan SHANTHARAJ
Sunil TURAKANI
Original Assignee
Hewlett Packard Enterprise Development Lp
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 Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Publication of WO2017034596A1 publication Critical patent/WO2017034596A1/en

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/1466Management of the backup or restore process to make the backup process non-disruptive
    • 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
    • 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/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
    • 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

Definitions

  • Computing systems, devices, and electronic components such as servers may run or execute in a networked environment and may run or support virtual machines or virtualized software, e.g., an operating system or a shared operating system.
  • a virtual machine may be used to run applications, services, and computer programs, and/or to provide other functionality to a host or remote computer.
  • a plurality of virtual machines may be resident on or across a plurality of physical servers, such that the computing load or demand of the virtual machines may be distributed across a physical hardware deployment.
  • Virtual machines may be backed up or archived to, for example, mirrored storage or external storage.
  • FIG. 1 is a block diagram of a system to manage virtual machine storage, according to an example
  • FIG. 2 is a flowchart of managing virtual machine storage, according to an example
  • FIG. 3 is a flowchart of migrating a virtual machine and managing virtual machine storage, according to an example.
  • FIG. 4 is a block diagram of a system to manage virtual machine storage, according to an example.
  • Various examples described below provide for managing virtual machine storage, including production virtual machines and mirrored virtual machines, without taking the production virtual machine offline or pausing the production virtual machine.
  • Examples comprise fetching a primary data object path and a secondary data object path and synchronizing a primary data object and a secondary data object, in an example, synchronization of the primary data object and the secondary data object is disabled, a checkpoint relating to the primary data object is stored, and the secondary data object is backed up to a storage medium.
  • synchronization of the primary data object and the secondary data object is enabled; data blocks modified on the primary- data object are identified based on the checkpoint, and the modified data blocks are applied to the secondary data object.
  • a virtual machine may be, for example, software and/or hardware-based emulation of a physical machine, e.g., a computer, or more specifically of an operating system.
  • a virtual machine can be hosted by a host system that may include a physical server and/or a physical machine running a hypervisor, container, and/or other virtual machine software.
  • a hypervisor or container may be, for example, software that provides a virtualized environment including virtual machines allowing other software, including operating systems, to run on the host machine.
  • a hypervisor or container may allow a virtual machine to access underlying system hardware and/or the system BIOS.
  • a physical server may run one hypervisor, which itself may run a plurality of virtual machines.
  • a service may employ a plurality of physical servers, with each of the physical servers running a hypervisor or container and a plurality of virtual machines.
  • the virtual servers may store, create, or otherwise access multiple files to emulate computer systems, such as configuration and disk files (hereinafter "data").
  • data centers may seek to backup, mirror, synchronize, or archive the data.
  • backup applications including application programming interfaces ("APIs") may halt, fake offline, or make "read-only" an active virtual machine, e.g., a production virtual machine, to allow for a backup process or backup application to run.
  • APIs application programming interfaces
  • a new sparse disk may be created to record file system or application data changes, e.g., to a delta file, during the backup process.
  • a snapshot of the virtual machine in that state may be backed up, and the production virtual machine may then be resumed or brought back online.
  • a production virtual machine may be stored on a physical server that contains other production virtual machines running on a hypervisor. in such examples, the impact on one production virtual machine described above may impact other production virtual machines running on the same virtual server or stored on the same datastore.
  • data center administrators may also wish to migrate virtual machines for purposes of load balancing servers in a data center, to allow for upgrading hardware, or to allow for a virtual machine to be provisioned on more powerful hardware with greater computing resources.
  • migration of an individual production virtual machine may complicate hardware or storage synchronization, and may also complicate restoration of a production virtual machine.
  • FIG. 1 is a block diagram of a system to manage virtual machine storage, according to an example, in some examples, the system of FIG. 1 may be referred to as a split mirror infrastructure, where data is backed up to a storage medium from a mirrored virtual machine on a mirrored datastore, as opposed to a production datastore.
  • a data center, cloud service, or virtuaiized server infrastructure may refer to a collection of seivers and other computing devices which may be on-site, off-site, private, public, co-located, or located across a geographic area or areas.
  • a data center may be used, for example, to host, execute, store, or otherwise process applications, websites, files, media, and other digital files, software, or machine-readable instructions.
  • a data center may comprise or communicate with computing devices such as servers, blade enclosures, workstations, desktop computers, laptops or notebook computers, point of sale devices, tablet computers, mobile phones, smart devices, or any other processing device or equipment including a processing resource, in examples described herein, a processing resource may include, for example, one processor or multiple processors included in a single computing device or distributed across multiple computing devices.
  • computing devices such as servers, blade enclosures, workstations, desktop computers, laptops or notebook computers, point of sale devices, tablet computers, mobile phones, smart devices, or any other processing device or equipment including a processing resource
  • a processing resource may include, for example, one processor or multiple processors included in a single computing device or distributed across multiple computing devices.
  • server or compute node 102 may be a computing device that includes a processing resource and a machine-readable storage medium comprising or encoded with instructions executable by the processing resource, as discussed below in more detail with respect to FIGS. 2-4.
  • the instructions may be implemented as engines or circuitry comprising any combination of hardware and programming to implement the functionalities of the engines or circuitry, as described below.
  • Server 102 may comprise a hypervisor, container, or other virtuaiization technology to store, execute, serve, and/or run a virtual machine or virtual machines, e.g., virtual machines 126, 128, 130, and 132.
  • Server 102 may store the virtual machines 126, 128, 130, and 132 on a datastore, datastores, or cluster of datastores, e.g., datastores 122 and 124, which may be referred to as a primary data source or primary datastore.
  • Datastores 122 and 124 may be any disk technology, such as independent disks, logical unit numbers ("LUNs") from storage arrays, virtual volumes, or other storage media.
  • LUNs logical unit numbers
  • the virtual machines 126 and 132 may be synchronized to virtual machines on another datastore, such as a mirrored datastore, "sync store” 1 14, or secondary data source 1 12 as, e.g., virtual machines 1 16 and 1 18.
  • a synchronization agent such as sync agent 134, may synchronize the primary data sources and the secondary data sources at a virtual machine level, e.g., by synchronizing each virtual machine as opposed to the entire data source.
  • the sync agent 134 may include or communicate with a software development kit (“SDK”) or application programming interface (“API”) or other tool resident on the servers or datastores. in examples, the sync agent may operate in a "pull” configuration or in a "push” configuration.
  • SDK software development kit
  • API application programming interface
  • Secondary data source 1 12 may be backed up or archived to storage media 1 10, which may be any disk technology, in some examples, a backup proxy 108 running a backup application 106 may control the backup of virtual machines from secondary data source 1 12 to storage media 1 10. in other examples, the secondary data source(s) can be replicated at the storage array level.
  • the servers, datastores or data sources, agents, proxies, and virtual machines of FIG. 1 may be managed by, in an example, a virtual machine management server 104, which may comprise one or more engines.
  • virtual machine management server 104 may include a processing resource and a machine-readable storage medium comprising or encoded with instructions executable by the processing resource, and the instructions may be implemented as engines or circuitry comprising any combination of hardware and programming to implement the functionalities of the engines or circuitry, as described below.
  • the functionality of virtual machine management server 104 or engine may be stored on or executed on server 102 on a hypervisor, agent, service, or daemon process, as examples.
  • server 102, virtual machine management server 104, datastores or clusters of datastores 120, 122, 124, 1 14, and 1 12, virtual machines 116, 1 18, 126, 128, 130, 132, backup proxy 108, and storage media 1 10 may communicate directly, or over a network.
  • a network may be a local network, virtual network, private network, public network, or other wired or wireless communications network accessible by a user or users, servers, or other components.
  • a network or computer network may include, for example, a local area network (LAN), a wireless local area network (WLAN), a virtual private network (VPN), the Internet, a cellular network, or a combination thereof.
  • devices that communicate on a network may include a network interface device that may be a hardware device to communicate over at least one computer network.
  • a network interface may be a network interface card (NIC) or the like installed on or coupled to, for example, server 102, virtual machine management server 104, datastores or clusters of datastores 120, 122, 124, 1 14, and 112, backup proxy 108, and/or storage media 1 10.
  • NIC network interface card
  • FIG. 2 is a flowchart of managing virtual machine storage, according to an example.
  • a primary data object path e.g., a production virtual machine path
  • a secondary data object path e.g., a mirrored virtual machine path
  • the paths may refer to a datastore, data source, or other data storage location of the virtual machines, such as datastores 122 and 124, or sync store 1 14.
  • Block 202 may also comprise fetching other information, such as virtual machine properties, or properties related to physical servers, hypervisors, and/or datastores.
  • the primary data object and the secondary data object may be synchronized.
  • a synchronization or sync agent e.g., sync agent 134
  • sync agent 134 may be used to synchronize the data objects using any synchronization technique.
  • a production virtual machine 128 on datastore 122 may be synchronized with a mirrored virtual machine 116 on datastore 1 14.
  • the synchronization of block 204 may run at pre-defined intervals, continuously, on demand, or at any time.
  • synchronization may be disabled, suspended, paused, or otherwise halted.
  • synchronization is disabled at the virtual machine level.
  • agents, engines, datastores, or sync stores may continue to synchronize other virtual machines even when synchronization of a different virtual machine is disabled, e.g, for migration or backup.
  • Disabling synchronization may allow the production virtual machine to continue operating unaffected by processes to be performed on the mirrored virtual machine, as discussed below.
  • a checkpoint may be determined and/or stored, such as a checkpoint relating to the production virtual machine.
  • the checkpoint may represent a time, snapshot, disk location, or other identifier of the status of a virtual machine at a given time, such as the time when the synchronization is disabled.
  • the secondary data object (e.g., mirrored virtual machine) may be backed up to a storage medium or other backup solution or infrastructure, e.g., storage medium 1 10, which may be any disk technology.
  • a backup proxy 108 running a backup application 108 may control the backup of secondary data source 114 to storage media 1 10.
  • the mirrored virtual machine is offline at all times, while in other examples, the mirrored virtual machine may be paused, suspended, or taken offline without impacting users of the production virtual machine.
  • the mirrored virtual machine backup is performed by an operating system application program interface, while in other examples the mirrored virtual machine backup is performed by a custom application program interface through a proprietary file system. In examples where ail of the mirrored virtual machines in a sync store are selected for backup, the sync store may be replicated at a storage array.
  • synchronization may be enabled or resumed.
  • synchronization is enabled at the virtual machine level.
  • an agent, engine, datastore, or sync store may disable synchronization of other virtual machines even when synchronization of a different virtual machine is enabled.
  • the data blocks modified on the primary data object (e.g., production virtual machine) between the saved checkpoint and the current time may be identified.
  • data blocks written to the primary data object (e.g., production virtual machine) between the time synchronization was disabled and the time synchronization was enabled (which may be, e.g., the current time) may be identified, in other examples, other techniques may be used to identify data blocks modified on the production virtual machine since a last synchronization with a mirrored virtual machine, such as changed block tracking ("CBT") or mirror mode functionality.
  • CBT changed block tracking
  • the data blocks modified on the primary data object between the saved checkpoint and the current time may be applied to the secondary data object.
  • the modified data blocks are copied from the primary data object, e.g., production virtual machine, to the secondary data object, e.g., mirrored virtual machine, in batch.
  • FIG. 3 is a flowchart of migrating a virtual machine and managing virtual machine storage, according to an example.
  • a production virtual machine is migrated to a new datastore.
  • virtual machine 126 on datastore 122 may be migrated to a third datastore (not shown).
  • Migration of virtual machines may be for purposes of load balancing servers in a data center, to allow for upgrading hardware, or to allow for a virtual machine to be provisioned on more powerful hardware with greater computing resources.
  • an agent or engine may disable synchronization for the period of the migration and save a checkpoint.
  • the path of the mirrored virtual machine data object is fetched.
  • the path of mirrored virtual machine 1 16 e.g., the mirror of virtual machine 1266 may be fetched.
  • the production virtual machine on the new datastore is mapped to the datastore of the mirrored virtual machine.
  • the production virtual machine on the third or new datastore may be mapped to the existing path of the mirrored virtual machine 1 16 on datastore 1 14.
  • synchronization of the production virtual machine and the mirrored virtual machine is enabled, and data blocks modified on the production virtual machine between the saved checkpoint and the current time may be identified.
  • data blocks written to the production virtual machine between the time synchronization was disabled and the time synchronization was enabled (which may be, e.g., the current time) may be identified.
  • other techniques may be used to identify data blocks modified on the production virtual machine since a last synchronization with a mirrored virtual machine, such as changed block tracking.
  • the data blocks modified on the production virtual machine between the saved checkpoint and the current time may be applied to the mirrored virtual machine, in an example, the modified data blocks are copied from the production virtual machine to the mirrored virtual machine in batch.
  • FIG, 4 is a block diagram of a system to manage virtual machine storage, according to an example.
  • the computing system 400 of FIG. 4 may comprise a processing resource or processor 402,
  • a processing resource may be at least one of a central processing unit (CPU), a semiconductor-based microprocessor, a graphics processing unit (GPU), a field-programmable gate array (FPGA) configured to retrieve and execute instructions, other electronic circuitry suitable for the retrieval and execution of instructions stored on a machine-readable storage medium, or a combination thereof.
  • CPU central processing unit
  • GPU graphics processing unit
  • FPGA field-programmable gate array
  • Processing resource 402 may fetch, decode, and execute instructions, e.g., instructions 410, stored on memory or storage medium 404 to perform the functionalities described herein, in examples, the functionalities of any of the instructions of storage medium 404 may be implemented in the form of electronic circuitry, in the form of executable instructions encoded on a machine-readable storage medium, or a combination thereof,
  • a "machine-readable storage medium” may be any electronic, magnetic, optical, or other physical storage apparatus to contain or store information such as executable instructions, data, and the like.
  • any machine-readable storage medium described herein may be any of Random Access Memory (RAM), volatile memory, non-volatile memory, flash memory, a hard drive, a solid state drive, any type of storage disc or optical disc, and the like, or a combination thereof.
  • RAM Random Access Memory
  • any machine-readable storage medium described herein may be non-transitory.
  • System 400 may also include persistent storage and/or memory, in some examples, persistent storage may be implemented by at least one non-volatile machine- readable storage medium, as described herein, and may be memory utilized by system 400 for managing virtual server storage, as described herein, Memory may be implemented by at least one machine-readable storage medium, as described herein, and may be volatile storage utilized by system 400 for performing the processes as described herein, for example.
  • Storage 404 may be separate from a memory, in some examples, a memory may temporarily store data portions while performing processing operations on them, such as calculating an early adopter probability.
  • a machine-readable storage medium or media is part of an article or article of manufacture.
  • An article or article of manufacture may refer to any manufactured single component or multiple components.
  • the storage medium may be located either in the computing device executing the machine-readable instructions, or remote from but accessible to the computing device (e.g., via a computer network) for execution.
  • instructions 410 may be part of an installation package that, when installed, may be executed by processing resource 402 to implement the functionalities described herein in relation to instructions 410.
  • storage medium 404 may be a portable medium or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed.
  • instructions 410 may be part of an application, applications, or component(s) already installed on a computing device including a processing resource, e.g., computing devices 102 and 104.
  • System 400 may also include a network interface device 408, as described above, which may receive data such as data 412 - 418, e.g., via direct connection or a network.
  • a network interface device 408 as described above, which may receive data such as data 412 - 418, e.g., via direct connection or a network.
  • the instructions in or on the memory or machine-readable storage of system 400 may comprise a virtual machine management engine 104.
  • the instructions may fetch a production virtual machine path and a mirrored virtual machine path and synchronize the production virtual machine and the mirrored virtual machine. Synchronization of the virtual machines may be suspended, and a checkpoint may be stored. Synchronization may be resumed, and data blocks modified in the production virtual machine may be identified and/or applied to the mirrored virtual machine based on, for example, the checkpoint and/or a time.
  • FIGS. 2-4 show a specific order of performance of certain functionalities, the instructions of FIGS. 2-4 are not limited to that order.
  • the functionalities shown in succession may be performed in a different order, may be executed concurrently or with partial concurrence, or a combination thereof.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Abstract

Examples for managing virtual machine storage comprise fetching a primary data object path and a secondary data object path and synchronizing a primary data object and a secondary data object. In an example, synchronization of the primary data object (production virtual machine) and the secondary data object (mirrored virtual machine) is disabled, a checkpoint relating to the primary data object is stored, and the secondary data object is backed up to a storage medium. In an example, synchronization of the primary data object and the secondary data object is enabled, data blocks modified on the primary data object are identified based on the checkpoint, and the modified data blocks are applied to the secondary data object.

Description

[0001 ] Computing systems, devices, and electronic components such as servers may run or execute in a networked environment and may run or support virtual machines or virtualized software, e.g., an operating system or a shared operating system. A virtual machine may be used to run applications, services, and computer programs, and/or to provide other functionality to a host or remote computer. In a data center, networked, or "cloud" environment, a plurality of virtual machines may be resident on or across a plurality of physical servers, such that the computing load or demand of the virtual machines may be distributed across a physical hardware deployment. Virtual machines may be backed up or archived to, for example, mirrored storage or external storage.
B !EF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram of a system to manage virtual machine storage, according to an example;
[0004] FIG. 2 is a flowchart of managing virtual machine storage, according to an example;
[0005] FIG. 3 is a flowchart of migrating a virtual machine and managing virtual machine storage, according to an example; and
[0006] FIG. 4 is a block diagram of a system to manage virtual machine storage, according to an example.
DETASLED DESCRIPTION
[0007] Various examples described below provide for managing virtual machine storage, including production virtual machines and mirrored virtual machines, without taking the production virtual machine offline or pausing the production virtual machine. Examples comprise fetching a primary data object path and a secondary data object path and synchronizing a primary data object and a secondary data object, in an example, synchronization of the primary data object and the secondary data object is disabled, a checkpoint relating to the primary data object is stored, and the secondary data object is backed up to a storage medium. In an example, synchronization of the primary data object and the secondary data object is enabled; data blocks modified on the primary- data object are identified based on the checkpoint, and the modified data blocks are applied to the secondary data object.
[0008] Companies, organizations, and information technology departments continuously seek ways to improve computing performance and reduce computing budgets and expenditures. One way to meet this goal may be to employ a strategy utilizing virtual machines, which may allow for server consolidation resulting in lower purchase and maintenance costs for computing hardware.
[0009] A virtual machine may be, for example, software and/or hardware-based emulation of a physical machine, e.g., a computer, or more specifically of an operating system. A virtual machine can be hosted by a host system that may include a physical server and/or a physical machine running a hypervisor, container, and/or other virtual machine software.
[0010] A hypervisor or container may be, for example, software that provides a virtualized environment including virtual machines allowing other software, including operating systems, to run on the host machine. A hypervisor or container may allow a virtual machine to access underlying system hardware and/or the system BIOS. In some examples, a physical server may run one hypervisor, which itself may run a plurality of virtual machines.
[0011] In a cloud environment or data center, a service may employ a plurality of physical servers, with each of the physical servers running a hypervisor or container and a plurality of virtual machines. The virtual servers may store, create, or otherwise access multiple files to emulate computer systems, such as configuration and disk files (hereinafter "data"). To provide for data backup and disaster recovery, data centers may seek to backup, mirror, synchronize, or archive the data.
[0012] in examples, as part of a data backup strategy, backup applications including application programming interfaces ("APIs") may halt, fake offline, or make "read-only" an active virtual machine, e.g., a production virtual machine, to allow for a backup process or backup application to run. (In some examples, a new sparse disk may be created to record file system or application data changes, e.g., to a delta file, during the backup process.) A snapshot of the virtual machine in that state may be backed up, and the production virtual machine may then be resumed or brought back online.
[0013] Although such an arrangement may allow for data to be backed up reliably and consistently and may prevent crashes during the backup process that would otherwise strain system resources, the production virtual machine may be taken offline for minutes, hours, or even longer while the backup routine runs, in many environments, and especially in 24/7 mission-critical environments, this approach is Iikely to be unacceptable to server administrators, business leaders, and customers or clients. Moreover, snapshots of virtual machines may be large in size, and applying a delta file of changes to the production virtual machine (e.g., "consolidation") after a backup may severely impact performance of the production virtual machine and user experience.
[0014] In some examples, a production virtual machine may be stored on a physical server that contains other production virtual machines running on a hypervisor. in such examples, the impact on one production virtual machine described above may impact other production virtual machines running on the same virtual server or stored on the same datastore. [0015] in some examples, data center administrators may also wish to migrate virtual machines for purposes of load balancing servers in a data center, to allow for upgrading hardware, or to allow for a virtual machine to be provisioned on more powerful hardware with greater computing resources. In examples where production virtual machines on a production datastore are backed up directly to a storage medium along with the entire datastore, migration of an individual production virtual machine may complicate hardware or storage synchronization, and may also complicate restoration of a production virtual machine.
[0018] FIG. 1 is a block diagram of a system to manage virtual machine storage, according to an example, in some examples, the system of FIG. 1 may be referred to as a split mirror infrastructure, where data is backed up to a storage medium from a mirrored virtual machine on a mirrored datastore, as opposed to a production datastore.
[0017] in the example of FIG. 1 , a data center, cloud service, or virtuaiized server infrastructure (hereinafter "data center") may refer to a collection of seivers and other computing devices which may be on-site, off-site, private, public, co-located, or located across a geographic area or areas. A data center may be used, for example, to host, execute, store, or otherwise process applications, websites, files, media, and other digital files, software, or machine-readable instructions.
[0018] A data center may comprise or communicate with computing devices such as servers, blade enclosures, workstations, desktop computers, laptops or notebook computers, point of sale devices, tablet computers, mobile phones, smart devices, or any other processing device or equipment including a processing resource, in examples described herein, a processing resource may include, for example, one processor or multiple processors included in a single computing device or distributed across multiple computing devices.
[0019] In the example of FIG. 1 , server or compute node 102 may be a computing device that includes a processing resource and a machine-readable storage medium comprising or encoded with instructions executable by the processing resource, as discussed below in more detail with respect to FIGS. 2-4. In some examples, the instructions may be implemented as engines or circuitry comprising any combination of hardware and programming to implement the functionalities of the engines or circuitry, as described below.
[0020] Server 102 may comprise a hypervisor, container, or other virtuaiization technology to store, execute, serve, and/or run a virtual machine or virtual machines, e.g., virtual machines 126, 128, 130, and 132. Server 102 may store the virtual machines 126, 128, 130, and 132 on a datastore, datastores, or cluster of datastores, e.g., datastores 122 and 124, which may be referred to as a primary data source or primary datastore. Datastores 122 and 124 may be any disk technology, such as independent disks, logical unit numbers ("LUNs") from storage arrays, virtual volumes, or other storage media.
[0021] in the example of FIG. 1 , the virtual machines 126 and 132 may be synchronized to virtual machines on another datastore, such as a mirrored datastore, "sync store" 1 14, or secondary data source 1 12 as, e.g., virtual machines 1 16 and 1 18. A synchronization agent, such as sync agent 134, may synchronize the primary data sources and the secondary data sources at a virtual machine level, e.g., by synchronizing each virtual machine as opposed to the entire data source. The sync agent 134 may include or communicate with a software development kit ("SDK") or application programming interface ("API") or other tool resident on the servers or datastores. in examples, the sync agent may operate in a "pull" configuration or in a "push" configuration.
[0022] Data stored on secondary data source 1 12 may be backed up or archived to storage media 1 10, which may be any disk technology, in some examples, a backup proxy 108 running a backup application 106 may control the backup of virtual machines from secondary data source 1 12 to storage media 1 10. in other examples, the secondary data source(s) can be replicated at the storage array level.
[0023] The servers, datastores or data sources, agents, proxies, and virtual machines of FIG. 1 may be managed by, in an example, a virtual machine management server 104, which may comprise one or more engines. As with server 102, virtual machine management server 104 may include a processing resource and a machine-readable storage medium comprising or encoded with instructions executable by the processing resource, and the instructions may be implemented as engines or circuitry comprising any combination of hardware and programming to implement the functionalities of the engines or circuitry, as described below. In some examples, the functionality of virtual machine management server 104 or engine may be stored on or executed on server 102 on a hypervisor, agent, service, or daemon process, as examples.
[0024] in the example of FIG. 1 , server 102, virtual machine management server 104, datastores or clusters of datastores 120, 122, 124, 1 14, and 1 12, virtual machines 116, 1 18, 126, 128, 130, 132, backup proxy 108, and storage media 1 10 may communicate directly, or over a network. A network may be a local network, virtual network, private network, public network, or other wired or wireless communications network accessible by a user or users, servers, or other components. As used herein, a network or computer network may include, for example, a local area network (LAN), a wireless local area network (WLAN), a virtual private network (VPN), the Internet, a cellular network, or a combination thereof.
[0025] In examples described herein, devices that communicate on a network may include a network interface device that may be a hardware device to communicate over at least one computer network. In some examples, a network interface may be a network interface card (NIC) or the like installed on or coupled to, for example, server 102, virtual machine management server 104, datastores or clusters of datastores 120, 122, 124, 1 14, and 112, backup proxy 108, and/or storage media 1 10.
[0028] FIG. 2 is a flowchart of managing virtual machine storage, according to an example.
[0027] In block 202, In an example, a primary data object path, e.g., a production virtual machine path, and a secondary data object path, e.g., a mirrored virtual machine path, may be fetched. The paths may refer to a datastore, data source, or other data storage location of the virtual machines, such as datastores 122 and 124, or sync store 1 14. Block 202 may also comprise fetching other information, such as virtual machine properties, or properties related to physical servers, hypervisors, and/or datastores.
[0028] in block 204, in an example, the primary data object and the secondary data object may be synchronized. In examples, a synchronization or sync agent, e.g., sync agent 134, may be used to synchronize the data objects using any synchronization technique. For example, a production virtual machine 128 on datastore 122 may be synchronized with a mirrored virtual machine 116 on datastore 1 14. The synchronization of block 204 may run at pre-defined intervals, continuously, on demand, or at any time.
[0029] in block 208, in an example, synchronization may be disabled, suspended, paused, or otherwise halted. In the example of FIG. 2, synchronization is disabled at the virtual machine level. For example, agents, engines, datastores, or sync stores may continue to synchronize other virtual machines even when synchronization of a different virtual machine is disabled, e.g, for migration or backup. Disabling synchronization may allow the production virtual machine to continue operating unaffected by processes to be performed on the mirrored virtual machine, as discussed below.
[0030] in block 208, in an example, a checkpoint may be determined and/or stored, such as a checkpoint relating to the production virtual machine. The checkpoint may represent a time, snapshot, disk location, or other identifier of the status of a virtual machine at a given time, such as the time when the synchronization is disabled.
[0031] in block 210, in an example, the secondary data object (e.g., mirrored virtual machine) may be backed up to a storage medium or other backup solution or infrastructure, e.g., storage medium 1 10, which may be any disk technology. In some examples, a backup proxy 108 running a backup application 108 may control the backup of secondary data source 114 to storage media 1 10. In some examples, the mirrored virtual machine is offline at all times, while in other examples, the mirrored virtual machine may be paused, suspended, or taken offline without impacting users of the production virtual machine. In some examples, the mirrored virtual machine backup is performed by an operating system application program interface, while in other examples the mirrored virtual machine backup is performed by a custom application program interface through a proprietary file system. In examples where ail of the mirrored virtual machines in a sync store are selected for backup, the sync store may be replicated at a storage array.
[0032] In block 212, in an example, synchronization may be enabled or resumed. In the example of FIG. 2, synchronization is enabled at the virtual machine level. For example, an agent, engine, datastore, or sync store may disable synchronization of other virtual machines even when synchronization of a different virtual machine is enabled.
[0033] In block 214, in an example, the data blocks modified on the primary data object (e.g., production virtual machine) between the saved checkpoint and the current time may be identified. For example, data blocks written to the primary data object (e.g., production virtual machine) between the time synchronization was disabled and the time synchronization was enabled (which may be, e.g., the current time) may be identified, in other examples, other techniques may be used to identify data blocks modified on the production virtual machine since a last synchronization with a mirrored virtual machine, such as changed block tracking ("CBT") or mirror mode functionality.
[0034] in block 216, in an example, the data blocks modified on the primary data object between the saved checkpoint and the current time may be applied to the secondary data object. In an example, the modified data blocks are copied from the primary data object, e.g., production virtual machine, to the secondary data object, e.g., mirrored virtual machine, in batch.
[0035] FIG. 3 is a flowchart of migrating a virtual machine and managing virtual machine storage, according to an example.
[0036] in block 302, in an example, a production virtual machine is migrated to a new datastore. For example, virtual machine 126 on datastore 122 may be migrated to a third datastore (not shown). Migration of virtual machines may be for purposes of load balancing servers in a data center, to allow for upgrading hardware, or to allow for a virtual machine to be provisioned on more powerful hardware with greater computing resources. In some examples, at the start of migration, an agent or engine may disable synchronization for the period of the migration and save a checkpoint.
[0037] In block 304, in an example, the path of the mirrored virtual machine data object is fetched. For example, the path of mirrored virtual machine 1 16 (e.g., the mirror of virtual machine 126) may be fetched.
[0038] in block 306, in an example, the production virtual machine on the new datastore is mapped to the datastore of the mirrored virtual machine. For example, the production virtual machine on the third or new datastore (not shown) may be mapped to the existing path of the mirrored virtual machine 1 16 on datastore 1 14.
[0039] in block 308, in an example, synchronization of the production virtual machine and the mirrored virtual machine is enabled, and data blocks modified on the production virtual machine between the saved checkpoint and the current time may be identified. For example, data blocks written to the production virtual machine between the time synchronization was disabled and the time synchronization was enabled (which may be, e.g., the current time) may be identified. In other examples, other techniques may be used to identify data blocks modified on the production virtual machine since a last synchronization with a mirrored virtual machine, such as changed block tracking.
[0040] In block 310, in an example, the data blocks modified on the production virtual machine between the saved checkpoint and the current time may be applied to the mirrored virtual machine, in an example, the modified data blocks are copied from the production virtual machine to the mirrored virtual machine in batch.
[0041] FIG, 4 is a block diagram of a system to manage virtual machine storage, according to an example.
[0042] The computing system 400 of FIG. 4 may comprise a processing resource or processor 402, As used herein, a processing resource may be at least one of a central processing unit (CPU), a semiconductor-based microprocessor, a graphics processing unit (GPU), a field-programmable gate array (FPGA) configured to retrieve and execute instructions, other electronic circuitry suitable for the retrieval and execution of instructions stored on a machine-readable storage medium, or a combination thereof. Processing resource 402 may fetch, decode, and execute instructions, e.g., instructions 410, stored on memory or storage medium 404 to perform the functionalities described herein, in examples, the functionalities of any of the instructions of storage medium 404 may be implemented in the form of electronic circuitry, in the form of executable instructions encoded on a machine-readable storage medium, or a combination thereof,
[0043] As used herein, a "machine-readable storage medium" may be any electronic, magnetic, optical, or other physical storage apparatus to contain or store information such as executable instructions, data, and the like. For example, any machine-readable storage medium described herein may be any of Random Access Memory (RAM), volatile memory, non-volatile memory, flash memory, a hard drive, a solid state drive, any type of storage disc or optical disc, and the like, or a combination thereof. Further, any machine-readable storage medium described herein may be non-transitory.
[0044] System 400 may also include persistent storage and/or memory, in some examples, persistent storage may be implemented by at least one non-volatile machine- readable storage medium, as described herein, and may be memory utilized by system 400 for managing virtual server storage, as described herein, Memory may be implemented by at least one machine-readable storage medium, as described herein, and may be volatile storage utilized by system 400 for performing the processes as described herein, for example. Storage 404 may be separate from a memory, in some examples, a memory may temporarily store data portions while performing processing operations on them, such as calculating an early adopter probability.
[0045] in examples described herein, a machine-readable storage medium or media is part of an article or article of manufacture. An article or article of manufacture may refer to any manufactured single component or multiple components. The storage medium may be located either in the computing device executing the machine-readable instructions, or remote from but accessible to the computing device (e.g., via a computer network) for execution.
[0048] in some examples, instructions 410 may be part of an installation package that, when installed, may be executed by processing resource 402 to implement the functionalities described herein in relation to instructions 410. In such examples, storage medium 404 may be a portable medium or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, instructions 410 may be part of an application, applications, or component(s) already installed on a computing device including a processing resource, e.g., computing devices 102 and 104.
[0047] System 400 may also include a network interface device 408, as described above, which may receive data such as data 412 - 418, e.g., via direct connection or a network.
[0048] The instructions in or on the memory or machine-readable storage of system 400 may comprise a virtual machine management engine 104. In block 410, the instructions may fetch a production virtual machine path and a mirrored virtual machine path and synchronize the production virtual machine and the mirrored virtual machine. Synchronization of the virtual machines may be suspended, and a checkpoint may be stored. Synchronization may be resumed, and data blocks modified in the production virtual machine may be identified and/or applied to the mirrored virtual machine based on, for example, the checkpoint and/or a time.
[0049] Although the instructions of FIGS. 2-4 show a specific order of performance of certain functionalities, the instructions of FIGS. 2-4 are not limited to that order. For example, the functionalities shown in succession may be performed in a different order, may be executed concurrently or with partial concurrence, or a combination thereof.
[0050] All of the features disclosed in this specification, including any accompanying claims, abstract and drawings, and/or all of the elements of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or elements are mutually exclusive.

Claims

CLASPS What is claimed is:
1 . A method for virtual machine storage management, comprising:
fetching a primary data object path and a secondary data object path;
synchronizing a primary data object and a secondary data object;
disabling synchronization of the primary data object and the secondary data object;
storing a checkpoint relating to the primary data object;
backing up the secondary data object to a storage medium:
enabling synchronization of the primary data object and the secondary data object; and
identifying data blocks modified on the primary data object based on the checkpoint and applying the modified data blocks to the secondary data object.
2. The method of claim 1 , wherein the primary data object is a production virtual machine.
3. The method of claim 1 , wherein the secondary data object is a mirrored virtual machine.
4. The method of claim 1 , wherein the primary data object and the secondary data object are stored on a split-mirror infrastructure at a virtual machine level.
5. The method of claim 1 , wherein identifying data blocks modified on the primary data object comprises changed block tracking.
6. A system for virtual machine storage management, comprising:
a virtual server comprising a hypervisor and a virtual machine;
a first production datastore to store a production virtual machine;
a first mirrored data store to store a mirrored virtual machine; a virtual machine management engine to:
migrate a production virtual machine to a second production datastore, fetch a data object path for the mirrored virtual machine, map the production virtual machine on the second production datastore to the first mirrored datastore, and identify data blocks modified on the production virtual machine between a time of migration of the production virtual machine and a current time.
7. The system of claim 6, wherein the engine is further to apply the modified data blocks to the mirrored virtual machine.
8. The system of claim 6, wherein the first production datastore, the second production datastore, and the first mirrored datastore comprise a plurality of virtual machines.
9. The system of claim 6, wherein the first production datastore, the second production datastore, and the first mirrored datastore are stored on a split-mirror infrastructure at a virtual machine level.
10. The system of claim 6, further comprising a backup proxy.
1 1 . An article comprising at least one non-transitory machine-readable storage medium comprising instructions executable by a processing resource of a virtual machine storage management system to:
fetch a production virtual machine path and a mirrored virtual machine path; synchronize the production virtual machine and the mirrored virtual machine path; suspend synchronization of the production virtual machine and the mirrored virtual machine;
store a checkpoint;
back up the mirrored virtual machine to a storage medium;
resume synchronization of the production virtual machine and the mirrored virtual machine; and apply data blocks modified on the production virtual machine to the mirrored virtual machine based on the checkpoint.
12. The article of claim 1 1 , wherein the production virtual machine and mirrored virtual machine are stored on a split-mirror infrastructure at a virtual machine level.
13. The article of claim 1 1 , wherein the mirrored virtual machine backup is performed by an operating system application program interface.
14. The article of claim 1 1 , wherein the mirrored virtual machine backup is performed by a custom application program interface through a proprietary file system.
15. The article of claim 1 1 , wherein the checkpoint further comprises a time of the synchronization suspend.
PCT/US2015/055065 2015-08-21 2015-10-12 Virtual machine storage management WO2017034596A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN4385/CHE/2015 2015-08-21
IN4385CH2015 2015-08-21

Publications (1)

Publication Number Publication Date
WO2017034596A1 true WO2017034596A1 (en) 2017-03-02

Family

ID=58100729

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/055065 WO2017034596A1 (en) 2015-08-21 2015-10-12 Virtual machine storage management

Country Status (1)

Country Link
WO (1) WO2017034596A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101364A (en) * 2018-07-20 2018-12-28 中国邮政储蓄银行股份有限公司 Double center dual-active data processing systems and method
CN113127133A (en) * 2019-12-30 2021-07-16 中国移动通信集团山西有限公司 Cross-platform virtual machine live migration method, device, equipment and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120191908A1 (en) * 2011-01-25 2012-07-26 International Business Machines Corporation Storage writes in a mirrored virtual machine system
CN103164254A (en) * 2011-09-21 2013-06-19 国际商业机器公司 Maintaining consistency of storage in a mirrored virtual environment
US20130246355A1 (en) * 2007-10-26 2013-09-19 Vmware, Inc. Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US20130283092A1 (en) * 2012-04-24 2013-10-24 Microsoft Corporation Data consistency between virtual machines
US20140033201A1 (en) * 2012-07-27 2014-01-30 Dell Products, Lp System and Method of Replicating Virtual Machines for Live Migration Between Data Centers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130246355A1 (en) * 2007-10-26 2013-09-19 Vmware, Inc. Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US20120191908A1 (en) * 2011-01-25 2012-07-26 International Business Machines Corporation Storage writes in a mirrored virtual machine system
CN103164254A (en) * 2011-09-21 2013-06-19 国际商业机器公司 Maintaining consistency of storage in a mirrored virtual environment
US20130283092A1 (en) * 2012-04-24 2013-10-24 Microsoft Corporation Data consistency between virtual machines
US20140033201A1 (en) * 2012-07-27 2014-01-30 Dell Products, Lp System and Method of Replicating Virtual Machines for Live Migration Between Data Centers

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101364A (en) * 2018-07-20 2018-12-28 中国邮政储蓄银行股份有限公司 Double center dual-active data processing systems and method
CN109101364B (en) * 2018-07-20 2022-02-15 中国邮政储蓄银行股份有限公司 Double-center double-activity data processing system and method
CN113127133A (en) * 2019-12-30 2021-07-16 中国移动通信集团山西有限公司 Cross-platform virtual machine live migration method, device, equipment and medium
CN113127133B (en) * 2019-12-30 2023-09-05 中国移动通信集团山西有限公司 Cross-platform virtual machine hot migration method, device, equipment and medium

Similar Documents

Publication Publication Date Title
US10908999B2 (en) Network block device based continuous replication for Kubernetes container management systems
US10579409B2 (en) Live migration of virtual machines with memory state sharing
US10169173B2 (en) Preserving management services with distributed metadata through the disaster recovery life cycle
CN107111533B (en) Virtual machine cluster backup
US9092248B1 (en) Systems and methods for restoring distributed applications within virtual data centers
AU2014318053B2 (en) Systems and methods for protecting virtual machine data
EP3227783B1 (en) Live rollback for a computing environment
US9104645B2 (en) System and method of replicating virtual machines for live migration between data centers
AU2014290149B2 (en) Systems and methods for instantly restoring virtual machines in high input/output load environments
US10140144B2 (en) Multi-site disaster recovery consistency group for heterogeneous systems
EP2856317B1 (en) System and method for disaster recovery of multi-tier applications
US10191817B2 (en) Systems and methods for backing up large distributed scale-out data systems
US8595192B1 (en) Systems and methods for providing high availability to instance-bound databases
US11875052B2 (en) In-place data recovery
US10417099B1 (en) Resilient backups for large Hyper-V cluster shared volume environments
EP3625683B1 (en) System and method for load balancing backup data
US9753810B1 (en) Systems and methods for backing up virtual machines deployed in virtual storage area networks
WO2017034596A1 (en) Virtual machine storage management
US9529679B2 (en) Volume snapshot in a shared environment
US9836515B1 (en) Systems and methods for adding active volumes to existing replication configurations
US10176055B1 (en) Systems and methods for generating full backups of applications
US20240168853A1 (en) Techniques for providing data backup configurations as a service

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15902459

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15902459

Country of ref document: EP

Kind code of ref document: A1