Designing Reliable Large-Scale Storage Arrays