The guidance around where to create your pool and why can be quite confusing.
If you look at the OCS R1 requirements for deploying an Enterprise Pool, it tells you the following:
- If you are using a 32-bit version of SQL Server, log on to your Office Communications Server Back-end Database server as a member of the Domain Admins group.
- If you are using a 64-bit version of SQL Server, create the pool by using a computer with a 32-bit processor, such as the computer that you plan to use as the Front End Server. Log on to the 32-bit processor computer as a member of RTCUniversalServerAdmins and Domain Admins group and with user rights to create and modify SQL Server databases.
If you look at the OCS R2 requirements for deploying an Enterprise Pool, it tells you the following:
- If you are using a 64-bit version of SQL Server, log on to your Office Communications Server Back-end Database as a member of RTCUniversalServerAdmins and DomainAdmins group.
- If you are using a 32-bit version of SQL Server, create the pool by using the computer that you plan to use as the Front End Server. Log on to this computer as a member of RTCUniversalServerAdmins and Domain Admins group and with user rights to create and modify SQL Server databases.
As you can see, it’s a complete 180 between R1 and R2. To make it easier to digest, here’s an easier format to see what you should do:
OCS R1 with SQL 32-bit – Create Pool on SQL
OCS R1 with SQL 64-bit – Create pool on OCS FE
OCS R2 with SQL 32-bit – Create Pool on OCS FE
OCS R2 with SQL 64-bit – Create Pool on SQL
The reason why it’s a complete 180 is because Microsoft wants you to run the installer on the native platform of the installer. OCS R1 is 32-bit so you always want to run the installer on a 32-bit machine. OCS R2 is 64-bit so you always want to run the installer on a 64-bit machine.
But the million dollar question is, is it really necessary to run it from the Backend? Does that mean you have to insert your OCS CD, install .Net Framework, Visual C++, etc…. Well, you could, but you can use LCSCMD to configure your pool instead. LCSCMD is on your CD and you can just open a cmd prompt, navigate to your cd-rom, and run the LCSCMD command with the appropriate settings to configure your pool without needing to install at the tools the installer GUI would require. LCSCMD would also bypass the requirement from running the installer on the same processor platform (x86/x64.) You can refer to the following article here for information on how to use LCSCMD to create an Enterprise Pool.
But, that doesn’t really explain why it is recommended running it on the Backend. After talking with Ken Alverson from Microsoft about this, I learned a few things. The reason they recommend to create the pool on the SQL Server is to minimize the possibility of firewall/permissions from interfering. The Create Pool requires access to both SQL as well as WMI. You can technically open up all the ports to SQL as well as WMI and run Configure Your Pool from your OCS Server. This is what I did but instead of opening it completely, I ran Network Monitor to determine what ports to open. You could also disable your Windows Firewall on your SQL Server to ensure access to your SQL Server. Never disable the firewall service on Server 2008 as this disrupts proper communication. Either turn the firewall off or go into the advanced firewall in the administrative tools and open everything up.
So in short, you have the following options with OCS R2:
- Turn off firewall on SQL (don’t disable firewall service) and install from OCS Server (lowers security but easiest to do.) After the pool is created, you can re-enable your firewall as long as you follow the OCS documentation (installation guide for Enterprise Edition) and open the necessary ports.)
- Allow SQL Ports and WMI to traverse SQL Firewall (more secure than #1 but less easy to do)
- Run Create Pool from SQL Server via the GUI Installer (more secure than #1 and #2 but not an option I like due to it installing GUI prerequisites)
- Run Create Pool from LCSCMD via the CD which will install a SQL prerequisite I believe (most secure option but requires knowledge of the LCSCMD command.) You can refer to the following article here for information on how to use LCSCMD to create an Enterprise Pool.
I would appreciate if readers can make a quick comment on what method you use.