HCI distributed ledger management system

An HCI distributed ledger management system includes a first HCI node in an HCI system that uses its first HCI node data to generate a first hash value that it stores in a distributed ledger and broadcasts to other HCI nodes in the HCI system. In response to a first modification performed on the first HCI node, the first HCI node uses its second HCI node data to generate a second hash value that it stores along with the first hash value in the distributed ledger, and broadcasts to the other HCI nodes in the HCI system. A management system may then determine that an issue exists in the HCI system and, in response, identify a cause of the issue based on the first hash value and the second hash value stored in the distributed ledger.

BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to the management of Hyper Converged Infrastructure (HCI) information handling systems via a distributed ledger.

Information handling systems such as, for example, server devices, are sometimes utilized to provide Hyper-Converged Infrastructure (HCI) systems that are configured to perform compute, storage, and networking operations as part of a “cloud” infrastructure. In such HCI systems, each server device may provide an HCI node subsystem in that HCI system, and in order for the HCI system to operate in manner that provides predictable outcomes satisfying Service Level Agreements (SLAs) for customers, particular internal components and configurations (e.g., particular models of storage devices (Solid-State Drive (SSD)/Hard Disk Drive (HDD)/flash drive), memory devices (Dual Inline Memory Modules (DIMMs)), Host Bus Adapter (HBA) devices, networking devices, etc.) particular firmware versions, particular operating systems and operating system components (e.g., operating system patches), particular software versions, etc., are required in each HCI node subsystem. As such, HCI system providers typically require that an HCI system utilize identical server devices/HCI node subsystems, and managing the HCI system to ensure compliance with that requirement is particularly critical in situations in which the HCI system provider does not have “direct” control of the HCI system or access to the location where the HCI system resides.

For example, HCI node subsystems may have physical components replaced, which can cause issues with enterprise workflows that have been validated for a particular set of hardware, and while conventional HCI node subsystems may allow for the tracking of their components via Field Replaceable Unit (FRU) requests to the HCI system provider, any component replaced outside of that process will not be identifiable in the event it causes issues with HCI system operation. In another example, HCI node subsystems may have versions of at least some of its software stack changed, and the relatively large number of software components utilized in an HCI node subsystem make any particular software version change extremely difficult to track. In yet another example, many HCI node subsystems include warranties that require any changes to the HCI node subsystem be performed (or authorized) by the HCI system provider, but in practice the tracking of unauthorized changes to HCI node subsystems is very difficult to identify. In yet another example, regular HCI node subsystem updates make it difficult to track the source of errors in any particular component in the HCI node subsystem.

In yet another example, the addition of a new HCI node subsystem to an existing HCI system is relatively difficult, and requires a hardware configuration check (to ensure the hardware configuration of the new HCI node subsystem matches those of the existing HCI subsystems), an update compliance check (to ensure the new HCI node subsystem has been updated with firmware, drivers, operating system updates, etc., that match the existing HCI subsystems), license checks (to ensure the new HCI node subsystem has been licensed to use hardware and software like the existing HCI subsystems), networking configuration checks (to ensure the new HCI node subsystem has the same networking access as the existing HCI subsystems), as well as other HCI node subsystem addition operations known in the art that make the addition of new HCI node subsystems to an HCI system a time consuming, manual process. Thus, HCI system providers deal with many challenges is the provisioning of HCI systems to customers, as well as ensuring that the HCI system maintains hardware and software compliance in order to operate properly.

Accordingly, it would be desirable to provide an HCI management system that addresses the issues discussed above.

SUMMARY

According to one embodiment, an Information Handling System (IHS) includes a processing system; and a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide an HCI system management engine that is configured to: generate, using first IHS data for the IHS that is included in an HCI system, a first IHS hash value; store the first IHS hash value in a distributed ledger maintained by the HCI system management engine; and broadcast the first IHS hash value to at least one HCI node subsystem that is included in the HCI system, and wherein the HCI system management engine is configured, in response to a first modification performed on the IHS, to: generate, using second IHS data for the IHS, a second IHS hash value; store the second IHS hash value along with the first IHS hash value in the distributed ledger maintained by the HCI system management engine, wherein the first IHS hash value and the second IHS hash value stored in the distributed ledger are configured to identify a cause of an issue with the HCI system; and broadcast the second IHS hash value to the at least one other HCI node subsystem that is included in the HCI system.

DETAILED DESCRIPTION

Referring now toFIG. 2, an embodiment of a networked system200is illustrated that may utilize the HCI distributed ledger management system of the present disclosure. In the illustrated embodiment, the networked system200includes an HCI provider system202that one of skill in the art in possession of the present disclosure will recognize may be controlled by an HCI provider that provides HCI systems to customers and other HCI system users. In an embodiment, the HCI provider system202may be provided by the IHS100discussed above with reference toFIG. 1, and/or may include some or all of the components of the IHS100, and in specific examples may include one or more server devices that perform the HCI provider license and warranty functionality discussed below (e.g., by providing a license and warranty repository with an Application Programming Interface (API) that allows for the licensee validation discussed below), but that one of skill in the art in possession of the present disclosure will appreciate may perform any of a variety of other HCI provider operations known in the art. However, while illustrated and discussed as a being provided by server device(s), one of skill in the art in possession of the present disclosure will recognize that HCI provider systems provided in the networked system200may include any devices that may be configured to operate similarly as the HCI provider system202discussed below.

In the illustrated embodiment, the HCI provider system202is coupled to the other components in the networked system200via a network204that may be provided by a Local Area Network (LAN), the Internet, combination thereof, and/or any of a variety of other networks that would be apparent to one of skill in the art in possession of the present disclosure. As illustrated, a management subsystem206may be coupled to the network204. In an embodiment, the management subsystem206may be provided by the IHS100discussed above with reference toFIG. 1, and/or may include some or all of the components of the IHS100, and in specific examples may include one or more server devices that perform the management functionality discussed below. For example, the management subsystem206may be provided by a management node/portal that operates to store consolidated HCI node subsystem management information that it may retrieve from the HCI provider system202and expose (e.g., via an API) to the networked system200. However, while illustrated and discussed as a being provided by server device(s), one of skill in the art in possession of the present disclosure will recognize that management subsystems provided in the networked system200may include any devices that may be configured to operate similarly as the management subsystem206discussed below.

As illustrated, a networking subsystem208may be coupled to the network204and the management subsystem206. In an embodiment, the networking subsystem208may be provided by the IHS100discussed above with reference toFIG. 1, and/or may include some or all of the components of the IHS100, and in specific examples may include one or more switch devices that perform the networking functionality discussed below by providing a management network for the management subsystem206along with a data network for a Hyper-Converged Infrastructure (HCI) system210that is coupled to the networking subsystem208. However, while illustrated and discussed as a being provided by switch device(s), one of skill in the art in possession of the present disclosure will recognize that networking subsystems provided in the networked system200may include any networking devices that may be configured to operate similarly as the networking subsystem208discussed below.

As discussed above, an HCI system210is coupled to the networking subsystem208, and in the illustrated embodiment includes a plurality of HCI node subsystems210a,210b, and up to210c. In an embodiment, any or all of the HCI node subsystems210a-210cmay be provided by the IHS100discussed above with reference toFIG. 1, and/or may include some or all of the components of the IHS100, and in specific examples may each be provided by a respective server device that is configured to perform HCI compute, storage, and networking functionality along with the HCI distributed ledger management functionality discussed below. However, while illustrated and discussed as a being provided by server device(s), one of skill in the art in possession of the present disclosure will recognize that the HCI node subsystems210a-210cprovided in the networked system200may include any devices (storage systems, networking devices such as switch devices, etc.) that may be configured to operate similarly as the HCI node subsystems210a-210cdiscussed below. As such, while a specific networked system200has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that the HCI distributed ledger management system of the present disclosure may include a variety of components and component configurations while remaining within the scope of the present disclosure as well.

Referring now toFIG. 3, an embodiment of an HCI node subsystem300is illustrated that may provide any or all of the HCI node subsystems210a-210cdiscussed above with reference toFIG. 2. As such, the HCI node subsystem300may be provided by the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may be provided by a server device that is configured to perform HCI compute, storage, and networking functionality along with the HCI distributed ledger management functionality discussed below. Furthermore, while illustrated and discussed as being provided by a server device, one of skill in the art in possession of the present disclosure will recognize that the functionality of the HCI node subsystem300discussed below may be provided by other devices (storage systems, networking devices such as switch devices, etc.) that are configured to operate similarly as the HCI node subsystem300discussed below. In the illustrated embodiment, the HCI node subsystem300includes a chassis302that houses the components of the HCI node subsystem300, only some of which are illustrated and discussed below. For example, the chassis302may house a processing system (not illustrated, but which may include the processor102discussed above with reference toFIG. 1) and a memory system (not illustrated, but which may include the memory114discussed above with reference toFIG. 1) that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide an HCI system management engine304that is configured to perform the functionality of the HCI system management engines and/or HCI node subsystems discussed below.

In the specific example illustrated and discussed herein, the HCI system management engine is provided by an operating system/hypervisor304aand a remote access controller device304bsuch as, for example, the integrated DELL® Remote Access Controller (iDRAC) included in server devices available from DELL® Inc. of Round Rock, Tex., United States, a Baseboard Management Controller (BMC), and/or other remote access controller devices known in the art. As will be appreciated by one of skill in the art in possession of the present disclosure, the operating system/hypervisor304amay be provided by a central processing subsystem (not illustrated, but which may include the processor102discussed above with reference toFIG. 1such as a Central Processing Unit (CPU)) and a main memory subsystem (not illustrated, but which may include the memory114discussed above with reference toFIG. 1) that is coupled to the central processing subsystem and that includes instructions that, when executed by the central processing subsystem, cause the central processing subsystem to provide at least a portion of the HCI system management engine304. Similarly, the remote access controller device304bmay include a remote access controller processing subsystem (not illustrated, but which may include the processor102discussed above with reference toFIG. 1) and a remote access controller memory subsystem (not illustrated, but which may include the memory114discussed above with reference toFIG. 1) that is coupled to the remote access controller processing subsystem and that includes instructions that, when executed by the remote access controller processing subsystem, cause the remote access controller processing subsystem to provide at least a portion of the HCI system management engine304.

Continuing with the specific example provided herein, the remote access controller device304bprovides a management controller/management module for the HCI system management engine304, and may be provided by the iDRAC/BMC in server devices as discussed above, but may also be provided by management modules in storage systems, or network operating systems in switch devices in other embodiments that utilize those components in the HCI system210ofFIG. 2. As will be appreciated by one of skill in the art in possession of the present disclosure, the remote access controller device304bmay be connected via the management network discussed above to the management subsystem206, and may include a sideband communication interface with the operating system/hypervisor304a. As discussed below, the remote access controller device304bmay be source of at least some of the HCI node subsystem data (e.g., system information, hardware component information, software component information, etc.) that is used to generate the HCI node subsystem hash value for the HCI node subsystem300at any given time, and the operating system/hypervisor304amay be the source of at least some of the HCI node subsystem data (e.g., log information, performance information, warranty information, etc.) that is used to generate the HCI node subsystem hash value for the HCI node subsystem300as well (with the HCI node subsystem data retrieved from the operating system/hypervisor304aby the remote access controller device304bvia the sideband interface discussed above, via a repository in the HCI node subsystem components discussed below, etc.) As such, the operating system/hypervisor304amay include a management agent that is configured to collect at least some of the HCI node subsystem data and utilize that sideband interface to communicate it to the remote access controller device304aor the repository in the HCI node subsystem components.

The chassis302may also house a storage system (not illustrated, but which may include the storage108discussed above with reference toFIG. 1) that is coupled to the HCI system management engine304(e.g., via a coupling between the storage system and the processing system) and that includes an HCI system management database306that is configured to store any of the information utilized by the HCI system management engine304discussed below. In particular, the HCI system management database306may be configured to store the HCI node subsystem distributed ledger discussed below, as well as the HCI node subsystem data for the HCI node subsystem300in which it is located, and one of skill in the art in possession of the present disclosure will appreciate how the HCI node subsystem300may reserve some storage space for storing the HCI node subsystem distributed ledger discussed above. Furthermore, while the HCI system management database306is illustrated as being included in the HCI node subsystem300(which is a server device in this embodiment), in embodiments in which the HCI node subsystem300is a switch device, the HCI system management database306may be provided in a connected server device or storage system that is synchronized with the switch device (e.g., using Link Layer Discovery Protocol (LLDP) techniques known in the art).

The chassis302may also house a communication system308that is coupled to the HCI system management engine304(e.g., via a coupling between the communication system308and the processing system) and that may be provided by a Network Interface Controller (NIC), wireless communication systems (e.g., BLUETOOTH®, Near Field Communication (NFC) components, WiFi components, etc.), and/or any other communication components that would be apparent to one of skill in the art in possession of the present disclosure. The chassis may also house a plurality of HCI node subsystem components310that are coupled to the HCI system management engine304(e.g., via a coupling between the HCI node subsystem components310and the processing system) and that may be provided by hardware components (e.g., processing subsystems, memory subsystems, networking subsystems, storage subsystems, peripheral subsystems, etc.), software components, firmware, system database information, log database information, inventory database information, license database information, warranty database information, performance database information, and/or any other HCI subsystem components that would be apparent to one of skill of the art. However, while a specific HCI node subsystem300has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that HCI node subsystem300(or other devices operating according to the teachings of the present disclosure in a manner similar to that described below for the HCI node subsystem300) may include a variety of components and/or component configurations for providing conventional HCI node subsystem functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure as well.

Referring now toFIG. 4, an embodiment of a method400for managing a Hyper-Converged Infrastructure (HCI) system via a distributed ledger is illustrated. As discussed below, the systems and methods of the present disclosure provide for federated control of HCI infrastructure via the use of a distributed ledger maintained by each of the HCI node subsystems in an HCI system. For example, the HCI distributed ledger management system of the present disclosure may include a first HCI node in an HCI system that uses its first HCI node data to generate a first hash value that it stores in a distributed ledger and broadcasts to other HCI nodes in the HCI system. In response to a first modification performed on the first HCI node, the first HCI node uses its second HCI node data to generate a second hash value that it stores along with the first hash value in the distributed ledger, and broadcasts to the other HCI nodes in the HCI system. A management system may then determine that an issue exists in the HCI system and, in response, identify a cause of the issue based on the first hash value and the second hash value stored in the distributed ledger. The second hash value in the distributed ledger may also be used by the first HCI node to approve the configuration changes in other HCI nodes in the HCI system, approve the addition of other HCI nodes to the HCI system, and perform other HCI system management operations known in the art. As such, management of HCI systems is facilitated even in situations in which the HCI system provider does not have “direct” control of the HCI system or access to the location where the HCI system resides.

In an embodiment, prior to or during the method400, the HCI system210discussed above may be provided to a customer by an HCI system provider. As part of the HCI system provisioning/manufacturing process, the HCI system provider may configure each of the HCI node subsystems210a-210c/300identically such that they include the same HCI node subsystem components310(e.g., the same hardware components (e.g., processing subsystems, memory subsystems, networking subsystems, storage subsystems, peripheral subsystems, etc.), software components, firmware, system database information, log database information, inventory database information, license database information, warranty database information, performance database information, and/or any other HCI subsystem components that would be apparent to one of skill of the art). As discussed above, in order for the HCI node subsystems210a-210c/300to operate in manner that provides predictable outcomes satisfying Service Level Agreements (SLAs) for customers, particular internal components and configurations are required in each of the HCI node subsystems210a-210c/300, and thus while some differences may exist between the HCI node subsystems210a-210c/300, any components and configurations in the HCI node subsystems210a-210c/300that effect the operation of the HCI node subsystems210a-210c/300in satisfying SLAs for customers or otherwise operating in a predictable/desired manner may be identical across each of the HCI node subsystems210a-210c/300.

The method400begins at block402where a first HCI node subsystem generates a first HCI node subsystem hash value using its first HCI node subsystem data. With reference toFIG. 5, in an embodiment of block402, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may operate to perform HCI node subsystem data retrieval operations500that include retrieving HCI node subsystem data from its HCI node subsystem components310. For example, the HCI node subsystem data may identify HCI node hardware component(s) for that HCI node subsystem, HCI node software component(s) for that HCI node subsystem, HCI node configuration(s) for that HCI node subsystem, HCI node alert(s) for that HCI node subsystem, and HCI node performance information for that HCI node subsystem. As such, the HCI node subsystem data for any HCI node subsystem may include any information about processing subsystem(s), memory subsystem(s), networking subsystem(s), storage(s), peripheral subsystem(s), software component(s), and/or firmware, as well as any information stored in a system database, a log database, an inventory database, a license database, a warranty database, and/or a performance database. As will be appreciated by one of skill in the art in possession of the present disclosure, the HCI node subsystem data may be selected to include any information associated with each of the components and configurations in the HCI node subsystems210a-210c/300that effect the operation of the HCI node subsystems210a-210c/300in satisfying SLAs for customers or otherwise operating in a predictable/desired manner.

In an embodiment of block402, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may then perform a hashing operation (e.g., a Secure Hash Algorithm 256 (SHA-256) or other hashing algorithms known in the art) on the HCI node subsystem data to generate an HCI node subsystem hash value for that HCI node subsystem. As will be appreciated by one of skill in the art in possession of the present disclosure, the performance of the hashing operation on the HCI node subsystem data will map the HCI node subsystem data to a fixed sized value provided by the HCI node subsystem hash value, and if HCI node subsystem data is identical across the different HCI node subsystems210a-210c/300, the HCI node subsystem hash values that are generated by each of the HCI node subsystems210a-210c/300will be identical as well. In a specific example, the initial HCI node subsystem hash values may be generated at block402by each of the HCI node subsystems during the HCI system provisioning/manufacturing performed by the HCI system provider202, which one of skill in the art in possession of the present disclosure will recognize allows a compliance check to be performed to to ensure that each of those HCI node subsystems210a-210c/300are identical (e.g., as the identical HCI node subsystem hash values may be interpreted as identical HCI node subsystems). However, in other examples, the initial HCI node subsystem hash values may be generated at block402by each of the HCI node subsystems subsequent to the provisioning of the HCI system210to the customer and as part of the networked system200while remaining within the scope of the present disclosure as well.

In some embodiments of block402, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may also perform a hashing operation (e.g., the SHA-256 or other hashing algorithms known in the art) on subsets of the HCI node subsystem data to generate respective HCI node subsystem “sub” hash values for that HCI node subsystem. For example, the hashing operation may be performed on the HCI node subsystem sub data that identifies HCI node hardware component(s) for that HCI node subsystem. In another example, the hashing operation may be performed on the HCI node subsystem sub data that identifies HCI node software component(s) for that HCI node subsystem. In another example, the hashing operation may be performed on the HCI node subsystem sub data that identifies HCI node configuration(s) for that HCI node subsystem. In another example, the hashing operation may be performed on the HCI node subsystem sub data that identifies HCI node alert(s) for that HCI node subsystem. In another example, the hashing operation may be performed on the HCI node subsystem sub data that identifies HCI node performance information for that HCI node subsystem. As discussed below, while the HCI node subsystem hash value generated from HCI node subsystem data for an HCI node subsystem may be utilized to identify a modification in that HCI node subsystem, the HCI node subsystem sub hash values generated from HCI node subsystem sub data for an HCI node subsystem may be utilized to identify a modification to particular components or configurations in that HCI node subsystem.

The method400then proceeds to block404where the first HCI node subsystem stores the first HCI node subsystem hash value in a distributed ledger. With continued reference toFIG. 5, in an embodiment of block404, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may operate to perform HCI node subsystem hash value storage operations502that include storing the HCI node subsystem hash value that it generated at block402in its HCI system management database306. Furthermore, the HCI node subsystem hash value storage operations502may include each HCI node subsystem210a-210c/300storing the HCI node subsystem sub hash values discussed above as being generated at block402in some embodiments in their HCI system management database306as well. Similarly as discussed above, in some specific examples the initial HCI node subsystem hash values may be stored at block404by each of the HCI node subsystems during the HCI system provisioning/manufacturing performed by the HCI system provider202. However, in other examples, the initial HCI node subsystem hash values may be stored at block404by each of the HCI node subsystems subsequent to the provisioning of the HCI system210to the customer and as part of the networked system200while remaining within the scope of the present disclosure as well. Furthermore, in some examples, the initial HCI node subsystem hash values may be encrypted (e.g., using a certificate provided by the HCI system provider) by each of the HCI node subsystems prior to storage at block404.

In some embodiments, upon initial power-on of each of the HCI node subsystems210a-210c/300(e.g., once the HCI node subsystems210a-210c/300have been added to the networked system200), the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may operate to generate an HCI node subsystem ledger in its HCI system management database306, and populate that ledger with its HCI node subsystem hash value at block404(as well as populate that ledger with its HCI node subsystem sub hash value in some embodiments). For example, with reference toFIG. 5B, an embodiment of a ledger504is illustrated that may be generated and stored in the HCI system management database306of HCI node subsystem210a/300at block404, and one of skill in the art in possession of the present disclosure that similar ledgers may be generated and stored by the HCI node subsystems210b-210cas well. In the illustrated example, the ledger504includes a node identifier column, a hash value column, and a sub-hash value column. As illustrated in the specific example ofFIG. 5B, at block404the HCI node subsystem210amay populate the node identifier column in the ledger504with its node identifier (e.g., “NODE210a”), may populate the hash value column in the ledger504with a hash value506that it generated at block402in association with its node identifier, and may populate the sub hash value column in the ledger504with sub hash values506a,506b, and up to506cthat it generated at block402in association with its node identifier.

In some embodiments, along with the storage of the HCI node subsystem hash values at block404, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may operate to store its HCI node subsystem data that was used to generate its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) in the HCI system management database306. As such, following power-on of the HCI node subsystems210a-210c/300after their provisioning in the networked system200, each HCI node subsystem210a-210c/300will include a ledger having its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments), as well as the HCI node subsystem data it used to generate that HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments). In some embodiments, following the on-boarding of each of the HCI node subsystems210a-210c/300as part of the HCI system210, each HCI node subsystem210a-210c/300may reserve some space in its HCI system management database306for the ledger and archived ledgers or other historical ledger data (discussed in further detail below), and based on storage resource availability, that reserved space may be expanded in the event the size of the ledger and archived ledgers or historical ledger data grows. Furthermore, while one of skill in the art in possession of the present disclosure will appreciate that the size of the ledger is relatively small, the size of the ledger may be subject to a threshold that, once it grows beyond that threshold, provides for the purging of old data (e.g., to a Unified Extensible Firmware Interface (UEFI) reserved partition or virtual Flash device).

The method400then proceeds to block406where the first HCI node subsystem broadcasts the first HCI node subsystem hash value to one or more second HCI node subsystems. With reference toFIG. 6, in an embodiment of block406, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may perform HCI node subsystem hash value broadcast operations600that include the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300broadcasting the HCI node subsystem hash value it generated at block402(as well as the HCI node subsystem sub hash values in some embodiments). As such, the HCI node subsystem hash value broadcast operations600may include the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300broadcasting its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) to the HCI node subsystems210band210c, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210b/300broadcasting its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) to the HCI node subsystems210aand210c, and the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210c/300broadcasting its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) to the HCI node subsystems210aand210b. Similarly as discussed above, in some examples the HCI node subsystem hash values may be encrypted (e.g., using a certificate provided by the HCI system provider) by each of the HCI node subsystems prior to broadcast at block406.

Thus, following the on-boarding of each of the HCI node subsystems210a-210c/300as part of the HCI system210, each HCI node subsystem210a-210c/300will share its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) with the other HCI node subsystems210a-210c/300. As discussed in further detail below, the receiving of HCI node subsystem hash values (and HCI node subsystem sub hash values in some embodiments) by an HCI system management engine304(e.g., the remote access controller device304b) in an HCI node subsystem will trigger an update to the ledger maintained by that HCI node subsystem and stored in its HCI system management database306.

The method400then proceeds to block408where the first HCI node subsystem receives second HCI node subsystem hash value(s) generated and broadcast by the one or more second HCI node subsystems. With reference back toFIG. 6, in an embodiment of block408and as part of the HCI node subsystem hash value broadcast operations600performed by the HCI node subsystems210a-210c/300, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300will receive the HCI node subsystem hash values (and HCI node subsystem sub hash values in some embodiments) generated and broadcast by each of the HCI node subsystem210b/300and the HCI node subsystem210c/300. Similarly, in an embodiment of block408and as part of the HCI node subsystem hash value broadcast operations600performed by the HCI node subsystems210a-210c/300, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210b/300will receive the HCI node subsystem hash values (and HCI node subsystem sub hash values in some embodiments) generated and broadcast by each of the HCI node subsystem210a/300and the HCI node subsystem210c/300, and the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210c/300will receive the HCI node subsystem hash values (and HCI node subsystem sub hash values in some embodiments) generated and broadcast by each of the HCI node subsystem210a/300and the HCI node subsystem210b/300.

The method400then proceeds to block410where the first HCI node subsystem stores the second HCI node subsystem hash value(s) in the distributed ledger. With reference toFIG. 7, in an embodiment of block410and with reference to the ledger504discussed above with reference toFIG. 5Bthat was generated by the HCI node subsystem210a/300, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300may populate the node identifier column in the ledger504with a node identifier for the HCI node subsystem210b(e.g., “NODE210b”), may populate the hash value column in the ledger504with a hash value700that it received from the HCI node subsystem210bat block408in association with the node identifier for the HCI node subsystem210b, and may populate the sub hash value column in the ledger504with sub hash values700a,700b, and up to700cthat it received from the HCI node subsystem210bat block408in association with the node identifier for the HCI node subsystem210b. Similarly, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300may populate the node identifier column in the ledger504with a node identifier for the HCI node subsystem210c(e.g., “NODE210c”), may populate the hash value column in the ledger504with a hash value702that it received from the HCI node subsystem210cat block408in association with the node identifier for the HCI node subsystem210c, and may populate the sub hash value column in the ledger504with sub hash values702a,702b, and up to702cthat it received from the HCI node subsystem210cat block408in association with the node identifier for the HCI node subsystem210c. While not explicitly illustrated herein, one of skill in the art in possession of the present disclosure will appreciate how each of the HCI node subsystems210band210cmay populate their respective ledgers with the HCI node subsystem hash values (and HCI node subsystem sub hash values in some embodiments) generated and broadcast by the other HCI node subsystems in a similar manner as well.

As such, following block410, a distributed ledger is maintained by each of the HCI node subsystems210a-210c/300in the HCI system210, with the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300operating to maintain its copy of that distributed ledger (e.g., the HCI system management engine304in the HCI node subsystem210a/300maintains the ledger504discussed above that is a copy of the distributed ledger) that identifies itself in association with its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments), and identifies the other HCI node subsystems in association with their respective HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments). Furthermore, one of skill in the art in possession of the present disclosure will appreciate how the initial distributed ledger maintained by the HCI node subsystems210a-210c/300will include identical HCI node subsystem hash values (and HCI node subsystem sub hash values in some embodiments) for all of the HCI node subsystems210a-210c/300due to those HCI node subsystems210a-210c/300having been provided identically by the HCI system provider as discussed above.

The method400then proceeds to decision block412where it is determined whether a modification has been performed to the first HCI node subsystem. In an embodiment, at decision block412, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may operate to determine whether a modification has been performed to its HCI node subsystem. As will be appreciated by one of skill in the art in possession of the present disclosure, modifications to any HCI node subsystem may include modifications to processing subsystem(s), memory subsystem(s), networking subsystem(s), storage subsystem(s), peripheral subsystem(s), software component(s), and/or firmware, as well as any modifications to information stored in a system database, a log database (e.g., due to an alert or telemetry data that is logged), an inventory database (e.g., due to an inventory change), a license database, a warranty database, and/or a performance database (e.g., due to a performance change). As such, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300may be configured to identify those (or any other) HCI node subsystem modifications that would be apparent to one of skill in the art in possession of the present disclosure.

If, at decision block412, it is determined that no modification has been performed to the first HCI node subsystem, the method400returns to decision block412. As such, the method400may loop such that, as long as no modification is performed to any of the HCI subsystems210a-210c/300in the HCI system210, the HCI system management engine304(e.g., the remote access controller device304b) in each of the HCI node subsystems210a-210c/300continue to determine whether a modification has been performed to its HCI node subsystem. Thus, following the generation of the distributed ledger maintained by the HCI node subsystems210a-210cin the HCI system210, the distributed ledger remains static (i.e., the HCI node subsystem hash values stored in the ledger maintained by each HCI node subsystem210a-210c/300do not change) as along as no modifications are performed to any of the HCI node subsystems210a-210c/300.

If at decision block412, it is determined that a modification has been performed to the first HCI node subsystem, the method400proceeds to block414where the first HCI node subsystem generates a second HCI node subsystem hash value using its second HCI node subsystem data. In an embodiment, at block414and following detecting a modification to the HCI node subsystem210a, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystems210a/300may operate to perform HCI node subsystem data retrieval operations (e.g., similar to the HCI node subsystem data retrieval operations500discussed above with reference toFIG. 5A) that include retrieving HCI node subsystem data from its HCI node subsystem components310. Similarly as discussed above, the HCI node subsystem data retrieved at block414may identify HCI node hardware component(s) for that HCI node subsystem, HCI node software component(s) for that HCI node subsystem, HCI node configuration(s) for that HCI node subsystem, HCI node alert(s) for that HCI node subsystem, and HCI node performance information for that HCI node subsystem, and one of skill in the art in possession of the present disclosure will appreciate how at least some of the HCI node subsystem data may have changed due to the modification that was performed to the HCI node subsystem210a.

In an embodiment of block414and similarly as described above, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystems210a-210c/300may then perform a hashing operation (e.g., the SHA-256 or other hashing algorithms known in the art) on the HCI node subsystem data to generate an HCI node subsystem hash value for that HCI node subsystem. As will be appreciated by one of skill in the art in possession of the present disclosure, the performance of the hashing operation on the HCI node subsystem data retrieved at block414will generate an HCI node subsystem hash value that is different than the HCI node subsystem hash value generated by the HCI node subsystem210a/300at block402due to the modification that was performed to the HCI node subsystem210achanging the HCI node subsystem data.

Similarly as discussed above, in some embodiments of block414the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300may perform a hashing operation (e.g., the SHA-256 or other hashing algorithms known in the art) on subsets of the HCI node subsystem data retrieved at block414to generate HCI node subsystem “sub” hash values for the HCI node subsystem210a/300. For example, the hashing operation may be performed on the HCI node subsystem sub data that identifies HCI node hardware component(s) for that HCI node subsystem, on the HCI node subsystem sub data that identifies HCI node software component(s) for that HCI node subsystem, on the HCI node subsystem sub data that identifies HCI node configuration(s) for that HCI node subsystem, on the HCI node subsystem sub data that identifies HCI node alert(s) for that HCI node subsystem, or on the HCI node subsystem sub data that identifies HCI node performance information for that HCI node subsystem, and due to the modification performed on the HCI node subsystem210aat least some of the HCI node subsystem sub data may have changed, resulting in a change in the HCI node subsystem sub hash value that is generated relative to the HCI node subsystem sub hash value that was generated at block402. As such, the HCI node subsystem sub hash values generated from HCI node subsystem data for an HCI node subsystem may change due to modification(s) performed on that HCI node subsystem, and may thus be utilized to identify a modification to particular components or configurations in that HCI node subsystem.

The method400then proceeds to block416where the first HCI node subsystem stores the second HCI node subsystem hash value in the distributed ledger. In an embodiment, at block416, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300may operate to perform HCI node subsystem hash value storage operations (e.g., similar to the HCI node subsystem hash value storage operations502discussed above with reference toFIG. 5A) that include storing the HCI node subsystem hash value that it generated at block414in its HCI system management database306. Furthermore, the HCI node subsystem hash value storage operations at block416may include the HCI node subsystem210a/300storing the HCI node subsystem sub hash values generated at block414in its HCI system management database306as well. As illustrated in the specific example ofFIG. 8, at block404the HCI node subsystem210amay populate the hash value column in the ledger504with a hash value800that it generated at block414in association with its node identifier (e.g., in place of the hash value506that was initially populated in the hash value column in the ledger504in association with its node identifier), and may populate the sub hash value column in the ledger504with sub hash value802that it generated at block414in association with its node identifier (e.g., in place of the sub hash value506bthat was initially populated in the sub hash value column in the ledger504in association with its node identifier). Furthermore, one of skill in the art in possession of the present disclosure will appreciate how different versions (e.g., ledger “archives”) of the ledger504(e.g., the versions illustrated inFIGS. 7 and 8) or ledger data may be stored in the HCI system management database306in order to allow for the HCI node subsystem hash value changes discussed below to be identified.

The method400then proceeds to block418where the first HCI node subsystem broadcasts the second HCI node subsystem hash value to the one or more second HCI node subsystems. In an embodiment, at block418, the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300may perform HCI node subsystem hash value broadcast operations (e.g., similar to the HCI node subsystem hash value broadcast operations600discussed above with reference toFIG. 6) that include the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300broadcasting the HCI node subsystem hash value it generated at block414(as well as the HCI node subsystem sub hash values in some embodiments). As such, the HCI node subsystem hash value broadcast operations at block418may include the HCI system management engine304(e.g., the remote access controller device304b) in the HCI node subsystem210a/300broadcasting its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) generated at block414(and in response to the modification of the HCI node subsystem210a) to the HCI node subsystems210band210c. Furthermore, in some examples, the HCI node subsystem hash value may be encrypted (e.g., using a certificate provided by the HCI system provider) by the HCI node subsystes prior to broadcast at block418. As will be appreciated by one of skill in the art in possession of the present disclosure, in response to receiving the broadcast of the HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) from the HCI node subsystem210a/300at block418, each of the HCI node subsystems210b-210c/300may operate to update its ledger similarly as described above with reference to410, but with only the HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) that have changed and are associated with the HCI node subsystem210a/300.

Thus, following the modification of the HCI node subsystems210a-210c/300, the HCI node subsystem210a/300will share its updated HCI node subsystem hash value (and updated HCI node subsystem sub hash values in some embodiments) with the other HCI node subsystems210b-210c/300. As discussed above, the receiving of updated HCI node subsystem hash values (and updated HCI node subsystem sub hash values in some embodiments) by an HCI system management engine304(e.g., the remote access controller device304b) in an HCI node subsystem210b-210c/300will trigger an update to the ledger maintained by that HCI node subsystem and stored in its HCI system management database306, and thus the distributed ledger maintained by each of the HCI node subsystems210a-210c/300in the HCI system210will remain the same across those HCI node subsystems210a-210c/300.

The method400then returns to decision block412. As such, the method400may loop such that that distributed ledger continues to be updated any time a modification is performed on an HCI node subsystem210a-210c/300in the HCI system210. For example, if a hardware component is changed in an HCI node subsystem, a new HCI node subsystem hash value and a new HCI node subsystem sub-hash value (corresponding to the hardware components in that HCI node subsystem) may be populated in the distributed ledgers maintained by the HCI node subsystem210a-210c/300in the HCI system210. As such, changes in processing subsystem(s), memory subsystem(s), networking subsystem(s), and/or storage subsystem(s) in an HCI node subsystem will be documented in the distributed ledger.

In another example, if a software component is changed in an HCI node subsystem, a new HCI node subsystem hash value and a new HCI node subsystem sub-hash value (corresponding to the software components in that HCI node subsystem) may be populated in the distributed ledgers maintained by the HCI node subsystem210a-210c/300in the HCI system210. As such, changes to an operating system (e.g., an operating system patch), firmware, and/or software versions in an HCI node subsystem will be documented in the distributed ledger. In another example, if system database information is changed in an HCI node subsystem, a new HCI node subsystem hash value and a new HCI node subsystem sub-hash value (corresponding to the system database information in that HCI node subsystem) may be populated in the distributed ledgers maintained by the HCI node subsystem210a-210c/300in the HCI system210. As such, changes associated with system information in an HCI node subsystem will be documented in the distributed ledger.

In another example, if log database information is changed in an HCI node subsystem, a new HCI node subsystem hash value and a new HCI node subsystem sub-hash value (corresponding to the log database information in that HCI node subsystem) may be populated in the distributed ledgers maintained by the HCI node subsystem210a-210c/300in the HCI system210. As such, changes associated with log information such as alerts, events, or telemetry data added to a log in an HCI node subsystem will be documented in the distributed ledger. In another example, if inventory database information is changed in an HCI node subsystem, a new HCI node subsystem hash value and a new HCI node subsystem sub-hash value (corresponding to the inventory database information in that HCI node subsystem) may be populated in the distributed ledgers maintained by the HCI node subsystem210a-210c/300in the HCI system210. As such, changes associated with a documented inventory in an HCI node subsystem will be documented in the distributed ledger.

In another example, if license database information is changed in an HCI node subsystem, a new HCI node subsystem hash value and a new HCI node subsystem sub-hash value (corresponding to the license database information in that HCI node subsystem) may be populated in the distributed ledgers maintained by the HCI node subsystem210a-210c/300in the HCI system210. As such, changes associated with licenses utilized by an HCI node subsystem will be documented in the distributed ledger. In another example, if warranty database information is changed in an HCI node subsystem, a new HCI node subsystem hash value and a new HCI node subsystem sub-hash value (corresponding to the warranty database information in that HCI node subsystem) may be populated in the distributed ledgers maintained by the HCI node subsystem210a-210c/300in the HCI system210. As such, changes associated with warranty information in an HCI node subsystem will be documented in the distributed ledger. In another example, if performance database information is changed in an HCI node subsystem, a new HCI node subsystem hash value and a new HCI node subsystem sub-hash value (corresponding to the performance database information in that HCI node subsystem) may be populated in the distributed ledgers maintained by the HCI node subsystem210a-210c/300in the HCI system210. As such, changes associated with performance information (e.g., a documentation of operation below a performance threshold) in an HCI node subsystem will be documented in the distributed ledger.

The distributed ledger generated during the method400may be utilized in a variety of manners to perform HCI system management operations in order to manage the HCI system210. In one embodiment, the HCI provider system202may utilize the distributed ledger in order to identify the cause of an issue in the HCI system210. For example, with reference toFIG. 9and in response to identifying an issue with the HCI system210(e.g., reported by a user of the HCI system210, reported by an HCI node subsystem210a-210cin the HCI system210, etc.), the HCI provider system202may perform distributed ledger retrieval operations900that are illustrated as including the HCI provider system202retrieving the distributed ledger (and distributed ledger archives or other historical distributed ledger data) from the HCI node subsystem210bvia the networking subsystem208and the management subsystem206(e.g., via a management network), and the network204. However, while the distributed ledger retrieval operations900are illustrated and described as being performed with the HCI node subsystem210b, one of skill in the art in possession of the present disclosure will appreciate how the distributed ledger (and distributed ledger archives or other historical distributed ledger data) may be retrieved from the HCI node subsystems210aor210cwhile remaining within the scope of the present disclosure as well.

Following the retrieval of the distributed ledger (and distributed ledger archives or other historical distributed ledger data), the HCI provider system202may identify changes in HCI node subsystem hash values and/or HCI node subsystem sub hash values in order to identify the cause of the issue with the HCI system that was identified as discussed above. As such, with reference to the specific examples illustrated inFIGS. 7 and 8, following the identification of an issue with the HCI system210, the HCI provider system202may identify changes with the HCI node subsystem hash value (from the HCI node subsystem hash value506to the HCI node subsystem hash value800) and, in some embodiments, one or more of the HCI node subsystem sub hash values (from the HCI node subsystem sub hash value506bto the HCI node subsystem sub hash value802). Thus, the cause of the issue with the HCI system210may be identified as being the HCI node subsystem210a(i.e., because a modification was performed on the HCI node subsystem210aas indicated by the change of the HCI node subsystem hash value506to the HCI node subsystem hash value800) and, in some embodiments, the cause of the issue with the HCI system210may be identified as being a particular component or configuration in the HCI node subsystem210a(i.e., because a modification was performed on that component/configuration in the HCI node subsystem210aas indicated by the change of the HCI node subsystem sub hash value506bto the HCI node subsystem sub hash value802). The HCI provider system202may then access the HCI node subsystem data in that HCI node subsystem210ato further pinpoint the cause of the issue with the HCI system210. For example, the HCI node subsystem hash value and/or HCI node subsystem sub hash value(s) may be utilized as a reference to critical log information and/or infrastructure changes that may be the cause of errors with the HCI system210.

In another embodiment, the distributed ledger may be utilized by an HCI node subsystems in the HCI system210to determine whether to allow a configuration change to HCI node subsystem(s) in the HCI system210. For example, in response to receiving a configuration change request, an HCI node subsystem in the HCI system210may broadcast details associated with the configuration change (e.g., a networking configuration) to the other HCI node subsystems in the HCI system210, and each of the HCI node subsystems may operate to approve those configurations changes. In a specific example, the configuration change may be approved by any HCI node subsystem by comparing an HCI node subsystem hash value or HCI node subsystem sub hash value generated using that configuration change to an HCI node subsystem hash value or HCI node subsystem sub hash value stored in the distributed ledger for that HCI node subsystem, and approving the configuration change in response to a match, while denying the configuration change in the event there is no match.

In another embodiment, the distributed ledger may be utilized by an HCI node subsystems in the HCI system210to determine whether to allow an HCI node subsystem(s) to be added to the HCI system210. For example, in response to being connected to the HCI system210(e.g., via the networking subsystem208), a new HCI node subsystem may broadcast its HCI node subsystem hash value (and HCI node subsystem sub hash values in some embodiments) to the existing HCI node subsystems in the HCI system210(e.g., along with inventory and license information that may be utilized to validate the inventory and license for the new HCI node subsystem), and each of the existing HCI node subsystems may operate to approve the addition of the new HCI node subsystem to the HCI system210. In a specific example, the HCI system add request may be approved by any existing HCI node subsystem by comparing the HCI node subsystem hash value or HCI node subsystem sub hash values generated by the new HCI node subsystem to an HCI node subsystem hash value or HCI node subsystem sub hash value stored in the distributed ledger for that existing HCI node subsystem (as well as validating the inventory and license information for the new HCI node subsystem), and approving the addition of the new HCI node subsystem to the HCI system210in response to a match, while denying the addition of the new HCI node subsystem to the HCI system210in the event there is no match. As such, HCI node subsystems may be prevented from being added to the HCI system210unless they are identical to the existing HCI node subsystems in that HCI system210, and may be added/on-boarded to the HCI system210(as well as having networking configurations provided) when they are identical to the existing HCI node subsystems in that HCI system210.

Thus, systems and methods have been described that provide for federated control of HCI infrastructure via the use of a distributed ledger maintained by each of the HCI node subsystems in an HCI system. For example, the HCI distributed ledger management system of the present disclosure may include a first HCI node in an HCI system that uses its first HCI node data to generate a first hash value that it stores in a distributed ledger and broadcasts to other HCI nodes in the HCI system. In response to a first modification performed on the first HCI node, the first HCI node uses its second HCI node data to generate a second hash value that it stores along with the first hash value in the distributed ledger, and broadcasts to the other HCI nodes in the HCI system. A management system may then determine that an issue exists in the HCI system and, in response, identify a cause of the issue based on the first hash value and the second hash value stored in the distributed ledger. The second hash value in the distributed ledger may also be used by the first HCI node to approve the configuration changes in other HCI nodes in the HCI system, approve the addition of other HCI nodes to the HCI system, and perform other HCI system management operations known in the art. As such, management of HCI systems is facilitated even in situations in which the HCI system provider does not have “direct” control of the HCI system/access to the location of the HCI system.