Hi, although I don't have a complete detail pro vs con list, but this is the basic idea of how Clustering works. Through that you see advantage vs disadvantage.
On big enterprise applcation (say over 1k request at any given time), doesn't matter if you are running linux or what not, 1 box is not gonna be enough, you will need a copy of the same application on muplitple boxes to share the loads.
To share loads, we use "content switch"(like a router), all incoming request go through content switch and will route to the correct server to process the request.
With content switch you have a potential problem: when the first request we may be able to point the correct server, but from there, we won't know which server will take the second request.
One of the solution to solve that problem is call "stickines", meaning it force certain request back to the same server so you won't lost your stage of information (and the question goes back to which server takes which load, when, how?).
Another way to look at the same problem, is when using Session variable. Session is server specific. If we have 3 servers, server 1 have a session, server 2 and 3 won't have the same information. if Content switch doesn't support stickiness, you will lost session variable.
One way to solve it, is to have a central machine to handle sessions variables. Call "State Server", the problem with that is if State Server down, all your other applications wil be done all together.
Another way to solve the problem is to use Sql server to store sessions. sql server can run on cluster very easily, if 1 down, the next sql server can back up (assuming you have SQL servers mirror to each other).
On a hot live application, you probably want to keep the server up and serve applications to its users even when you are applying patch, upgrade, or maintence. You won't want have your users to wait til you are done before they go back to work (especially if that company don't pay for overtime ha!).
In summary of performance:
-The fastest performance is not using any session
-second fastest is InProc (Session within same server)
-Third faster is State Server
-And SQL server is slowest
Right there, without talking about the time and $ it takes to develop a application, just looking at the setup itself. if you got 6 machines, 4 is ASP.NET and 2 is SQL server. You are paying 6 windoze licenses and 2 sql lienses. (Thats why so many company are looking forward using MySql mirror)
I guess that's my briefing of "advantage" vs. "disadvantage".