The following scenarios do not cover whether or not to use Windows Server Standard or Enterprise or SQL Server Standard or Enterprise. However, for most scenarios, Windows Server Std will suffice for the web front ends and the application servers. Windows Server Enterprise is required on the backend if you need a failover cluster. Standard only supports NLB clustering and Enterprise is required to use failover clustering. As for the DB servers, this really depends on how much you will need to scale moving forward. This article is a good resource for comparing SQL Server versions: http://goo.gl/5Awry

FAST requires additional licenses for the FAST Search Server 2010 for SharePoint.*For virtualization of SQL Server – Only active nodes in a cluster require a SQL Server license. For Standard, Workgroup, and Enterprise, if you decide to license on a per processor basis, you must buy a SQL Server license for each virtual processor. For Enterprise Edition, you can also choose to license all physical processors in a box. This gives you rights to run SQL Server on any number of virtual processors running on the same physical server. If you use Server/CAL based licensing, for Standard and Workgroup editions, you must obtain SQL Server licenses for each Virtual Operating System Environment on which you run instances of SQL Server. However, for the Enterprise edition, if you have a Server license for the physical Server, you may run any number of SQL Server instances in any Virtual Operating System Environment that you run on that same physical server. If you are using hardware partitioning on a multi-processor server, you can use any number of virtualized instances for SQL Server Enterprise Edition as long as all processors in that hardware partition are licensed. For example, if you have a partition of 10 physical processors on a 32-processor server, purchasing 10 processor licenses of SQL Server 2008 gives you the rights to run any number of SQL Server instances on physical or virtual environments on that partition.

Hi Ryan, Thanks for the comments. I started looking for my reference where I found that formula, and I was unable to find it. I believe I originally found it in a Microsoft SQL Server white paper, but since I was unable to find it, I did a little research. I need to thank you for posting the comment because Microsoft has the exact answer for SQL Server on the SQL Server licensing site and it is not what I had in my post. I linked to the site and updated the post. Basically, you have to license for each virtual processor if you are using the SQL Server processor model.

As for the second question, have you engaged Microsoft directly on that question or are you dealing with a LAR? I have verified this with a couple of LARs that I use, and I believe the license is required for any server running the SharePoint binaries (anywhere you installed it). You don't actually install the SharePoint binaries on SQL Server, so based on all of the information I have the SQL Servers do not need to be licensed for SharePoint, only the WFE and Application layer servers need a SharePoint license.

You are correct that the PDF you linked to is the original document I cited in my article. However, that PDF was published in April of 2010. If you go to the link I have in the article, it is up to date and says differently than the PDF does.

Carlos you are correct in that it is at the CAL level and not the server level. Look at the license formula difference for Std versus Ent on my post. The standard has SP2010 Server and Std CALs and the Enterprise has SP2010 server (same as std) and std + ent CALs.