Let The Network Load-Balancers Do The Job!
What is Network Load Balancing Service?
A Network Load Balanced cluster enables management of a group of independent servers as a single system for greater scalability and increased availability. Network Load Balancing can be used to implement enterprise-wide scalable solutions for the delivery of TCP/IP based services and applications. After implementation; it redirects traffic on a particular protocol so that the load between the servers is evenly distributed and no single server is burdened.
What is SQL Clustering Service?
SQL Cluster Service acts as a back-end cluster by providing high availability for critical applications as well as important databases. With SQL Cluster service, 2 servers (nodes) in a cluster remain in constant communication. If one of the two nodes becomes unavailable as a result of failure or maintenance, the second node immediately takes over the hosted services, a process known as 'failover'. In this setup, MSCS attempts to minimize the effect of failure on the system if any node (a server in the cluster) fails or is taken offline.
A cluster connects two or more servers together so that they appear as a single node to the users. Connecting servers in a cluster enables workload sharing, offers a single point of operation/management, and provides a path for scaling to meet increase in demand. Thus, clustering gives you the ability to host high availability applications with ease.
Hardware Configuration of the Cluster
- At least 10 IP addresses belonging to the same subnet.
- 2 Web Servers with Windows 2008 Web Edition with similar specifications.
- 2 SQL Servers with Windows 2008 Enterprise Edition with identical hardware.
- Microsoft SQL Server Standard Edition installed on both SQL Servers.
- iSCSI cards on SQL servers to attach the SAN partitions.
- 4 logical partitions on a SAN system attached in Active/Passive mode to both SQL Servers.
- 2 Ethernet NIC on all Servers.
- An internal LAN setup on second NIC between the Servers.
- NLB Cluster requires atleast 4 physical servers in order to get this setup running. 2 of these servers will run Windows 2008 Web Edition OS which will run IIS 7 under "Network Load Balance Cluster Service" while the other 2 servers will be MS SQL servers with Windows 2008 Enterprise Edition running "Windows Cluster Service."
- 2 major features that can be availed with Windows 2008 :
- It enables us to have more than one dedicated IP address on a single node.
- It provide in built Robust File Copy (robocopy) tool to copy data between the web servers.
How does NLB and SQL Clustering work?
Web Servers in NLB environment
- Two web servers are setup in Network Load Balancing (NLB) environment with 2 NIC cards on each.
- One NIC is configured as Public for external connections and other in an internal vLAN for internal connections, which is used to check availability of the Web servers as these are set up in Unicast mode.
- Both these servers send small packets to each other on private network in an interval to make sure that the web servers are available to accept the traffic, known as Heart Beat Method.
- Internal vLAN is used to replicate data from one web server to another using either Robust File Copy (robocopy) or rSync (a Linux utility).
- This allows high speed transfer and 0% packet loss while transferring data and above all it keeps the external connection free for the incoming traffic on the websites.
- Once the servers are setup in NLB, they share a virtual IP address on floating ARP (Address Resolution Protocol) between the nodes. So if we add an IP to one node in a Cluster, it will automatically get added to the Public NIC of other nodes. We can add multiple IPs for a cluster which can be further used to assign the websites.
SQL Cluster Service
- 2 SQL Servers are configured using Windows Cluster Service provided by Windows 2008 Enterprise edition. SQL Standard/Enterprise edition allows us to configure failover SQL cluster service.
- Both SQL Servers share a common storage space on a SAN (Storage Area Network) device attached using iSCSI cards, which stores the SQL server files as well as the databases.
- The network drive on SAN device is available on the active server only and as soon as the server running SQL service becomes unavailable for any reason, the other node in the cluster takes over the SQL service along with the network drive resulting in no downtime.
- These servers also share a common Virtual IP address for the SQL Server and the IP is assigned to the node that is running the SQL Service. The same IP should be used in the scripts to connect the SQL server.
- These servers also use the internal vLAN to check each other's availability in the cluster using the Heart Beat Method.
This entire cluster is protected with a set of IP Security Policies to make sure that the servers are secure and protected by any sort of network attacks.