IP Library › Granted Patent US 12,235,736
Granted Patent B2
US 12,235,736 · App. 17/583,908 · Granted Feb 25, 2025

Data recovery using recovery policies

Inventors: Mohammed Umair Mufti (Los Angeles, CA); Kshithij Iyer (Gujarat, IN); Ram Suradkar (Maharashtra, IN); Luis Pablo Pabón (Sturbridge, MA)
Assignee: Pure Storage, Inc.
G06F11/1469G06F11/1464G06F2201/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,235,736
App. No.
17/583,908
Filed
Jan 25, 2022
Granted
Feb 25, 2025
Kind
B2
Examiner
CHEUNG, EDDY
Art Unit
2165
USPC
707/675
Abstract

An illustrative method includes accessing, by a controller operating within a global control plane, a recovery policy that specifies parameters for generating recovery data associated with one or more resources of a first cluster comprising a first one or more containers, wherein the first cluster comprises a first local control plane separate from the global control plane; determining, by the controller and based on the recovery policy, a second cluster comprising a second one or more containers, wherein the second cluster comprises a second local control plane separate from the global control plane; and generating, by the controller and with respect to the second cluster, the recovery data associated with the one or more resources of the first cluster.

Claims (61)

1. A method comprising:

accessing, by a controller operating within a global control plane, a recovery policy that specifies parameters for generating a recovery data object for a data object stored within a first storage resource of a first cluster comprising a first one or more containers, wherein the first cluster comprises a first local control plane separate from the global control plane;

determining, by the controller and based on the recovery policy, a second cluster comprising a second one or more containers, wherein the second cluster comprises a second local control plane separate from the global control plane, the determining the second cluster comprising selecting, based on the recovery policy, a cloud computing environment and deploying, based on the recovery policy, the second cluster within a container system of the cloud computing environment;

generating, by the controller and with respect to the second cluster, the recovery data object within a second storage resource of the second cluster; and

synchronizing, by the controller based on the recovery policy, the recovery data object with the data object.

2. The method of claim 1 , further comprising:

deploying the first cluster within a first container system operating within a first computing environment;

wherein the accessing the recovery policy is performed based on the deploying the first cluster.

3. The method of claim 1 , wherein:

the selecting the cloud computing environment comprises selecting the cloud computing environment within a geographic region located at least a minimum physical distance away from a geographic region associated with the first cluster, wherein the recovery policy indicates the minimum physical distance.

4. The method of claim 1 , wherein the determining the second cluster further comprises:

selecting, from among a plurality of clusters available for data recovery, the second cluster based on one or more characteristics of the second cluster satisfying one or more parameters of the recovery policy.

5. The method of claim 1 , further comprising:

accessing, by the controller, an additional recovery policy that specifies parameters for generating recovery data associated with a containerized application operating within the first cluster;

determining an inconsistency between the additional recovery policy and the recovery policy; and

generating, based on the determining the inconsistency, an alert indicative of the inconsistency.

6. The method of claim 1 , wherein the controller operates within a cloud computing environment that is physically remote from a first cloud computing environment implementing the first cluster and from a second cloud computing environment implementing the second cluster.

7. The method of claim 1 , wherein the recovery policy specifies:

a first backup level associated with a first category of users, the first category of users comprising engineers;

a second backup level associated with a second category of users, the second category of users comprising developers; and

a third backup level associated with a third category of users, the third category of users comprising testers.

8. A system comprising:

one or more memories storing computer-executable instructions; and

a controller operating within a global control plane, wherein the controller comprises one or more processors configured to execute the computer-executable instructions to:

access a recovery policy that specifies parameters for generating a recovery data object for a data object stored within a first storage resource of a first cluster comprising a first one or more containers, wherein the first cluster comprises a first local control plane separate from the global control plane;

determine, based on the recovery policy, a second cluster comprising a second one or more containers, wherein the second cluster comprises a second local control plane separate from the global control plane, the determining the second cluster comprising selecting, based on the recovery policy, a cloud computing environment and deploying, based on the recovery policy, the second cluster within a container system of the cloud computing environment;

generate, with respect to the second cluster, the recovery data object within a second storage resource of the second cluster; and

synchronize, based on the recovery policy, the recovery data object with the data object.

9. The system of claim 8 , wherein the one or more processors further execute the computer-executable instructions to:

deploy the first cluster within a first container system operating within a first computing environment;

wherein the access of the recovery policy is performed based on the deploying the first cluster.

10. The system of claim 8 , wherein:

the selecting the cloud computing environment comprises selecting the cloud computing environment within a geographic region located at least a minimum physical distance away from a geographic region associated with the first cluster, wherein the recovery policy indicates the minimum physical distance.

11. The system of claim 8 , wherein, to determine the second cluster, the one or more processors further execute the computer-executable instructions to:

select, from among a plurality of clusters available for data recovery, the second cluster based on one or more characteristics of the second cluster satisfying one or more parameters of the recovery policy.

12. The system of claim 8 , wherein the one or more processors further execute the computer-executable instructions to:

access an additional recovery policy that specifies parameters for generating recovery data associated with a containerized application operating within the first cluster;

determine an inconsistency between the additional recovery policy and the recovery policy; and

generate, based on the determining the inconsistency, an alert indicative of the inconsistency.

13. The system of claim 8 , wherein the system operates within a cloud computing environment that is physically remote from a first cloud computing environment implementing the first cluster and from a second cloud computing environment implementing the second cluster.

14. The system of claim 8 , wherein the recovery policy specifies:

a first backup level associated with a first category of users, the first category of users comprising engineers;

a second backup level associated with a second category of users, the second category of users comprising developers; and

a third backup level associated with a third category of users, the third category of users comprising testers.

15. A non-transitory computer-readable medium storing computer instructions that, when executed, direct a controller comprising one or more processors to:

access a recovery policy that specifies parameters for generating a recovery data object for a data object stored within a first storage resource of a first cluster comprising a first one or more containers, wherein the controller operates within a global control plane, and wherein the first cluster comprises a first local control plane separate from the global control plane;

determine, based on the recovery policy, a second cluster comprising a second one or more containers, wherein the second cluster comprises a second local control plane separate from the global control plane, the determining the second cluster comprising selecting, based on the recovery policy, a cloud computing environment and deploying, based on the recovery policy, the second cluster within a container system of the cloud computing environment;

generate, with respect to the second cluster, the recovery data object within a second storage resource of the second cluster; and

synchronize, based on the recovery policy, the recovery data object with the data object.

16. The non-transitory computer-readable medium of claim 15 , wherein the one or more processors further execute the computer instructions to:

deploy the first cluster within a first container system operating within a first computing environment;

wherein the access of the recovery policy is performed based on the deploying the first cluster.

17. The non-transitory computer-readable medium of claim 15 , wherein:

the selecting the cloud computing environment comprises selecting the cloud computing environment within a geographic region located at least a minimum physical distance away from a geographic region associated with the first cluster, wherein the recovery policy indicates the minimum physical distance.

18. The non-transitory computer-readable medium of claim 15 , wherein, to determine the second cluster, the one or more processors further execute the computer instructions to:

select, from among a plurality of clusters available for data recovery, the second cluster based on one or more characteristics of the second cluster satisfying one or more parameters of the recovery policy.

19. The non-transitory computer-readable medium of claim 15 , wherein the one or more processors further execute the computer instructions to:

access an additional recovery policy that specifies parameters for generating recovery data associated with a containerized application operating within the first cluster;

determine an inconsistency between the additional recovery policy and the recovery policy; and

generate, based on the determining the inconsistency, an alert indicative of the inconsistency.

20. The non-transitory computer-readable medium of claim 15 , wherein the controller operates within a cloud computing environment that is physically remote from a first cloud computing environment implementing the first cluster and from a second cloud computing environment implementing the second cluster.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2022
From: MUFTI, MOHAMMED UMAIR; IYER, KSHITHIJ; SURADKAR, RAM; PABÓN, LUIS PABLO
To: PURE STORAGE, INC., A DELAWARE CORPORATION
Reel/Frame 058762/0609 →
Continuity (1)
Related Publication 20230236939A1 · Jul 27, 2023
References Cited (103)
US 7673169B1 · Kumaresan et al. · 2010 [cited by applicant]
US 7966516B2 · Weijun et al. · 2011 [cited by applicant]
US 8209568B2 · Marowsky-Bree et al. · 2012 [cited by applicant]
US 8370679B1 · Gawali et al. · 2013 [cited by applicant]
US 8635185B2 · Somogyi et al. · 2014 [cited by applicant]
US 8676763B2 · Goodman et al. · 2014 [cited by applicant]
US 8776044B1 · Vaidya · 2014 [cited by applicant]
US 8862927B2 · Bhalerao et al. · 2014 [cited by applicant]
US 8930536B2 · Jackson · 2015 [cited by applicant]
US 9026658B2 · Xu et al. · 2015 [cited by applicant]
US 9176785B2 · Jackson · 2015 [cited by applicant]
US 9225663B2 · Jackson · 2015 [cited by applicant]
US 9262229B2 · Lee et al. · 2016 [cited by applicant]
US 9262290B2 · Iwasaki et al. · 2016 [cited by applicant]
US 9300536B2 · Agarwala et al. · 2016 [cited by applicant]
US 9304871B2 · Iwasaki et al. · 2016 [cited by applicant]
US 9424152B1 · Raut et al. · 2016 [cited by applicant]
US 9507676B2 · Fitzpatrick et al. · 2016 [cited by applicant]
US 9569314B2 · Iwasaki et al. · 2017 [cited by applicant]
US 9575848B2 · Goodman et al. · 2017 [cited by applicant]
US 9720626B2 · Buzzard et al. · 2017 [cited by applicant]
US 9747178B2 · Sridhara · 2017 [cited by applicant]
US 9766992B2 · Wipfel et al. · 2017 [cited by applicant]
US 9817734B2 · Ren et al. · 2017 [cited by applicant]
US 9836249B2 · Buzzard et al. · 2017 [cited by applicant]
US 9836367B2 · Ramani et al. · 2017 [cited by applicant]
US 9836368B2 · Keremane et al. · 2017 [cited by applicant]
US 9898370B2 · Iwasaki et al. · 2018 [cited by applicant]
US 10015106B1 · Florissi et al. · 2018 [cited by applicant]
US 10102264B2 · Tung et al. · 2018 [cited by applicant]
US 10114703B2 · Iwasaki et al. · 2018 [cited by applicant]
US 10122595B2 · Lee et al. · 2018 [cited by applicant]
US 10148498B1 · Gould et al. · 2018 [cited by applicant]
US 10153941B2 · Dion et al. · 2018 [cited by applicant]
US 10223016B2 · Chen et al. · 2019 [cited by applicant]
US 10229125B2 · Goodman et al. · 2019 [cited by applicant]
US 10346252B1 · Gould et al. · 2019 [cited by applicant]
US 10353791B2 · Altmannsberger et al. · 2019 [cited by applicant]
US 10365977B1 · Gould et al. · 2019 [cited by applicant]
US 10454754B1 · Patel et al. · 2019 [cited by applicant]
US 10496501B2 · Sridhara · 2019 [cited by applicant]
US 10585775B2 · Desai et al. · 2020 [cited by applicant]
US 10621056B2 · Ramani et al. · 2020 [cited by applicant]
US 10630566B1 · Nguyen · 2020 [cited by applicant]
US 10728255B2 · Jindal et al. · 2020 [cited by applicant]
US 10791138B1 · Siddiqui et al. · 2020 [cited by applicant]
US 10798112B2 · Siddiqui et al. · 2020 [cited by applicant]
US 10841152B1 · Humphreys · 2020 [cited by applicant]
US 10868742B2 · Chitalia et al. · 2020 [cited by applicant]
US 10893097B1 · Liu et al. · 2021 [cited by applicant]
US 10909003B2 · Neichev · 2021 [cited by applicant]
US 10917456B2 · Parees et al. · 2021 [cited by applicant]
US 10963349B2 · Dhamdhere et al. · 2021 [cited by applicant]
US 10963356B2 · Gill et al. · 2021 [cited by applicant]
US 11068285B2 · Sheoran et al. · 2021 [cited by applicant]
US 20090055689A1 · Petersen · 2009 [cited by applicant]
US 20110047405A1 · Marowsky-Bree et al. · 2011 [cited by applicant]
US 20130042139A1 · Bhalerao et al. · 2013 [cited by applicant]
US 20140149791A1 · Goodman et al. · 2014 [cited by applicant]
US 20150154084A1 · Iwasaki et al. · 2015 [cited by applicant]
US 20150154085A1 · Iwasaki et al. · 2015 [cited by applicant]
US 20150236972A1 · Jackson · 2015 [cited by applicant]
US 20160048408A1 · Madhu et al. · 2016 [cited by applicant]
US 20160057009A1 · Kadayam et al. · 2016 [cited by applicant]
US 20160140008A1 · Iwasaki et al. · 2016 [cited by applicant]
US 20160154706A1 · Iwasaki et al. · 2016 [cited by applicant]
US 20160154711A1 · Iwasaki et al. · 2016 [cited by applicant]
US 20160179636A1 · Fitzpatrick et al. · 2016 [cited by applicant]
US 20160352588A1 · Subbarayan et al. · 2016 [cited by applicant]
US 20170060705A1 · Sridhara · 2017 [cited by applicant]
US 20170060710A1 · Ramani et al. · 2017 [cited by applicant]
US 20170060884A1 · Goodman et al. · 2017 [cited by applicant]
US 20170109184A1 · Ramani et al. · 2017 [cited by applicant]
US 20170116097A1 · Keremane et al. · 2017 [cited by applicant]
US 20170329546A1 · Chen et al. · 2017 [cited by applicant]
US 20170339008A1 · Dion et al. · 2017 [cited by applicant]
US 20170351586A1 · Sridhara · 2017 [cited by applicant]
US 20180027051A1 · Parees et al. · 2018 [cited by applicant]
US 20180095671A1 · Buzzard et al. · 2018 [cited by applicant]
US 20180150367A1 · Ramani et al. · 2018 [cited by applicant]
US 20180287902A1 · Chitalia et al. · 2018 [cited by applicant]
US 20180288077A1 · Siddiqui et al. · 2018 [cited by applicant]
US 20190324874A1 · Gill et al. · 2019 [cited by applicant]
US 20190327271A1 · Saxena et al. · 2019 [cited by applicant]
US 20200026625A1 · Konka et al. · 2020 [cited by applicant]
US 20200073764A1 · Neichev · 2020 [cited by applicant]
US 20200099692A1 · Jindal et al. · 2020 [cited by applicant]
US 20200151023A1 · Bai · 2020 [cited by examiner]
US 20200310931A1 · Beedu et al. · 2020 [cited by applicant]
US 20210037087A1 · Liu et al. · 2021 [cited by applicant]
US 20210084048A1 · Kannan et al. · 2021 [cited by applicant]
US 20210089331A1 · Sheoran et al. · 2021 [cited by applicant]
US 20210099368A1 · Chitalia et al. · 2021 [cited by applicant]
US 20210216346A1 · Mahanta et al. · 2021 [cited by applicant]
US 20210232469A1 · Gill et al. · 2021 [cited by applicant]
US 20210248047A1 · Jayaram et al. · 2021 [cited by applicant]
US 20210263780A1 · Ou et al. · 2021 [cited by applicant]
US 20210334001A1 · Chaturvedi · 2021 [cited by examiner]
US 20220283903A1 · Murti · 2022 [cited by examiner]
US 20220404983A1 · Shelke · 2022 [cited by examiner]
US 20230074868A1 · Herman · 2023 [cited by examiner]
US 20230195577A1 · Darnell · 2023 [cited by examiner]
US 20230205647A1 · Sharma · 2023 [cited by examiner]
Cited By (1)
US 12,526,216