Clustering combines multiple systems in such a way that they provide services a single system cannot. Clustering enhances higher availability, scalability, and management. Higher availability is achieved by using failover clusters, in which resources can automatically move between two or more systems in the event of a failure. Scalability is achieved by balancing the load of an application across several computer systems. Simpler management is achieved by using virtual servers, as opposed to managing each individual computer system.