A hybrid centralized and distributed processing system includes a
switching device that connects a storage processor to one or more servers
through a host channel processor. The switching device also connects the
storage processor to one or more storage devices such as disk drive
arrays, and to a metadata cache and a block data cache memory. The
storage processor processes access request from one or more servers in
the form of a logical volume or logical block address and accesses the
metadata cache to determine the physical data address. The storage
processor monitors the performance of the storage system and performs
automatic tuning by reallocating the logical volume, load balancing, hot
spot removal, and dynamic expansion of storage volume. The storage
processor also provides fault-tolerant access and provides parallel high
performance data paths for fail over. The storage processor also provides
faster access by providing parallel data paths for, making local copies
and providing remote data copies, and by selecting data from a storage
device that retrieves the data the earliest.