Windows Network Load Balancer
Product description
Network Load Balancing (NLB) is an optional feature in Windows Server® OS that load balances network traffic (sent to a cluster virtual IP address) among multiple servers in an NLB cluster. NLB is particularly useful for ensuring that stateless applications, such as a Web server running Internet Information Services (IIS), are scalable by adding additional servers as the load increases.
Load Balancer Model
As we have load balancer service running on the same host that application we can represent model like Cluster. Additional details of Cluster we represent like Cluster Member and Cluster Service.
A ClusterSetting is modeled as a Cluster.
A NodeSetting and Node are modeled as a ClusterMember.
A PortRuleEx is modeled as a Cluster Service.
Supported portRuleState:
- NOT FOUND
- ENABLE
- DISABLE
- DRAINING
Supported portRuleProtocol:
- TCP
- UDP
- TCP/UDP
Supported nodeStatus:
- STOPPED
- CONVERGING
- CONVERGED
- DEFAULT
- DRAINING
- SUSPENDED
Modeled Components
Cluster
The pattern creates a Cluster with the following attributes:
Attributes | Value |
|---|---|
type | A Cluster type |
name | Microsoft Network LoadBalancer %Cluster_name% running on %Cluster_IP% |
short_name | MS NLB %Cluster_name% %Cluster_IP% |
cluster_name | A ClusterSetting Name |
key | A hash of the Cluster IP and Cluster type |
The pattern models a containment relationship between the Host and the Cluster.
ClusterMember
The pattern creates a ClusterMember with the following attributes:
Attributes | Value |
|---|---|
key | A hash of the Cluster Member Name and Cluster key |
name | Cluster Member IP %cl_member_ip% priority %cl_member_priority% |
type | Cluster Member type. |
instance_id | NodeStettings Name |
ipv4_addrs | IPv4 address from the NodeSetting |
ipv6_addrs | IPv6 address from the NodeSetting |
description | “Node in Microsoft NLB” |
status | Status of the Node |
cluster_priority | Priority of the Node |
The pattern models a containment relationship between the Cluster and the ClusterMember.
The pattern also models a relationship between the Host and a ClusterMember.
ClusterService
The pattern creates a ClusterService with the following attributes:
Attributes | Value |
|---|---|
key | A hash of the Port Rule Name, Ports and Cluster key |
name | Protocol %cl_service_protocol% ports %start_port%-%end_port% |
status | Port state from PortRuleEx |
ipv4_addrs | IPv4 address from the ClusterService |
ipv6_addrs | IPv6 address from the ClusterService |
listening_ports | Ports listening by Cluster |
The pattern models a relationship between the ClusterMember and the ClusterService.
The pattern also models a relationship between the Cluster and a ClusterService.