Storage Management in the Cloud with QoS Application Design Document
description
Transcript of Storage Management in the Cloud with QoS Application Design Document
Storage Management in the Cloud with QoS
Application Design Document
Gal LipetzNetali AlimaChen AckermanShimi Malka
VisionThe goal of our project is to provide
performance management for enterprise disc arrays taking into account QoS specifications.
System Architecture
Data Model
Use Case: Gengerate Query
Behavioral Analysis
Algorithm Sequence Diagram
Object-Oriented Analysis
Packages Header Files – Includes all of the h files that contain the
system’s actions and activities, such as the parser, the algorithms, the correlation calculations etc.
Source Files – Includes all of the cpp files that contain the system’s actions and activities.
Header System Objects – Includes all of the system’s data objects h files, such as the extents, LUNs, etc.
Source System Objects – Includes all of the system’s data objects cpp files.
Gui - Includes all of the system’s Interface classes.
Resource Files – Includes the configuration and input files.
Main Classes Parser – Responsible for parsing the input
files. Writer – Responsible for creating relevant
data into output files. Sorter – Responsible for all sorting algorithms
used in the data placements algorithms. SystemView – All of the system’s parameters
are saved in this class.
Main Classes Cont… LunsCorrelation – Calculates the similarity between
LUNs. TimeSliceCalculations – Calculates the response
time and damage for each LUN, for the current time slice.
OptimalAlgo – The optimal data placement algorithm, used for comparisons with other algorithms.
NextAlgo – A data placement algorithm in which memory assignment is based on previous time slices.
Main Functions Algorithm: runAlgo()
Precondition : SystemView object and all DeviceData objects were created. Postcondition : The algorithm’s hit ratio, all of the devices’ utilizations, and all LUNs’ response times for each time slice were calculated.
DeviceData: calcUtilization ()Precondition : All trace data was parsed and one of the algorithms started running.Postcondition : All of the three DeviceData objects contain the new utilization for the device.
LunTimeStatistics: responseTime() Precondition : The LUN’s extents’ device placements were calculated. Postcondition : the response time for the current time slice was updated.
System States
Input Files
Data Desired
Gui
Parse Input
Get Data
Run Algorithm
Simulate
Main Menu
Solve Query
Results
QoS InputQuery
Ask Query Device Allocation
Parse Data
Device Groups
Store Data
Solve Algorithm
Result QoS Input
Algorithm Rules and Decisions
Parsed Data
Data Desired
Algorithm Chosen
User Interface Draft
Testing
Data Simulator Simulates data from the machine. Receives parameters and creates a data file with the
desired characteristics. Using the parameters we can calculate what the
system’s outcome should be and verify the correctness of our system.
Real Data System runs with real data. System completes tasks without errors. Results required are shown and relevant graphs created.
Non Functional Requirements Testing Speed
Algorithm Simulation and parsing completes in under 12 hours.
Queries give an answer after 2 minutes.
Reliability When using simulated data the system’s outcome will always
as predicted.
Platform Constraints Input files – Does not crash with incorrect input format. Output files – Output is received in the required format with
the relevant graphs.
Task List
1. Complete models, including priorities2. Add damage calculations and graphs3. Calculate System Size4. Optimize Algorithms5. Optimize Parsing and Memory Usage6. Implement Additional Algorithms7. Test all logics in the project 8. Create and test GUI 9. Draw conclusions and derive recommendations