IP Library › Granted Patent US 12,216,545
Granted Patent B2
US 12,216,545 · App. 17/685,628 · Granted Feb 4, 2025

Cluster-wide application consistency with volume group snapshot

Inventors: Phuong N. Hoang (San Jose, CA); Sukarna Grandhi (Fremont, CA); Thomas Watson (Richardson, TX)
Assignee: Dell Products L.P.
G06F11/1446G06F9/5033G06F2201/84
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,216,545
App. No.
17/685,628
Granted
Feb 4, 2025
Kind
B2
Abstract

Embodiments of a method for providing cluster-wide, application consistent operations in a distributed network by creating a single volume snapshot object on a server for all of volumes of a distributed application. A snapshot controller creates volume snapshot content for each volume, and an external snapshot process, upon creation of the volume snapshot content, creates a snapshot of each volume on a backend storage device, wherein all snapshots for each volume are created at the same time to ensure consistency across all volumes being snapshotted at a certain moment.

Claims (17)

1. A computer-implemented method of providing cluster-wide, application consistent operations in a distributed network, comprising:

creating a single volume group snapshot object on a server for all of volumes of a plurality of distributed applications, wherein the applications are arranged by an application template into a nested sequence of applications and that suspends and restarts resources utilized by respective applications in a defined order;

defining a prehook and posthook annotation for each application, wherein the prehook and posthook annotation comprises a pair-ordered sequence dictating suspending and restarting the resources utilized by the respective application to ensure maintaining resource consistency during application operation and preventing a need of application quiescing during the suspending and restarting;

creating, by a snapshot controller, volume snapshot content for each volume;

creating, by an external snapshot process and upon creation of the volume snapshot content, a snapshot of each volume on a backend storage device, wherein all snapshots are created at the same time to ensure consistency across all volumes being snapshotted at a certain moment;

defining, for the snapshot process, an application template comprising a plurality of data fields including an application type field, an application label field specifying a label for all pods belonging to an application, and an actions field mapping actions performed on specific resource types and comprising pre-hook, post-hook, kind, and selectors subfields, wherein the selectors subfield specifies resources selected during a serialization phase of system operation for the volumes being snapshotted; and

processing the application template through a package manager component to execute the volume snapshotting and perform suspension and restart according to the prehook and posthook annotations, wherein an order of quiescing ensures application consistency of the cluster network across all the nodes in the cluster.

2. The method of claim 1 further comprising:

defining, for the application template, label selectors used by all resources of the application to select resources to be suspended during execution of the application and restarted after execution of the application;

marking the selected resources with the prehook and posthook annotations to signal a suspension time and restart time for each respective selected resource.

3. The method of claim 2 wherein the prehook and posthook annotations provide entry points for execution of appropriate program scripts to suspend and restart the respective resource during execution of the application.

4. The method of claim 3 wherein the respective resources are provided in a plurality of layers comprising an application-level top layer, a middle layer, and a node-level bottom layer.

5. The method of claim 4 wherein the top layer resources are suspended before and restarted after the middle and bottom layer resources, and the middle layer resources are suspended before and restarted after the bottom layer resources.

6. The method of claim 1 wherein the application comprises a multi-sharded database application.

7. The method of claim 6 wherein the network comprises a Kubernetes cluster having a controller, an application program interface (API) server, and a data migration process.

8. The method of claim 7 wherein the prehook comprises quiescing the selected pods during application execution, and the posthook comprises unquiescing the selected pods after application execution.

9. The method of claim 7 wherein the application data comprises persistent volume data implemented as a Kubernetes PersistentVolume (PV) in the cluster.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2022
From: HOANG, PHUONG N.; GRANDHI, SUKARNA; WATSON, THOMAS
To: DELL PRODUCTS L.P.
Reel/Frame 059158/0363 →
Continuity (1)
Related Publication 20230281082A1 · Sep 7, 2023
References Cited (5)
US 11226857B1 · Liang · 2022 [cited by examiner]
US 20210103499A1 · Alluboyina · 2021 [cited by examiner]
US 20210328858A1 · Asveren · 2021 [cited by examiner]
US 20220206902A1 · Hoang · 2022 [cited by examiner]
US 20220253218A1 · Balasubramanian · 2022 [cited by examiner]