A high-performance storage system is part of a larger compute resource. Such a compute resource is generally a cluster of compute nodes connected by a high-speed network to a group of disks that provide long-term storage for data. Applications running on one or many compute nodes either use data (input) or generate data (output). The disks storing this data are generally organized in groups and served by one or more servers. Various architectures connect the hardware components in different ways and provide different software mechanisms for managing the data and access to it. The designer planning the storage system for such a compute resource has the task of identifying the general structure of the storage system, specifying the components that will go into that general structure, and determining how those components will interact with the compute and network components.