Briefly, the present invention provides a system and method for distributing
SCSI semantics throughout a network. Specifically, the present invention distributes
the SCSI semantics through multiple parallel agents and a separate controller.
This configuration allows performance-sensitive distribution of SCSI semantics
to be parallelized and optimized for performance in the agents, while the control
and management of the SCSI semantics is centralized in the controller chosen for
optimal cost, management, and other implementation practicalities. In this design,
the SCSI semantics are stored in the controller, and portions of the SCSI semantics
are distributed to the mapping agents as cached, read-only information. The controller
is responsible for persistent storage of the SCSI semantics, thereby consolidating
the costs and management for the SCSI semantics in a single component. The agents
preferably do not interact with other mapping agents, thereby improving the scalability
of virtual storage systems and their tolerance of component failures. Within an
embodiment of the SCSI distribution system, key SCSI semantic information is distributed
to the agents while infrequently used semantic information is centralized in the
controller. Likewise, SCSI commands that cannot be processed by the agents may
be forwarded to the controller.