Author Email: firstname.lastname@example.org
In this era of developing technologies, one of the most promising is cloud computing that has been functioning since years and used by individuals and large enterprises to provide different kind of services to the world. Cloud computing is attractive to business owners as it eliminates the requirement for users to plan ahead for pro-visioning hardware and allows enterprises to start from the small scale and increase resources only when there is a rise in service demand. One of the trends in cloud computing is the use of decentralized cloud, where resources are shared between multiple servers instead of one central server. The use of decentralized cloud can reduce task complexity and work efficiency per server by utilizing small amount of resources from various servers. With this emerging trend in decentralized cloud, various methodologies were introduced to implement it. One of the most important methodology that plays a vital role in decentralized cloud is Load distribution. Load distribution can be achieved in various ways and hence different approaches can lead to better ways to distribute load in cloud servers. So by researching various methodologies used in cloud computing, a similar but new load distribution algorithm can be implemented which will be based on current statistics of the server nodes by comparing statistics the resultant best node can be chosen to dispatch the file which is to be uploaded.
The main purpose of this system is to deal with the decentralized cloud architecture where all the files are distributed to different resource nodes which are connected in the network. When different files are sent to resource nodes it may happen that a particular node is provided with abundant files more than it can handle, this will lead to loss of data and failure of system. There is a need of a mechanism which can decide which resource node should get the file and what resource handling capability each of the resource node has. Different resource nodes have their different resource values which defines what capability a resource node has.
In this proposed system, the cloud storage uses decentralized architecture which works in a distributed manner, that’s why it is designed in peer to peer and a prototype system is developed. For example, a particular resource node may have the resource parameters as CPU usage, RAM and space available on the node etc. So these different resource parameters can be studied so that the load coming on a single resource node can be balanced and distributed by certain algorithm, by statistically comparing these resource parameters the best node to send the data can be selected, which will result in successful transferring of data from user to different resource node and will also reduce the delay in transfer if it selects a resource node which has low CPU utilization and more available space.
By implementing the modules discussed above, we achieved load distribution on various nodes present in a decentralized environment by comparing the statistics provided by them about various parameters. Statistical parameters like latency and storage space were used to determine the best node. Also, the collection of statistics was achieved by using console commands and compiling them into a batch script so that the process can be continuous. When uploading a file, the Decider API is triggered and then it sends request packet to resource nodes to obtain the parameters and then chooses the best node based on latency and storage space of resource node to send the file. After choosing the best node, the file is split into a chunk and then sent to the chosen node, this process continues until all the chunks have been uploaded. All chunks are assigned with a numerical suffix denoting the sequence number of that file, this helps in recognizing which part of the file the particular chunk belongs to. When the chunk is uploaded to a resource node, the address of the node is added to the user records so that it would be helpful to download that chunk again. To retrieve back the file i.e. to download the file, the addresses of the chunks are recalled and downloaded to the user node via a peer to peer connection and then merged according to the sequence number they had been provided with. After merging the file, the whole file is obtained. Since the chunks are stored instead of files, if a node is attacked only the chunk will be obtained which will be of no use to the attacker.
273 total views, 1 views today