Clustering is a way to provide high availability to your SQL Server instance and its databases. It does this by providing a level of fault tolerance on the physical server hardware upon which SQL Server resides.
Clustering in Windows and with SQL Server 2012 is primarily designed around high availability rather than scalability. (Although you can get some scalability from the use of Read Only AlwaysOn, which is built on top of Windows Clustering.) So what is high availability and what is scalability?
High availability provides you with levels of redundancy to increase SQL Server's uptime. Although uptime of 100% is highly desirable, this is virtually impossible. Some level of downtime is required to perform certain tasks such as server or database patching, and there is always the chance of hardware problems that would impact that uptime number. A high number uptime number would be the oft quoted “five nines.” This is an actual uptime of 99.999% over the course of a year. That means your SQL Server would need a total downtime not exceeding 5.26 minutes. Only having downtime of five minutes in a year is a huge challenge. Frequently, larger servers with a lot of memory can take that amount of time just to reboot once. If you had regular patching that required reboots, there is no way to achieve that number. This is where clusters can assist in greatly reducing that downtime.
In a simple cluster you may have only two physical ...