IP Library › Granted Patent US 10,771,344
Granted Patent B2
US 10,771,344 · App. 16/230,661 · Granted Sep 8, 2020

Discovery of hyper-converged infrastructure devices

Inventors: Robert Bitterfeld (Petach Tikva, IL); Boris Erblat (Tel Aviv, IL); Aviya Aron (Shafir, IL); Bary Solomon (Petah Tikva, IL); Daniel Badyan (Tel Aviv, IL)
Assignee: ServiceNow, Inc.
H04L41/12G06F16/2379H04L67/28H04L67/1097
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 10,771,344
App. No.
16/230,661
Granted
Sep 8, 2020
Kind
B2
Abstract

A system may include a database, where a managed network includes a computing cluster that provides networking, storage, and virtualization services distributed across a plurality of computing devices, where each computing device can execute one or more respective software applications and comprises: (i) a respective controller, and (ii) a respective storage device, and where the storage devices of the plurality of computing devices collectively form a storage pool. The system may also include a proxy server application configured to: request and receive computing cluster data that identifies the computing cluster; request and receive storage pool data that identifies the storage pool; request and receive storage container data that identifies storage containers of the storage pool; request and receive controller data that identifies the controllers of the plurality computing devices; and provide, to the database, the computing cluster data, the storage pool data, the storage container data, and the controller data.

Claims (84)

1. A system comprising:

a database disposed within a remote network management platform that is associated with a managed network, wherein the managed network comprises a computing cluster that provides networking, storage, and virtualization services distributed across each of a plurality of computing devices that are communicatively coupled via a local-area network, wherein each computing device is configured to execute one or more respective software applications and comprises: (i) a respective controller, and (ii) a respective storage device, and wherein the storage devices of the plurality of computing devices collectively form a storage pool for the computing cluster; and

a proxy server application disposed within the managed network and configured to perform operations of a computing cluster discovery pattern, the operations comprising:

requesting and receiving, from a first controller of one of the plurality of computing devices, computing cluster data that identifies the computing cluster;

requesting and receiving, from the first controller, storage pool data that identifies the storage pool;

requesting and receiving, from the first controller, storage container data that identifies storage containers of the storage pool, wherein a storage container includes a subset of available storage in the storage pool;

requesting and receiving, from the first controller, controller data that identifies the controllers of the plurality computing devices; and

providing, to the database, the computing cluster data, the storage pool data, the storage container data, and the controller data.

2. The system of claim 1 , wherein the database stores: (i) software application data that identifies software applications that are executed by the plurality of computing devices, (ii) computing device data that identifies the plurality of computing devices, and (iii) storage device data that identifies the storage devices of the plurality of computing devices.

3. The system of claim 2 , wherein the software application data, the computing device data, and the storage device data are determined by an initial discovery performed by the proxy server application.

4. The system of claim 2 , further comprising:

a server device disposed within the remote network management platform and configured to, based on the software application data, the computing device data, and the storage device data, map each software application to a corresponding computing device that executes the software application and each storage device to a corresponding computing device that houses the storage device.

5. The system of claim 2 , further comprising:

a server device disposed within the remote network management platform and configured to:

use the software application data to determine a type of the computing cluster;

based on the type of the computing cluster, select the computing cluster discovery pattern to discover the computing cluster; and

responsive to selecting the computing cluster discovery pattern, send an instruction to the proxy server application to perform the operations of the computing cluster discovery pattern.

6. The system of claim 1 , further comprising:

a server device disposed within the remote network management platform and configured to, based on the computing cluster data, the storage pool data, the storage container data, and the controller data, generating a hierarchical representation of the computing cluster, wherein the hierarchical representation is indicative of relationships between components of the computing cluster.

7. The system of claim 6 , wherein generating the hierarchical representation of the computing cluster comprises:

mapping the plurality of computing devices to the computing cluster;

mapping the storage pool to the storage devices;

mapping the storage containers to the storage pool; and

mapping each respective controller to a corresponding computing device associated with the respective controller.

8. The system of claim 7 , wherein mapping the plurality of computing devices to the computing cluster comprises:

determining, from the computing cluster data, a first computing cluster unique identifier (UID) that identifies the computing cluster;

determining, from computing device data stored in the database, a second computing cluster UID that identifies a particular computing cluster associated with the plurality of computing devices;

determining that the first computing cluster UID and the second computing cluster UID are identical; and

responsively mapping the plurality of computing devices to the computing cluster.

9. The system of claim 7 , wherein mapping the storage pool to the storage devices comprises:

determining, from the storage pool data, a first storage device unique identifier (UID) of a particular storage device associated with the storage pool;

determining, from storage device data stored in the database, a second storage device UID that identifies a storage device of the computing cluster;

determining that the first storage device UID and the second storage device UID are identical; and

responsively mapping the storage pool to the storage device.

10. The system of claim 7 , wherein mapping the storage containers to the storage pool comprises:

determining, from the storage pool data, a first storage pool unique identifier (UID) that identifies the storage pool;

determining, from the storage container data, a second storage pool UID of a particular storage pool associated with the storage containers;

determining that the first storage pool UID and the second storage pool UID are identical; and

responsively mapping the storage containers to the storage pool.

11. The system of claim 7 , wherein mapping each respective controller to a corresponding computing device that is associated with the respective controller comprises:

determining, from the controller data, a first computing device unique identifier (UID) of a particular computing device that is associated with the respective controller;

determining, from computing device data stored in the database, a second respective computing device UID for each of the plurality of computing devices;

selecting from the plurality of computing devices a first computing device whose second respective computing device UID is identical to the first computing device UID; and

mapping the respective storage device to the particular computing device.

12. A method comprising:

requesting and receiving, from a first controller and by a proxy server application, computing cluster data that identifies a computing cluster, wherein the first controller is associated with one of a plurality of computing devices of the computing cluster, wherein the computing cluster and the proxy server application are disposed within a managed network, wherein the computing cluster provides networking, storage, and virtualization services distributed across the plurality of computing devices, wherein the plurality of computing devices are communicatively coupled via a local-area network, and wherein each computing device is configured to execute one or more respective software applications and comprises: (i) a respective controller, and (ii) a respective storage device;

requesting and receiving, from the first controller and by the proxy server application, storage pool data that identifies a storage pool of the computing cluster, wherein the storage pool is provided by the storage devices of the plurality of computing devices;

requesting and receiving, from the first controller and by the proxy server application, storage container data that identifies storage containers of the storage pool, wherein a storage container includes a subset of available storage in the storage pool;

requesting and receiving, from the first controller and by the proxy server application, controller data that identifies the controllers of the plurality computing devices; and

providing, to a database disposed within a remote network management platform and by the proxy server application, the computing cluster data, the storage pool data, the storage container data, and the controller data.

13. The method of claim 12 , further comprising:

based on the computing cluster data, the storage pool data, the storage container data, and the controller data, generating a hierarchical representation of the computing cluster, wherein the hierarchical representation is indicative of relationships between components of the computing cluster.

14. The method of claim 13 , wherein generating the hierarchical representation of the computing cluster comprises:

mapping the plurality of computing devices to the computing cluster;

mapping the storage pool to the storage devices;

mapping the storage containers to the storage pool; and

mapping the respective controller to a corresponding computing device that executes the respective controller.

15. The method of claim 14 , wherein mapping the plurality of computing devices to the computing cluster comprises:

determining, from the computing cluster data, a first computing cluster unique identifier (UID) that identifies the computing cluster;

determining, from computing device data stored in the database, a second computing cluster UID that identifies a particular computing cluster associated with the plurality of computing devices;

determining that the first computing cluster UID and the second computing cluster UID are identical; and

responsively mapping the plurality of computing devices to the computing cluster.

16. The method of claim 14 , wherein mapping the storage pool to the storage devices comprises:

determining, from the storage pool data, a first storage device unique identifier (UID) of a particular storage device associated with the storage pool;

determining, from storage device data stored in the database, second storage device UID that identifies a storage device of the computing cluster;

determining that the first storage device UID and the second storage device UID are identical; and

responsively mapping the storage pool to the storage device.

17. The method of claim 14 , wherein mapping the storage containers to the storage pool comprises:

determining, from the storage pool data, a first storage pool unique identifier (UID) that identifies the storage pool;

determining, from the storage container data, a second storage pool UID of a particular storage pool associated with the storage containers;

determining that the first storage pool UID is identical to the second storage pool UID; and

responsively mapping the storage containers to the storage pool.

18. The method of claim 14 , wherein mapping each respective controller to a corresponding computing device that is associated with the respective controller comprises:

determining, from the controller data, a first computing device unique identifier (UID) of a particular computing device that is associated with the respective controller;

determining, from computing device data stored in the database, a second respective computing device UID for each of the plurality of computing devices;

selecting from the plurality of computing devices a first computing device whose second respective computing device UID is identical to the first computing device UID; and

mapping the respective storage device to the first computing device.

19. An article of manufacture including a non-transitory computer-readable medium, having stored thereon program instructions that, upon execution by a proxy server application disposed within a managed network, cause the proxy server application to perform operations comprising:

requesting and receiving, from a first controller, computing cluster data that identifies a computing cluster, wherein the first controller is associated with one of a plurality of computing devices of the computing cluster, wherein the computing cluster is disposed within the managed network, wherein the computing cluster provides networking, storage, and virtualization services distributed across the plurality of computing devices, wherein the plurality of computing devices are communicatively coupled via a local-area network, and wherein each computing device is configured to execute one or more respective software applications and comprises: (i) a respective controller, and (ii) a respective storage device, and

requesting and receiving, from the first controller, storage pool data that identifies a storage pool of the computing cluster, wherein the storage pool is provided by the storage devices of the plurality of computing devices;

requesting and receiving, from the first controller, storage container data that identifies storage containers of the storage pool, wherein a storage container includes a subset of available storage in the storage pool;

requesting and receiving, from the first controller, controller data that identifies the controllers of the plurality computing devices; and

providing, to a database disposed within a remote network management platform, the computing cluster data, the storage pool data, the storage container data, and the controller data.

20. The article of manufacture of claim 19 , wherein the database stores: (i) software application data that identifies software applications that are executed by the plurality of computing devices, (ii) computing device data that identifies the plurality of computing devices, and (iii) storage device data that identifies the storage devices of the plurality of computing devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2019
From: BITTERFELD, ROBERT; ERBLAT, BORIS; ARON, AVIYA; SOLOMON, BARY; BADYAN, DANIEL
To: SERVICENOW, INC.
Reel/Frame 047895/0894 →
Continuity (1)
Related Publication 20200204449A1 · Jun 25, 2020
Cited By (46)
US 12,189,465 US 12,192,245 US 12,200,081 US 12,222,834 US 12,231,508 US 12,248,361 US 12,254,014 US 12,254,063 US 12,254,352 US 12,259,998 US 12,261,904 US 12,271,719 US 12,271,739 US 12,273,230 US 12,282,385 US 12,294,581 US 12,299,419 US 12,309,028 US 12,309,235 US 12,362,995 US 12,399,712 US 12,425,195 US 12,437,158 US 12,437,250 US 12,438,790 US 12,474,900 US 12,481,416 US 12,487,906 US 12,499,016 US 12,499,119 US 12,499,311 US 12,500,820 US 12,518,041 US 12,536,044 US 12,554,380 US 12,563,115 US 12,585,929 US 12,587,432 US 12,603,823 US 12,613,990 US 12,619,350 US 12,619,402 US 12,619,520 US 12,664,002 US 12,683,852 US 12,744,708