A TOOL FOR RAID PERFORMANCE DATA COLLECTION A Project

A TOOL FOR RAID PERFORMANCE DATA COLLECTION
A Project
Presented to the faculty of the Department of Computer Science
California State University, Sacramento
Submitted in partial satisfaction of
the requirements for the degree of
MASTER OF SCIENCE
in
Computer Science
by
VijayVenkatesh Kaveri Venkat JD
SPRING
2014
© 2014
VijayVenkatesh Kaveri Venkat JD
ALL RIGHTS RESERVED
ii
A TOOL FOR RAID PERFORMANCE DATA COLLECTION
A Project
by
VijayVenkatesh Kaveri Venkat JD
Approved by:
__________________________________, Committee Chair
Du Zhang, Ph.D.
__________________________________, Second Reader
Ying Jin, Ph.D.
____________________________
Date
iii
Student: VijayVenkatesh Kaveri Venkat JD
I certify that this student has met the requirements for format contained in the University
format manual, and that this project is suitable for shelving in the Library and credit is to
be awarded for the Project.
__________________________, Graduate Coordinator
Nikrouz Faroughi, Ph.D.
Department of Computer Science
iv
___________________
Date
Abstract
of
A TOOL FOR RAID PERFORMANCE DATA COLLECTION
by
VijayVenkatesh Kaveri Venkat JD
One of the important concepts in the field of storage is RAID. In practical life,
major features to deal with are, to create different levels of RAID in the physical drives
through controllers and to test the performance of those RAID levels. Usually, the
performance of RAID levels is measured using several I/O software. Crystal Disk
Mark[3], AS SSD[4] and Disk Wriggler [5] to name a few. There has to be manual
supervision for running these software which is time consuming. Added to that, input
specification and parameter selection are not convenient in Crystal Disk Mark [3], AS
SSD [4] and Disk Wriggler [5]. It would definitely be better if there is a common tool
which can perform the function of creating different RAID levels and testing the
performance of those RAID levels together.
v
The tool is implemented using the Python language and Pywinauto [7] module.
This combination helps in the automation and adding different functionalities. Tkinter [8]
provides the interface to this tool. Different levels of RAID arrays can be created from
the tool, using the command line utility provided along with the specific RAID controller.
Once the RAID level is created, it can be selected to perform testing. The result collected
gives the data about the I/O per second and bandwidth depending on the specific pattern
of input parameters given. Pywinauto [7] is used to send keystrokes to all the three
software to perform the automation. The tool can be mainly used by the performance
level testers involved in the RAID creation.
_______________________, Committee Chair
Du Zhang, Ph.D.
_______________________
Date
vi
ACKNOWLEDGEMENTS
I would like to thank Dr. Du Zhang for his supportive guidance and assistance
throughout this project. Dr. Zhang helped me in completing the project in the way we
expected. He was very supportive and understanding which provided me extra confidence
to succeed in this venture. He took extra effort to review the report and kept on giving his
advice during the course of project completion.
I would like to also thank Dr. Ying Jing for her extended support. She provided
me with her valuable advice when they are really needed.
Added to that, I would like to thank the Department of Computer Science at
California State University, Sacramento for providing an opportunity to pursue my
Masters’ degree and guiding me all the way to become a successful student.
vii
TABLE OF CONTENTS
Acknowledgements ..................................................................................................................... vii
List of Figures .............................................................................................................................. xi
Chapter
1.INTRODUCTION ..................................................................................................................... 1
1.1 Significance ........................................................................................................................ 1
1.2Tkinter .................................................................................................................................. 2
1.3 Related Work ...................................................................................................................... 5
2.BACKGROUND ....................................................................................................................... 7
2.1 RAID ................................................................................................................................... 7
2.2 RAID Levels ....................................................................................................................... 7
2.2.1 RAID 0 ......................................................................................................................... 7
2.2.2 RAID 1 ......................................................................................................................... 8
2.2.3 RAID 2 ......................................................................................................................... 8
2.2.4 RAID 3 ......................................................................................................................... 9
2.2.5 RAID 4 ......................................................................................................................... 9
2.2.6 RAID 5 ......................................................................................................................... 9
2.2.7 RAID 6 ....................................................................................................................... 10
2.3 Steps for RAID Creation ................................................................................................... 10
2.4 RAID Performance ........................................................................................................... 13
3.DESIGN ................................................................................................................................... 14
3.1 Use case diagram .............................................................................................................. 14
3.2 Design of RAID Activities................................................................................................ 16
viii
3.2.1 RAID Creation ........................................................................................................... 17
3.2.2 RAID Display ............................................................................................................ 21
3.2.3 RAID Deletion ........................................................................................................... 21
3.3 Design of RAID Tutorial .................................................................................................. 23
3.4 Design of RAID Tool........................................................................................................ 25
3.5 Design of Performance data Collection ............................................................................ 26
3.5.1 Default test automation .............................................................................................. 26
3.5.2 Crystal Disk Mark automation ................................................................................... 31
3.5.3 AS SSD Automation .................................................................................................. 34
3.5.4 Disk WrigglerAutomation.......................................................................................... 37
4.IMPLEMENTATION .............................................................................................................. 40
4.1 RAID Creation .................................................................................................................. 40
4.2 RAID Display ................................................................................................................... 45
4.3 RAID Deletion .................................................................................................................. 47
4.4 Partition Creation .............................................................................................................. 49
4.5 Performance Data Collection ............................................................................................ 49
4.5.1 Default test automation and performance data gathering .......................................... 50
4.5.2 Profile Creation .......................................................................................................... 53
5. PERFORMANCE ................................................................................................................... 55
5.1 Analysis of RAID activities .............................................................................................. 55
5.2 Analysis of Performance data collection .......................................................................... 58
5.3 Analysis of Crystal Disk Mark result ................................................................................ 60
5.3.1 Crystal Disk Mark Result with RAID 0 ..................................................................... 60
5.3.2 Crystal Disk Mark Result with RAID 1 ..................................................................... 62
ix
5.3.3 Comparison of RAID 0 and RAID 1 result................................................................ 63
5.4 Analysis of AS SSD Result............................................................................................... 65
5.4.1 AS SSD Result with RAID 0 ..................................................................................... 65
5.4.2 AS SSD result with RAID 1 ...................................................................................... 67
5.4.3 Comparison of RAID 0 and RAID 1 bandwidth result: ............................................. 68
5.4.4 Comparison of RAID 0 and RAID 1 Iops result ........................................................ 69
5.4.5 Comparison of RAID 0 and RAID 1 Copy benchmark results .................................. 71
5.5 Comparison with Other tool.............................................................................................. 74
6. CONCLUSION AND FUTURE WORK ............................................................................... 75
Bibilography ............................................................................................................................... 76
x
LIST OF FIGURES
Figure
Page
Figure 1: Use case diagram ............................................................................................................ 14
Figure 2: RAID Features ................................................................................................................ 16
Figure 3: Physical Drive Selection................................................................................................. 17
Figure 4: RAID level Creation ....................................................................................................... 18
Figure 5: RAID level Display ........................................................................................................ 21
Figure 6: RAID levels deletion ...................................................................................................... 22
Figure 7: different RAID levels tutorials ....................................................................................... 23
Figure 8: RAID level 6 tutorial ...................................................................................................... 24
Figure 9 : RAID Tool Interface ..................................................................................................... 25
Figure 10: Crystal Disk Mark Input Specification ......................................................................... 31
Figure 11: AS SSD benchmark Input Specification ...................................................................... 34
Figure 12: Disk Wriggler Input Specification................................................................................ 37
Figure 13: Flowchart for retrieving drives ..................................................................................... 41
Figure 14: Flowchart for RAID Creation....................................................................................... 44
Figure 15: Flowchart for Displaying RAID ................................................................................... 46
Figure 16: Flowchart to Delete RAID............................................................................................ 48
Figure 17: RAID Creation message box ........................................................................................ 55
Figure 18: RAID Creation error message ...................................................................................... 56
Figure 19: RAID Creation drives error .......................................................................................... 56
Figure 20: RAID Display error message........................................................................................ 56
xi
Figure 21: RAID Deletion message ............................................................................................... 57
Figure 22: RAID deletion error message ....................................................................................... 57
Figure 23: Default test message ..................................................................................................... 59
Figure 24 : Logical drive error ....................................................................................................... 59
Figure 25: Test completion message .............................................................................................. 60
Figure 26: Result of Crystal Disk Mark with RAID 0 ................................................................... 61
Figure 27: Result of Crystal Disk Mark with RAID 1 ................................................................... 62
Figure 28: Result of AS SSD with RAID 0 ................................................................................... 65
Figure 29: Result of AS SSD with RAID 1 ................................................................................... 68
Figure 30: Result of AS SSD with RAID 0 in Iops view .............................................................. 69
Figure 31: Result of AS SSD with RAID 0 Iops view ................................................................... 70
Figure 32: AS SSD Copy benchmark result with raid 0 ................................................................ 72
Figure 33: AS SSD Copy benchmark result with raid 1 ................................................................ 73
xii
1
1. INTRODUCTION
1.1 Significance
The designed tool will interact with the controller attached to the physical drives
and create different RAID levels, which can be specified through GUI. It enables the user
to select from the list of physical drives attached to the system.
This tool also provides more defined ways of selecting the inputs and specifying
the automation. The advantages of using this tool are,

RAID levels are created easily

Performance testers can run this single tool which will run for several
hours by automating the other software like Crystal Disk Mark [3], AS
SSD [4], Disk Wriggler [5].

This tool eliminates the task of manual supervision as well.

It provides the functionality to create different profiles which can be used
for future automation.

It also carries the tutorial package which gives a clear insight of the
different RAID levels and their significance to the testers.
2
RAID Tool provides outputs using two metrics:
1. Bandwidth
2.
Inputs/outputs per second.
Bandwidth is defined as a certain load of data that is transferred from the system
to the disks on which RAID is built, per second. Inputs/outputs per secondare defined as
the number of inputs and outputs happened between drives and system during read and
write operations. By comparing the results of one RAID level with another, the
performance of a RAID level is understood.This tool is implemented using Python
language and Pywinauto [7] module. This combination helps to achieve different
functionalities and Tkinter is used for providing Graphical user interface.
1.2Tkinter
Tkinter is the standard GUI library for Python. Python when combined with
Tkinter [8] provides a fast and easy way to create GUI applications [8]. Tkinter provides
a powerful object-oriented interface to the Tk GUI toolkit.
Creating a GUI application using Tkinter is an easy task. All you need to do is
perform the following steps [8]:

Import the Tkinter module.

Create the GUI application main window.

Add one or more of the above-mentioned widgets to the GUI application.
3

Enter the main event loop to take action against each event triggered by the
user.
Tkinter components used in this project are listed below [8]:

Button

The Button widget is used to display buttons in your application
[8]

CheckButton.

The Checkbutton widget is used to display a number of options as
checkboxes. The user can select multiple options at a time [8].

Frame

The Frame widget is used as a container widget to organize other
widgets[8].

Label

The Label widget is used to provide a single-line caption for other
widgets. It can also contain images [8].

Tkmessagebox

This module is used to display message boxes in your applications
[8].

Listbox

The Listbox widget is used to provide a list of options to a user [8].
4

Entry

The Entry widget is used to display a single-line text field for
accepting values from a user [8].

TopLevel

The Toplevel widget is used to provide a separate window
container [8].

LabelFrame

A labelframe is a simple container widget. Its primary purpose is to
act as a spacer or container for complex window layouts [8].

Message

This module is used to display message boxes in your applications
[8].

Menubutton

The Menubutton widget is used to display menus in your
application [8].
Crystal disk Mark [3], AS SSD [4] and Disk wriggler are the open source
software included in the RAID Tool to calculate the performance of the RAID level.
Crystal Disk Mark [3] is disk benchmark software that provides set of predefined
inputs to measure the sequential reads/writes bandwidth and random read/writes
bandwidth. These values are the performance value of a specific RAID level on which
5
testing is conducted. Bandwidth of a certain RAID level can be compared with another
RAID level to understand the difference in the performance.
AS SSD [4] software generally used to determine the performance of the solid
state drives. In this case it is similar to Crystal disk Mark with the added features like the
results are produced in two forms .They are bandwidth and Inputs/outputs per second
.These two values are through which the performance of the RAID level can be
understood.
Disk Wriggler [5] is benchmark software for testing file system storage
throughput. When compared to previously mentioned software this has an added
advantage of letting user to decide the way the Input /output operation has to be carried
out .For example , either asynchronous or synchronous Input/output. The output produced
from this software are bandwidth which is the data load read/written into the disk on
which the RAID is created. By finding this bandwidth in read and write operations the
performance is checked. RAID level with high performance usually has more bandwidth
and the level with average performance usually has a lesser value.
By using these additional software and their results such as data transferred
between the drives per second, Input/output operations per second user can understand
that the RAID level with higher performance produce higher results in these two metrics
and those with average performance produce low values.
1.3 Related Work
6
While considering the related work, there are other tools in the market like
Maxview Storage manager to create RAID levels. Maxview storage manager[10] is a tool
to build RAID level in the physical drives. When compared with RAID Tool, it doesn’t
include the testing and tutorial feature in it. This tool is complete software for the
performance testers to create, learn and test the RAID properties. The performance data
such as bandwidth and Inputs/outputs per second for different data size are collected by
the RAID Tool which is not achieved by Maxview storage manager [10]
7
2. BACKGROUND
2.1 RAID
RAID stands for Redundant Array of Independent Disks .RAID is a storage
technique which involves the combination of multiple disk drives into one single logical
volume for the purpose of data redundancy and improved performance [1]. In RAID, the
data is placed on multiple disks in which the Input/Outputs operations are carried out in
balanced way leading to the improved performance. Since there are multiple disks the
Mean Time between Failures are also increased. There are various RAID levels which
differ in the way, which the data is distributed across the multiple disks. Depending on
the level, the redundancy and the performance vary.
2.2 RAID Levels
Initially there were five RAID levels, due to the rapid progress in the storage
industry several other RAID levels were brought into picture. There are nested levels
which are implemented by combining two different standard RAID levels. The various
RAID Levels are:
2.2.1 RAID 0
RAID 0 is performance oriented data striping methodology. This doesn’t provide
data redundancy and fault tolerance features. The reason for using the RAID 0, it
improves the performance. These performance improvements is achieved by parallelism
8
of read and write operations across the multiple disks [1]. It doesn’t include an error
detection mechanism which makes RAID 0 incapable of reproducing the lost data.
RAID 0 is considered as actual RAID only when it is combined with other RAID
levels to provide data redundancy, regeneration and rebuilding [2].
2.2.2 RAID 1
RAID 1 is made up of mirroring. In RAID 1 same set of data is written to two (or
more) drives .Once a read operation is conducted, it is serviced by any of the drives that
holds the data. RAID 1 provides improved performance during the read operation by least
seek latency and rotational latency [1]. On the other hand, the performance is degraded
during write operation because; the same data has to be written in all the drives. Thus the
slowest drive in the RAID array decides the write performance.
RAID 1 is very popular because of its simplicity and data availability .RAID 1
array members operate independently to provide high Input/output transactions [2].
2.2.3 RAID 2
RAID 2 is made up of bit level striping with dedicated hamming code parity. The
spindle rotation of all disks is synchronized so that sequential bits will be on different
disks during the striping of data [1]. Hamming code parity is calculated across the
corresponding bits and stored on at least one parity bit. RAID 2 is not used in companies
because it involves special disk features. RAID level 2 is obsolete and it is not available
in any current systems [2]
9
2.2.4 RAID 3
RAID 3 is made up of byte level striping with dedicated parity. The spindle
rotation of all disks is synchronized so that the sequential bytes will be on different disks
during the striping of the data [1]. Parity is calculated across the corresponding bytes and
stored on a dedicated parity. RAID 3 is not used in practice.
RAID 3 achieves high data transfer rate and high data availability at low cost
when compared with the RAID level 1. Since all the drives in the RAID 3 operates in
lock steps the transaction performance is poor [2]
2.2.5 RAID 4
RAID 4 is made up of block level striping with dedicated parity. The striping of
the data is performed in the size of blocks across multiple drives. RAID level 4 array’s
members can be accessed independently [1]. Therefore the performance is higher in Input
/Output transactions rather than large file transfers. RAID 4 is very rare in usage and not
used in many industries.
The important feature to be considered in RAID 4, it is not implemented without writes
back cache, because the dedicated parity will lead to an inherent bottleneck situation [2].
2.2.6 RAID 5
RAID 5 is made up of block level striping with the distributed parity. When
compared to RAID 4 the parity information is not stored in the same drive it is distributed
10
across different drives and stored [1]. The very important advantage of the RAID level 5,
if a drive fails at any point of time the read operations doesn’t get interrupted; it is
serviced from other drives.
When compared to RAID 4, this level reduces the write bottleneck situation. Raid
5 is often included with the techniques such as caching and parallel multi processors to
overcome the drawbacks of RAID 4 [2].
2.2.7 RAID 6
RAID 6 is made up of block level striping with double distributed parity. RAID 6
can provide tolerance up to two failed drives i.e. it can protect against failure of two drive
members by employing two independent forms of check data [1].Though it provides high
data reliability , the write penalty is more worse than RAID 5 . This write penalty issue of
RAID 6 is often reduced by using the technique scaling [2]
2.3 Steps for RAID Creation
The following are the steps carried out to complete the process of building RAID
in the physical drive.
1. Data Redundancy:
The first step in creating RAID is partitioning the available storage capacity of a
disk drive into two. They are,

User data
11

Check data
The user data is the actual data that has to be written on the disks. The check data
is the copy of the data which can be either the mirroring of the original data or an error
correcting code obtained from the user data. The user data must be accompanied with the
check data when it is being stored in the different disk
2. Regeneration:
The next step in RAID would be to include algorithms for regeneration of the user
data to a disk system’s Array management Function. Regeneration employs check data
and corresponding user data to reproduce the user data from the failed disk.
3. Rebuilding:
In this step the disk system’s Array management function is filled with the
rebuilding capability. It is the process in which both the user data and check data from the
failed disk are reproduced and written to a replacement disk .This step also protects
against further faults by restoring the redundancy after the failure.
4. Functional Redundancy:
The next step in RAID is to include the functional redundancy to a disk system. In
order to provide reliability to data every module of the disk system must be protected
against the failure .This is implemented by adding redundant components.
12
Prior mentioned steps in RAID will help RAID array to continue without data loss
even when a disk in RAID array becomes faulty. With this step included the data remains
available even if the drive fails.
5. Minimizing Write Bottleneck:
By implementing the first four steps, a disk system can be considered as RAID.
But RAID systems are prone to write bottleneck situations. Because of this write
bottleneck, RAID technology wouldn’t be considered as an optimized storage solution. In
order to minimize the bottlenecks various techniques are involved [2].They are,

Cache

Write-assist-disks

Parallel processors
Cache will provide more memory space to avoid the bottleneck situation.
Write assist disk is an additional disk unit[13].This disk unit improves
performance of interactive write operations, and ensures data integrity if a power loss
happens[13]. Write operations to the write-assist disk do not require parity calculations.
In parallel processors, concurrent use of the resources is employed to avoid these
bottleneck scenarios
By eliminating the write bottleneck situations the performance can be improved.
This summarizes the steps carried out during the RAID creation in the disks.
13
2.4 RAID Performance
Performance is one of the important features in RAID which decides about the
usage of different RAID levels. By finding the performance of a particular RAID level,
the user can decide whether he could use that RAID level in their system. Performance of
a particular RAID level is understood by calculating the data transferred from the RAID
level during the read/write operation. This data transfer in the disks are usually calculated
using bandwidth and Input/outputs per second.
14
3. DESIGN
3.1 Use case diagram
Figure 1: Use case diagram
15
User can perform various activities using the RAID Tool. They are grouped into
categories.
Create RAID:
User can create different RAID levels based on the physical drives
attached to the system.
Display RAID:
User can refer the list of RAID levels created in the physical drives
that are attached to the system
Delete RAID:
User can delete Different RAID levels that are present in the
external drives of the system.
Create Partition:
User can create a partition in the RAID level. Partition is created in
the RAID level to conduct performance testing
View Tutorials:
User can view the information and behavior of Different standard
RAID level can be referred.
Start Default test:
To conduct the performance testing on different RAID levels all
three software are executed one by one in a single test. This is
considered as default test
Automate Software: Crystal Disk Mark [3], AS SSD [4], Disk Wriggler [5]can be
automated individually to understand the performance level of
RAID level with various input specification
16
Specify Inputs:
User can select different sets of inputs like Sequential read/write,
Random read/write to analyze the performance of RAID levels in
different perspective
Create Profiles:
User can save the current selections like test drive, load size,
number of run to start the test in profiles. These profiles can be
used to reproduce the same testing environment.
3.2 Design of RAID Activities
In RAID activities section of RAID Tool, different operations related to the RAID
are provided. They are




RAID Creation
RAID Display
RAID Deletion
RAID tutorial
Figure 2: RAID Features
17
User can select any specific option to transverse to the next windows in the tool
and carry out the intended functionality. Each functionality has its own design and
feature.
3.2.1 RAID Creation
In the phase of RAID creation, tool displays the physical drives that are attached to the
system. User is allowed to select the physical drives from the list. The selected drives are
used for creating RAID
Figure 3: Physical Drive Selection
18
As soon as user selects the physical drives, the tool will prompt user for further
options like,

Level

Size

Name

Enable or disable Read cache,

Write back or Write through

RAID built type
Figure 4: RAID level Creation
19
Level option allows the user to specify the level of the RAID to be created in the
selected physical drives.
Name option allows the user to define a name for the RAID level. By naming the
RAID level it acts as a unique identifier for that particular level.
Read cache can either be enabled or disabled in the RAID created. By selecting
this option, user will be aware of the read cache state.
User can also enable or disable the write cache. By selecting the Write back
option the cache is enabled and by choosing the Write through option the cache is
disabled.
Finally, build type allows the user to select the way in which the RAID has to be
createdin the physical drives. The various options provided are:

Build/Verify

Clear

Quick Init

Skip Init
Each build type has its own way of building the RAID level in the drives. The
user can select the required type based on the need.
20
Build/Verify [11] method makes the RAID array available for use immediately.
This operation takes in background. This method creates the parity for each disk in the
array. Example, For RAID 5 and RAID 6, parity is computed and written
Clear [11] is a RAID creating method in which array is not available to use until
the creation operation is completed. This is the fastest way to set the disks into a known
good state.
In Quick Init [11] method, RAID array is available for use immediately. This
method will create metadata on member disks of the array and the build process is
bypassed
Skip Init [11] method is used in the case where it updates metadata only. If
multiple disk drives fail in the same logical device, it may be possible to recover the data
by recreating the logical device without the initialization step.
Once these values are specified by the user, the tool will interact with the
controller and the specified RAID levels are created on the selected physical drives
connected to the system.
21
3.2.2 RAID Display
The display option in the tool provides the information about the existing RAID
levels in the underlying physical drives within the system.
Figure 5: RAID level Display
This option will provide specifics about the RAID level and RAID Name.
3.2.3 RAID Deletion
The Delete option in the tool will enable the user to delete a particular RAID
level. The existing RAID levels are displayed accordingly with their name. User can
select a level from the list and delete it.
22
Figure 6: RAID levels deletion
The Create Volume option in the tool will enable the user to change the created
RAID level into a disk volume. This option is implemented because the performance
software included in the tool cannot recognize the RAID levels created in the physical
drives unless a volume is created. This functionality is achieved by running a script that
interacts with the disk manager of the operating system. Once the volume is created in the
RAID level this will become another logical drive in the operating systems with the
Volume Label Q. The performance analysis is conducted in this specific volume.
23
3.3 Design of RAID Tutorial
The tutorial option in the tool displays the various RAID levels that can exist.
Added to that, once the user selects a particular RAID level a prototype of that RAID
level is displayed.
Figure 7: different RAID levels tutorials
A standard size of 50GB is considered for all the RAID levels. The other
specifications in accordance with this size and the particular RAID level are displayed. It
includes the information like parity space, drives included in creating that level and an
image to give a clear picture of how the parity works in certain RAID level.
24
Figure 8: RAID level 6 tutorial
When considering the performance tests of the RAID levels created in the system,
the tool provides several options to conduct the test. The performance tests are conducted
by the open source software such as Crystal Disk Mark [3], AS SSD [4], and Disk
Wriggler [4] .These open source software will interact with the RAID Volume and run
the tests as specified by the user and provides the result.
25
3.4 Design of RAID Tool
The tool prompts the user to enter the folder in which the results should be stored.
Once the user enters the folder name and starts the default test option, the tool starts to
automate the other open source software; RAID Tool will start the test and feeds the
default inputs to run the test.
Figure 9 : RAID Tool Interface
26
3.5 Design of Performance data Collection
3.5.1 Default test automation
The default test case would be to perform all the patterns of read and writes like
Sequential Read/write, Random read with block size as 512 KB, Random write with
block size as 512 KB, Random read with block size as 4KB and queue depth as 1,
Random write with block size as 4KB and queue depth as 1, Random read block Size as
4KB and queue depth as 32, Random Write with Block size as 4KB and Queue depth as
32.There are different patterns in reading and writing the data from the drives, out of
those the sequential and the random plays an important role. As the name suggests the
sequential type will carry out the read/write operations, which are started from the
software sequentially in the drives and the random type will carry out the read/write
operations in random manner in the drives in which the RAID is created.
The block size is a parameter which specifies the size of the input and output used
during each read and write operation. Every read and write is done in full multiples of the
block size. For example, if the block size is given as 50MB,for each read and writes
operation, 50MB of data is read and written from the disks in which the RAID is created
respectively. Since, RAID is built on the multiple drives; it is accessed by specifying the
block size rather than the sector size which is used when accessing a single drive.
The queue depth is the parameter which is defined as the number of pending
input/output requests for volume[3].The maximum limit of queue depth one can give as
input is 256MB.It is usually specified in the powers of 2.
27
These input parameters are chosen in a right combination and made as test case to
get a clear performance analysis of the RAID level created. The following will be the
default test conditions to test the Created volume.

Sequential Read

Sequential Write

Random Read with Block size 512 KB

Random Write with Block Size 512 KB

Random Read with Block Size 4KB and Queue depth =1

Random Write with Block size 4KB and Queue depth =1

Random Read with Block Size 4KB and Queue depth =32

Random Write with Block size 4KB and Queue depth =32
These are the input criteria designed by the Crystal designed Mark [3] as different
test cases to analyze the performance of the RAID levels efficiently. RAID Tool select
these inputs by sending keystrokes [7] to Crystal Disk Mark [3]. RAID Tool will
automate the Crystal Disk Mark [3] tool to run this entire test suite for one single time.
When the Crystal Disk Mark [3] is running these tests; RAID Tool will remain ON and
check for the termination of the Crystal disk mark[3]. RAID Tool will be constantly
checking for the temporary folder with the name starting from “CrystalDiskMark”
within the logical drive which is exposed for testing. This temporary folder is removed
only when the test is completed.
28
RAID Tool derives a conclusion that the test is completed if there is no temporary
folder in the logical drive on which the testing is conducted. After this detection, RAID
Tool will take the screenshot of the result and along with that bandwidth which means the
megabyte of data transferred per second of the entire test is also collected
RAID Tool stores these result in the text file by naming it with system date and
placing the file in the default test directory. The screenshot is also saved in the same
naming convention under the same directory. Once the automation of the Crystal Disk
Mark [3] is completed the RAID Tool starts the automation of the AS SSD [4]software.
AS SSD [4]software implements the same test methodology as Crystal Disk Mark
[3]with an additional advantage of enabling the users to run the read/write operations
with more number of threads rather than one single thread. By increasing the number of
threads to 64 from 1, the inputs and outputs in the drive increases significantly. It also
increases the bandwidth of the read/write operations. But AS SSD [4] software does not
include a provision to specify the queue depth and block sizes. These values are always
set to the default values which in this case are, queue depth will be 32 and block size will
4KB. The default test parameters fed to the AS SSD [4] software are,

Sequential Read

Sequential Write

Random Read with Block Size 4KB

Random Write with Block size 4KB

Random Read with Block Size 4KB with No of threads = 64
29

Random Read with Block Size 4KB with No of threads = 64
The default test is carried out by AS SSD [4]with the above mentioned
parameters. . RAID Tool will be constantly checking for the temporary folder with the
name starting in “ASSSD” within the logical drive in which the testing is ongoing. When
the test is completed this temporary folder is removed. RAID finds that the test is
completed if there is no temporary folder with a name “ASSSD” in the logical drive on
which the testing is conducted.
Once the test is completed RAID Tool will take a screenshot of the result which
provides the information about the bandwidth of the logical drive tested. In the default
test case it is always the logical drive Q. The bandwidth values of the default test suite is
stored in the text file with the same naming convention as Crystal Disk Mark [3] by
including asssd in front for differentiating the results. Both the text file and the image are
stored in the default result directory.
RAID Tool after storing these results will start the automation of Disk Wriggler
[4] software. Disk Wriggler [4] is actually used for testing the bandwidth of the
Input/output to the file system. The input can be given as sequential file or as different
frames within one large file. The default test configuration using the Disk Wriggler [4]
includes the testing of the logical volume with the Direct Input/Outputs and
Asynchronous Input/Outputs. RAID Tool executes a command with the default
parameters, in which the size of the frames is 4KB. The test is conducted for both direct
and asynchronous input/output conditions.
30
The termination of the Disk Wriggler [4] tool is detected by the removal of the
temporary directory under the name “DiskWriggler” which will be in the logical drive in
which the testing is carried on. RAID Tool will collect the result of the disk wriggler
software which includes the information such as

How many frames were written to that specific logical drive in 5 seconds

How long did it take to write the 4000 frames

The minimum, maximum and average value of frames per seconds value

The minimum, maximum and average value of bandwidth of the read writes
operations.
From this result, bandwidth which is defined as the megabytes of data transferred
per second in the drives on which the RAID is created is detected. By knowing the
bandwidth, user can study this value to compare the results achieved from different RAID
levels. RAID level with higher performance has a higher bandwidth value. Likewise,
frames per second will also be higher in the RAID level with higher performance. The
results are stored in the text file.
31
3.5.2 Crystal Disk Mark automation
Figure 10: Crystal Disk Mark Input Specification
The tool is designed in a way that this testing software can be accessed
individually. The user is allowed to select one of the software from the list below:

Crystal Disk Mark

AS SSD Benchmark

Disk Wriggler
32
After selecting software from the list the user can move forward and start
specifying the input parameters. RAID Tool provides a set of options to automate the
Crystal Disk Mark [3] tool. The options specified are,

Load type

Test Runs

File Size

Test Drive

Test Data
Load type is the way in which data is fed during the read/write operations. The
different load types are:

Sequential load

Random Load
Test runs parameter defines the number of times the test has to be
executed in the logical drive.
File size parameter describes the data size that is used in the Input/output
of the read write operation
Test drive parameter allows the user to select the specific logical drive in
which the test has to be conducted.
33
Test data parameter helps the user to specify the type of the data that is
written on the drives during the test. The various options in test data are:

Random

0fill

1Fill
When the user selects the option Random, as the name suggests the
Input/output of the read and write operations are performed in random bits of 0s
and 1s.
In 0fill,read and write operations are carried out only with 0s.
In 1fill, inputs and outputs in the read/write operations are carried out only
with1s.
After specifying the testing conditions using RAID Tool with the various
options mentioned above, user can start the Crystal Disk Mark [3]software and
this will perform the test according to the inputs specified from the RAID Tool.
RAID Tool also provides an option of creating the profiles for the test
cases. User can create different set of test suite and make them as a profile for
future creation of the same test environment.
RAID Tool allows the user to specify the profile name. After entering the
profile name and clicking create profile button, it will produce the profile with the
34
specified name containing details about the test environment. Users are allowed to
select from the list of the profiles created earlier.
By selecting the “Created_profiles” button, RAID Tool will display the
profiles. User can select a profile from the list and start the test.
3.5.3 AS SSD Automation
RAID Tool provides a way to automate other benchmark software AS
SSD. Once the user selects this software from the list, the RAID Tool provides the
interface to automate this SSD Benchmark software.
Figure 11: AS SSD benchmark Input Specification
35
The options provided are,

Load drive
 Load type
Load drive option displays the list of logical drives existing in the system.
The user can select the required logical drive on which the testing needs to be
conducted.
Load type allows the user to select a different set of loads. They are,

Sequential Read/Write

Random Read/Write with 4KB size

Random Read/Write with 4KB size and 64 threads

All
Once these two options are finalized by the user, user has to select the type of the
test that the software has to carry out. The various type of tests are:

SSD benchmark Test

Compression Benchmark Test

Copy Benchmark Test
SSD Benchmark test carry out the read/write operation in the selected logical
drives with the selected load type. The result produced from this test includes the
36
Input/output bandwidth in Megabytes per second and also includes Inputs/outputs per
second [4].
The Copy benchmark test gives the speed and duration of the Read/write
operations. From which the Bandwidth of the Input/output are detected as well. This test
undergoes three different testing sessions. They are,

ISO

Programs

Games
ISO is carried out through Copy benchmark test by creating test folder for large
files and the programs is carried out for small programs [4]. Games option is selected to
test the condition of the RAID level in the gaming computers.
The Compression Benchmark test allows detecting the data compressibility by
displaying the Read/Write Bandwidth values [4]. The result is stored in the graph format.
RAID Tool will automate this software based on the option selected by the user.
Once the test is completed, RAID Tool will store the results in the text file with the
system date .A screenshot is captured as well. Both the text file and the screenshot are
stored in the specified directory.
37
3.5.4 Disk Wriggler Automation
The other important software automated by the tool is Disk Wriggler [4]. User can
select the disk wriggler option from the software list.
After selecting the disk wriggler form the list, the user is prompted with different
options to carry on the test.
Figure 12: Disk Wriggler Input Specification
38
The options are,

Test drive

Number of frames

Input/output type
Test drive allows the user to specify the logical drive in which the testing has to
be carried out. This provides the list of logical drives created in the system.
Number of frames is an option in which the user can specify the count of frames
that needs to be read or written during the operation.
The Input/output type defines the way in which the read and write operations are
carried out. This option has several sub options.
They are

Direct Input/output

Asynchronous Input/output

Synchronous Input/output

Cached Input/output

Direct Input/output Read
These different variations in the Input/output type allow the frame to be read and
written in the different manner.
39
User can select these options and start the Disk Wriggler [4] software. Once the
testing is completed the results are stored in the text file which contains the information
about the bandwidth of the read / write operations.
Results collected by testing these open source software are nothing but the
performance data of the RAID level. Both the bandwidth and the Input/output per
seconds are the metrics used to analyze the performance of the RAID levels. These
results are compared to understand the difference between the performances of various
RAID levels
40
4. IMPLEMENTATION
4.1 RAID Creation
RAID creation can be classified into two steps. They are

Selecting the physical drives

Specifying the Characteristics of the RAID
Different RAID levels are created on various physical drives attached to the
system. The following algorithm implements the functionality of retrieving the
information about the physical drives in the system and displaying to the user
1. Check whether the physical drives are attached to the system.
2. If there are drives:
a. Open a file to write the configuration details
b. Execute a command in controller and get details
c. Write the information into the file
d. Extract the name and model of the drive into variables
e. Insert the values into listbox
d. Display the listbox
3. If there is no drive:
a. Display the message that , there is no physical drives in the system
41
Figure 13:Flowchart for retrieving drives
42
inkscape_dir=r"C:\Program Files\cmdline"
assert os.path.isdir(inkscape_dir)
os.chdir(inkscape_dir)
with open('C:\Program Files\cmdline\output.txt', 'wb') as f:
process=
subprocess.Popen(['arcconf',"getconfig","1"],stdout=subprocess.PIPE)
for line in iter(process.stdout.readline, ''):
sys.stdout.write(line)
f.write(line)
symbolList=[]
for line in open('C:\Program Files\cmdline\output.txt','r'):
if 'Model' in line:
symbolList.append(line.split()[2:4])
l = Label(root_sel, text="Select the drives", width=50,bg="red", fg="white")
l.pack()
l.place(x=110, y=20)
listbox = Listbox(root_sel , selectmode=MULTIPLE,width=50)
for option in symbolList:
listbox.insert(0,option)
listbox.pack()
listbox.place(x=110, y=40)
Code for retrieving the drives connected to the System
Above mentioned code interacts with the controller and retrieves the
configuration details of the physical drives and the controller as well. This retrieved
information is parsed into a list and inserted into the listbox and presented in the user
interface.
The next step in the process of creating the RAID is specifying the characteristics
of the RAID. Once the user selects the criteria like level, size, enabling or disabling Read
cache, Write through or Write back for write cache; the parameters to define the RAID
creation are received. After providing the inputs, user clicks create RAID option.
43
Following algorithm implements the functionality of creating the RAID in the
desired physical drives.
1. Get the drives selected
2. Get the specification of the RAID
3. Execute the command to create RAID in controller
4. If the RAID level is created successfully
a. Display the message RAID is created
5. If the RAID level cannot be created.
a. Display the message , stating that error in inputs
Following is the snippet created from the algorithm mentioned above.
inkscape_dir=r"C:\Program Files\cmdline"
assert os.path.isdir(inkscape_dir)
os.chdir(inkscape_dir)
with open('C:\Program Files\cmdline\output.txt', 'wb') as f:
process=
subprocess.Popen(['arcconf',"create","1","logicaldrive",size,level,"0","0","0","1","0","2",
"0","3","noprompt"],stdout=subprocess.PIPE)
for line in iter(process.stdout.readline, ''):
sys.stdout.write(line)
f.write(line)
Code for Creation of RAID
44
Figure 14: Flowchart for RAID Creation
45
4.2 RAID Display
To display the Raid levels created in the physical drives, the tool has to interact
with the controller and find the details. The tool sends a command in order to retrieve all
the information about the physical drives. Following algorithm explains this functionality.
1. Check whether the RAID levels are created in the drives.
2. If RAID levels are present:
a. Open a file to write the information
b. Execute a command in controller and get RAID details
c. Write the configuration details into the file
d. Extract the name and level of the RAID into variables
e. Insert the values into listbox and display
3.
If there is no RAID level:
a. Display the message that , there is no RAID level in the system
Following snippet implements the functionality of displaying RAIDs
inkscape_dir=r"C:\Program Files\cmdline"
assert os.path.isdir(inkscape_dir)
os.chdir(inkscape_dir)
with open('C:\Program Files\cmdline\output.txt', 'wb') as f:
process=subprocess.Popen(['arcconf',"getconfig","1"],stdout=subprocess.PIPE)
for line in iter(process.stdout.readline, ''):
sys.stdout.write(line)
for line in open('C:\Program Files\cmdline\output.txt','r'):
if 'Logical device name ' in line:
name.append(line.split()[4:6])
if 'RAID level ' in line:
level.append(line.split()[-1])
46
Code to Display RAID levels
Figure 15: Flowchart for Displaying RAID
47
4.3 RAID Deletion
Deletion functionality is implemented in the tool through a sequence of steps. The
following algorithm gives a clear insight about the process of deleting RAID.
1. The name of the RAID level to be deleted is selected
2. Name of the RAID level is compared with the Logical drive number.
3. Logical drive number is found
4. Execute the command to delete the RAID level using this logical drive
number
5. If the Raid level is deleted,display a message box to the user.
Below mentioned snippets is included in the RAID Tool to implement the
deletion functionality.
inkscape_dir=r"C:\Program Files\cmdline"
assert os.path.isdir(inkscape_dir)
os.chdir(inkscape_dir)
with open('C:\Program Files\cmdline\output.txt', 'wb') as f:
process=
subprocess.Popen(['arcconf',"delete","1","logicaldrive",devicenumber,"noprompt"],stdout
=subprocess.PIPE)
for line in iter(process.stdout.readline, ''):
sys.stdout.write(line)
f.write(line)
Code for Deleting RAID
48
Figure 16: Flowchart to Delete RAID
49
4.4 Partition Creation
After creating the RAID level in the physical drive the important task to
accomplish is creating the partition. Without creating the partition in RAID level the
logical drive cannot be used for performance testing. Diskpart functionality in the
windows operating system is used to create partition. The steps followed in changing the
RAID level to a partition are:
1. Disk across which the RAID level exists is selected
2. After selecting the disk, RAID volume from the disk is selected
3. After selecting the volume, partition is created on that volume
4. A drive letter Q is assigned to the partition.
5. The Volume is named as RAID.
Following these steps, the RAID level created can be subjected to the performance
testing.
4.5 Performance Data Collection
Performance data is collected using the automation of the software. Software
automation is carried out using the module Pywinauto [7]. This module helps to send
keystrokes to any application running in Windows platform. The following snippet is an
example that demonstrates the way in which the keystrokes are implemented in the code
using the Pywinauto [7]
50
4.5.1 Default test automation and performance data gathering
The following algorithm gives a clear insight about the automation of the open
source software in default test and performance data gathering.
1. Get the folder name to store the performance results
2. Check for the logical drive Q
3. If Q is present
A.
Check for the temporary folders of the open source software in the drive Q
B.
If the temporary folders are present
a) Abort the testing
C.
If there are no temporary folders
a) Start the Crystal disk mark
b) Inputs provided are default and the testing is carried out in Logical drive
Q.
c) Automate the crystal disk mark.
d) Check for the temporary folder starting with Crystal in Logical drive Q
e) If folder is present
i. Remain idle
ii. Again check for the folder
a. If the folder is not present
i.
Take a screenshot of the software
ii.
Obtain the performance results and store it in a text file
51
iii.
Start the AS SSD benchmark software
iv.
Inputs provided are default and testing is carried out in Logical
drive Q.
v.
Automate the AS SSD Benchmark.
vi.
Check for the temporary folder starting with ASSSD in Logical
drive Q
vii.
viii.
If folder is present
A.
Remain idle
B.
Again check for the folder
If the folder is not present
A.
Take a screenshot of the software
B.
Retrieve the performance results and store it in a text file.
C.
Start the Disk Wriggler software
D.
Default Inputs provided and testing is carried
E.
Execute a command in the command prompt with this
software.
F.
Check for the temporary folder starting with Disk in drive
Q
G.
If folder is present
i.
Remain idle
ii.
Again check for the folder
52
H.
If the folder is not present
i. Performance results are written into text file and stored
ii. Display a message default test is completed.
4. If Q is not present
A. Abort the testing
The following snippet implements the functionality of automating crystal disk mark [3].
from pywinauto import application
from pywinauto import application
app1=application.Application()
app1.start_('C:/AUPEDACO/CDM/CrystalDiskMark/DiskMarkX64.exe')
time.sleep(1)
app=application.Application()
app.start_('C:/AUPEDACO/CDM/DMStream050/DiskMarkStream.exe')
dlg=app.DiskMarkStream
app.dlg.control
dlg.TypeKeys("{ENTER}")
dlg1=app.Open
app.dlg1.control
dlg1.TypeKeys('C:\ AUPEDACO\CDM\DMStream050\samplemacro.csv')
dlg1.TypeKeys("%o")
dlg2=app.top_window_()
app.dlg2.control
dlg2.TypeKeys("{ENTER}")
dlg3=app.top_window_()
app.dlg3.control
dlg3.TypeKeys("{ENTER}")
Code for Software Automation
53
When testing the performance of the Raid levels, the logical volume assigned to
letter Q is selected. The following code snippet is implemented to retrieve the logical
drives.
bitmask = windll.kernel32.GetLogicalDrives()
for letter in string.uppercase:
if bitmask & 1:
drives.append(letter)
bitmask >>= 1
for drive in drives:
typeIndex = windll.kernel32.GetDriveTypeW(u"%s:\\"%drive)
if (typeIndex == 3 or typeIndex == 4):
drive1.append(drive)
Code to retrieve the Logical drives
4.5.2 Profile Creation
Profile creation is one of the important features of the tool. Soon after selecting
the inputs and creating a test environment user can generate profiles. The profiles are
used to reproduce the same test environment in future. Profile creation is implemented by
following this algorithm.
1. User selects the inputs
2. The inputs are retrieved and stored in a persistent file
3. It is stored with the date for later identification
4. When the user wants to retrieve the profiles , the information is received from
the storage
5. Profiles is displayed in User Interface with Name, date and further details.
54
The following code demonstrates the working of retrieving profiles and
displaying in the user interface.
fh= open("C:/AUPEDACO/CDM/DMStream050/profiles","r")
data=fh.read()
pattern=re.compile(r'PROFILE \s*(.*?)\s*PROFILE_END:', re.DOTALL)
matches=pattern.findall(data)
print("the matches are ",matches)
question="Select the profile from the list"
title = "PROFILES LIST"
options=eg.choicebox(question,title,matches)
#print options
options1=options.split("[")[1]
options2=options1[:-1]
options3=shlex.split(options2)
Code for Retrieving the profiles
55
5. PERFORMANCE
5.1 Analysis of RAID activities
User selects different drives and specifies the characteristic of the array. RAID
Tool reviews the input and once there are no major errors in the specification, the tool
interacts with the controller to create the RAID level. RAID creation time depends on the
type of the build selected. If a quick built is selected and the RAID level is created, RAID
Tool displays the following message box.
Figure 17: RAID Creation message box
Added to that, RAID Tool is developed in a way to handle the exceptions. If the
procedure is carried out without any erroneous inputs or conceptual flaw, RAID level is
created and the message is displayed .But there are scenarios which can cause RAID
creation to fail. They are

Invalid Size for RAID array

Mismatch between the RAID levels and the Number of drives selected.

No space in the drive to create a new RAID array
56
In these cases the tool displays the below message and prompts the user to re track his
input specification.
Figure 18: RAID Creation error message
If the user is trying to create a RAID level in the system which doesn’t have any
physical drives connected, the tool shows the following message box.
Figure 19: RAID Creation drives error
Analyzing the display option in the tool is very straight forward. If there is a
RAID level created in the physical drives attached to the system, RAID Tool will display
the details of the RAID level. If there is no RAID level to display, tool displays the
following message box
Figure 20: RAID Display error message
57
User can delete the RAID level from the tool . Once the delete option is selected ,
RAID levels currently existing in the system are listed.User can select any RAID level
from the list and select the delete button.After couple of seconds the RAID level is
deleted and the tool dispalys the below message box
Figure 21: RAID Deletion message
If the user is trying to use this functionality in the system where there is no RAID
level , the tool will display the following message box
Figure 22: RAID deletion error message
During the creation of the partition, a script file with a set of commands are
executed to achieve the result of creating a partition in the RAID level produced. After
creating the partition in the RAID level , the tool will display an message box stating that
the partition is created , if something went wrong druing the partition procedure , the tool
will throw out an message saying that partition cannot be created .If there is no RAID
58
level to create partition it displays the a messgae box with the information that partition
cannot be created.
5.2 Analysis of Performance data collection
Performance of the each RAID level is understood by undergoing various
disciplines of tests using different software. The results are summarized in a specific
place and the user can compare the difference of the bandwidth and Input/output during
read/write operations for different levels of RAID by looking at the screenshot and the
text file which contains the summarized data about the test carried out. To ease the work
of the users, the screenshot and the text file is saved in the name of system date .So that
the user can analyze the difference in the results of various tests, which took place in
different time.
The default test is started which automates the other three software with carefully
defined input specification to understand the performance difference between the RAID
levels. Once the entire automation of all the software is completed, the RAID Tool will
collect the results and store that in a same directory. The following message box is
displayed when the test automation is completed.
59
Figure 23: Default test message
Users can also use the previously mentioned software individually to understand
the performance difference between these RAID levels. By accessing the software
individually different aspects of the RAID levels in perspective of the performance is
learned by user.
During the Default test, logical drive Q is always fixed as a constant parameter.
This feature is included because the RAID levels are assigned to the label Q while
creating partitions. If the tool cannot find a logical drive under the label Q, it shows the
following error message.
Figure 24 : Logical drive error
The Crystal disk mark [3] software is automated with the input specified by the
user .RAID Tool allows the crystal disk mark [3] software to undergo the test and retrieve
the performance result of the logical drive specified during input. This logical drive is the
60
RAID level created using RAID Tool. Once the test is completed, RAID Tool collects all
the performance data and store in a file. After undergoing these series of events , RAID
Tool eventually displays the following message box .
Figure 25: Test completion message
This procedure of automation is carried out for the other two performance data
collection software as well. RAID Tool provides different set of input patterns in
accordance with the corresponding software. Once the user selects the inputs and starts
the test, RAID Tool will provide the inputs to the software and it will produce results.
These results are saved in a place where the user can access by the RAID Tool
5.3 Analysis of Crystal Disk Mark result
5.3.1 Crystal Disk Mark Result with RAID 0
When RAID level 0 of size 50GB is created using RAID Tool and tested with Crystal
disk mark [3] software, the following result is produced.
61
Figure 26: Result of Crystal Disk Mark with RAID 0
Above figure shows the result of different test types. The definitions of these test
types are,

All : All Test (Seq, 512K, 4K, 4K QD32)

Seq : Sequential Read/Write Test (Block Size = 1024KB)

512K : Random Read/Write Test (Block Size = 512KB)

4K : Random Read/Write Test (Block Size = 4KB)

4K QD32: Random Read/Write Test (Block Size = 4KB Queue Depth = 32).
From the figure 26, the bandwidth during different set of read and writes operations
are listed. The value of random read with block size 4KB is less than the value of
Sequential read of block size 1024 KB. This is because of the fact that, sequential data
62
access is much faster than random data access; because reading randomly involves a
higher number of seek operations than reading sequentially. This is the reason why
random reads deliver a lower rate of bandwidth. The same is true for random writing[20].
The random write value is greater than the random read value. This is the due to
the effect of write back cache. For a random write, the write happens in the background
while system going to the next loop iteration; for a random read, the system at some point
has to wait for the read to happen before continuing [16].
5.3.2 Crystal Disk Mark Result with RAID 1
RAID tool can be used to create RAID level 1 by following the same procedure for
creating RAID level 0. Once RAID level is created, performance of this level can be
tested using Crystal disk mark [3]. The following screenshot is the result of RAID 1
tested with Crystal disk mark [3]
Figure 27: Result of Crystal Disk Mark with RAID 1
63
Definition of the test types are equivalent to the test types in RAID 0. The reason
for the difference in the values of sequential and random read /write operations is same as
the reason for RAID 0 because both were built in same type of physical drives under
same environment.
5.3.3 Comparison of RAID 0 and RAID 1 result
In order to compare the performance result of RAID 0 and RAID 1, user can look
at the values of different test types,
From the figure 26 and figure 27,the bandwidth of Sequential read of RAID 0 is
approximately twice the value of RAID 1; this is because of the structural difference of
the RAID levels. Maximum bandwidth of read/write operations of the RAID 0 is equal to
the product of number of drives in the array and the read/write rate of an individual drive.
Whereas read /write performance of RAID 1 are the same as read or write performance of
an individual drive irrespective of the number of drives in the array[18]. This explainsthat
RAID 0 bandwidth values is related to the number of drives used in building the array,
more the number of drives, higher the read and write bandwidth values since it involves
striping .Thus the RAID 0 which is built from two drives has bandwidth values twice the
bandwidth of RAID 1 built from two drives.
In Random read/write with queue depth as 1,it does not matter how many disks
are there in RAID 0. Since the queue depth is 1, only one 4K request is sent to the array
at a given point of time and this 4K request can be only processed by one disk of the
64
array[17]. Therefore, it takes time which includes the raid controller overhead and access
time of one disk .This is the reason for RAID 0 not improving with random 4K
operations with queue depth as 1.So there is no much difference in the result between
RAID 0 and RAID 1.
But in Random read/write with queue depth as 32, More RAID 0 member drives
and higher queue depth will result in higher bandwidth during read/write operation
because multiple RAID 0 members can be at work at the same time since they keep their
won queue of reads and write to do[17]. So there is a significant difference in the result
between RAID 0 and RAID 1.
To summarize, since RAID 0 is a concept of stripping it offers very fast write times
because the data is split and written to several disks in parallel. Whereas RAID 1 is a
concept of mirroring and writes to a RAID 1 array is slower compared with RAID 0,
because the entire data is written to two disks, but in parallel[15].Reads are also very fast
in RAID 0. In ideal scenarios, the transfer speed of the array is the transfer speed of all
the disks added together, and limited only by the speed of the RAID controller. Reads
from RAID 1 not offer such performance boost, because the read speeds are about the
same as a single hard drive. so no improvement in performance [15]. Considering all
these factors and results in the figure 26 and 27, user can understand that RAID 0 has
higher read/write performance than RAID 1.
65
5.4 Analysis of AS SSD Result
5.4.1 AS SSD Result with RAID 0
RAID tool is used to create RAID level 0. AS SSD [4] software can be used to
test the performance of the RAID level in different perspective than Crystal disk mark
[3]. Same test in these two software may produce minor difference in result because
Crystal disk mark [3] while handling read/write operations uses random data .whereas AS
SSD[4] uses only 1’s during read and write operations. Following is the screenshot of
RAID level 0 tested by AS SSD.
Figure 28: Result of AS SSD with RAID 0
66
Definition of the test types are:

Seq: Sequential Read/Write Test (Block Size = 1024KB)

4k: Random Read/Write Test (Block Size = 4KB)

4k- 64 Thrd: Random Read/Write Test (Block Size = 4KB ,Number of threads
= 64)

Acc.Time: Access time for random read/write operation
AS SSD includes a scoring method for read and write operations. It also includes
a total score. The purpose of the score is to summarize the performance characteristics
[12]. The score are calculated as follow.
Read Score [13] = SeqR*0.1 + 4kR + 4k-64tR
Write Score [14] = SeqW*0.1 + 4kW + 4k64W
Total Score [12] = SeqW*0.15 + SeqR*0.1 + 4kR*2 + 4kW + 4k64W + 4k64R*1.5
Definition of the variables used in the formula is:

SeqR = Sequential read bandwidth

4kR = Random 4k read bandwidth

4k64R = Random 4k read bandwidth (64 queue depth)

SeqW = Sequential writebandwidth

4kW = Random 4k write bandwidth

4k64W = Random 4k writebandwidth (64 queue depth)
67
The random write value is greater than the read value because of write back
cache. While carrying out random write, the write occurs in the background while system
going to the next writes operation; for a random read, the system during some point has
to wait for the read operation to occur before continuing. This is vivid from the read
access time and the write access time displayed in the figure 28. Random read operation
takes more time than random write operation.
The reasons for low bandwidth value of random read and write operations with
thread 1 is, only one read or write request can be made to a disk in the array at a given
time. Only one disk can process those requests. These values are increased by increasing
the queue depths or the number of threads, so that each disk has its own thread and
produce better bandwidth during the read and write operation.
5.4.2 AS SSD result with RAID 1
RAID level 1 is created using RAID Tool. Steps carried out for RAID 0 is
repeated while testing RAID 1. Following is the screenshot of the RAID 1 tested with AS
SSD [4].
68
Figure 29: Result of AS SSD with RAID 1
The read/write and total score is calculated as per the formula mentioned in the
previous section. Random read/write bandwidth is less due to the same reason as RAID 0
because both the raid levels are built on the same drives using the same controller.
5.4.3 Comparison of RAID 0 and RAID 1 bandwidth result:
From the figure 28 and figure 29, Sequential read/write value of RAID 0 is almost
double the value of RAID 1. The random read/write operation with a single thread
doesn’t have significant difference because both the RAID 0 and RAID 1 are constrained
by the operating system to function in the same way. But, random read/write operation
with 64 threads have significant difference ,because RAID 0 allows the read and write
69
access to all the drives at the same time in different threads and increasing the bandwidth
.In RAID 1 due to the mirroring there is no significant increase in bandwidth values with
the increased number of threads .
Result of RAID 0 and RAID 1 from AS SSD shows that due to striping RAID 0
gets higher read and write bandwidth than RAID 1 which uses mirroring during read and
write operations.
5.4.4 Comparison of RAID 0 and RAID 1 Iops result
Following is the screenshot of the RAID 0 tested by AS SSD [4] in Input/outputs
per second perspective.
Figure 30: Result of AS SSD with RAID 0 in Iops view
70
Definition of the test types are:

16MB: Sequential Read/Write Test (Block Size = 16MB)

512B:Random Read/Write Test (Block Size = 512B,Number of threads =1)

4k: Random Read/Write Test (Block Size = 4KB, Number of threads=1)

4k- 64 Thrd: Random Read/Write Test (Block Size = 4KB ,Number of threads
= 64)
AS SSD software takes same set of steps carried out during bandwidth test for this
test as well.
Following is the screenshot of the RAID 1 tested using AS SSD [4] in
Input/outputs per second perspective.
Figure 31: Result of AS SSD with RAID 0 Iops view
71
From figure 30 and figure 31, the value of sequential read /write Inputs/outputs
per second and random read/write Inputs/outputs per second of the RAID 0 is nearly
twice the values of RAID 1. This is because of the increased read and writes performance
in the RAID 0 due to its building type while creating the RAID level which is striping.
Whereas, RAID 1 has a building type of mirroring while creating the RAID so each write
operations is completed only when the data is written on all the drives . There is no much
difference in the values of Random read/write operations with a single thread because of
using single thread; it restricts the RAID 0 to act nearly same as RAID 1. Figure 30 and
figure 31 shows another performance metric to prove that RAID level 0 has better read
and write performance than RAID level 1.
5.4.5 Comparison of RAID 0 and RAID 1 Copy benchmark results
RAID tool provide a way to check the performance of the RAID levels by testing
with the perspective of the operation that user wants to handle. If a user wants to decide
on selecting the RAID level based on his file transfers, he can select the Copy benchmark
of AS SSD [4] software to know the result.
To explain further, RAID level 0 is created from the RAID Tool on the drives and
tested using the AS SSD software [4]. Following is the screenshot of the result.
72
Figure 32: AS SSD Copy benchmark result with raid 0
The test type definitions:



ISO- Large program files
Program – small program files
Game – Files producing more requests
These different test types gives an idea to user about the specific test carried out .If an
user is working in the environment where he needs to access a large files he should create
a RAID level that gives a higher bandwidth value in ISO test .If he works in an gaming
environment, he should create a RAID level which produces higher value in Game test.
Program test gives the result of the small file transfer.
Following is the screenshot of the RAID 1 tested using Copy benchmark of AS SSD[4].
73
Figure 33: AS SSD Copy benchmark result with raid 1
From the figure 31 and figure 31, RAID level 0 has higher read/write performance
in handling large files and the files that require fast response . This is because the read
and write request of the RAID 0 is processed by multiple disks in parallel making it more
faster when compared to the RAID level 1 which happens to process its requests only by
one drive in the array. This structural difference of striping provides better performance
than the mirroring.
Same set of bandwidth values for read and write operations are obtained running
the disk wriggler [5] software. The additional feature in disk wriggler software is it
displays the result in the number of frames transferred during each read and write
operation .Result of the disk wriggler is stored in text file .
74
5.5 Comparison with Other tool
When comparing RAID Tool with the Maxview storage manager, It provides an
equally efficient way for maintaining RAID features like RAID creation, RAID display,
RAID deletion, Creating partitions. But when the aspect of performance analysis is
considered, Max view manager doesn’t provide any feature to collect and compare the
performance result of the various RAID levels. The prior mentioned results from other
software integrated into the RAID Tool makes this tool as a special combination of
maintaining RAID and analyzing the performance of different levels. By considering
these favorable points, RAID Tool is very much useful for the performance testers when
compared to the Maxview storage manager.
75
6. CONCLUSION AND FUTURE WORK
RAID Tool is created to ease the work of performance level testers working with
RAID controllers. Different RAID levels are created by the tool .Performance result of
specific RAID level is produced and stored in the specified directory. Screenshots were
added to the result. Tutorials of different levels are displayed to give the clear picture
about the working of the RAID levels for users. This tool helps the beginners to get a
clear picture about the working of RAID in actual physical disks. This tool is complete
software for the performance testers to create, learn and test the RAID properties.
Future Enhancements for RAID Tool:
Firstly, adding more software into the RAID tool to analyze different perspective
of performance behavior of various RAID levels.
Added to that, the tutorial part of the RAID Tool can be improvised with
including the animation.
76
BIBLIOGRAPHY
[1] The Wikipedia link for RAID and RAID levels [Online]
http://en.wikipedia.org/wiki/RAID
[2] Concepts of RAID and Steps to build a RAID , The RAID book a storage system
technology handbook by Paul Massiglia
[3] Crystal Disk Mark Software
http://crystalmark.info/software/CrystalDiskMark/index-e.html
[4] AS SSD benchmark Software
http://www.majorgeeks.com/files/details/as_ssd_benchmark.html
[5] Disk Wriggler Software
http://freecode.com/projects/diskwriggler
[6] Python tutorial for deployment of tool
https://docs.python.org/2/tutorial/
[7] Pywinauto tutorial for deployment of automation of software
http://pywinauto.googlecode.com/hg/pywinauto/docs/getting_started.html
[8] Tkinter tutorial for creating the Graphical User Interface
http://www.tutorialspoint.com/python/python_gui_programming.htm
[9] Online link to Operating System Concept Animation Library, from Dr. Du Zhang.
California State University, Sacramento [Online]
http://gaia.ecs.csus.edu/~zhangd/oscal/oscal.htm
[10] Maxview Storage manager, related software.
https://www.adaptec.com/en-us/products/maxview/
77
[11] RAID Creation and RAID properties from Adaptec by PMC
http://www.adaptec.com/en-us/search.html?q=skip
[12] AS SSD Total score calculation
http://ssd.userbenchmark.com/Faq/How-is-the-AS-SSD-total-score-calculated/37
[13] AS SSD Read score calculation
http://ssd.userbenchmark.com/Faq/How-is-the-AS-SSD-read-score-calculated/37
[14] AS SSD write Score calculation
http://ssd.userbenchmark.com/Faq/How-is-the-AS-SSD-write-score-calculated/37
[15] Performance difference in read and write of RAID levels
http://www.diffen.com/difference/RAID_0_vs_RAID_1#Performance
[16] Random reads vs. random writes
http://encode.ru/threads/1285-Random-reads-vs-random-writes
[17] Scaling in 4k random reads/write with single thread
http://forums.anandtech.com/showthread.php?t=2074803\
[18] Understanding of RAID levels
http://www.ni.com/white-paper/7665/en/
[19] Write assist disks to avoid the bottleneck situations while building RAIDS
http://publib.boulder.ibm.com/iseries/v5r1/ic2924/index.htm?info/rzaix/rzaixwad.htm
[20] Sequential access vs. Random access.
http://technet.microsoft.com/en-us/library/cc938619.aspx