Upload
gaikar
View
224
Download
0
Embed Size (px)
Citation preview
8/8/2019 DVL Final Report
1/64
Disk Virtualization onLinux
Chapter 1
Introduction
Chapter 1
1
8/8/2019 DVL Final Report
2/64
8/8/2019 DVL Final Report
3/64
Disk Virtualization onLinuxThose of you who need to keep large quantities of data on hand (such as an average
administrator) would benefit by using this technology. Primary reasons to use the
system include:
Enhanced speed
Increased storage capacity
Reducing complexity for managing disks
1.1.3 System overview
Fig1.1: Disk virtualization: Overview Client:
1: client application will request for storing the data.
2: client application will request for accessing the data.
3: client application will delete stored data.
Central server:
1: keep the track of request from client.
2: Managing the cluster node information.
3: Authenticate the users.
4: central server responsible for storing and retrieving data.
Cluster nodes:
1: Cluster nodes together forms single virtual disk(logical abstraction of
physical disks).
3
8/8/2019 DVL Final Report
4/64
Disk Virtualization onLinux
2: Every member of a cluster is a cluster itself.
3. Every member will cluster the disk of its own LAN network and will
provide a virtual space and acts as a member of the cluster.
1.1.4 Working of Proposed System:
Fig1.2 (a): Working of proposed system (Storing data)
Fig1.2 (b): Working of proposed system (Retrieving data)
The end user will have the functionality of File Management. The user need to
connect to the centralized server, uploads a file. The centralized server provides
Creatingaccount for
New UserLogin
Virtual FileServer
Splitting
Storing blockon Cluster
Node
4
8/8/2019 DVL Final Report
5/64
Disk Virtualization onLinuxInformation to splits the file into blocks and keeps each block on cluster nodes. When
the user retrieves the file the client application uses centralized server caches all the
blocks merges them and send the copy to requesting client. This module also provides
administrative functions such as monitoring/management of the space (memory) used
by the clients.
1.2 Scope
Provision for storage platforms and reducing the need to maintain duplicate
data for sharing.
Improve application and data availability, and lower failover costs by reducing
or eliminating application downtime for storage and data management tasks.
Simplify and lower the cost of data backups through application server.
Provide an on demand storage environment for fast and simple deployment
through file level virtualization, policy-based automation, and support of open
standards.
1.3 Objectives
1. Design of Virtual File Server
2. Managing Cluster.
3. Managing Space and User Accounts.
4. Security to username and password by Encryption.
5. File Splitting.
6. File Merging
7. File Deleting.
8. Adding and Deleting Nodes from the cluster.
5
8/8/2019 DVL Final Report
6/64
Disk Virtualization onLinux
Chapter 2
Requirement analysis &System Design
Chapter 2
Requirement Analysis & System Design
6
8/8/2019 DVL Final Report
7/64
Disk Virtualization onLinuxRequirement analysis help the software engineer to better understand the problem they
will work to solve. It includes the set of tasks that lead to an understanding:-
1. What customer wants exactly?
2. What is the information proposed by the system?
3. What function the systems perform?
4. What is the behavior the system?
2.1 General Aspect
2.1.1 Initiating the Process
The most commonly used analysis technique to bridge communication gap
between customer and the developer and to get the communication process started.
The idea of project disk virtualization in Linux came from the demand of customer for
using this system as a mode for having store file as a number of blocks on any clusternodes.
2.1.2 Information Domain
The information domain consists of three different views of the data and control
and each is processed by a computer program.
Information content and relationships for this we collected specific
need about the requirements of the customer ,jotting down the field names and
functionalities of the system
Information flow: It represents the manner in which data and control
each move through the system .This is required for the analysis of the flow of
control in the system giving the idea about the different modules and parts of the
software system.
Information structure: It represents the internal organization of various
data and control items. It provides us the information about the data structure, files
and tables to be used with functionality in the system.
2.2 Requirements Specification 2.2.1Normal Requirements
N1. Virtual management applied to systems that make many small resources look
like one system.
7
8/8/2019 DVL Final Report
8/64
Disk Virtualization onLinux
N2. Providing virtual space without interaction with system and no need to worry
about storage space available on server.
N3. Adding and Deleting Nodes from the cluster.
N4. Reducing cost for storing the data.
N5: Graphical user interface provides user for easy interaction with application
software.
2.2.2 Expected Requirements
Exp1. Client application that allows the authorized user to interact with the
system.
Exp2. File to be splits and merge
Exp3. Security to user accounts.
2.2.3 Exciting Requirements
Ex1. System must splits and merges any type and size of file or data.
2.3 Validation of Requirements N1: a system developed whereby a large number of low cost hard drives could be
linked together to form a single large capacity storage device that offered superior
performance, storage capacity and reliability over older storage solutions.
N2: e.g., 3 machines of 50 GB each, or 5 machines of 30 GB. The clients would
request the central server for storage space giving him. The centralized server
should provide information to splits the file into blocks and keeps track of each
block.
Exp1: Every user interacting with system must have account.
Exp2: The user need to connect to the centralized server, uploads & download a
file.
2.4 Software Requirements
Linux ,Windows
Jdk1.5,MySQL
2.5 Hardware Requirements
Processor P3 or above( for minimum three systems)
RAM 256 MB
XLANBIT Hub with minimum 8 ports
8
8/8/2019 DVL Final Report
9/64
Disk Virtualization onLinux
2.6 Process Model
The goal of system design is to produce a model or representation that exhibit,
commodity and delight. It provides information about the application domain for the
software to be built. it fully describes the internal details of each software.
Fig 2.1: Linear sequential model
2.7 Breakdown Structure (Modules)-
Fig 2.2 DVL: Breakdown structure (modules)
CommunicationProject initiationRequirement gathering
PlanningEstimatingSchedulingTracking
ModelingAnalysis
Design
ConstructionCodingTesting
DeploymentDeliverySupportFeedback
Virtual fileserver
Clientapplication
Subnetclustering
AuthenticationSplitting &Merging
Analysis
DVSystem
ClusterEncryption
9
8/8/2019 DVL Final Report
10/64
Disk Virtualization onLinux2.7.1 Virtual file Server
The Server programs links all the clients connected to the System. This module
keeps track of the client file, the cluster machines. The Server Program will be
installed on one machine and will process the request being given by the client
program.
Analysis
The Administrator can make an analysis cluster nodes & Client Application.
2.7.2 Client Application
This module is a user interface system through which the users can interact
with the system. Its a user side File Explorer that allows the authorized user to
interact with the system. Client software will be installed on every machine from
where you want to access the Virtual Disk functionality.
2.7.3 Authentication and Encryption
Every user of the System should be an Authorized user. The User before starts
working should register itself. The Username and password at the time of registration
will be used to login to the system. Username and Password will be encrypted.
2.7.4 Subnet Clustering
This module will link the entire Cluster and will form another cluster. Means every
member of a cluster is a cluster itself. Every member will cluster the disk of its own
LAN network and will provide a virtual space and acts as a member of the cluster.
Here the admin can add disk or can remove a disk. He can decide which Subnet can
be used as member. This module will be used by the administrator to allot Cluster
member. Here the admin can add disk or can remove a disk. He can decide which
Subnet can be used as member.
Cluster
10
8/8/2019 DVL Final Report
11/64
Disk Virtualization onLinux This application accepts the data from client and gives the track for storing file.
Also sends the data to the user according to request provided by client.
2.7.5 Splitting and Merging
This module splits the user file into number of blocks and keeps each block on
each member of the cluster. This technique is based on reading file in the form of bytes
& then splitting file as per no of nodes. Whenever client wants to access particular file
then this request passes to central server. At the time of retrieval of the same file Client
application requests central server and access the file blocks, save into temporary file
merge them and send to the requested client.
2.8 Project Estimation
2.8.1 Estimation in KLOC
Function Estimated KLOC
Virtual file server 1-1.20
Client application 0.5-1
Splitter & merger 1.0- 1.25
Subnet Clustering 0.5 0.75
Graphical user interface 0.25-0.30
Authentication 0.25-0.40
Total: 3.50-4.90
2.8.2 Efforts in person in months
E= 3.2 * (KLOC) ^ 1.05
E=3.2*3.50^1.05 to 3.2*4.90^1.05
E11.92 to 16.17 months
2.8.3 Development time in months
D=E/N, where E=Effort in person month, N=number of persons required.
D=11.92/3 to 16.17/3
D=4 to 4.5 months
2.8.4 No of persons required
3 persons are required to complete the project with given time span
successfully.
11
8/8/2019 DVL Final Report
12/64
Disk Virtualization onLinux
Chapter 3
System Analysis & RiskManagement
12
8/8/2019 DVL Final Report
13/64
Disk Virtualization onLinux
13
8/8/2019 DVL Final Report
14/64
Disk Virtualization onLinux
Chapter 3System Analysis & Risk Management
Analysis part represents the customer requirements e.g. Analysis step includes
stepwise specifications of the program or process to represent requirements, analysisincludes three domains
Information domain
Functional domain
Behavioral domain
3.1 Project Scheduling and Tracking
3.1.1 Project Work Breakdown structure (Analysis)
Fig 3.1: Task Network for Analysis and Design
T1: Communication:
Software development process starts with the communication between customer and
developer. According to need of project, we gathered the requirements related to
project.
T2: Planning:
It includes complete estimation and scheduling (complete timeline chart for project
development shown in 3.3) and tracking (shown in 3.3).
T3: Modeling:
It includes detailed requirement analysis and project design as shown in chapter 2.
14
T1: Communication T2: Planning T3: Modeling
DVL
T11:Projectinitiation
T12:
RequirementGathering
T21:
Estimation
T22:Project
schedulingand tracking
T31: Analysis T32: Design
8/8/2019 DVL Final Report
15/64
Disk Virtualization onLinux
3.1.2 Project Work Breakdown structure (Implementation)
Fig 3.2 Task Network for Implementation
T1: Construction
It includes coding and testing steps. Design details are implemented using java
programming language.
T11:-Virtual file Server
The Server programs links all the clients connected to the System. This module
keeps track of the client file, the cluster machines. The database is processed from the
server side system. The database maintains all records related to file stored on cluster
nodes. It contain where actually file stored, time of storing file, all related information
of storing space. The Server Program will be installed on one machine and will
process the request being given by the client program. In the design, it also provides
facilities of adding and deleting cluster nodes as per the requirements.
T111:Analysis
T11: Virtualfile server
T12: Clientapplication
T14: Subnet
clustering
T13:Authentication
T1: Construction
T131:
Encryption
T15: Splitting& Merging
T122: Uploadapplications
n
T111: AnalysisT121:Graphicaluser interface T123: Down
loadapplication T141:Cluster
15
DVL
T2: Delivery
T16:IntegratingS/W & H/W
T17:Testing& Debugging
8/8/2019 DVL Final Report
16/64
Disk Virtualization onLinux
The analysis of data is maintained in the server in the form of mysql database
and it keep track of all information related to storing data on cluster nodes.
T12: Client Application
This module is a user interface system through which the users can interact
with the system. Client software will be installed on every machine from where you
want to access the Virtual Disk functionality.
T121: Graphical user interface
This module is provides user for easy interaction with system. All the file related
operations that user want to do is provided in the form of graphical way. Also on
virtual file server GUI provides easy interaction to the administrator.
T122: Upload applications
When user wants to upload their data, this application transfer data to splitter.
T123: Download applications
When user want to retrieve their data, this application requests cluster nodes using
virtual file server and these spitted blocks are given to the merging application. And
finally data is stored in local directory.
T13: Authentication
Every user of the System should be an Authorized user. The User before starts
working should register itself. The Username and password at the time of registration
will be used to login to the system.
T131: Encryption
Username and Password will be encrypted. We are using Message-Digest algorithm
for encryption and provide better security to the user.
T14: Subnet Clustering
This module will link the entire Cluster and will form another cluster. Means
every member of a cluster is a cluster itself. Every member will cluster the disk of its
own LAN network and will provide a virtual space and acts as a member of the
16
8/8/2019 DVL Final Report
17/64
Disk Virtualization onLinuxcluster. Here the admin can add disk or can remove a disk. He can decide which
Subnet can be used as member. As soon as cluster application started IP address of
that node automatically gets added into mysql database on virtual file server side. As
well if Cluster sends exit message to server that cluster is automatically deleted from
database. For this Socket programming is used.
T141: Cluster
This application includes FTP file server application which is used for storing
and retrieving data.
T15: Splitting and Merging
This module splits the user file into number of blocks according to number of clusternodes and keeps each block on each member of the cluster by splitting algorithm.In
this technique first the file is read in the form of bytes.
Steps for splitting any type of file:-
1. First read the file in terms of bytes.
2. Then read no of cluster nodes connected to central server.
3. Then divide file size by no of nodes which is split size.
4. Then read file up to split size & and write another file with same
name and format only one more extension is given that is 0,1,2
etc..
5. Store each part on separate cluster node by using FTP file server.
Merging of File:-
1. For merging execute one batch file.
2 In batch file write command copy/b.
3. After that read the parts of file to be merged.
4. Next block (part) separated by + operator.
17
8/8/2019 DVL Final Report
18/64
Disk Virtualization onLinux5. Finaly write destination.
T16: Integrating S/W & H/W
In this phase we will collect all the s/w modules & integrate them with h/w devices.
T17: Testing and debugging
Testing is carried out to check whether flow of coding is correct, to check out the
errors of required module.
T2: Delivery
Final delivery of project will be given along with the necessary documentation.
Each task is assigned to one or more team members, where
D1: Gunjal S. N.
D2: Dumbare S. M.
D3: Gaikwad T. W.
3.1.3 Preparing project table
Table 3.1: Project scheduling table (Analysis and Design)
Task Plan start Actualstart
Plancomplete
Actualcomplete
Personassign
T11 1 July 06 3 July 06 15 July 06 31 July 06 D1,D2,D3
T12 1 Aug 06 1Aug 06 30 Aug 06 7 Sept 06 D1,D2,D3
T21 8 Sept 06 9 Sept 06 15 Sept 06 20 Sept 06 D1
T22 8 Sept 06 8 Sept 06 20 Sept 06 21 Sept 06 D2,D3
T31 22 Sept 06 22 Sept 06 30 Sept 06 7 Oct 06 D1,D3
T32 22 Sept 06 22 Sept 06 2 Oct 06 8 Oct 06 D2
Table 3.2: Project scheduling table (Implementation)
Task Plan start Actual
start
Plan
complete
Actual
complete
Person
assigned
T11 20Dec 06 11March07 15 Jan 07 18March 07 D1,D2
18
8/8/2019 DVL Final Report
19/64
Disk Virtualization onLinux
T11
1
16 Jan07 11March07 25 Jan07 18 March07 D1,D2
T12 20 Dec 06 29 Jan 07 10 Jan 07 3 March 07 D3,D1
T121
11 Jan 07 29 Jan 07 15 Jan 07 10 Feb 07 D3,D2
T12
2
16 Jan 07 19 Feb 07 25 Jan 07 24 Feb 07 D3
T12
3
16 Jan 07 26 Feb 07 25 Jan 07 3 March 07 D3
T13 26 Jan 07 15 Jan 07 10 Feb 07 26 Jan 07 D1
T13
1
26 Jan 07 15 Jan 07 10 Feb 07 26 Jan 07 D2
T14 26 Jan 07 18March07 15 Feb 07 2 April 07 D1,D2,D3
T14
1
16 Feb07 18March07 21 Feb 07 2 April 07 D1,D2,D3
T15 11 Feb 07 5 March 07 21 Feb 07 11 March07 D1,D2,D3
T16 22 Feb 07 2 April 07 5 April 07 11 March07 D1,D2,D3
T17 22 Feb 07 6 April 07 28 Feb07 13 April07 D1,D2,D3
T2 11 March
07
- 27 April07 D1,D2,D3
3.1.4 Time Line Chart
19
8/8/2019 DVL Final Report
20/64
Disk Virtualization onLinux
Fig 3.3 Time line chart (analysis and design)
M1: Requirement gathering and analysis must be achieve.M2: All necessary design must be complete.
M1
M2
20
3/07 17/07 31/07 28/08 11/09 25/09 02/1014/08
T11
T12
T31
T22T21
T32
16/10
8/8/2019 DVL Final Report
21/64
Disk Virtualization onLinux
Fig 3.4 Time line chart (Implementation)
M1: The data should be stored efficiently.
M2: The splitting & merging of file should be achieved in case of insufficient space.
M3:All the s/w and h/w modules should be easily integrated.
3.2 Analysis Model
Analysis includes three domains
Behavior modeling
Functional modeling
Architectural modeling
M1
M2
M3
21
20/12 03/01 17/01 18/02 04/03 18/0304/02
T11
T111
T122
T121
T12
T123
T2
T17
T16
T15
T141
T14
T131
T13
8/8/2019 DVL Final Report
22/64
Disk Virtualization onLinuxUML Diagrams:
Design modeling uses a combination of text and diagrammatic forms to depict the
requirements for data, function and behavior in a way that is relatively easy to
understand and more important, straightforward to review for correctness,
completeness and consistency.
A diagram is the graphical presentation of a set of elements most often rendered as a
connected graph of vertices (things) and arcs (relationship). These diagrams are drawn
to visualize a system from different perspectives so a diagram into a system.
3.2.1 Behavioral Modeling
3.2.1 1 Use case Diagram: It shows a set of use cases and actors ( a special kind of
class and their relationships). Use case diagrams address the static use case view of
system. These diagrams are especially important in organizing and modeling thebehavior of a system.
Delete IP address
Create User Account
Login
File Information
Block information
Upload files
Download FilesClient Application
Delete Files
store IP Address
Cluster
Virtual File Server
Fig 3.5 Use Case diagram for overview of DVL
22
8/8/2019 DVL Final Report
23/64
Disk Virtualization onLinux
New user
Exiting user
Registration form
Client Aplication
Login
invalid
Authentication Operation
Virtual file Server
invalid
For new user
For exiting
user
Fig 3.6 Use Case diagram for login
3.2.2 Functional Modeling
In the functional modeling it describes the function of the propose system. it consist of
two diagram. They are as follows:- Dataflow diagram
-Control flow diagram
3.2.2.1 Data Flow Diagram
Data flow diagram (DFD) is also called as Bubble chart is a graphical technique,
which is used to represent information flow, and transformers those are applied when
data moves from input to output.
Control flow diagram (CFD) is representing the control flow of system from one state
to another state.
23
8/8/2019 DVL Final Report
24/64
Disk Virtualization onLinux
Fig. 3.7: Level 0 DFD
Fig.3.8: Level 1 DFD
3.2.2.2 Control Flow Diagram
The large class of application having following characteristics requires control flow
modeling
The application those are driven by events rather than data
The application those produce control information rather than reports or
display.
The application those process information in specific times.
Cluster nodesclient Virtual
file server
Store file blocksProcess requestInput files& data
Client
Database Server
CheckPassword
ProcessInformation
Server
File Request
Logininfo
Valid
File Data
Switching Server
If Failure
24
8/8/2019 DVL Final Report
25/64
Disk Virtualization onLinux
Fig 3.9 Control Flow Diagram for DVL system
3.3 Risk Identification
Risk management involves Risk Identification, Risk Analysis and Risk
Prioritization; while Risk protection involves Risk Management Planning, Risk
Resolution and Risk Monitoring
R1: Illiterate to project management skills
R2: Unfamiliar to the programming language, e.g. Advanced Java
R3: Unfamiliar to concept of project.
R4:.Unfamiliar to software tools.
R5:Given that the technical experience among project members is limited,
there is concern that the size estimate may drift considerably resulting in schedule
overruns.
R6: N/W Hardware cannot integrated easily, requiring redesign and rework.
3. 4 Risk projection
Risk Protection involves Risk Management Planning, Risk Resolution and
Risk Monitoring.
Requestfrom clientfor storingdata
Split file
Store Blockon clusternode(s)
Record onVirtualFile Server
Merge andprovidedata toclient
StreamFileData
25
8/8/2019 DVL Final Report
26/64
Disk Virtualization onLinux3.4.1 Preparing risk table
ST: Staff related size and experience
TE: Technology to be built related
DE: Development Environment
Table 3.3: Risk Table
Risk Probability Type Impact
R1 40% ST Marginal
R2 25% ST Marginal
R3 20% ST Marginal
R4 20% DE Marginal
R5 20% ST Marginal
R6 20% TE Critical
3.4.2 Risk table along with RMMM plan
This Risk Mitigation Monitoring and Management Plan identifies and
documents the risks associated with Project. In addition to project risks and technical
risks, business risks are also identified, analyzed and documented. Both generic and
product-specific risks have been considered. In addition to identification, thisdocument outlines the proactive strategy that we have adopted to avoid these risks. A
contingency plan is also prepared for each risk, in case it becomes a reality. Only those
risks have been treated whose probability and impact are relatively high, i.e. above a
referent level.
Table 3.4:Risk table along with RMMM plan
Risk Mitigation Monitoring Management
R1 Refer the Software Review with Searching over Internet
26
8/8/2019 DVL Final Report
27/64
Disk Virtualization onLinux
Engineering books guides
R2 Schedule studying
Languages from
Standard Books
Coding in
programming
language
Searching for the
language specification
for faced problems
R3 1) Schedule studying
concepts from
books
2)Discussion with
Guide
By doing
Analysis
1)Requirement
gathering should be
done
2)Search the web
for the concept
R4 Schedule studying of
specification of
Software tools in
development phase
Setting up the
Software tools
during
implementation
1)Breaking down the
study in members
2)Checking the
alternative for softwaretools
R5 Study the related past
projects and try to
learn as much from
their experience
Project guide
monitors our
project and
provide
guidance
whenever
required.
Interact with internal
and external guide in
case of difficulties and
decision making.
R6 Study N/W related
Books
Setting up
required H/w
for final
implementation.
.
Searching for new H/W
If current is not
working.
27
8/8/2019 DVL Final Report
28/64
Disk Virtualization onLinux
Chapter 4
Implementation Details
Chapter 4
Implementation Details
28
8/8/2019 DVL Final Report
29/64
Disk Virtualization onLinux
We use a Disk Virtualization technique in which we combine disk space of
Pcs over a LAN and form a virtually continuous memory area called as the Virtual
Disk(LAN drive).This Virtual Disk is actually formed by the combination of some
dedicated disk space from each hard disk of Cluster computer in the LAN. The break
down structure of system is given below and also detailed implementation of each
module is given.
Breakdown Structure (modules)
Fig 4.1: Breakdown Structure (modules)
4.1 Designing of Virtual File Server:
4.1.1 Sequence diagram for Virtual file Server
Virtual fileserver
Clientapplication
Subnetclustering
AuthenticationSplitting &Merging
Analysis
DVSystem
ClusterEncryption
29
8/8/2019 DVL Final Report
30/64
Disk Virtualization onLinux
: VFServer : Client :Cluster
Start Server()
Establish conn. toClient
Send info about File Blk to Client
establish Connectionto mysql server
Store Account info()
Store info.about Splitted file Block
StoreIPof Cluster node()
Exit( )
StopServer( )
Delete IPClusternode()
Store info about uploaded files
Check user login( )
Fig 4.2:Sequece diagram for Virtual File Server
4.1.2 Implementation Details for Designing of Virtual File Server
The Virtual File Server programs links all the clients connected to the System.
This module keeps track of the client file, cluster machines, user account, file blocks
information. The Server Program will be installed on one machine and will process the
request being given by the client program.
Implementation Detail:
1. Configuring Mysql Server in Linux.
Steps a) Execute at root /etc/init.d/ mysql password.
b) Execute at root /etc/init.d/mysql start.
c) Enter the Password of Mysql.
2. Create Database in Mysql Server.
30
8/8/2019 DVL Final Report
31/64
Disk Virtualization onLinux
3. Create Socket and writing Data to the socket.
Writing to the Socket
ServerSocket ss = new ServerSocket(2000);
Socket connection = ss.accept();
BufferedOutputStream bos = new BufferedOutputStream(connection.
getOutputStream());
/** Instantiate an OutputStreamWriter object with the optional
character * encoding. */
OutputStreamWriter osw = new OutputStreamWriter(bos, "US-ASCII");
We could use the BufferedOutputStream.write() method to write bytes across the
socket. We prefer to use OutputStreamWriter objects to write on because we usually
dealing in multiple platforms and like to control the character encoding. Also, with
OutputStreamWriter you can pass objects such as Strings without converting to byte,
byte arrays, or int values. We create an OutputStreamWriter osw by instantiating it
with ourBufferedOutputStreambos and optionally the character encoding US-ASCII.
TimeStamp = new java.util.Date().toString();
String process ="Calling the Socket Server on "+ host + "
port " + port +
" at " + TimeStamp + (char) 13;
/** Write across the socket connection and flush the
buffer */
osw.write(process);
osw.flush();
As shown above, were creating two Strings TimeStamp and process to be
written to the server. We call the osw.write () method from our OutputStreamWriter
object, passing the String process to it. Please note that we placed a char (13) at the
end of process...well use this to let the server know were at the end of the data were
sending. The last item we need to take care of is flushing the buffer. If we dont do
this, then we cant guarantee that the data will be written across the socket in a timely
manner.
31
8/8/2019 DVL Final Report
32/64
Disk Virtualization onLinux
Reading from the Socket
/** Instantiate a BufferedInputStream object for reading
/** Instantiate a BufferedInputStream object for reading
* incoming socket streams.
*/
BufferedInputStream bis = new
BufferedInputStream(connection.
getInputStream());
/**Instantiate an InputStreamReader with the optional
* character encoding.
*/
nputStreamReader isr = new InputStreamReader(bis, "US-
ASCII");
/**Read the socket's InputStream and append to a
StringBuffer */
int c;
while ( (c = isr.read()) != 13)
instr.append( (char) c);
/** Close the socket connection. */
connection.close();
System.out.println(instr);
}
catch (IOException f) {
System.out.println("IOException: " + f);
}
catch (Exception g) {
System.out.println("Exception: " + g);
}
}
}
We start by instantiating aBufferInputStream object bis, calling thegetInputStream()
method of our Socket object connection. We instantiate anInputStreamReaderobject
isr, passing ourBufferedInputStream object bis.
32
8/8/2019 DVL Final Report
33/64
Disk Virtualization onLinuxSingleSocketServer: A Server That Process One Socket at a Time
package FileServer;
import java.net.*;
import java.io.*;
import java.util.*;
public class SingleSocketServer {
static ServerSocket socket1;
protected final static int port = 19999;
static Socket connection;
static boolean first;
static StringBuffer process;
static String TimeStamp;
We start by importing the same packages we did with our SocketClient class. We set
up a few variables. Of note, this time were setting up a ServerSocket object called
socket1. As its name implies, we use the ServerSocket class to set up a new server. As
well see later, ServerSockets can be created to listen on a particular port and accept
and deal with incoming sockets. Depending on the type of server we build, we can
also process InputStreams and OutputStreams.
public static void main(String[] args) {
try{
socket1 = new ServerSocket(port);
System.out.println("SingleSocketServer Initialized");
int character;
In the main() method, we start with a trycatch block. Next we instantiate a new
ServerSocket object socket1 using the port value of 19999the same port that we
were looking to connect to with our SocketClient class.
33
8/8/2019 DVL Final Report
34/64
Disk Virtualization onLinux
while (true) {
connection = socket1.accept();
BufferedInputStream is = new
BufferedInputStream(connection.getInputStream());
InputStreamReader isr = new InputStreamReader(is);
process = new StringBuffer();
while((character = isr.read()) != 13) {
process.append((char)character);
}
System.out.println(process);
//need to wait 10 seconds for the app to update database
try {
Thread.sleep(10000);
}
catch (Exception e){}
TimeStamp = new java.util.Date().toString();
String returnCode ="SingleSocketServer repsonded at "+
TimeStamp + (char) 13;
BufferedOutputStream os = new
BufferedOutputStream(connection.getOutputStream());
OutputStreamWriter osw = new OutputStreamWriter(os, "US-
ASCII");
osw.write(returnCode);
osw.flush();
}
}
catch (IOException e) {}
try {
connection.close();
}
catch (IOException e) {}
}
}
Within this block of code, we start with the Server Socket socket1s accept () method.
The accept() method basically stops the flow of the program and waits for an incoming
34
8/8/2019 DVL Final Report
35/64
Disk Virtualization onLinuxsocket connection. When a client connects, our Socket object connection is instantiated.
Once this is done, our program continues through the code MultipleSocketServer: A
Server That Handles Multiple Client Connections
package bdn;
import java.net.*;
import java.io.*;
import java.util.*;
public class MultipleSocketServer implements Runnable {
private Socket connection;
private String TimeStamp;
private int ID;
public static void main(String[] args) {
int port = 19999;
int count = 0;
try{
ServerSocket socket1 = new ServerSocket(port);
System.out.println("MultipleSocketServer Initialized");
while (true) {Socket connection = socket1.accept();
Runnable runnable = new MultipleSocketServer(connection,
++count);
Thread thread = new Thread(runnable);
thread.start();
}
}
catch (Exception e) {}
}
MultipleSocketServer(Socket s, int i) {
this.connection = s;
this.ID = i;
}
We instantiate a new Thread threadby runnable to the Thread class. We call the start
() method of thread and were ready go. Invoking the start () method spawns a new
35
8/8/2019 DVL Final Report
36/64
Disk Virtualization onLinuxthread and invokes the objects run() method. The actual work within the thread
happens within the run () method.
The run() Method
public void run() {
try {
BufferedInputStream is = new
BufferedInputStream(connection.getInputStream());
InputStreamReader isr = new InputStreamReader(is);
int character;
StringBuffer process = new StringBuffer();
while((character = isr.read()) != 13) {
process.append((char)character);}
System.out.println(process);
//need to wait 10 seconds to pretend that we're processing
something
try {
Thread.sleep(10000);
}
catch (Exception e){}
TimeStamp = new java.util.Date().toString();
String returnCode ="MultipleSocketServer responded at "+
Timestamp + (char) 13;
BufferedOutputStream os = new
BufferedOutputStream(connection.getOutputStream());
OutputStreamWriter osw = new OutputStreamWriter(os, "US-
ASCII");
osw.write(returnCode);
osw.flush();
}
catch (Exception e) {
System.out.println(e);
}
finally {
try {
connection.close();
36
8/8/2019 DVL Final Report
37/64
Disk Virtualization onLinux
}
catch (IOException e){}
}
}
}
The run() methods responsibility is to run the block of code that we want
threaded. In our example the run() method executes the same block of code we built in
the SingleSocketServer class. Once again, we read the BufferedInputStream, pretend
to process the information, and write a BufferedOutputStream. At the end of the run ()
method, the thread dies.
4. Making Database connectivity between Java and Mysql in Linux:
SETPATH= /path to mysql-connector-java-[version]-bin.jar:$CLASSPATH
4.2 Client Application
4.2.1 Sequence diagram for Client Application
37
8/8/2019 DVL Final Report
38/64
Disk Virtualization onLinux
: User : Client. : VF Server. : Cluster
Check Connection( )
Create Account( )
send Account info( )
login( )
Valid( )
invalid( )
Upload Files( )
send File info( )
send block info( )
request for Download files( )
download files( )
Delete Files( )
update Database( )
logout( )
: User : Client. : VF Server. : Cluster
Check Connection( )
Create Account( )
send Account info( )
login( )
Valid( )
invalid( )
Upload Files( )
send File info( )
send block info( )
request for Download files( )
download files( )
Delete Files( )
update Database( )
logout( )
Request to create userdir
Fig 4.3:Sequece diagram for Client Application
4.2.2 Implementation Details for Client Application
38
8/8/2019 DVL Final Report
39/64
Disk Virtualization onLinux
This module is a user interface system through which the users can interact
with the system. Only authorized user can interact with the system. Client software
will be installed on every machine from where you want to access the Virtual Disk
functionality.
Implementation Details:-
1. Design of Graphical user interface with the help of Swing.
2. Creation of account.
After creating the user account the information about user gets stored in
database on virtual file server with the help of socket programming. At the time of
creation of account user directory gets created over the each cluster node with the help
of running the cluster application (ftp fileserver) parallel over each cluster node and
executing mkdir command over each cluster node to create user directory.The next
piece of information we need to know is the TCP/IP port that the program is going to
be communicating on. TCP/IP uses ports because it is assumed that servers will be
doing more than one network function at a time and ports provide a way to manage
this. For example: a server may be serving up web pages (port 80), it may have a FTP
(port 21) server, and it may be handling a SMTP mail server (port 25). Ports are
assigned by the server. The client needs to know what port to use for a particular
service. In the TCP/IP world, each computer with a TCP/IP address has access to
65,535 ports. Keep in mind that ports are not physical devices like a serial, parallel, or
USB port. They are an abstraction in the computers memory running under the
TCP/IP transport layer protocol.
3. Login: after creation of account user can interact with system. Many users can login
at a time.
4. Logout: User logging out.
if(server!=null){
server.delete();
server.quit();
System.exit(0);}
5.Upload:
When user wants to upload their data, this application transfer data to splitter.
6.Download:
39
8/8/2019 DVL Final Report
40/64
Disk Virtualization onLinux
When user want to retrieve their data, this application requests cluster nodes
using virtual file server and these spitted blocks are given to the merging application.
And finally data is stored in local directory.
7.Delete:
Similarly user can delete their data, this application requests cluster nodes
using virtual file server and these spitted blocks are deleted and database is updated on
central server side.
4.2 Authentication and Encryption
4.3.1 Sequence diagram for Authentication and Encryption
: User :Authentication
: MysqlDatabase
Enter user name and Pwd( )
Encryption( )
Save( )
login( )
Req to Username Adn pwd
accept( )
Decryption( )
Fig 4.4: Sequence diagram for Authentication and Encryption
40
8/8/2019 DVL Final Report
41/64
Disk Virtualization onLinux4.3.2 Implementation Details for Authentication and Encryption
Username and Password will be encrypted. The Username and password at the
time of registration will be used to login to the system. The Encryption and
Decryption of the Username and password is done with the use of MD5 algorithm.
The MD5 is quite fast and produces 128 bit message digests. Detail implementation of
MD5 is given as follow:
Padding:
Add Padding bits to original Message. Aim is to make length of original
message equal to a value which is 64 bit less than an exact multiple of 512.
Append Length:
Calculate the original length of message and add it to end of message .
Fig 4.5: Append Length
Divide Input Into 512 bit blocks:
Initializing Chaining Variables:
These are 32 bit .initial hexadecimal values as bellow:
A Hex 01 23 45 67
B Hex 89 AB CD EF
C Hex FE DC BA 98
D Hex 16 54 32 10
Process Blocks:
41
8/8/2019 DVL Final Report
42/64
Disk Virtualization onLinux
o Copy 4 Chaining variables into 4 corresponding variables a,b,c,d.
o Divide current 512 bit blocks into 16 sub blocks.
o There are Four rounds in each round we process all 16 sub blocks
belonging to the block.
Fig 4.6: Conceptual process in round.
There are 16-iteration in each rounds
1. A process p is first performed on b,c,&d.This process p is different in
all four rounds.
2. The variable a is added to a process p.
3. The message sub block m[i] is added to output of step 2.
4. The constant t[k] is added to output of step 3.
5. The output of step2 is circular test shifted by 5 bits.
6. The variable b is added to a output of step 5.
7. The output of step 6 becomes the new ahead of next step
4.3Subnet Clustering:
4.4.1 Sequence diagram for Subnet Clustering
42
8/8/2019 DVL Final Report
43/64
Disk Virtualization onLinux
: Client: Cluster : VF Server.
Make Connection( )
Send IP Address( )
request for creating user Dir( )
create UserDir( )
Request to store FileBlk
SaveFileBlk( )
Request to Retrive File Block
sendFileBlk( )
Exit and Delete IP( )
Fig 4.7: Sequence diagram for Subnet Clustering
4.4.2 Implementation Details for Subnet Clustering
This module will link the entire Cluster and will form another cluster. Means
every member of a cluster is a cluster itself. Every member will cluster the disk of its
own LAN network and will provide a virtual space and acts as a member of the
cluster. Here the admin. Can add disk or can remove a disk.
1. As soon as cluster application started IP address of that node automatically gets
added into mysql database on virtual file server side. As well if Cluster sends exit
43
8/8/2019 DVL Final Report
44/64
Disk Virtualization onLinuxmessage to server that cluster is automatically deleted from database. For this Socket
programming is used.
2. we can design the FTPFileserver that perform the function of creating User
directory by executing the MKDIR command on each cluster node and also Perform
different type of command related to the File.
3. When the Client upload the File Over the cluster node the file get stored on
specified directory by providing ServerConfig.cfg as a command line argument.The
detail of the file is
#SRES
#FTP server section ------------------------------
#port to use for ftp connections ( listenport) default = 21
ftp.Port=21
#ftp.user(nn) username;password;restrict to loginpath; login
directory
ftp.user0=Admin;Admin;false;c:\\User
4.4Splitting and Merging:
4.5.1 Sequence diagram for Splitting and Merging
44
8/8/2019 DVL Final Report
45/64
Disk Virtualization onLinux
: Splitting and
Merging
: Cluster: User
UploadFiles( )
Split Files( )
Save FileBlock( )
Download files( )
Req. for File Block
Collect file Blocks
Merge FileBlocks( )
Save in local Dir( )
Fig 4.8 Sequence diagram for Splitting and Merging
. 4.5.2 Implementation Details for Splitting and Merging
This module splits the user file into number of blocks and keeps each block on
each member of the cluster by splitting algorithm. This technique is based on reading
file in the form of bytes & then splitting file as per no of nodes. .
Whenever client wants to access particular file then this request passes to central
server. At the time of retrieval of the same file client uses central server to access the
file block and then merge them and saved on local directory.
Splitting any type of File
The technique is based on reading file in the form of bytes & then splitting file
according to number of Cluster nodes.
45
8/8/2019 DVL Final Report
46/64
Disk Virtualization onLinux
1. First read the file in terms of bytes.
File nextFile = new File(Filename);
long fileSize = nextFile.length();
2. Then read no of cluster nodes connected to central server.
3. Then divide file size by no of nodes which is split size.
long splitSize = fileSize / NoOfNodes;
4.Check for Equal Distribution
if (fileSize%splitSize > 0) parts++;
5. Then read file up to split size & and write another file with same
name and format only one more extension is given that is 0,1,2
etc..
for (long k = 0; k < parts; k++)
{
String filePartName = nextFile.getName();
filePartName=filePartName+"."+String.valueOf(k);
File outputFile = new
File(destinationDirectory, filePartName);
FileOutputStream fos = new FileOutputStream(outputFile);
DataOutputStream dos = new DataOutputStream(fos);
long bytesWritten = 0;
while ((bytesWritten < splitSize)&&(bytesRead
8/8/2019 DVL Final Report
47/64
Disk Virtualization onLinuxclient want to download the file following sample code get executed to get required
file.
Merging of File:-
1. For merging we have to execute one batch file.
2 In batch file write command copy/b.
String batch="copy /b ";
int blkno=0;
3.Create one String array, for temporary storage.
String[] FileArray = new String[10];
4.After that read the parts of file(block) one by one.
while(st.hasMoreTokens())
{
dstfile=st.nextToken();
host=st.nextToken();
blkno = Integer.parseInt(st.nextToken());
batch = batch + dstfile + " + ";
FileArray[j]=dstfile;
j=j+1;
5.. Connect to the ftp file server. FtpConnect cn = FtpConnect.newConnect("ftp://" + host);
cn.setUserName("Admin");
cn.setPassWord("Admin");
Ftp cl = new Ftp();
// source FtpFile remote file
file = new FtpFile(name.trim()+"\\"+dstfile, cl);
6.If connection to the ftp server fails then trying to get block from
backup server.FtpConnect cn1 = FtpConnect.newConnect("ftp://" +
server.BackUpIp);
7. Finaly write destination.
CoFile to =new LocalFile(System.getProperty("user.dir"), dstfile);
8. Disconnect from server this must be always run
47
8/8/2019 DVL Final Report
48/64
Disk Virtualization onLinux
finally
{
cl.disconnect();
}
9.End of While
10. Execute batch file by executing process p
p = r.exec("cp.bat");
11.Delete temporary files.
for(j=j-1;j>=0;j--)
{
try
{
File f = new File(FileArray[j]);
f.delete();
}
catch(Exception e){}
}
.
48
8/8/2019 DVL Final Report
49/64
Disk Virtualization onLinux
Chapter 5
Testing and Results
49
8/8/2019 DVL Final Report
50/64
Disk Virtualization onLinux
Chapter 5
Testing and Results
Tests are the individual tests specified in a test plan document. Each test is
typically described by
An initial system state.
A set of actions to be performed.
The expected results of the test.
Testing As a Continuous Process:
All testing follows a pre-planned process, which is agreed to. All tests consider
not only a nominal system condition but also address anomalous and recovery aspects
of the system. The system is tested in a stressed environment, nominally in excess of
150 percent of its rated capacities. All test products (test cases, data, tools,
configuration, and criteria) are documented in a software description document. Every
test shall be described in traceable procedures and have pass-fail criteria included.
Implementation:
Test cases are planned in accordance to the test process and documented with
detailed test descriptions. These test cases use cases based on projected operational
mission scenarios. The testing process also includes stress / load testing for stability
purpose (i.e., at 95% CPU use, system stability is still guaranteed). The test process
thoroughly tests the interfaces and modules. Software testing includes a traceable
white box testing, black box testing and other test processes verifying implemented
software against design documentation and requirements specified. Types of Testing:
o White Box Testing:
A level of white box test coverage is specified that is appropriate for the software
being tested. The white box and other testing uses automated tools to instrument the
software to measure test coverage.
Black Box Testing:
50
8/8/2019 DVL Final Report
51/64
Disk Virtualization onLinux
A black box test of integration builds includes functional, interface, error
recovery, stress and out-of-bounds input testing. All black box software tests are
traced to control requirements. In addition to static requirements, a black box of a
fully integrated system against scenario sequences of events is designed to model field
operation. Performance testing for systems is integrated as an integral part of the black
box test process.
5.1 Unit Testing
Validations were made for each single module and each module was tested
independently. Maximum error detection was made at this stage. Proper flow of in
bound and out bound information was made.
5.1.1 Virtual File Server
The Server programs links all the clients connected to the System. This module
keeps track of the client file, the cluster machines. The database is processed from the
server side system. The database maintains all records related to file stored on cluster
nodes. Following test cases.
Input: Start Server
Expected Output-: Server listening on port no. 6564 and ready for communication
Validation-: Client side socket will communicate with server side socket that is server
accepts incoming string from client socket.
Input -: Stop Server
Expected Output: Communication between client and Server stop and socket
connection will close.
Validation-: Server never responding for client request.
Input-: Cluster Node IP for storing in mysql database.
Expected Output:-Cluster node IP successfully stored in cluster table of mysql
database.
Validation-: Manage cluster node window displays Cluster node IPs successfully.
5.1.2 Client Application
This module is a user interface system through which the users can interact with the
system. Client software will be installed on every machine from where you want to
access the Virtual Disk functionality. Following are test cases.
51
8/8/2019 DVL Final Report
52/64
Disk Virtualization onLinuxInput -: IP address of Virtual file Server.
Expected Output: Client application window will display successfully.
Validation-: Client can do all functionality. E.g. Create account, login etc.
5.1.3 Authentication and Encryption
Input-:user name and Password in plain text.
Expected Output-:Encrypted text.
Validation-: After decryption it will give same plain text as entered for input. e.g. For
input of sachin the encrypted text will be
15285722f9def45c091725aee9c387cb.After decryption it will gives original text
sachin.
5.1.4 Subnet Clustering
Input ServerConfig.cfg and IP address of the VF Server.
Expected output -: Displaying message Cluster Node Started continuously.
Validation-: Input data from port 21 will store successfully on local machine.
Input-Data on port 21.
Expected output-: Successfully sending or storing data.
Validation-: Incoming data from port 21 will successfully stored on specified path
given by ServerConfig.cfg or outgoing data will successfully transferred to remote
location.5.1.5. Splitting and Merging
Splitting
This module splits the user file into number of blocks and keeps each block on
each member of the cluster.
Input -: Any type of file.
Output -: Equal size of file blocks equal to number of cluster nodes .
Validation-:output files equals to number of cluster nodes, size of each file equal to
split size and files are with same name and format only one more
extension is given that is .0,.1,.2etc..
Example 1 -Suppose a file of name Jay. jpg of size 10000 bytes and cluster nodes
equal to 4.Then following output we get.
Jay.jpg.0 having size 2500 bytes.
52
8/8/2019 DVL Final Report
53/64
Disk Virtualization onLinuxJay.jpg.1 having size 2500 bytes.
Jay.jpg.2 having size 2500 bytes.
Jay.jpg.3 having size 2500 bytes.
Example 2 -Suppose a file of name Jay. jpg of size 1000 bytes and cluster nodes equal
to 3.Then following output we get.
Jay.jpg.0 having size 333 bytes.
Jay.jpg.1 having size 333 bytes.
Jay.jpg.2 having size 333 bytes.
Jay.jpg.3 having size 1 bytes.
Merging
At the time of merging of the same files merging application merge them.
Input -: Splitted Block of File.
Output -: Whole file without loss of any kind of data.
Validation-: output file size will exactly equal to addition of all input splitted file sizes
and it will work properly.
Example 1 Suppose following are splitted input files.
Jay.jpg.0 having size 2500 bytes.
Jay.jpg.1 having size 2500 bytes.
Jay.jpg.2 having size 2500 bytes.
Jay.jpg.3 having size 2500 bytes.
Then output after merging will be Jay. jpg of size 10000 bytes.
5.2 Integration Testing
Integration testing was carried out to check whether each module works properly
with the integrated module. Different inputs were given to the secondary module from
the primary, to check whether it works properly for each input which comes from the
higher level. Both Bottom-up and Top-down integration tests were carried out.
53
8/8/2019 DVL Final Report
54/64
Disk Virtualization onLinux
Virtual file Server, Client Application
After selecting create account or login operation , separate windows for both gets
displayed on screen. It will show that the connection between client and server gets
successfully created. Otherwise connection gets failed.
Virtual file Server, Client Application and Authentication
User can create account, login and logout after integrating above modules.
Information regarding new user stored into the database on VFS.
Input-: Creation of user account.
Output-: information regarding user get stored on virtual file Server and username,
password is in Encrypted form
Validation-: user get successfully login.
Input-:User loginOutput-:login information regarding user get displayed on VF server side window.
Validation-:User can successfully interact with system.
Virtual file Server, Client Application , Authentication
and Cluster Application
User can create account, login and logout after integrating above modules.
information regarding new user stored into the database on VFS.Addition to that
directory get created on each cluster node with same name as username on specified
path.
Input-: Creation of user account.
Output-:account creates successfully.
Validation-: Directory get created on each cluster node with same name as username
on specified path in ServerConfig.cfg.and information regarding user stored in
UserInfo table of VFS database.
Virtual file Server, Client Application, Authentication
Splitting and Merging, Cluster Application
Every user interacting with our system should authorized user. If user has already
created his account then he can login directly. Information regarding user maintained
by database on VFS side. User can upload, download or delete his file as per
requirement after login. Many users can communicate with system at same time.
54
8/8/2019 DVL Final Report
55/64
Disk Virtualization onLinux.Input -: upload file.
Output -: File gets splitted in equal size depending upon the number of cluster nodes.
Validation-: File blocks get stored on cluster nodes in Specified directory with same
name as uploaded file with extension 0,1,2.etc depending on sequence of IPs in
database on VFS side.Information about file blocks get stored on virtual file server.
Input -: Download file.
Output-: previously uploaded file.
Validation-: The retrieved file will store on local directory and its contents must
exactly equal to uploaded file
Input -: delete files.
Output -: Files blocks get deleted on every Cluster node
Validation-: Information about File block will delete from VF server database.5.3 Results
Following results are obtained using test cases:
Snapshot For Virtual Fileserver showing login users with managing
cluster manually:
55
8/8/2019 DVL Final Report
56/64
Disk Virtualization onLinux
Fig 5.1: Snapshot For Virtual Fileserver showing login users with managing
cluster manually
Snapshot for starting Cluster Application:
Fig 5.2:Snapshot for starting Cluster Application
Snapshot for new user Registration:
56
8/8/2019 DVL Final Report
57/64
Disk Virtualization onLinux
Fig 5.3:Snapshot for new user Registration
Snapshot for Uploading operation in Client Application:
Fig 5.4: Snapshot for Uploading operation in Client Application
57
8/8/2019 DVL Final Report
58/64
Disk Virtualization onLinux
Chapter 6
Application & Future Scope
Chapter 6
Application & Future Scope
58
8/8/2019 DVL Final Report
59/64
Disk Virtualization onLinux
6.1 Applications
LAN Based Systems:-
Disk Virtualization is mainly used in companies where data storage need is larger.
So it mainly used in LAN Based Systems.
Bank Transaction servers:-
We can also use it in banking application where large storage of data needed.
6.2 Future Scope
Crash Recovery:-
When any disk drive fails we can use backup functionality of system for crash
recovery.
Dynamic cluster nodes:-
As per data storage requirement get higher we can add as many cluster nodes as
per need using this system.
Auto Failure Detection:-
Using this system we can detect failure of any of cluster node in network.
6.3 Limitations
All cluster nodes should be in active state while downloading the application.
Currently It is limited for only LAN based systems.
59
8/8/2019 DVL Final Report
60/64
Disk Virtualization onLinux
Chapter 7
Conclusion
60
8/8/2019 DVL Final Report
61/64
Disk Virtualization onLinux
Chapter 7
Conclusion
We have implemented Disk Virtualization on Linux which is a key enabling
technology that can be leveraged to achieve business benefits. Disk Virtualization
technology enables clustering of Heterogeneous Disk of remote systems to be
appearing on a single physical disk, where each of the disk systems runs as a self-
contained computer.
This project has clustered Heterogeneous nodes for data Storage Management.
And allowing enterprise and research environments that utilize clustered file systems
for data storage to integrate storage management with their overall cluster
management. Using and managing clustered file systems is particularly important in
industries where the volume of data being analyzed is very large. With this new
option, the system provides a complete cluster management solution that now includes
the installation and configuration of a clustered file system within a cluster. This
project provides facility to detect cluster node automatically and also provides backup
facility in case of failure.
61
8/8/2019 DVL Final Report
62/64
Disk Virtualization onLinux
References
62
8/8/2019 DVL Final Report
63/64
Disk Virtualization onLinux
References
Book References:
1.Herbert Schildt, The Complete reference of Java 2,Tata McGraw Hill, FifthEdition,2002,ISBN 0-07-049543-2.
2. Christopher Negus, Red Hat Linux ver.(10) Bible, WILEY, First
Edition,2004,ISBN 81-265-0478-1.
3. R. S. Pressman, Software Engineering, Tata -McGraw Hill Publications,
Enterprise Edition, 2001.
4.Michael-Jon Ainsley Hore, Main Stream parallel programming, Linux journal,
September 2006 pp.72-74.
Web References:
1IBM storage solutions: Reducing cost and complexity, July 2003.
www.03.ibm.com/servers/storage/software/virtualization/wpapers/ibm_storage_reduci
ng_cost.pdf
2.Frank Bunn, Storage Virtualization-Part III,A SNIA TECHNICAL TUTORIAL,
November 11,2005.
www.exitcertified.com/newsletter/2006Q3/resources/veritas_storage_virtualization_3.
3.Prentice Hall, Internetworking with TCP/IP Volume III: Client Server
Programming and Applications,1996.
www.pdlit.com/downloads/7042Q3/socket.htm
4.EMC.Enginuity(TM), The Storage Platform Operating Environment(Whitepaper),
august 2002.
http://www.emc.com/pdf/techlib/c1033.pdf
5. E.Eide, Encryption for security, Jan 2000.
www.isstm.com/encrypt/MessageDigest.htm
6.Kevin Yank, Database Driven Website.
http://www.mysql.com
63
http://www.pdlit.com/downloads/7042Q3/socket.htmhttp://www.emc.com/pdf/techlib/c1033.pdfhttp://www.isstm.com/encrypt/MessageDigest.htmhttp://www.mysql.com/http://www.pdlit.com/downloads/7042Q3/socket.htmhttp://www.emc.com/pdf/techlib/c1033.pdfhttp://www.isstm.com/encrypt/MessageDigest.htmhttp://www.mysql.com/8/8/2019 DVL Final Report
64/64
Disk Virtualization onLinux