For this problem, we used the following disks:
2.5"
IBM TravelStar 20GM
seek time: 12 ms
RPM: 4200
I/O Rate: 66 MB/s
price: $200
MTTF: 300000 (assumed)
3.5'
IBM DeskStar 75 GXP
seek time: 8.5 ms
RPM: 7200
I/O Rate: 100 MB/s
price: $375
MTTF: 1000000 (assumed)
From example in book:
CPU: 50,000 IOPS, $20,000 cost, 1,000,000 hr. MTTF
RAM: 50,000 IOPS,
I/O Bus: 31,250 IOPS (* .75 = 23437 IOPS)
SCSI: 2000 IOPS/controller or string ( * .4 = 800 IOPS), $500 cost,
with 1,000,000 MTTF for cable, 500,000 MTTF for controller
Enclosure: $1500 cost, with 200,000 MTTF for the power supply, 200,000
MTTF for the fan, and 1,000,000 MTTF for the enclosure
Assuming 80% disk use and 0ms controller overhead
IOPS Small Disk: .8 * 1/ (.012 + (.5 * 60 / 4200) + (32 KB / 66 MB/s)
+ 0)
= 40.7587 IOPS
IOPS Large Disk: .8 * 1/ (.0085 + (.5 * 60 / 7200) + (32 KB / 100 MB/s)
+ 0)
= 61.6016 IOPS
Small Disk Seek Utilization:
average seek time / average time between i_o
= average seek time/ (1/ IOPS)
=.012/(1/40.7587)
=49%
Large Disk Seek Utilization:
.0085/(1/61.6016)
=52%
The seek utilizations are well under the 60% requirement
for 1920 GB of storage, we need:
96 Small disks
26 Large Disks
maximum of 36 small disks/enclosure
maximum of 12 big disks/enclosure
each SCSI string supports 15 disks
We designed our system so that we have the same number of disks per
enclosure and the same number of disks per string. This
facilitates
orthogonal RAID arrays.
Rounding up the number of disks, we have:
small disks:
108 disks in 3 enclosures (36 disks per enclosure)
each enclosure has three SCSI strings, (12 disks per string)
For redundancy, we add an extra enclosure, with 36 disks and three
SCSI
strings
large disks:
27 disks in 3 enclosures (9 disks per enclosure)
each enclosure has one SCSI string, (9 disks per string)
For redundancy, we add an extra enclosure, with 9 disks and one SCSI
string
the IOPS for this system:
(NOTE: The IOPS figures don't include the extra enclosure worth of
disks; We figure that these are not used in processsing new I/O
requests).
small disks:
108 * 40.7587 = 4402 IOPS for the disks in total
800 * 9 = 7200 IOPS for the SCSI Controllers in total
IOPS of system = min(IOPS of CPU, IOPS of RAM, IOPS of I/O Bus, IOPS
of Controllers Total, IOPS of disks total)
IOPS of system = min(50000, 50000, 23437, 7200, 4402) = 4402 IOPS
large disks:
27 * 61.6016 = 1663 IOPS for the disks in total
800 * 3 = 2400 IOPS for the SCSI Controllers in total
IOPS of system = min(IOPS of CPU, IOPS of RAM, IOPS of I/O Bus, IOPS
of Controllers Total, IOPS of disks total)
IOPS of system = min(50000, 50000, 23437, 2400, 1663) = 1663 IOPS
The disks are the bottleneck in both systems , so we don't have
to worry about adding more SCSI controllers to show alleviate a SCSI
controller/string bollteneck.
costs:
(Costs do reflect the extra enclosure)
small disks:
20000 + 36*4 * 200 + 12 * 500 + 4 * 1500 = $60,800 total
60,800/4402 = $13.81 per IOPS
large disks:
20000 + 9*4 * 375 + 4 * 500 + 4 * 1500 = $41,500 total
41500/1663 = $21.47 per IOPS
Thus, the small disk configuration has better total performance, and
its
cost per IOPS is lower than the large disk configuration.
Reliability:
failure rate of 1 enclosure: 1/MTTF(encl.) + 1/MTTF(fan) +
1/MTTF(power supply) + number of disks in encl./MTTF(disks) + number
of
controllers in encl./MTTF(controllers) + number of strings in
encl./MTTF(strings)
MTTF of 1 disk enclosure: 1/failure rate(enclosure)
MTTDL(system) = MTTF(1 enclosure)^2 / (numEnclosures * (numEnclosures
- 1) * MTTR(1 enclosure)
We assume that the MTTR is 24 hours, and that losing the CPU will not
cause data loss
large disks:
failure rate for 1 large disk enclosure: 1/1000000 + 1/200000 + 1/200000
+
9/1000000 + 1/1000000 + 1/500000 = .000023
MTTF for 1 large disk enclosure: 1/.000023 = 43478 hours
MTTDL(large disk system) = (43478^2) / (4 * 3 * 24) = 6,563,700 hours
small disks:
failure rate for 1 small disk enclosure: 1/1000000 + 1/200000 + 1/200000
+
36/300000 + 3/1000000 + 3/500000 = .00014
MTTF for 1 small disk enclosure: 1/.00014 = 7143 hours
MTTDL(small disk system) = (7143^2) / (4 * 3 * 24) = 177,160 hours