Techniques for accurately apprising a user of progress in booting a virtual appliance

US10635560B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10635560-B2
Application numberUS-201715658755-A
CountryUS
Kind codeB2
Filing dateJul 25, 2017
Priority dateJun 27, 2016
Publication dateApr 28, 2020
Grant dateApr 28, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method, performed by a computing device, includes (a) building a data structure that describes dependence relationships between components of a virtual appliance, the components comprising respective computational processes which may be invoked during booting, a dependence relationship indicating that one component must complete before a second component may be invoked, (b) identifying, with reference to the data structure and an essential set of components which were pre-defined to be essential to the virtual appliance, a set of components that must complete for booting to be considered finished, and, after identifying the required set of components, repeatedly (c) querying each required component for its respective completion status, (d) calculating an estimated completion percentage for booting the virtual appliance with reference to the respective completion statuses of each required component versus all required components, and (e) displaying an indication of the completion percentage to a user via a user interface.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of displaying an estimate of progress in booting a virtual appliance on a set of virtual machines, the method comprising: building, by a computing device, a data structure that describes dependence relationships between components of the virtual appliance, the components comprising respective computational processes which may be invoked during booting, a dependence relationship indicating that a first component must complete before a second component may be invoked; identifying, by the computing device, with reference to the data structure and an indication of an essential set of components which were pre-defined to be essential to the virtual appliance, a set of components that must complete for booting to be considered finished; and after identifying the set of components required for booting, repeatedly, by the computing device: querying each required component of the set of components that must complete for its respective completion status; calculating an estimated completion percentage for booting the virtual appliance with reference to the respective completion statuses of each required component versus all required components; and displaying an indication of the completion percentage to a user via a user interface. 2. The method of claim 1 wherein: querying includes receiving query responses for a strict subset of the set of components, the query response for each component of the subset indicating completion of that respective component; and calculating the estimated completion percentage includes dividing a number of elements of the subset by a number of elements of the set of components that must complete. 3. The method of claim 1 wherein: querying includes receiving query responses for a subset of the set of components, the query response for each component of the subset indicating a percent completion of that respective component; and calculating the estimated completion percentage includes: summing the received percent completions for each component of the subset, yielding a completion sum; and dividing the completion sum by a number of elements of the set of components that must complete. 4. The method of claim 1 wherein: building the data structure includes creating a directed graph structure in which the components are represented by nodes and a dependence relationship indicating that a first component must complete before a second component may be invoked is represented by a directed edge from a node representing the first component towards a node representing the second component; and identifying the set of components that must complete for booting to be considered finished includes traversing the directed graph structure in reverse order from the essential set of components to yield the set of components that must complete for booting to be considered finished. 5. The method of claim 4 wherein calculating the estimated completion percentage includes modeling a remainder of the boot process by traversing the directed graph from nodes representing components that have already completed towards nodes representing the essential set of components in parallel on a pre-determined maximum number of cores assigned to the virtual appliance. 6. The method of claim 1 wherein displaying the indication of the completion percentage includes displaying the completion percentage to the user directly via the user interface. 7. The method of claim 1 wherein displaying the indication of the completion percentage includes: calculating an estimate of time remaining to boot the virtual appliance by multiplying the completion percentage by an estimate of the total boot time; and displaying the estimate of time remaining to boot to the user via the user interface. 8. The method of claim 7 wherein: the method is performed as part of a first boot of the virtual appliance upon being initially configured; and the estimate of the total boot time is pre-established based on timed boot results for similarly-configured systems. 9. The method of claim 7 wherein: the method is performed as part of a reboot of the virtual appliance, the virtual appliance having been previously booted on the set of virtual machines; and the method further comprises calculating the estimate of the total boot time with reference to previous measured boot times for the virtual appliance on the set of virtual machines. 10. The method of claim 1 wherein the virtual appliance comprises a single virtual machine running on a single server. 11. The method of claim 1 wherein: the virtual appliance comprises a plurality of virtual machines running on a plurality of servers; and the components further comprise respective clustered-managed resources invoked during booting by one of the plurality of virtual machines. 12. The method of claim 11 wherein the computing device is one of the plurality of servers. 13. The method of claim 11 wherein the virtual appliance is a virtual storage appliance, and the plurality of virtual machines are respective virtual storage processors each configured, in a fault-tolerant swappable manner, to respond to host storage queries by accessing physical storage devices available to that virtual storage processor over a network. 14. The method of claim 1 wherein the virtual appliance is a virtual storage appliance configured to respond to host storage queries by accessing physical storage devices available to the virtual appliance over a network. 15. The method of claim 1 wherein: the virtual machine runs on the computing device, the virtual machine being managed by a hypervisor running on the computing device; the method is performed by the hypervisor; and displaying the indication of the completion percentage to the user via the user interface includes the hypervisor sending the indication from the computing device to a user device over a network connection to be displayed on a display of the user device. 16. The method of claim 1 wherein the components which were pre-defined to be essential to the virtual appliance were pre-defined by a programmer upon programming code of the virtual appliance. 17. The method of claim 1 wherein the components which were pre-defined to be essential to the virtual appliance were indicated by the user upon initially configuring the virtual appliance. 18. A computer program product comprising a non-transitory computer-readable storage medium storing a set of instructions, which, when performed by a computing device, causes the computing device to display an estimate of progress in booting a virtual appliance on a set of virtual machines by: building, by the computing device, a data structure that describes dependence relationships between components of the virtual appliance, the components comprising respective computational processes which may be invoked during booting, a dependence relationship indicating that a first component must complete before a second component may be invoked; identifying, by the computing device, with reference to the data structure and an indication of an essential set of components which were pre-defined to be essential to the virtual appliance, a set of components that must complete for booting to be considered finished; and after identifying the set of components required for booting, repeatedly, by the computing device: querying each required component of the set of components that must complete for its respective completion status; calculating an estimated completion percentage for booting the virtual appliance with reference

Assignees

Inventors

Classifications

  • Graphs; Linked lists (G06F16/9027 takes precedence) · CPC title

  • where the topology of the computing system or computing system component explicitly influences the monitoring activity, e.g. serial, hierarchical systems · CPC title

  • Presentation of query results · CPC title

  • where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097) · CPC title

  • Bootstrapping (security arrangements therefor G06F21/57) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10635560B2 cover?
A method, performed by a computing device, includes (a) building a data structure that describes dependence relationships between components of a virtual appliance, the components comprising respective computational processes which may be invoked during booting, a dependence relationship indicating that one component must complete before a second component may be invoked, (b) identifying, with …
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/3055. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 28 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).