Microsoft has an excellent new white paper on SQL Server 2005 Failover Clustering. Failover clustering is a tried and true technology that uses shared storage (usually a SAN) between two or more SQL Server nodes (on different physical servers). Two weaknesses with this approach are that the SAN becomes a single point of failure, and that failing over from one node to another (for scheduled maintenance, for example), can take one to two minutes on a busy cluster. This makes it much more difficult to achieve "five nines" availability, since just applying monthly Microsoft security patches onto each node and then failing over will quickly eat up your six minutes per year of down time.
An alternative that some companies are starting to use is database mirroring instead of clustering. With database mirroring, you are mirroring at the database level, not the instance level. You have a principal database and a mirror database, each running on a different server, with its own dedicated storage. This eliminates the single point of failure of the shared storage, and also gives you the ability to failover in 10-15 seconds. The downside is that you need twice the storage space, and twice the SQL Server licences (unlike active/passive failover clustering, which does not require licenses for the passive node). It also requires a third server to be the Witness server if you want to run in Synchronous mirroring mode with automatic failover. The witness server can run SQL Server Express Edition and can be a low-end server, which can help on the cost front.
Technorati Tag: SQL Server