IP Library › Granted Patent US 12,572,430
Granted Patent B2
US 12,572,430 · App. 18/112,989 · Granted Mar 10, 2026

Methods and systems for protecting and restoring virtual machines

Inventors: Rajaram Balakrishnan (Fremont, CA); Balamurali Palaiah (Gilroy, CA); Jayakrishnan Ramakrishna Pillai (Tracy, CA); Kiran Joseph D Almeida (Bengaluru, IN); Negi Shardul Singh (Pleasanton, CA); Vineeth Karinta (Apex, NC)
Assignee: NETAPP, INC.
G06F11/1484G06F9/45558G06F9/541G06F11/1451G06F11/1469G06F2009/4557G06F2009/45583G06F2009/45587G06F2201/815
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,572,430
App. No.
18/112,989
Filed
Feb 22, 2023
Granted
Mar 10, 2026
Kind
B2
Art Unit
2195
USPC
718/1
Abstract

Methods and systems for protecting virtual machines is provided. One method includes discovering, by a first plugin, from a virtual machine (“VM”) management system, a plurality of VMs that share a logical data store having a plurality of virtual volumes used for storing data for the VMs by a storage system registered with the first plugin and a virtual appliance of the VM management system; obtaining, by the first plugin, from the virtual appliance, metadata and storage layout of a set of virtual volumes used by a VM to store data; using a first application programming interface (API), by the first plugin, for identifying a first set of storage volumes used by the storage system to store data for the set of virtual volumes; and creating, by the first plugin, a consistency group (“CG”) having the identified the first set of storage volumes and generating a snapshot of the CG.

Claims (63)

1 . A method executed by one or more processors, comprising:

discovering, by a first plugin, from a virtual machine (“VM”) management system, a plurality of VMs that share a logical data store having a plurality of virtual volumes used for storing data for the VMs by a storage system registered with the first plugin and a virtual appliance of the VM management system;

obtaining, by the first plugin, from the virtual appliance, metadata and storage layout of a set of virtual volumes used by a VM to store data;

using a first application programming interface (API), by the first plugin, for identifying a first set of storage volumes used by the storage system to store data for the set of virtual volumes;

creating, by the first plugin, a consistency group (“CG”) having the identified the first set of storage volumes and generating a snapshot of the CG;

creating, by the first plugin, a directory for the VM for a restore operation to restore the VM from the snapshot;

renaming, by the first plugin, a logical object associated with the snapshot;

calling, by the first plugin, the virtual appliance to import the renamed logical object as a virtual volume for the restore operation;

utilizing, by the virtual appliance, a second API to import the virtual volume as a virtual disk, the second API creating a virtual disk descriptor file for the restore operation, the virtual disk descriptor file stored within the directory; and

attaching, by the first plugin, the virtual disk with the VM.

2 . The method of claim 1 , further comprising:

restoring, by the first plugin, the VM and providing virtual volume metadata to the virtual appliance for the restored VM.

3 . The method of claim 1 , further comprising:

grouping, by the first plugin, the first set of storage volumes for taking the snapshot, based on a storage profile indicating a service level for the set of virtual volumes.

4 . The method of claim 1 , further comprising:

discovering, by the first plugin, all storage volumes within the logical data store.

5 . The method of claim 4 , further comprising:

identifying, by the first plugin, the first set of storage volumes from the discovered storage volumes.

6 . The method of claim 1 , further comprising:

provisioning, by the virtual appliance, the set of virtual volumes for the VM based on a service level defined by a storage profile.

7 . The method of claim 1 , wherein the first plugin obtains VM files from the VM management system and uses the first API to obtain the first set of storage volumes from a storage operating system of the storage system.

8 . A non-transitory machine-readable storage medium having stored thereon instructions comprising machine executable code, which when executed by a machine, causes the machine to:

discover, by a first plugin, from a virtual machine (“VM”) management system, a plurality of VMs that share a logical data store having a plurality of virtual volumes used for storing data for the VMs by a storage system registered with the first plugin and a virtual appliance of the VM management system;

obtain, by the first plugin, from the virtual appliance, metadata and storage layout of a set of virtual volumes used by a VM to store data;

use a first application programming interface (API), by the first plugin, for identifying a first set of storage volumes used by the storage system to store data for the set of virtual volumes;

create, by the first plugin, a consistency group (“CG”) having the identified the first set of storage volumes and generating a snapshot of the CG;

create, by the first plugin, a directory for the VM for a restore operation to restore the VM from the snapshot;

rename, by the first plugin, a logical object associated with the snapshot;

calling, by the first plugin, the virtual appliance to import the renamed logical object as a virtual volume for the restore operation;

utilize, by the virtual appliance, a second API to import the virtual volume as a virtual disk, the second API creating a virtual disk descriptor file for the restore operation, the virtual disk descriptor file stored within the directory; and

attach, by the first plugin, the virtual disk with the VM.

9 . The non-transitory machine-readable storage medium of claim 8 , wherein the machine executable code, which when executed by a machine, further causes the machine to:

restore, by the first plugin, the VM and providing virtual volume metadata to the virtual appliance for the restored VM transfer a snapshot of the VM backup to a secondary storage system.

10 . The non-transitory machine-readable storage medium of claim 8 , wherein the machine executable code, which when executed by a machine, further causes the machine to:

group, by the first plugin, the first set of storage volumes for taking the snapshot, based on a storage profile indicating a service level for the set of virtual volumes.

11 . The non-transitory machine-readable storage medium of claim 8 , wherein the machine executable code, which when executed by a machine, further causes the machine to:

discover, by the first plugin, all storage volumes within the logical data store.

12 . The non-transitory machine-readable storage medium of claim 11 , wherein the machine executable code, which when executed by a machine, further causes the machine to:

identify, by the first plugin, the first set of storage volumes from the discovered storage volumes.

13 . The non-transitory machine-readable storage medium of claim 8 , wherein the machine executable code, which when executed by a machine, further causes the machine to:

provision, by the virtual appliance, the set of virtual volumes for the VM based on a service level defined by a storage profile.

14 . The non-transitory machine-readable storage medium of claim 8 , wherein the first plugin obtains VM files from the VM management system and uses the first API to obtain the first set of storage volumes from a storage operating system of the storage system.

15 . A system, comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions; and a processor coupled to the memory to execute the machine executable code to:

discover, by a first plugin, from a virtual machine (“VM”) management system, a plurality of VMs that share a logical data store having a plurality of virtual volumes used for storing data for the VMs by a storage system registered with the first plugin and a virtual appliance of the VM management system;

obtain, by the first plugin, from the virtual appliance, metadata and storage layout of a set of virtual volumes used by a VM to store data;

use a first application programming interface (API), by the first plugin, for identifying a first set of storage volumes used by the storage system to store data for the set of virtual volumes;

create, by the first plugin, a consistency group (“CG”) having the identified the first set of storage volumes and generating a snapshot of the CG;

create, by the first plugin, a directory for the VM for a restore operation to restore the VM from the snapshot;

rename, by the first plugin, a logical object associated with the snapshot;

calling, by the first plugin, the virtual appliance to import the renamed logical object as a virtual volume for the restore operation;

utilize, by the virtual appliance, a second API to import the virtual volume as a virtual disk, the second API creating a virtual disk descriptor file for the restore operation, the virtual disk descriptor file stored within the directory; and

attach, by the first plugin, the virtual disk with the VM.

16 . The system of claim 15 , wherein the machine executable code further causes to:

restore, by the first plugin, the VM and providing virtual volume metadata to the virtual appliance for the restored VM transfer a snapshot of the VM backup to a secondary storage system.

17 . The system of claim 15 , wherein the machine executable code further causes to:

group, by the first plugin, the first set of storage volumes for taking the snapshot, based on a storage profile indicating a service level for the set of virtual volumes.

18 . The system of claim 15 , wherein the machine executable code further causes to:

discover, by the first plugin, all storage volumes within the logical data store; and

identify, by the first plugin, the first set of storage volumes from the discovered storage volumes.

19 . The system of claim 15 , wherein the machine executable code further causes to:

provision, by the virtual appliance, the set of virtual volumes for the VM based on a service level defined by a storage profile.

20 . The system of claim 15 , wherein the first plugin obtains VM files from the VM management system and uses the first API to obtain the first set of storage volumes from a storage operating system of the storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2023
From: BALAKRISHNAN, RAJARAM; PALAIAH, BALAMURALI; PILLAI, JAYAKRISHNAN RAMAKRISHNA; ALMEIDA, KIRAN JOSEPH D.; SINGH, NEGI SHARDUL; KARINTA, VINEETH
To: NETAPP, INC.
Reel/Frame 063437/0561 →
Continuity (2)
Provisional Application 63431907 · Dec 12, 2022
Related Publication 20240192979A1 · Jun 13, 2024
References Cited (39)
US 8387127B1 · Narver et al. · 2013 [cited by applicant]
US 8607009B2 · Nicholas et al. · 2013 [cited by applicant]
US 8671406B1 · Gopal · 2014 [cited by examiner]
US 9003139B1 · Shivdeo et al. · 2015 [cited by applicant]
US 9020895B1 · Rajashekar et al. · 2015 [cited by applicant]
US 10209909B1 · Wils et al. · 2019 [cited by applicant]
US 10248619B1 · Kumar · 2019 [cited by applicant]
US 10365978B1 · Whitney et al. · 2019 [cited by applicant]
US 10387263B2 · Karinta · 2019 [cited by examiner]
US 10698719B2 · Chopra et al. · 2020 [cited by applicant]
US 10831618B1 · Potnis et al. · 2020 [cited by applicant]
US 10929241B2 · Yu et al. · 2021 [cited by applicant]
US 11030057B2 · Chopra et al. · 2021 [cited by applicant]
US 11397650B1 · Palaiah et al. · 2022 [cited by applicant]
US 20120137023A1 · Zhan · 2012 [cited by applicant]
US 20130262801A1 · Sancheti et al. · 2013 [cited by applicant]
US 20160179437A1 · Piduri et al. · 2016 [cited by applicant]
US 20160246683A1 · Vijayan et al. · 2016 [cited by applicant]
US 20170364285A1 · Piduri et al. · 2017 [cited by applicant]
US 20190114231A1 · Bishop et al. · 2019 [cited by applicant]
US 20190332499A1 · Huang · 2019 [cited by examiner]
US 20200034041A1 · Zhang et al. · 2020 [cited by applicant]
US 20200089582A1 · Piduri et al. · 2020 [cited by applicant]
US 20200333972A1 · Natanzon et al. · 2020 [cited by applicant]
US 20200349026A1 · Chopra et al. · 2020 [cited by applicant]
US 20210279088A1 · Kochavara et al. · 2021 [cited by applicant]
US 20210365330A1 · Kushnir et al. · 2021 [cited by applicant]
US 20210406133A1 · Shemer et al. · 2021 [cited by applicant]
US 20220179754A1 · Luan et al. · 2022 [cited by applicant]
US 20220237049A1 · Wiggers et al. · 2022 [cited by applicant]
US 20230229305A1 · Amdur et al. · 2023 [cited by applicant]
US 20240192980A1 · Balakrishnan et al. · 2024 [cited by applicant]
US 20240193055A1 · Balakrishnan et al. · 2024 [cited by applicant]
CN 109614053A · 2019 [cited by applicant]
KR 20060123460A · 2006 [cited by applicant]
KR 20140102482A · 2014 [cited by applicant]
Notice of Allowance mailed on Nov. 19, 2024 for U.S. Appl. No. 18/112,993, filed Feb. 22, 2023, 11 pages. [cited by applicant]
Non Final Office Action mailed on Jun. 20, 2024 for U.S. Appl. No. 18/112,993, filed Feb. 22, 2023, 19 pages. [cited by applicant]
Non Final Office Action mailed on Jul. 28, 2025 for U.S. Appl. No. 18/112,996, filed Feb. 22, 2023, 23 pages. [cited by applicant]