A server system comprising: - a plurality of processing devices arranged to serve one or more services to one or more client systems via an external network ; - a plurality of storage devices for use by the processing devices to store data relating to said services; - a storage fabric connecting the processing devices to the storage devices, the storage fabric, processing devices and storage devices being arranged to operate according to a storage fabric protocol in order to communicate between the processing devices and the storage devices over the storage fabric, wherein the storage fabric is settable with a mapping determining which of the processing devices are allocated to use which of the storage devices in providing said services to the client systems; wherein the storage fabric comprises a plurality of individual logical switches , wherein the logical switches have individual configuration settings which between them define a mapping of processing devices to storage devices , determining which of the processing devices are allocated to use which of the storage devices; - a software control function configured to dynamically adapt the mapping in response to either: (i) failure or other downtime of one of the processing devices, storage devices, a component of the storage fabric or a connection in the storage fabric; or (ii) a current demand for said services from the client systems; characterised in that the server system further comprises an API operable to receive from the control function an overall indication of the mapping of the storage devices to the processing devices instead of requiring the individual configuration settings of each of the individual switches to be specified by the control function, the API being configured to convert the overall indication of the mapping into the individual configuration settings of the individual switches to produce said mapping. - a plurality of processing devices arranged to serve one or more services to one or more client systems via an external network ; - a plurality of storage devices for use by the processing devices to store data relating to said services; - a storage fabric connecting the processing devices to the storage devices, the storage fabric, processing devices and storage devices being arranged to operate according to a storage fabric protocol in order to communicate between the processing devices and the storage devices over the storage fabric, wherein the storage fabric is settable with a mapping determining which of the processing devices are allocated to use which of the storage devices in providing said services to the client systems; wherein the storage fabric comprises a plurality of individual logical switches , wherein the logical switches have individual configuration settings which between them define a mapping of processing devices to storage devices , determining which of the processing devices are allocated to use which of the storage devices; - a software control function configured to dynamically adapt the mapping in response to either: (i) failure or other downtime of one of the processing devices, storage devices, a component of the storage fabric or a connection in the storage fabric; or (ii) a current demand for said services from the client systems; <EOS>