Thesis (Ph.D., Computer Science) -- University of Idaho, 2015 | Performability is the composite measure of performance and reliability. This measure is a vital evaluation method for fault-tolerant systems that can undergo a graceful degradation of performance in the presence of faults, allowing continued “normal” operation. Performability analysis is the study of the performance of systems under non-optimal conditions. The non-optimal conditions can be degraded, such as drive failure or with background tasks, such as background logical volume copy. The performability study of disk arrays is the study of a competitive challenge imposed to disk arrays. Now disk arrays are expected to guarantee low user latencies even under self-repairable failure conditions such as a disk failure and/or in the presence of background tasks such as data replication. Besides that expectation, the disk arrays are also expected to repair themselves and finish background tasks as quickly as possible. The two goals are opposing in nature. If the disk array allocates more of its resources to serve user requests, the self-repair and the background tasks take longer to be completed. But if the disk array allocates more of its resources to self-repair or the background tasks, the user requests will suffer a performance impact in terms of higher latencies or lower throughputs. This is a challenge that disk arrays have to meet in order to meet user expectations better. There is no perfect response to this challenge. The solution is to propose responses that optimize the use of the internal resources of a disk array. The problem of achieving the opposing goals is posed as a control problem and that is tackled by applying fuzzy logic and control. This dissertation makes two major contributions:
1) Performability analysis of disk arrays using fuzzy logic that provides us with a practical, easy-to-use, numerical algorithm to achieve consistently high performability based on the reliability metrics of a RAID disk group.
2) Fuzzy control approach to improve disk array performability that gives us a practical, effective, and easily-updated means to schedule the execution of customer requests and concurrent data protection tasks. This approach overcomes the lack of internal information of components by using a rule-based approach instead of a detailed control model.