DECENTRALIZED NODE FINDER IN MULTI-CLOUD COMPUTING ENVIRONMENT
1. A method comprising:
- in a multi-cloud computing environment comprising a plurality of cloud platforms with each cloud platform comprising one or more nodes;
maintaining at a given one of the nodes in the multi-cloud computing environment a blockchain instance in accordance with a decentralized blockchain network comprised of at least a subset of the nodes in the multi-cloud computing environment wherein each of the subset of nodes locally maintain a blockchain instance; and
maintaining at the given one of the nodes a global state database which is locally synchronized with the locally maintained blockchain instance and stores identifying information about nodes in the multi-cloud computing environment, wherein the identifying information comprises information on how to find one or more of the nodes;
wherein the method is implemented via one or more processing devices each comprising a processor coupled to a memory.
In a multi-cloud computing environment comprising a plurality of cloud platforms with each cloud platform comprising one or more nodes, a method maintains at a given one of the nodes in the multi-cloud computing environment a blockchain instance in accordance with a decentralized blockchain network comprised of at least a subset of the nodes in the multi-cloud computing environment wherein each of the subset of nodes locally maintain a blockchain instance. Further, the method maintains at the given one of the nodes a global state database which is locally synchronized with the locally maintained blockchain instance and stores identifying information about nodes in the multi-cloud computing environment, wherein the identifying information comprises information on how to find one or more of the nodes.
- 1. A method comprising:
in a multi-cloud computing environment comprising a plurality of cloud platforms with each cloud platform comprising one or more nodes; maintaining at a given one of the nodes in the multi-cloud computing environment a blockchain instance in accordance with a decentralized blockchain network comprised of at least a subset of the nodes in the multi-cloud computing environment wherein each of the subset of nodes locally maintain a blockchain instance; and maintaining at the given one of the nodes a global state database which is locally synchronized with the locally maintained blockchain instance and stores identifying information about nodes in the multi-cloud computing environment, wherein the identifying information comprises information on how to find one or more of the nodes; wherein the method is implemented via one or more processing devices each comprising a processor coupled to a memory.
- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
- 19. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device to perform steps:
maintaining at the given one of the nodes a global state database which is locally synchronized with the locally maintained blockchain instance and stores identifying information about nodes in the multi-cloud computing environment, wherein the identifying information comprises information on how to find one or more of the nodes.
- 20. A system comprising:
one or more processing devices configured to; maintain at a given one of the nodes in the multi-cloud computing environment a blockchain instance in accordance with a decentralized blockchain network comprised of at least a subset of the nodes in the multi-cloud computing environment wherein each of the subset of nodes locally maintain a blockchain instance; and maintain at the given one of the nodes a global state database which is locally synchronized with the locally maintained blockchain instance and stores identifying information about nodes in the multi-cloud computing environment, wherein the identifying information comprises information on how to find one or more of the nodes.
The field relates generally to data management and, more particularly, to finding nodes in a multi-cloud computing environment used for data management.
Enterprises such as corporations typically utilize a cloud computing environment to manage their data. One or more cloud platforms that are part of this environment may be within the exclusive control and management of the enterprise, and therefore are considered “private clouds.” On the other hand, the cloud computing environment can include one or more cloud platforms that can be used by multiple enterprises, and not necessarily controlled or managed by any of the multiple enterprises but rather are controlled and managed by one or more third-party cloud providers. Such cloud platforms are typically considered “public clouds.” More typically, enterprises may choose to host their data (as well as applications, workloads, services, etc.) on a combination of private and public clouds. A multiple cloud configuration is referred to as a multi-cloud computing environment. One or more clouds may also be referred to as a “data center.” Alternatively, a data center may be comprised of one or more clouds.
The emergence of multi-cloud computing environments increases the need for data management (e.g., data storage and/or data protection) across multiple clouds. However, attempts to provide data management across multiple clouds using existing solutions present significant challenges for an enterprise.
Embodiments of the invention provide data management techniques in a multi-cloud computing environment comprising a decentralized node finder system and methodology.
For example, in one embodiment, a method comprises the following steps. In a multi-cloud computing environment comprising a plurality of cloud platforms with each cloud platform comprising one or more nodes, the method maintains, at a given one of the nodes in the multi-cloud computing environment, a blockchain instance in accordance with a decentralized blockchain network comprised of at least a subset of the nodes in the multi-cloud computing environment wherein each of the subset of nodes locally maintain a blockchain instance. Further, the method maintains, at the given one of the nodes, a global state database which is locally synchronized with the locally maintained blockchain instance and stores identifying information about nodes in the multi-cloud computing environment, wherein the identifying information comprises information on how to find one or more of the nodes.
Advantageously, illustrative embodiments utilize decentralized blockchain network techniques in a multi-cloud computing environment to overcome drawbacks associated with existing data management approaches. For example, one or more illustrative embodiments provide a decentralized system where each node has a local blockchain instance and a global state database synchronized with the local blockchain instance that enables each node to locally query its own database to find one or more other nodes in the network.
These and other features and advantages of the invention will become more readily apparent from the accompanying drawings and the following detailed description.
Illustrative embodiments will be described herein with reference to exemplary information processing systems and associated host devices, storage devices and other processing devices. It is to be appreciated, however, that embodiments are not restricted to use with the particular illustrative system and device configurations shown. Accordingly, the term “information processing system” as used herein is intended to be broadly construed, so as to encompass, for example, processing systems comprising cloud computing and storage systems, as well as other types of processing systems comprising various combinations of physical and virtual computing resources. An information processing system may therefore comprise, for example, a cloud infrastructure hosting multiple tenants that share cloud computing resources. Such systems are considered examples of what are more generally referred to herein as cloud computing environments. Environments that implement multiple cloud platforms are referred to as multi-cloud computing environments. As mentioned above, a multi-cloud computing environment employed by an enterprise may comprise two or more clouds (e.g., two or more private clouds, two or more public clouds, or a combination of one or more private clouds and one or more public clouds). The term “enterprise” as used herein is intended to be broadly construed, and may comprise, for example, one or more businesses, one or more corporations or any other one or more entities, groups, or organizations. An “entity” as illustratively used herein may be a person or system.
Illustrative embodiments provide a decentralized node finder system and methodology in a multi-cloud computing environment. The multi-cloud computing environment may include a wide variety of computing resources that form an information processing system. The term “computing resource,” as illustratively used herein, can refer to any computing or processing device, endpoint, component, element, platform, cloud, data center, storage array, client, server, gateway, or other resource, that is part of a multi-cloud computing environment associated with an enterprise. For example, one or more such computing resources are generally referred to herein as a “node.”
To avoid vendor lock-in, it is desirable to use a multi-cloud strategy comprising two or more cloud computing services. A decentralized solution is preferred in such a strategy in order to avoid deploying a centralized server on any specific public cloud. In such a multi-cloud computing environment, a decision has to be made on which cloud (along with other specific requirements) should the service be deployed on. In this decision process, the following problem arises: how to find a specific node in a multi-cloud computing environment without a centralized server and without broadcasting to the entire network.
One proposed solution is based on distributed hash tables (DHT). DHT is a class of decentralized systems that provides a lookup service similar to a hash table where (key, value) pairs are stored in a DHT and participating nodes retrieve the value associated with a given key. However, a DHT based solution has several limitations including, but not limited to, a lack of authentication, data is not traceable, expiration of DHT records, and it is not robust to network partition and not efficient in finding nodes.
Illustrative embodiments propose a decentralized node finding system based on blockchain, which can solve the above-mentioned DHT problems and can be part of any decentralized multi-cloud system. By way of one non-limiting example, a decentralized node finding system as proposed herein may be implemented in a decentralized data protection system in a multi-cloud computing environment. However, it is to be appreciated that the decentralized node finding system described herein can be used in multi-cloud data management use cases other than data protection.
More specifically, assuming a network of decentralized nodes such as network 100 depicted in
Despite the complexity, the multi-cloud computing environment in
As mentioned above, it has been proposed that the problem of decentralized node finding in the above and other use cases can be solved by broadcasting or by using DHT. These approaches have the following problems. Note that many of these problems are common to nodes that run within the context of one cloud as well as across multiple clouds.
Poor Performance in Terms of Broadcasting.
The basic way of finding a specific node in a decentralized p2p network is by broadcasting. However, broadcasting results in a large amount of network traffic being generated, which causes congestion in the network. Moreover, broadcasting to find a single node is inefficient and the result is not guaranteed.
Lack of Authentication.
When DHT is used, the node-finding message sent out by the new node is not solely relied upon by other nodes, so DHT-based method has a much better performance compared with the broadcasting-based method. However, the DHT method lacks authentication features. Any nodes (including those not controlled by a system administrator) can publish node descriptions to the DHT, making the system vulnerable to a sybil attack. This could be a critical issue in both private and public networks.
Data not Traceable.
When DHT is used, any changes in the DHT are not traceable, which exposes a problem similar to the authentication problem mentioned above. In a private network, the system administrator may need the data changes log for performance maintenance to identity potential issues. While in a public network, the data traces are required to identify malicious nodes.
Expiration of DHT Record.
A DHT record will expire after a fixed time (the typical value is 8 hours). It is important for a node to republish its description to the DHT periodically so that other nodes can find it via DHT. However, at least one problem surfaces. In a decentralized network, nodes are expected to join and leave the network constantly. Once a node fails and the DHT record expires, there is no way for the other nodes of the network to find the node any more.
Not Robust to Network Partition.
DHT does not guarantee that a given node will be found once it has been registered (by creating a record in DHT). When network partition occurs, certain nodes may not be found.
Inefficient search. DHT based node registration relies on a cryptographic hash, which means if a node wants to find a specific node, the search description should be exactly the same as the node'"'"'s registration description. However, in a working environment, a node may have a number of properties registered, while only a subset of the properties is required by the node finder. In this case, the node finding procedure is inefficient, since a large number of search descriptions are created to cover all possible nodes to be found.
Illustrative embodiments overcome the above and other drawbacks with existing node finding systems by providing a decentralized node finder system and methodology based on blockchain.
As used herein, the terms “blockchain,” “digital ledger” and “blockchain digital ledger” may be used interchangeably. A blockchain or digital ledger protocol is implemented via a distributed, decentralized computer network of compute nodes (computing resources or nodes). The compute nodes are operatively coupled in a peer-to-peer communications protocol. In the computer network, each compute node is configured to maintain a blockchain which is a cryptographically secured record or ledger of data blocks that represent respective transactions within a given computational environment. The blockchain is secured through use of a cryptographic hash function. A cryptographic hash function is a cryptographic function which takes an input (or “message”) and returns a fixed-size alphanumeric string, which is called the hash value (also a message digest, a digital fingerprint, a digest, or a checksum). Each blockchain is thus a growing list of data records hardened against tampering and revision, and typically includes a timestamp, current transaction data, and information linking it to a previous block. More particularly, each subsequent block in the blockchain is a data block that includes a given transaction(s) and a hash value of the previous block in the chain, i.e., the previous transaction. That is, each block is typically a group of transactions. Thus, advantageously, each data block in the blockchain represents a given set of transaction data plus a set of all previous transaction data. In existing digital ledger technologies such as blockchain, an underlying consensus algorithm is typically used to validate new transactions before they are added to the digital ledger. Typically, for example, the new transaction entry is broadcast to all nodes within the network and inspected, a consensus is reached, and the entry is formally committed to the blockchain when consensus is reached that the entry is valid.
In the case of a “bitcoin” type implementation of a blockchain distributed ledger, the blockchain contains a record of all previous transactions that have occurred in the bitcoin network. The bitcoin system was first described in S. Nakamoto, “Bitcoin: A Peer to Peer Electronic Cash System,” 2008, the disclosure of which is incorporated by reference herein in its entirety.
A key principle of the blockchain is that it is trusted. That is, it is critical to know that data in the blockchain has not been tampered with by any of the compute nodes in the computer network (or any other node or party). For this reason, a cryptographic hash function is used. While such a hash function is relatively easy to compute for a large data set, each resulting hash value is unique such that if one item of data in the blockchain is altered, the hash value changes. However, it is realized that given the constant generation of new transactions and the need for large scale computation of hash values to add the new transactions to the blockchain, the blockchain protocol rewards compute nodes that provide the computational service of calculating a new hash value. In the case of a bitcoin network, a predetermined number of bitcoins are awarded for a predetermined amount of computation. The compute nodes thus compete for bitcoins by performing computations to generate a hash value that satisfies the blockchain protocol. Such compute nodes are referred to as “miners.” Performance of the computation of a hash value that satisfies the blockchain protocol is called “proof of work.” While bitcoins are one type of reward, blockchain protocols can award other measures of value (monetary or otherwise) to successful miners. It is to be appreciated that the above description represents an illustrative implementation of the blockchain protocol and that embodiments are not limited to the above or any particular blockchain protocol implementation. As such, other appropriate processes may be used to securely maintain and add to a set of data in accordance with embodiments of the invention. For example, distributed ledgers such as, but not limited to, R3 Corda, Ethereum, and Hyperledger may be employed in alternative embodiments.
As shown, each node 310 runs a blockchain client 312 which is part of a decentralized blockchain network 320, meaning that the local blockchain instance stored by the blockchain client 312 will reflect the same blockchain distributed at each other node in the decentralized blockchain network 320. A global state is derived from the blockchain and stored locally in a key-value database, i.e., global state key value storage 314. In one or more embodiments, the database in storage 314 only reflects the changes on the blockchain and cannot itself be modified otherwise. The database in storage 314 periodically synchronizes with the blockchain data locally stored in blockchain client 312, while the blockchain is updated and globally synchronized across the decentralized blockchain network 320 based on a given consensus algorithm. This will be explained further below.
In summary, a node (310 in
(i) Local blockchain instance (312) synchronizes with the decentralized blockchain network (320). This process can be relatively slow, but is highly secure.
(ii) Local key-value database (314) synchronizes with the local blockchain instance (312) to build the (local) global state to facilitate the query (i.e., node finding) process.
A process 500 of registering a new node on the blockchain is illustrated in
If a node leaves the decentralized network normally, it can unregister itself on the blockchain. As shown in process 600 in
It is to be further noted that the unregistration step is not necessarily required for the system to operate but it is advantageous. Any node in the system should not assume that the node registered on the blockchain is available, since the node could fail due to both software and hardware problems, which is quite common in a decentralized network. Consequently, in one or more embodiments, all nodes in the network have their own process to check the liveness of the other nodes after querying the blockchain.
Returning now to the initial problem of how a new node finds another node with specific properties in a decentralized network, such as has been illustratively described herein, illustrative embodiments address this and other problems with the introduction of a blockchain and auto synchronization of a global state database, as described above. More particularly, as will be further explained, the node finding process involve locally querying the global state database. It is to be understood that since the query will not change the data on blockchain, the process does not even need to contact the blockchain network and other peers in the network at all.
The blockchain-based node finder approach according to illustrative embodiments has many advantages and yields many benefits, some of which will now be described.
No Single Point of Failure.
The blockchain-based node finder method is fully decentralized and there is no master node in the system. The failure of any node does not affect the functionality of the blockchain-based node finder method.
Improved Query Performance.
The data maintenance tasks are left for the blockchain and the global state database. While querying, a given node does not need to contact other nodes at all. The given node simply queries its own local database. Moreover, in some embodiments, the local database maintains more keys (e.g., Azure, FPGA and GPU) to even further improve the query process.
Authentication is supported in the blockchain-based node finder method. There are several ways to achieve authentication. In one embodiment, business logic code on the blockchain enforces that one node can only register one record (i.e., register one IP address) on the blockchain. One node cannot register several IP addresses on the blockchain. The record on the blockchain can only be unregistered by the node itself. This can be achieved by every registration request being cryptographically signed by the node'"'"'s private key. The request is verified by the majority of the peers in the blockchain network, based on the consensus algorithm chosen. In another embodiment, a third-party certificate authority is used to issue a certificate with certain permissions to each node. As such, attribute-based access control is achieved on the blockchain. One example is Hyperledger Fabric.
Any changes (including registration and unregistration) of node information is logged on the blockchain and is immutable. Thus, the data on the blockchain provides valuable information for the others peers in the network as well as for the system administrator.
Free of record maintenance. Once a record is created on the blockchain, there is no need for the node to maintain it anymore. The record on the blockchain is permanent, it will not expire and it is immutable. The node will therefore not become invisible to the network due to expiration of the registration record.
Robust to Network Partition.
As mentioned above, a DHT-based solution is not robust to network partition and there is no guarantee that the node registered on the DHT will be found once network partition occurs. In contrast, the blockchain-based solution according to illustrative embodiments is robust to network partition. If a network partition occurs after a new block (containing a new registration record) is accepted by the blockchain, the registered node can always be found as long as the node is reachable, since all nodes already locally have the record. If a network partition occurs before a new block is accepted by the blockchain, the node will not be found by the peers not in the same part of the network, since nodes cannot get the latest blocks on the blockchain. However, once different parts of network are reconnected, the nodes can be found thereafter.
Given the illustrative description of decentralized node finder techniques herein,
At least portions of the decentralized node finder system in a multi-cloud computing environment shown in
As is apparent from the above, one or more of the processing modules or other components of the decentralized node finder system in a multi-cloud computing environment shown in FIGS. 1-8 may each run on a computer, server, storage device or other processing platform element. A given such element may be viewed as an example of what is more generally referred to herein as a “processing device.” An example of such a processing platform is processing platform 900 shown in
The processing platform 900 in this embodiment comprises a plurality of processing devices, denoted 902-1, 902-2, 902-3, . . . 902-N, which communicate with one another over a network 904.
The network 904 may comprise any type of network, including by way of example a global computer network such as the Internet, a WAN, a LAN, a satellite network, a telephone or cable network, a cellular network, a wireless network such as a WiFi or WiMAX network, or various portions or combinations of these and other types of networks.
As mentioned previously, some networks utilized in a given embodiment may comprise high-speed local networks in which associated processing devices communicate with one another utilizing Peripheral Component Interconnect Express (PCIe) cards of those devices, and networking protocols such as InfiniBand, Gigabit Ethernet or Fibre Channel.
The processing device 902-1 in the processing platform 900 comprises a processor 910 coupled to a memory 912.
The processor 910 may comprise a microprocessor, a microcontroller, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other type of processing circuitry, as well as portions or combinations of such circuitry elements.
The memory 912 may comprise random access memory (RAM), read-only memory (ROM) or other types of memory, in any combination. The memory 912 and other memories disclosed herein should be viewed as illustrative examples of what are more generally referred to as “processor-readable storage media” storing executable program code of one or more software programs.
Articles of manufacture comprising such processor-readable storage media are considered embodiments of the present disclosure. A given such article of manufacture may comprise, for example, a storage array, a storage disk or an integrated circuit containing RAM, ROM or other electronic memory, or any of a wide variety of other types of computer program products. The term “article of manufacture” as used herein should be understood to exclude transitory, propagating signals. Numerous other types of computer program products comprising processor-readable storage media can be used.
Also included in the processing device 902-1 of the example embodiment of
The other processing devices 902 of the processing platform 900 are assumed to be configured in a manner similar to that shown for processing device 902-1 in the figure.
Again, this particular processing platform is presented by way of example only, and other embodiments may include additional or alternative processing platforms, as well as numerous distinct processing platforms in any combination, with each such platform comprising one or more computers, servers, storage devices or other processing devices.
For example, other processing platforms used to implement embodiments of the disclosure can comprise different types of virtualization infrastructure, in place of or in addition to virtualization infrastructure comprising virtual machines. Such virtualization infrastructure illustratively includes container-based virtualization infrastructure configured to provide Docker containers or other types of Linux containers (LXCs).
The containers may be associated with respective tenants of a multi-tenant environment, although in other embodiments a given tenant can have multiple containers. The containers may be utilized to implement a variety of different types of functionality within the system. For example, containers can be used to implement respective cloud compute nodes or cloud storage nodes of a cloud computing and storage system. The compute nodes or storage nodes may be associated with respective cloud tenants of a multi-tenant environment. Containers may be used in combination with other virtualization infrastructure such as virtual machines implemented using a hypervisor.
As another example, portions of a given processing platform in some embodiments can comprise converged infrastructure such as VxRail™, VxRack™ or Vblock® converged infrastructure commercially available from VCE, the Virtual Computing Environment Company, now the Converged Platform and Solutions Division of Dell EMC. For example, portions of a system of the type disclosed herein can be implemented utilizing converged infrastructure.
It should therefore be understood that in other embodiments different arrangements of additional or alternative elements may be used. In many embodiments, at least a subset of these elements may be collectively implemented on a common processing platform, or each such element may be implemented on a separate processing platform.
Also, in other embodiments, numerous other arrangements of computers, servers, storage devices or other components are possible in the decentralized node finder system in a multi-cloud computing environment. Such components can communicate with other elements of the system over any type of network or other communication media.
As indicated previously, in some embodiments, components of the decentralized node finder system in a multi-cloud computing environment as disclosed herein can be implemented at least in part in the form of one or more software programs stored in memory and executed by a processor of a processing device. For example, at least portions of the execution environment or other system components are illustratively implemented in one or more embodiments the form of software running on a processing platform comprising one or more processing devices.
It should again be emphasized that the above-described embodiments of the disclosure are presented for purposes of illustration only. Many variations and other alternative embodiments may be used. For example, the disclosed techniques are applicable to a wide variety of other types of systems. Also, the particular configurations of system and device elements, associated processing operations and other functionality illustrated in the drawings can be varied in other embodiments. Moreover, the various assumptions made above in the course of describing the illustrative embodiments should also be viewed as exemplary rather than as requirements or limitations of the embodiments. Numerous other alternative embodiments within the scope of the appended claims will be readily apparent to those skilled in the art.