Two principal software models are used in clustering today: shared disk and shared nothing. In the shared disk model, software running on any node in the cluster may access any disk connected to any system in the cluster. If two systems need to see the same data, the data must be read twice from the disk. The disk is mounted by both systems and access is synchronized through distributed locking.
The shared disk model is effective in reducing the required number of expensive peripheral devices and enables individual computers to access data stored in a shared-disk database management system. However, access to the shared device can limit system scalability. Shared-disk databases, for example, cannot grow beyond a certain size because of the overhead needed to coordinate access to the shared disks from many processors.
In the shared nothing model, systems share neither memory nor devices. Cluster Server uses the shared nothing model. Each system has its own memory, operating system, and subset of the cluster's resources. Only one system may own and access a particular resource at a time, although, on failure, another system may take ownership of the resource. Requests from clients are automatically routed to the system that owns the resource. Connections between systems are optimized because messages are passed across a high-speed, dedicated bus. Each system within the cluster owns a subset of the cluster's resources.