Description: Posting answers to practice questions of EMC ISM V2 book.
Question:1 An application specifies a requirement of 200 GB to host a database and other files. It also specifies that the storage environment should support 5,000 IOPS during its peak workloads. The disks available for configuration provide 66 GB of usable capacity, and the manufacturer specifies that they can support a maximum of 140 IOPS. The application is response time sensitive and disk utilization beyond 60 percent does not meet the response time requirements. Compute and explain the theoretical basis for the minimum number of disks that should be configured to meet the requirements of the application
Answer The following details can be obtained from the given question.
1) Application requires 200 GB storage capacity.
2) At its peak load, the application can generate 5000 IOPS
3) The available disks capacity is 66 GB
4) The disks can support 140 IOPS as per manufacturer
We need to plan a work around to meet application capacity requirement, its IOPS requirement, and also the application should get good IO response.
To meet application storage capacity 200 GB, we can use 4*66 GB Hard drives which can give 264 GB usable capacity.
But 4 disks can give 560 (4*140) IOPS only.
The application generates 5000 IOPS, to meet this we need 36 (5000 (required IOPS)/140 (disk IOPS)) disks.
But application is response time sensitive, and the given 140 IOPS per disk is at 100% Utilization.
If the disk are 100% utilized the response time will be low, and application response time will be good at 60% of disk utilization only.
So Disk IOPS at 60% utilization will be 60% of 140 = 84 IOPS.
To meet 5000 IOPS of application we need 60 (5000 (required IOPS)/84 (disk IOPS)) disks. (rounded to nearest value)
To get required disk to meet application storage capacity of 200 GB and 5000 IOPS we need to use maximum of (Dc, Di) formula.
Dc = Disk capacity
Di = Disk IOPS
Dc = 4 disks
Di = 60 disks
Maximum(Dc, Di) = Maximum(4, 60) = 60
From the above analysis it is arrived that we need 60 disk to meet the application requirement in terms of its capacity, IOPS & response time.
Question:2 Which components constitute the disk service time? Which component contributes the largest percentage of the disk service time in a random I/O operation?
Answer Disk Service time (Ts) can be calculated using its Rotational Latency (L), Average Seek Time (T) and Internal Data Transfer Time (X).
i.e Ts = L + T + X
Hence the components of Disk Service Time are Disk Rotational Latency, Average Seek Time and Internal Data Transfer Time.
In random I/O operation seek time will be high, as the R/W head to seek different sectors on different tracks on the platter to read/write an I/O to/from disk.
So Seek Time contributes largest percentage of the disk service time in a random I/O operation.
Question:3 The average I/O size of an application is 64 KB. The following specifications are available from the disk manufacturer: average seek time = 5 ms, 7,200 RPM, and transfer rate = 40 MB/s. Determine the maximum IOPS that could be performed with this disk for the application. Using this case as an example, explain the relationship between disk utilization and IOPS.
Answer The below details are given in the question.
I/O Size = 64 KB
Average Seek Time (T) = 5 ms
RPM = 7,200 RPM.
Disk Transfer Rate = 40 MB/s
RPS = 7200/60 = 120.
Average Rotational Latency (L) = 0.5/120 = 4.16 ms
Internal Transfer Rate (X) for the given I/O size 64 KB is 64/(40*1024) = 64/40960 = 0.00156 seconds = 1.56 ms
So it needs 1.56 ms to transfer 64 KB size IO.
To calculate IOPS, we need to calculate Disk Service Time (Ts)
Ts = T+L+X = 5 ms + 4.16 ms + 1.56 ms = 10.72 ms
So the disk service time to server an IO with 64 KB size is 10.72 ms.
If it can server 64 KB IO in 10.72 ms, how many 64 KB IOs it can process per second ?
The answer is: IOPS = 1/Ts = 1/10.72 ms = 1000/10.72 s = 93.28 Seconds.
So the disk can serve 93.28 "64 KB" IO Operations per second at 100% disk/controller utilization.
If the disk is at 100% utilization the response time for application will become low.
The response time, disk utilization & Disk service time will have the below relation.
Average Response Time (Tr) = Disk Service Time (Ts)/(1-Utilization)
Tr = Ts/1-U
If the disk utilized at 60%, the average response time will be
Tr = 10.72 ms/1-60% = 10.72 ms/1-0.06 = 10.72 ms/0.94 = 11.4 ms
So average response time at 60% disk utilization is 11.4 ms.
If the disk is 100% utilized the response time will be infinite, and the I/O need to wait in the queue for infinite time. It is explained below.
Tr = 10.72 ms/1-100% = 10.72 ms/1-1 = 10.72 ms/0 = infinite
Below graph represents the relationship between Response Time (Tr) and Utilization (U)
Question:4 From the above question based on the calculated Disk Service Time (Ts) plot a graph showing response time versus utilization, considering the utilization of I/O controller at 20%, 40%, 60%, 80% and 100%. Describe the conclusion that could be derived from the graph.
Answer Before plotting graph, let us derive Response time values using the Disk Service Time (Ts) derived from Question 3 at 20%, 40%, 60%, 80% and 100% utilization of I/O controller.
Response Time (Tr) at 20% I/O controller utilization: Ts/(1-u) = 10.72 ms/(1-0.2) = 10.72/0.8 = 13.4 ms
Similarly, at 40% Tr = 17.87
at 60% Tr = 26.8
at 80% Tr = 53.6
at 99% Tr = 1072 ms
at 100% Tr = 10.72/0 = Infinite.
Now let us plot a graph using the above values between Response Time and Utilization.
Since at 100% utilization the response time is infinite, we have used 99% utilization in the graph.
The conclusion we can derive from the above graph is, if more the IO Controller utilization is more the response time.
If more the response time, the respective application performance will be drastically decreased.
We need to make sure I/O Controller is less utilized to get better I/O response time for application.
Question:5 An application has 1,000 heavy users at a peak of 2 IOPS each and 2,000 typical users at a peak of 1 IOPS each. It is estimated that the application also experiences an overhead of 20 percent for other workloads. The read/write ratio for the application is 2:1. Calculate RAID corrected IOPS for RAID 1/0, RAID 5, and RAID 6.
Answer First let us calculate total IOPS the application generates.
1) It has 1000 users who generates 2 IOPS each so total will be 2000 IOPS
2) It has 2000 users who generates 1 IOPS each so total will be 2000 IOPS
3) Total IOPS the application generates are (from 1 & 2) 4000 IOPS
3) Since the application also has an overhead of 20 percent of other work loads the total IOPS it generates will be 120% of 4000 IOPS i.e 4800 IOPS
So the total IOPS the application generates are 4800 IOPS
In these read/write ratio is 2:1 which will give 3200 Read IOPS and 1600 write IOPS.
Now to calculate RAID Corrected IOPS we need to multiply write IOPS with corresponding RAID write penalty value.
Write penalty for RAID 1/0 is 2, for RAID 5 is 4 and for RAID 6 it is 6.
So, the RAID corrected IOPS for different RAIDs to meet application generated IOPS are as below.
RAID 1/0 IOPS = 3200 Read IOPS + 2(1600 Write IOPS) = 3200+3200 = 6400 IOPS
RAID 5 IOPS = 3200 Read IOPS + 4(1600 Write IOPS) = 3200+6400 = 9600 IOPS
RAID 6 IOPS = 3200 Read IOPS + 6(1600 Write IOPS) = 3200+9600 = 12800 IOPS
Question:6 For Question 5, compute the number of drives required to support the application in different RAID environments if 10 K RPM drives with a rating of 130 IOPS per drive were used.
Answer We have RAID corrected IOPS to meet application generated IOPS at different RAID levels in the above answer.
In the question it is given that each HDD can serve 130 IOPS. For different RAIDs the number of required disks will be calculated as below.
RAID 1/0 IOPS is 6400, so total HDDs we need will be 6400/130 = 49.2 = 50 (rounding to nearest)
RAID 5 IOPS is 9600, so total HDDs we need will be 9600/130 = 73.8 = 74 (rounding to nearest)
RAID 6 IOPS is 12800, so total HDDs we need will be 12800/130 = 98.4 = 99 (rounding to nearest)