Manual Chapter : 3-DNS Administrator Guide v4.1: Additional Load Balancing Options

Applies To:

Show Versions Show Versions

3-DNS Controller versions 1.x - 4.x

  • 4.1.1, 4.1.0
Manual Chapter


7

Additional Load Balancing Options



Configuring load balancing using specialized modes

The 3-DNS Controller offers many options for load balancing DNS queries to virtual servers. The specialized modes described in this chapter help you refine the 3-DNS Controller's load balancing capabilities. This chapter describes the following specialized load balancing modes:

  • Quality of Service
  • Global Availability
  • E-commerce

    You can use these performance-based load balancing modes within in a pool, or you can use them among pools. For example, you can use the Topology mode to load balance among your pools, but you can use the Quality of Service mode within the pools. These specialized modes help you refine the 3-DNS Controller's load balancing capabilities.

    In addition to the information in this chapter, Chapter 5, Load Balancing, in the 3-DNS Reference Guide, contains extensive details on all of the load balancing options for the 3-DNS Controller.

Setting up Quality of Service mode

The Quality of Service mode is a user-definable mode that includes a configurable combination of the Round Trip Time (RTT), Completion Rate, Packet Rate, Topology, Hops, VS Capacity, and Kilobytes/Second (KBPS) modes. The Quality of Service mode is based on an equation that takes each of these performance factors into account. When the 3-DNS Controller selects a virtual server, it chooses the server with the best overall score.

The Quality of Service mode has default settings that make it easy to use: simply specify Quality of Service as your preferred load balancing mode. There is no need to configure it, but if you want to change the settings, you can customize the equation to put more or less weight on each individual factor. The following topics explain how to use and adjust the various settings.

Understanding QOS coefficients

Table 7.1 lists each Quality of Service (QOS) coefficient, its scale, a likely upper limit for each, and whether a higher or lower value is more efficient.

QOS coefficients: Ranges and limits

Coefficient

How measured

Example
upper limit

Higher or lower?

Packet rate

Packets per second

700

Lower

Round trip time

Microseconds

2,000,000

Lower

Completion rate

Percentage of successfully transferred packets (0-100%)

100%

Higher

Topology

Score that defines network proximity by comparing server and LDNS IP addresses (0-232)

100

Higher

Hops

Number of intermediate systems transitions (hops)

64

Lower

VS capacity

Number of nodes up

20

Higher

Kilobytes/second

Kilobytes per second throughput

15000

Lower

If you change the default QOS coefficients, keep the following issues in mind.

  • Scale
    The raw metrics for each coefficient are not on the same scale. For example, completion rate is measured in percentages, while the packet rate is measured in packets per second.
  • Normalization
    The 3-DNS Controller normalizes the raw metrics to values in the range of 0 to10. As the QOS value is calculated, a high measurement for completion rate is good, because a high percentage of completed connections are being made, but a high value for packet rate is not desirable because the packet rate load balancing mode attempts to find a virtual server that is not overly taxed at the moment.
  • Emphasis
    You can adjust coefficients to emphasize one normalized metric over another. For example, by changing the coefficients to the values shown in Figure 7.1 , you are putting the most emphasis on completion rate.

    Figure 7.1 QOS coefficients emphasizing completion rate

     globals {    
    qos_coeff_rtt 20
    qos_coeff_completion_rate 100
    qos_coeff_packet_rate 50
    qos_coeff_topology 0
    qos_coeff_hops 0
    qos_coeff_vs_capacity 0
    qos_coeff_kbps 0
    }

    In the preceding example, if the completion rates for two virtual servers are close, the virtual server with the best packet rate is chosen. If both completion rates and packet rates are close, the round trip time (RTT) breaks the tie. In this example, the metrics for Topology, Hops, VS Capacity, and Kilobytes/Second modes are not used in determining how to distribute connections.

Customizing the QOS equation

You can customize the QOS equation globally, meaning that the equation applies to all wide IPs that use the Quality of Service mode. You can also customize individual wide IPs, in which case the global QOS equation settings are overwritten.

To modify global QOS coefficients using the Configuration utility

  1. In the navigation pane, click System.
    The System - General screen opens.
  2. On the toolbar, click Load Balancing.
    The System - Load Balancing screen opens.
  3. Define the global QOS coefficients in the Round Trip Time, Completion Rate, Hops, BIG-IP Packet Rate, Topology, VS Capacity, and Kilobytes/Second boxes.
  4. Click Update.

To modify QOS coefficients for a specific wide IP using the Configuration utility

  1. In the navigation pane, click Wide IPs.
  2. In the Wide IP column, click a wide IP name.
    The Modify Wide IP screen opens.
  3. On the toolbar, click Modify Pool.
    The Modify Wide IP Pools screen opens.
  4. In the Pool Name column, click the name of a pool.
    The Modify Load Balancing screen opens.
  5. Define the wide IP's QOS coefficients in the Round Trip Time, Completion Rate, Hops, BIG-IP Packet Rate, Topology, VS Capacity, and Kilobytes/Second boxes.
  6. Click Update.

To assign global QOS coefficients from the command line

  1. At the command prompt, type 3dnsmaint to open the 3-DNS Maintenance menu.
  2. On the 3-DNS Maintenance menu, select Edit 3-DNS Configuration to open the wideip.conf file.
  3. Locate or add the globals statement. The globals statement should be at the top of the file.
  4. Refer to the example syntax shown in Figure 7.2 to define a global QOS equation.

    Figure 7.2 Sample global QOS equation

     globals {    
    qos_coeff_rtt 20
    qos_coeff_completion_rate 5
    qos_coeff_packet_rate 3
    qos_coeff_topology 0
    qos_coeff_hops 0
    qos_coeff_vs_capacity 0
    qos_coeff_kbps 0
    }

To assign QOS coefficients for a specific wide IP from the command line

  1. At the command prompt, type 3dnsmaint to open the 3-DNS Maintenance menu.
  2. On the 3-DNS Maintenance menu, select Edit 3-DNS Configuration to open the wideip.conf file.
  3. Locate the wideip statement you want to edit.
  4. Refer to the example syntax shown in Figure 7.3 to define a wide IP's QOS equation.

    Figure 7.3 displays a wide IP definition that overrides the global QOS equation settings shown in Figure 7.2 .

    Figure 7.3 QOS coefficient settings that override the global QOS settings

     wideip {    
    address 192.168.101.50
    service "http"
    name "www.wip.domain.com"
    ttl 60 // increase the domain default ttl
    qos_coeff {
    rtt 21
    hops 0
    completion_rate 7
    packet_rate 5
    topology 1
    vs_capacity 0
    kbps 0
    }
    pool {
    name "Pool_1"
    ratio 2 // applies to pool_lbmode == ratio
    preferred qos
    alternate ratio
    address 192.168.101.50 ratio 2
    address 192.168.102.50 ratio 1
    address 192.168.103.50 ratio 1
    }
    pool {
    name "Pool_2"
    ratio 1
    preferred rr
    address 192.168.102.60 ratio 2
    address 192.168.103.60 ratio 1
    }
    }

Using the Dynamic Ratio option

When the Dynamic Ratio option is turned on, the 3-DNS Controller treats QOS scores as ratios, and it uses each server in proportion to the ratio determined by the QOS calculation. When the Dynamic Ratio option is turned off (the default), the 3-DNS Controller uses only the server with the highest QOS score for load balancing, (in which case it is a winner takes all situation) until the metrics information is refreshed.

To turn on the Dynamic Ratio option using the Configuration utility

  1. In the navigation pane, click Wide IPs.
  2. In the Wide IP column, click a wide IP name.
    The Modify Wide IP screen opens.
  3. On the toolbar, click Modify Pool.
    The Modify Wide IP Pools screen opens.
  4. In the Pool Name column, click the name of a pool.
    The Modify Load Balancing screen opens.
  5. Check Use Dynamic Ratio.
  6. Click Update.

To turn on the Dynamic Ratio option from the command line

  1. At the command prompt, type 3dnsmaint to open the 3-DNS Maintenance menu.
  2. On the 3-DNS Maintenance menu, select Edit 3-DNS Configuration to open the wideip.conf file.
  3. Locate the wideip statement and the pool definition you want to edit.
  4. Add the syntax (shown in bold in Figure 7.4 ) to the pool definition.

    Figure 7.4 Enabling dynamic ratio in a pool configuration

       pool {    
    name <"pool_name">
    [ ratio <pool_ratio> ]
    dynamic_ratio yes
    [ rr_ldns < yes | no > ]
    [ rr_ldns_limit <number> ]
    [ preferred < completion_rate | ga | hops | kbps | leastconn | packet_rate | qos | random | ratio | return_to_dns | rr |
    rtt | static_persist | topology | vs_capacity | null > ]
    [ alternate < ga | kbps | null | random | ratio | return_to_dns | rr | static_persist | topology | vs_capacity > ]
    [ fallback < completion_rate | ga | hops | kbps | leastconn |
    packet_rate | qos | random | ratio | return_to_dns | rr | rtt | static_persist | topology | vs_capacity | null > ]
    address <vs_addr>[:<port>] [ratio <weight>]
    }
    }

Working with the Global Availability mode

The Global Availability mode repeatedly selects the first available virtual server in a wide IP definition to respond to DNS queries. If that virtual server becomes unavailable, subsequent connections go to the next listed virtual server in the wide IP definition.

The 3-DNS Controller always starts with the first virtual server in the list. Over time, the first server in the list receives the most connections, and the last server in the list receives the fewest connections. Figure 7.5 shows the 3-DNS Controller using the Global Availability load balancing mode.

Figure 7.5 Global Availability mode

Configuring the Global Availability mode

The following sections describe how to configure the Global Availability load balancing mode.

To configure the Global Availability load balancing mode using the Configuration utility

  1. In the navigation pane, click Wide IPs.
  2. In the Wide IP column, click a wide IP name.
    The Modify Wide IP screen opens.
  3. On the toolbar, click Modify Pool.
    The Modify Wide IP Pools screen opens.
  4. In the Pool Name column, click the name of a pool.
    The Modify Load Balancing screen opens.
  5. Select Global Availability as the Preferred, Alternate, or Fallback load balancing mode.
  6. Click Update.
  7. A popup screen appears, indicating that with the Global Availability load balancing mode you must order the virtual servers. Click OK.
    The Modify Virtual Servers screen opens.
  8. In the Order column, specify the order in which you want to list the virtual servers for Global Availability.
  9. Click Update.

To configure the Global Availability load balancing mode from the command line

  1. At the command prompt, type 3dnsmaint to open the 3-DNS Maintenance menu.
  2. On the 3-DNS Maintenance menu, select Edit 3-DNS Configuration to open the wideip.conf file.
  3. Locate the wideip statement you want to edit.
  4. Define Global Availability as the preferred, alternate, or fallback load balancing mode.
  5. List the virtual servers in descending order of preference. See Figure 7.6 for details.

A Global Availability configuration example

With the Global Availability load balancing mode, you can configure one data center as your primary service provider and have several alternate service providers on standby. In the wideip statement, list the virtual servers in descending order of preference. The first available virtual server is chosen for each resolution request.

Figure 7.6 shows a sample wideip definition where Global Availability is the preferred load balancing mode.

Figure 7.6 Configuring a standby data center using Global Availability

 // Global availability    
wideip {
address 192.168.101.60
port 80 // http
name "cgi.wip.domain.com"
pool {
name "mypool"
preferred ga
address 192.168.101.60
address 192.168.102.60
address 192.168.103.60
}
}

The first listed virtual server (192.168.101.60 in this example) receives all resolution requests unless it becomes unavailable. If the first listed virtual server does become unavailable, then the 3-DNS Controller sends resolution requests to the second listed virtual server, and so on.

Setting up load balancing for services that require multiple ports

Some sites require that you use multiple ports or services to access them, for example an e-commerce site. For these cases, you can configure a wide IP so that connections are not sent to a given address unless all specified ports or services are available.

To configure multiple ports for a wide IP using the Configuration utility

  1. In the navigation pane, click Wide IPs.
  2. In the Wide IP column, click a wide IP name.
    The Modify Wide IP screen opens.
  3. On the toolbar, click Port List.
    The Wide IP Port List screen opens.
  4. Type a port number in the box or select a service from the list, then click the right arrow button.
  5. Repeat step 4 for each port or service you need to add.
  6. Click Update.

To configure multiple ports for a wide IP from the command line

  1. At the command prompt, type 3dnsmaint to open the 3-DNS Maintenance menu.
  2. On the 3-DNS Maintenance menu, select Edit 3-DNS Configuration to open the wideip.conf file.
  3. Locate the wideip statement you want to edit.
  4. Add the port_list line as indicated in bold in Figure 7.7 .

    Figure 7.7 Enabling multiple ports with the port_list option

     wideip {    
    address <ip_addr>
    port <port_number> | <"service name">
    name <"domain_name">
    [ alias <"alias_name"> ]
    [ ttl <number> ]
    [ port_list <port_number> <port_number> ... ]
    [ qos_coeff {
    rtt <n>
    completion_rate <n>
    packet_rate <n>
    topology <n>
    hops <n>
    vs_capacity <n>
    kbps <n>
    } ]
    [ pool_lbmode <rr | ratio | ga | random | topology> ]
    [ pool definitions ...]

Ensuring availability for e-commerce, FTP, and other services that use multiple ports

Before the 3-DNS Controller selects a virtual server to receive a connection, it verifies that the virtual server is up and available. Certain types of network traffic, such as FTP traffic or e-commerce traffic, require that more than one port be available in order for the client's requests to be properly handled. For example, FTP servers use both ports 20 and 21, while e-commerce sites typically require that both ports 80 and 443 are available to handle HTTP and SSL traffic.

When you set up a load balancing configuration, you can define a port list for a wide IP. When the 3-DNS Controller receives a query, all of the ports in the port list must be available for each virtual server in the wide IP. If a virtual server does not have all ports in the port list available, the 3-DNS Controller marks it as unavailable for load balancing. In this example, you are setting up a site for selling a product on the Internet. This site contains a non-secure area that contains the product catalog, and a secure area for placing orders. You can configure a wide IP so that clients are sent to a virtual server only when both the secure and non-secure ports are available.

The key entry for this configuration is port_list. The port_list entry specifies that requests can be sent to virtual servers in this pool only if ports 80 (non-secure area) and 443 (secure area) are available.

Figure 7.8 Syntax for e-commerce services

 wideip {    
address 192.168.101.70
port 80 // http
port_list 80 443 // e-commerce
name "ssl.wip.domain.com"
pool_lbmode rr
pool {
name "bigip_pool"
ratio 2
preferred qos
alternate ratio
address 192.168.101.70 ratio 7
address 192.168.102.60 ratio 2
}
pool {
name "host_pool"
ratio 1
preferred ratio
address 192.168.104.50 ratio 2
address 192.168.105.60 ratio 1
}
}

For every virtual server address in the pool, a virtual server definition must exist for each port in the port list.

For the syntax example shown in Figure 7.8 , the BIG-IP Controllers and host machines must have the following virtual servers defined:

192.168.101.70:80

192.168.101.70:443

192.168.102.60:80

192.168.102.60:443

192.168.104.50:80

192.168.104.50:443

192.168.105.60:80

192.168.105.60:443