PEER TO PEER SYSTEM DEPLOYMENT

The aim of the following article is to create system for automatic deployment of an operating system, which enables to deploy operating system from the network with priority of throughput and data transfer efﬁciency. There are lots of software solutions but majority of them use multicast for data transfer efﬁciency which is, very often, disabled in many network topologies. This led us to the intention of design which will applies peer-to-peer communication. Proposed system architecture utilizes peer-to-peer communication between nodes that leads to increasing throughput while deploying multiple systems OS, even through cloud services.


INTRODUCTION
Computers could be hardly used without any operating system.Silberschatz, Galvin and Gagne [1] define operating system(OS) as a program, which controls computer hardware.OS represents an interface between user and computer hardware.In this context, we can view an operating system as a resource allocator.The aim is to create solution which enables the user to execute programs efficiently.
OS installation by installation CD or USB drive is usually not time consuming.However, if we add drivers installation and installation of an additional software, the time could reach up to several hours.For organizations, installing hundreds of computers per day will increase total cost of ownership significantly.A solution for this problem is software for massive OS deployment which installs several computers at the same time.
The aim of this article is to design system for massive OS deployment which will utilize PXE protocol and peer-to-peer communication.During peer-to-peer communication, nodes are equivalent and with increasing number of nodes data throughput increases as well, since a node can transfer data from several nodes at the same time.In contrast with standard client-server topology, with an additional connected node, the data throughput decreases, since nodes share server's constant data bandwidth.

STATE OF ART
The most appropriate pattern for massive OS deployment is PXE protocol adaptation.The main task of this protocol is client preparation, for instance including OS installation.PXE protocol works as follows: 1. Client sends DHCP request.As seen in figure 1, multicast enables to decrease network utilization while sending only one data stream which is replicated by network equipment.Williamson [3] defines several problems regarding multicast.One could be high network equipment load.Figure 1 depicts how the first router creates two data streams.If a router is not able to efficiently replicate data streams, problems may occur with higher number of receivers.
Next, multicast drawbacks are unreliable packets delivery.Multicast applies UDP protocol.Multicast applications must deal with occasional data lost.
Problem could occur in redundant network topology where there are several routes to a receiver.While router forwards data to multiple network interfaces, destination could receive the same data multiple times.If we have application controlled by multicast messages, the same message could be performed several times.
Peer-to-peer communication gets attentions thanks to Napster system which shares music files.Intel employees define peer-to-peer as resources sharing service between systems -Fig.2. Based on this, two characteristics of peerto-peer could be deduced [4]: • Scaling -Peer-to peer does not have an algorithm or technical constraints of the system size, complexity is constant no matter the number of the system nodes.
• Reliability -System functionality is not dependent from all the nodes, failure of any node will not lead to the entire system malfunction.Peer-to-peer network provides several protocols where everyone has its utilization.The most widespread one is BitTorrent.This protocol is used for delivering large-size files between end-users.During data transfer, the files are divided to smaller parts.Automatically after some part is already downloaded, this part is forwarded to other clients who speed up the process of data delivery.
In Kunji work [5] BitTorrent protocol is described as peer-to-peer network with centralized topology with some differences.BitTorrent protocol does not provide service for searching.Data are localized through index served by central server.
In BitTorrent network, two types of clients occur: • Client (downloading, sharing) • Seeder (sharing) Clients are end users who do not have any or some parts of the file.Seeders are clients who have already downloaded the entire file and are active for seeding data to other clients.After downloading the entire file, clients are defined as seeders.To download a file, there has to be at least one seeder [6].
Next important component is tracker.Its task is to maintain information about active clients.Clients are sending information about files being downloaded.Tracker replies with list of active clients who share the file.Tracker does not share data [7].Downloading is not possible without the file which includes information about file name, file size, hash data and tracker address.This file is compulsory for every client.
Downloading steps [8] 1. Client downloads torrent file from web server or other source.
2. Client contacts tracker with request for list of active clients for that torrent.
3. Tracker replies with list of clients.
4. Client sends request for file parts to active clients/seeders.
While sharing by BitTorrent protocol, the file is divided to smaller parts of the same size.After client downloads some part, SHA1 hash is computed and compared to the value with the one in the torrent file.If the values match, client replies to other clients with availability of that file part.
BitTorrent protocol utilizes TCP connection.To maximize capacity of TCP connection, streaming technique is applied.Smaller single parts are divided to even smaller ones, usually 16kB.These subrequests are queued and next incoming data block executes a request for the next data block.This ensures continual TCP connection utilization.
BitTorrent capacity could be described by deterministic model [5] which focuses on the situations when high number of clients with minimal number of seeders occurs.This model assumes that n = 2 k clients are trying to download parts of s bits.It has to be transferred to ns bits.The best strategy is to transfer this part to another user with speed of b whereby the transfer capacity increases twice.By this, client downloads one part every τ = s/b seconds, thus every τ seconds the capacity increases twice, leading to an exponential growth of 2 t τ in the unit of number of peers available to serve others.By this, selected part of the file is delivered to clients after log 2 n = k seconds.Average downloading latency of client is d.

DESIGNED SYSTEM DEPLOYMENT
The proposed system architecture consists from two parts.One represents PXE server, main management part.Second one is BitTorrent client, all required components for file sharing.BitTorrent part of the system consists of the tracker, torrent client and file of an OS image, all running on Linux OS.Linux was selected for required access to all parts of the golden image file system.Main function of this component is to share cloned OS data.Actual version of the system deploys only present MS Windows OS family.Implicitly, this component is serving as seeder, tracker and data storage of golden images.
System management is created from the modified Linux distribution System Rescue CD with added torrent client.This component is serving as PXE Server, DHCP and TFTP server.Task of PXE server is to provide boot kernel to deployed system, DHCP for IP address assigning, TFTP for initial kernel booting.Proposed architecture is based on modified System Rescue CD.This customized distribution includes utilities and scripts for the golden image preparation and its sharing.
System deployment is performed by a set of scripts which: • Create file systems, • Download torrent files, and

PERFORMANCE EVALUATION
Performance evaluation is based on the comparison of a time needed for OS deployment between designed system and Clonezilla Server Edition.The testing scheme consists of testing pattern of OS -golden image.Groups of endsystems intended for group clonning of OS and system for managing of P2P data transfer.The scheme is formed out of heterogenous network of intranet and Internet.Therefore, while testing, data transfer of Unicast type was compared to the proposed P2P -Fig.4.  Deployment speed was measured from the boot to restart of the system.Obtained data are recorded in table 1.
After initial evaluation, the test with multiple deployed systems was performed.Data are recorded in table 1.
Next, the alternative software was evaluated -Clonezilla SE.Again, the time needed for OS deployment with one and multiple deployed systems was measured and data are the table 1.

CONCLUSION
The aim of this work was to create a system for deployment of operating systems which would not utilize multicast for data transfer but peer-to-peer communication.After review of some peer-to-peer protocols, BitTorrent was proved to be the most appropriate.This is because of its methods of client and parts selection what significantly contributes to more effective data transfer.
In sec.4, final architecture of the cloned system was subjected to bandwidth tests.Due to restrictions in network infrastructure, it was not possible to utilize multicast during the tests, thus the tests utilized unicast.The tests revealed that system using BitTorrent is much more effective when deploying higher number of operating systems as unicast communication, especially in network bandwidth.Moreover, the test revealed benefits of the created systems in a wider context, since BitTorrent protocol is not as restricted as multicast and it allows transferring data through Internet as well.

Fig. 2
Fig. 2 Peer to Peer Network Topology
2. DHCP server replies with list of PXE servers.List of deployment software includes FOG Project, Clonezilla Server Edition, Acronis Snap Deployment or Symatec Ghost Solution.All mentioned software utilizes multicast or unicast communication.Multicast enables to send packets to group of clients in a network using special type of network address -multicast group address.Network equipment forwards received packets to all members of the multicast group.
3. Client selects boot server and sends request.4. Boot server answers with boot file name. 5. Client downloads executable file.6. Client is able to verify downloaded file or execute the file.