US11424982B2ActiveUtilityA1

Remediation of a system to new desired state using configuration dependency graph

38
Assignee: VMWARE INCPriority: Jan 22, 2021Filed: Jan 22, 2021Granted: Aug 23, 2022
Est. expiryJan 22, 2041(~14.5 yrs left)· nominal 20-yr term from priority
G06F 9/44505G06F 8/71G06F 2009/4557G06F 2009/45575G06F 9/45558G06F 2009/45595H04L 41/082H04L 41/0886H04L 41/22H04L 41/084
38
PatentIndex Score
0
Cited by
10
References
20
Claims

Abstract

A method of remediating system services relies on a first dependency graph with super nodes, to each of which a set of system services are assigned, and second dependency graphs, each of which represents dependencies among the system services that are in one of the sets. The method includes the steps of: comparing an actual configuration state of the system services to a desired configuration state of the system services to identify configurations that are in drift; identifying system services corresponding to the configurations that are in drift; determining an order of updating configurations of the identified system services using the first and second dependency graphs; and applying the desired configurations of the identified system services in the order determined, wherein after the configurations of an identified system service are updated, the system service executes with the updated configurations.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of remediating system services to a desired configuration state, wherein the system services are running in a host configured with a virtualization software for supporting execution of virtual machines therein, and the system services include a plurality of sets of system services, said method comprising:
 comparing actual configurations of the system services to desired configurations of the system services to identify configurations that are in drift; 
 identifying system services corresponding to the configurations that are in drift including system services in a first set and system services in a second set; 
 retrieving a first dependency graph representing dependencies among the sets of system services, wherein, according to the first dependency graph, the first set is dependent on the second set; 
 retrieving a plurality of second dependency graphs, wherein each second dependency graph represents dependencies among system services that are in one of the sets of system services; 
 determining an order of updating the configurations that are in drift, using the first and second dependency graphs; and 
 applying desired configurations of the identified system services corresponding to the configurations that are in drift, in the order determined, wherein desired configurations of the system services in the first set are applied after desired configurations of the system services in the second set, and after the configurations that are in drift are updated to no longer be in drift, the identified system services corresponding to the configurations that are no longer in drift execute with the desired configurations of the identified system services corresponding to the configurations that are no longer in drift. 
 
     
     
       2. The method of  claim 1 , wherein the applying of the desired configurations of the identified system services includes:
 updating a configuration database in accordance with a master configuration schema defined for the system services based on a desired configuration file that contains the desired configurations of the system services, 
 wherein the configuration database is a key-value database and each of the system services has a corresponding key in the configuration database. 
 
     
     
       3. The method of  claim 2 , wherein during said comparing, the actual configurations of the system services are determined from the configuration database, and the desired configurations of the system services are determined from the desired configuration file. 
     
     
       4. The method of  claim 2 , wherein
 the first set includes storage system services, and the second set includes network system services. 
 
     
     
       5. The method of  claim 4 , wherein
 the first set includes a first system service that is dependent on a second system service as specified by the second dependency graph for the storage system services, and 
 during said applying, desired configurations for the first system service are applied after desired configurations for the second system service. 
 
     
     
       6. The method of  claim 5 , wherein the desired configuration file defines one or more configuration properties of the first system service, one or more internal states of the first system service, one or more configuration properties of the second system service, and one or more internal states of the second system service. 
     
     
       7. The method of  claim 1 , further comprising:
 generating a master configuration schema from a plurality of individual configuration schemas, each of the individual configuration schemas corresponding to one of the system services, 
 wherein the desired configurations of the identified system services corresponding to the configurations that are in drift, are applied in accordance with the master configuration schema. 
 
     
     
       8. A computing system comprising:
 a cluster of servers each configured with a virtualization software for supporting execution of virtual machines therein, wherein each of the servers includes a plurality of system services running therein, and each of the servers is configured to carry out a method of remediating system services to a desired configuration state, said method comprising: 
 comparing actual configurations of the system services to desired configurations of the system services to identify configurations that are in drift; 
 identifying system services corresponding to the configurations that are in drift including system services in a first set and system services in a second set; 
 retrieving a first dependency graph representing dependencies among sets of system services, wherein, according to the first dependency graph, the first set is dependent on the second set; 
 retrieving a plurality of second dependency graphs, wherein each second dependency graph represents dependencies among system services that are in one of the sets of system services; 
 determining an order of updating the configurations that are in drift, using the first and second dependency graphs; and 
 applying desired configurations of the identified system services corresponding to the configurations that are in drift, in the order determined, wherein desired configurations of the system services in the first set are applied after desired configurations of the system services in the second set, and after the configurations that are in drift are updated to no longer be in drift, the identified system services corresponding to the configurations that are no longer in drift execute with the desired configurations of the identified system services corresponding to the configurations that are no longer in drift. 
 
     
     
       9. The computing system of  claim 8 , wherein the applying of the desired configurations of the identified system services includes:
 updating a configuration database in accordance with a master configuration schema defined for the system services based on a desired configuration file that contains the desired configurations of the system services, 
 wherein the configuration database is a key-value database and each of the system services has a corresponding key in the configuration database. 
 
     
     
       10. The computing system of  claim 9 , wherein during said comparing, the actual configurations of the system services are determined from the configuration database, and the desired configurations of the system services are determined from the desired configuration file. 
     
     
       11. The computing system of  claim 9 , wherein
 the first set includes storage system services, and the second set includes network system services. 
 
     
     
       12. The computing system of  claim 11 , wherein
 the first set includes a first system service that is dependent on a second system service as specified by the second dependency graph for the storage system services, and 
 during said applying, desired configurations of the first system service are applied after desired configurations of the second system service. 
 
     
     
       13. The computing system of  claim 12 , wherein the desired configuration file defines one or more configuration properties of the first system service, one or more internal states of the first system service, one or more configuration properties of the second system service, and one or more internal states of the second system service. 
     
     
       14. The computing system of  claim 8 , further comprising:
 generating a master configuration schema from a plurality of individual configuration schemas, each of the individual configuration schemas corresponding to one of the system services, 
 wherein the desired configurations of the identified system services corresponding to the configurations that are in drift, are applied in accordance with the master configuration schema. 
 
     
     
       15. A non-transitory computer readable medium comprising instructions to be executed in one of a plurality of hosts that are each configured with a virtualization software for supporting execution of virtual machines therein, to carry out a method of remediating system services to a desired configuration state, wherein the system services are running in the hosts and include a plurality of sets of system services, said method comprising:
 comparing actual configurations of the system services to desired configurations of the system services to identify configurations that are in drift; 
 identifying system services corresponding to the configurations that are in drift including system services in a first set and system services in a second set; 
 retrieving a first dependency graph representing dependencies among the sets of system services, wherein, according to the first dependency graph, the first set is dependent on the second set; 
 retrieving a plurality of second dependency graphs, wherein each second dependency graph represents dependencies among system services that are in one of the sets of system services; 
 determining an order of updating the configurations that are in drift, using the first and second dependency graphs; and 
 applying desired configurations of the identified system services corresponding to the configurations that are in drift, in the order determined, wherein desired configurations of the system services in the first set are applied after desired configurations of the system services in the second set, and after the configurations that are in drift are updated to no longer be in drift, the identified system services corresponding to the configurations that are no longer in drift execute with the desired configurations of the identified system services corresponding to the configurations that are no longer in drift. 
 
     
     
       16. The non-transitory computer readable medium of  claim 15 , wherein the applying of the desired configurations of the identified system services includes:
 updating a configuration database in accordance with a master configuration schema defined for the system services, based on a desired configuration file that contains the desired configurations of the system services, 
 wherein the configuration database is a key-value database and each of the system services has a corresponding key in the configuration database. 
 
     
     
       17. The non-transitory computer readable medium of  claim 16 , wherein during said comparing, the actual configurations of the system services are determined from the configuration database, and the desired configurations of the system services are determined from the desired configuration file. 
     
     
       18. The non-transitory computer readable medium of  claim 16 , wherein
 the first set includes storage system services, and the second set includes network system services. 
 
     
     
       19. The non-transitory computer readable medium of  claim 18 , wherein
 the first set includes a first system service that is dependent on a second system service as specified by the second dependency graph for the storage system services, and 
 during said applying, desired configurations of the first system service are applied after desired configurations of the second system service. 
 
     
     
       20. The non-transitory computer readable medium of  claim 19 , wherein the desired configuration file defines one or more configuration properties of the first system service, one or more internal states of the first system service, one or more configuration properties of the second system service, and one or more internal states of the second system service.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.