The company I work for has implemented Microsoft Exchange Server 2013 and Microsoft Lync Server 2013. To complete the Unified Communication Collaboration enviroment, I was asked to setup a Microsoft Sharepoint Server 2013 environment. To quote Jeremy Clarkson from TopGear:
How hard can it be?
It's not that hard to setup, but you have to read and re-read various Technet articles to have a mental picture of the whole Sharepoint Server 2013 architecture. This blogpost aims to help fellow Sharepoint Server administrators/consultants to implement a Highly Available (HA) Sharepoint Server 2013 environment.
The business provided me with the following requirements:
- The Sharepoint Server 2013 infrastructure must sustain a server failure in either the SQL Server Back-End or in the Sharepoint Server Front-End. Two servers are allowed to fail.
- The SQL Server backend must continue to work without intervention from a system administrator, in case of a failure.
- The Virtual Machines (VMs) need to run on top of VMware ESXi 5.1.
- This Sharepoint Server 2013 greenfield implementation must support the following applications: Anywhere365 and Microsoft Project Server 2013.
- Claims-based authentication need to be used by default.
- The Sharepoint Server 2013 and thus the SQL Server 2012 environment must be backed up with Veeam B&R.
The business provided me with the following resources:
- 4 Virtual Machines (VMs) with the following specifications:
- 4 vCPU's,
- 12GB of memory.
- I was allowed to size the harddisk capacity for each server.
- 4 Microsoft Windows Server 2012 Standard licenses
- 2 Microsoft Sharepoint Server 2013 Enterprise licenses
- 2 Microsoft SQL Server 2012 Enterprise licenses
- Plenty of storage capacity on the Storage Area Network (SAN)
- 32 hours (4 working days) to complete this setup.
That's basically it.
Now, let's proceed to guide you through setting up a Microsoft SQL Server 2012 AlwaysOn Cluster for Sharepoint Server 2013/any other application.
Part one – Prepare the VMs with Windows Server 2012
I had the pleasure to install Microsoft Windows Server 2012 Standard on four Virtual Machines (VMs). You might be thinking: "Why use Windows 2012 Standard instead of Datacenter?". In the documentation of Microsoft SQL Server 2012, you'll find that Windows Server 2012 Standard is fine for hosting a SQL Server AlwaysOn setup. Back in the Microsoft SQL Server 2008 days, you had to use a few enterprise licenses of Windows Server 2008, in order to setup a SQL cluster. This requirement has been dropped in Microsoft SQL Server 2012 and you can use Windows Server 2012 Standard. This saves your IT manager a few bucks.
Installing Windows Server 2012 inside VMs is child's play. After installing Windows Server 2012, I have applied all Windows Updates and a few critical hotfixes.These hotfixes are needed for a smooth operation of the Failover cluster role in Windows Server 2012.
These are the hotfixes that you might need to install on your windows 2012 servers that will participate in the AlwaysOn cluster:
Before installing the above hotfixes, I installed a few roles on both servers with this PowerShell Cmdlet:
Add-WindowsFeature Application-Server,Web-Server -IncludeAllSubFeature
After you have completed this installation of roles, you can proceed to join the server to your company's Active Directory.
Once you joined the servers that will host SQL Server 2012 onto your domain, you must reserve 4 internal IP adresses for your SQL Server Cluster. In my case, I'm planning on using two servers for the SQL Server AlwaysOn setup.
You'll need 1 IP address for each server participating in the AlwaysOn cluster and 1 IP address for the Failover clustering network. The last internal IP-address will be used by the AlwaysOn listener.
Part two – Installing SQL Server 2012 Enterprise
Because we want AlwaysOn, we need to pay for it. AlwaysOn is a feature found only in SQL Server Server 2012 Enterprise.
Other versions of SQL Server 2012 do not have this feature!
Let's start first by mounting the ISO into our Virtual Machine (VM). Once the iso file has been mounted, you can start the SQL Server 2012 Setup Wizard. The SQL Server Setup Wizard will conduct a pre-flight check before continuing with the phase of the setup. If the SQL Server Setup Wizard pre-flight check passes, you must type in your product key and accept the license terms. After clicking on the "Next >" button you can proceed to choose the options that you want on your SQL Server installation:
In my case, I decided to install all features of SQL Server 2012. Now, let's continue with the rest of the installation:
I decided that I want to use a Named instance, because this SQL Server AlwaysOn cluster will host many more instances and I want to keep things separated from each other.
At this part of the setup I choose Windows Authentication mode as the authentication mode. I add a security group that I just created for this purpose. IMHO, domain admins are not database administrators (DBAs)! Once you are finished with adding the correct security group, you must proceed to the "Data Directories" tab. Here you will split the SQL Server database files from the log files.
Microsoft and a lot of DBA's around the globe, recommend to keep log files (.ldf) on a different partition than the SQL database files (.mdf). Please excuse my screenshot. On the actual setup I have separated the logs and the database files.
After setting up the correct partitions for your log files and database files, you can click on the "FILESTREAM" tab. It should look like this:
The same recommendations can be applied here. Add a security group instead of a single user and use different partitions to host the files that Analysis Services will use.
At this point I select "Install and configure"
You can use the default settings.
We are done configuring the initial setup of SQL Server 2012. Click on "Finish" and watch the progress bar completing. In a few minutes you will have a working SQL Server 2012 setup.
You must repeat this installation sequence on the second/third/fourth SQL server that will join the AlwaysOn group.
When ready, please install ServicePack 1 and CU6 for SQL Server 2012 with ServicePack 1. CU6 contains a fix for a memory leak problem in SQL Server 2012 with ServicePack 1 when deployed in an AlwaysOn group.
I hope this first part of this blogpost server has helped you to install SQL Server 2012 Enterprise on one or more servers. The setup process is quite easy if you are planning to host an AlwaysOn group. In the second blogpost I will guide you through the setup of your first AlwaysOn group. I will explain the pitfalls that I have encountered during my first AlwaysOn setup. The deployment of an AlwaysOn environment is quite easy, once you know how to do it. I'm here to help you along and to spare you countless hours of reading and troubleshooting.