Thursday, September 11, 2014

iSCSI Components

For iSCSI communication, the following components talk with each other:
  • iSCSI Initiator
  • iSCSI Target

iSCSI Initiator

A client in an iSCSI storage network is called the iSCSI Initiator Node (or simply, 'iSCSI Initiator'). This iSCSI Initiator can connect to a server (the iSCSI Target). In doing so, the iSCSI Initiator sends SCSI commands to the iSCSI Target. These SCSI commands are packaged in IP packets for this purpose.
The following forms of iSCSI Initiators are available:
  1. iSCSI Hardware Initiator: a PCI-X or PCIe card, which implements the iSCSI functionality. Such a card is also called an iSCSI HBA. In the server’s operating system, such an iSCSI HBA appears to be a RAID controller or an FC HBA. With an iSCSI HBA, booting a server through iSCSI is possible. Examples are:
  2. iSCSI Software Initiator: an iSCSI Initiator implemented by software. The computing operations of the iSCSI initiator are performed by the server’s CPU in this solution (and not by hardware components on a proprietary PCI-X or PCIe card). Thanks to the increased performance of modern server CPUs, this is no longer a problem. Standard network cards are used on the hardware side for communication with the iSCSI Target. Examples of this are:
As long as booting from iSCSI is not a criterion, nothing speaks against the use of iSCSI Software Initiators. With some additional configuration effort, booting from the network with the iSCSI Software Initiator really is possible.[1][2][3] iSCSI Software Initiators are less expensive, widely distributed and very stable. Even iSCSI over 10 Gbit Ethernet will be able to be easily implemented in the future using normal 10 Gbit Ethernet adapter cards.[4]

iSCSI Target

A server in an iSCSI storage network is called the iSCSI Target Node (or simply, 'iSCSI Target'). Such an iSCSI Target can provide one or more so-called logical units (LUs). The abbreviation “LUN” is often used for the term “logical unit” (although this abbreviation actually means “LU Number” or “logical unit number”).
The following forms of iSCSI Targets are available:
iSCSI Server implements the iSCSI Target functionality in various manners:[5]
  • Some iSCSI Storage Arrays have precisely one iSCSI Target (the Storage Array itself)
  • Other iSCSI Storage Arrays have several iSCSI Targets, such as.
    • a iSCSI Target per phys. Interface:
      • NetApp
      • EMC CLARiiON
    • a iSCSI Target per LUN:
      • Dell/EqualLogic
      • HP/LeftHand
    • Any configuration iSCSI Targets desired:
      • With EMC Celerra Arrays up to 1,000 iSCSI Targets can be configured and assigned to any virtual or physical network interface desired

SCSI Origins

The origin of iSCSI can be found in the standard SCSI (Small Computer Systems Interface). Considered precisely, iSCSI is the invocation of the SCSI remote procedure model through the TCP protocol:[6]
  • 'SCSI commands' are transmitted as 'iSCSI requests'
  • 'SCSI responses' and 'SCSI status' messages are transmitted as 'iSCSI responses'
The iSCSI Initiator and the iSCSI Target use for a communication individual messages. Such an iSCSI message is called an 'iSCSI protocol data unit'.

iSCSI Communication

As mentioned above, an iSCSI Initiator and an iSCSI Target talk with each other. The conversation is always started by the iSCSI Initiator. One or moreiSCSI Connections may be used for a conversation (for each iSCSI connection a dedicated TCP connection is used). One such conversation is called an iSCSI Session.
The following image shows the schematic construction of an iSCSI setup:
Iscsi-grundlagen-1.png

iSCSI Session Types

Under iSCSI, there are two types of sessions:[7]
  • Normal operational session: which involves an unlimited session.
  • Discovery-session: this type of session serves only for target discovery. The iSCSI Target may permit SendTargets text requests in such a session.
The type of iSCSI session is defined during iSCSI login.

iSCSI Multipathing

The following types of sessions can be implemented for multipathing under iSCSI:
  1. using General Storage Multipathing Technologies, which have been settled on top of the iSCSI protocol regardless of the transmission technology
  2. using iSCSI Multiple Connections per Session (MC/S)

General Storage Multipathing Technologies – so-called Multipath I/O

For storage multipathing that should operate independently of the transmission technology there are two areas:
  1. Storage multipathing by the operating system (such as the Linux device mapper, MPIO)
  2. Storage multipathing by software solutions from the storage device manufacturer (such as EMC Powerpath)
The Storage Multipathing Technologies article provides details regarding these options.

iSCSI Multiple Connections per Session (MC/S)

Beyond that, iSCSI also provides options for multipathing over MC/S (Multiple Connections per Session) directly in the protocol. In order to be able to use MC/S, both the iSCSI Initiator and the iSCSI Target must support MC/S.
InitiatorMC/S Support?Additional information
Linux Open-iSCSI Software InitiatornoISCSI Multipathing under Linux
Microsoft iSCSI Software Initiatoryeshttp://technet.microsoft.com/en-us/library/dd759096.aspx
TargetMC/S Support?Additional information
EMC CLARiiONno
EMC Celerrayeshttp://technet.microsoft.com/en-us/library/dd759096.aspx
NetAppyeshttp://technet.microsoft.com/en-us/library/dd759096.aspx
http://blogs.netapp.com/dropzone/2009/05/the-free-consultant-iscsi-part-ii.html

References

  1. Jump up http://www.heise.de/netze/artikel/Booten-via-Netzwerk-223906.html
  2. Jump up http://www.etherboot.org
  3. Jump up http://wpkg.org/Diskless_/_remote_boot_with_Open-iSCSI
  4. Jump up A “Multivendor Post” to help our mutual iSCSI customers using VMware Question 3: Do I use the Software Initiator or the Hardware Initiator?
  5. Jump up A “Multivendor Post” to help our mutual iSCSI customers using VMware Quote: "iSCSI target = an iSCSI server, usually on an array of some type. Arrays vary in how they implement this. Some have one (the array itself), some have many, some map them to physical interfaces, some make each LUN an iSCSI target." and Question 1: How do I configure MPIO
  6. Jump up RFC 3720 Section 3.2. iSCSI Concepts and Functional Overview
  7. Jump up RFC 3720 Section 3.3 iSCSI Session Types

Additional Information

Linux, sar serves to log and evaluate a variety of information regarding system activity. With performance problems, sar also permits retroactive analysis of the load values for various sub-systems (CPUs, memory, disks, interrupts, network interfaces and so forth) and limitation of problems in this manner.

As noted, sar is a component of the sysstat package, which is already contained in numerous distribution files and can be easily installed, depending on the distribution file, either by yum install sysstat or apt-get install sysstat. Generally at the same time, the cron jobs will be created in /etc/cron.d/sysstat.

Functional Approach of Logging

sa1 and sa2 will store the recorded data in the directories, /var/log/sa/ (RHEL/CentOS) or /var/log/sysstat/ (Debian). The data will be retained for a week retroactively in the default configuration. This duration can be increased to 28 days (in /etc/sysconfig/sysstat under RHEL/CentOS or in /etc/sysstat/config under Debian 4.0 and /etc/sysstat/sysstat under Debian 5.0).
Activating sar Logging in Debian: To activate automatic logging under Debian, the "ENABLED" parameters must be set to "true" in the /etc/default/sysstat file. This parameter has been set to "false" by default.
Here is an example of this:
[root@testserver ~]# cat /etc/sysconfig/sysstat
# How long to keep log files (days), maximum is a month
HISTORY=7
[root@testserver ~]# cat /etc/cron.d/sysstat 
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

[root@testserver ~]# ls -l /var/log/sa/
total 8952
-rw-r--r--  1 root root 410352 May 18 23:50 sa18
-rw-r--r--  1 root root 410352 May 19 23:50 sa19
-rw-r--r--  1 root root 410352 May 20 23:50 sa20
-rw-r--r--  1 root root 410352 May 21 23:50 sa21
-rw-r--r--  1 root root 410352 May 22 23:50 sa22
-rw-r--r--  1 root root 410352 May 23 23:50 sa23
-rw-r--r--  1 root root 410352 May 24 23:50 sa24
-rw-r--r--  1 root root 410352 May 25 23:50 sa25
-rw-r--r--  1 root root 253712 May 26 14:40 sa26
-rw-r--r--  1 root root 611085 May 17 23:53 sar17
-rw-r--r--  1 root root 611129 May 18 23:53 sar18
-rw-r--r--  1 root root 611127 May 19 23:53 sar19
-rw-r--r--  1 root root 611127 May 20 23:53 sar20
-rw-r--r--  1 root root 611085 May 21 23:53 sar21
-rw-r--r--  1 root root 611100 May 22 23:53 sar22
-rw-r--r--  1 root root 611085 May 23 23:53 sar23
-rw-r--r--  1 root root 611085 May 24 23:53 sar24
-rw-r--r--  1 root root 611125 May 25 23:53 sar25
[root@testserver ~]#

Displaying the recorded data using sar

Limiting the Display Period

sar can display either the data for the current day (which does not require any special parameters) or the data for a specific day (such as with the -f /var/log/sa/sa21 parameter).
The query period can be further limited by the following parameters:
  • -s [ hh:mm:ss ] - sets the starting time (such as -s 07:30:00); if a specific time is not specified, 08:00:00 will be used as the default starting time.
  • -s [ hh:mm:ss ] - sets the ending time (such as -s 19:30:00); if a specific time is not specified, 18:00:00 will be used as the default ending time.

Parameters for Various Sub-systems

Here are several examples for displaying various values (the values originated on a system using CentOS 4.7 with sysstat version 5.0.5).

Displaying the CPU Load: sar -P ALL

The values for all CPUs (-P ALL) will be displayed starting from the 25th of the current month (-f /var/log/sa/sa25).
[root@testserver ~]# sar -P ALL -f /var/log/sa/sa25
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com)  05/25/09

00:00:01          CPU     %user     %nice   %system   %iowait     %idle
00:10:01          all      9.63      0.00      3.81      6.20     80.36
00:10:01            0      8.69      0.00      3.63      7.18     80.50
00:10:01            1      9.28      0.00      3.96      4.47     82.29
00:10:01            2     10.22      0.00      3.86      6.31     79.62
00:10:01            3      9.84      0.00      3.66      6.91     79.59
00:10:01            4      9.86      0.00      3.94      5.28     80.92
00:10:01            5      9.97      0.00      3.84      6.37     79.81
00:10:01            6      9.90      0.00      4.04      7.21     78.85
00:10:01            7      9.32      0.00      3.54      5.83     81.32
[...]
Average:          all      9.21      0.00      1.68      0.27     88.84
Average:            0      9.03      0.00      1.70      0.31     88.97
Average:            1      9.20      0.00      1.67      0.25     88.88
Average:            2      9.45      0.00      1.70      0.28     88.56
Average:            3      9.84      0.00      1.68      0.26     88.22
Average:            4      9.23      0.00      1.68      0.26     88.84
Average:            5      9.05      0.00      1.68      0.27     89.00
Average:            6      8.90      0.00      1.68      0.29     89.14
Average:            7      8.97      0.00      1.66      0.28     89.10
[root@testserver ~]#

Displaying the RAM Load: sar -r

The RAM values (-r) for the current day will be displayed here. A value of approximately 100 for the percentage of memory used is thoroughly positive (if swapping is not required). See also the Operating System Caches section of the RAID Controller and Hard Disk Cache Settings article.
[root@testserver ~]# sar -r
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com)   05/26/09

00:00:01    kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
00:10:01        67248  16292680     99.59     42320  12502420   2047648       628      0.03         0
00:20:01       129776  16230152     99.21     47020  12527100   2047648       628      0.03         0
[...]
14:50:01       638680  15721248     96.10    158392   6953128   2047648       628      0.03         0
15:00:01       646272  15713656     96.05    159880   6966980   2047648       628      0.03         0
15:10:01        59784  16300144     99.63    132044   6565036   2047648       628      0.03         0
Average:       554290  15805638     96.61    124889  10992802   2047648       628      0.03         0
[root@testserver ~]# 

Displaying the Load Average: sar -q

The average load values (-q) for the current day will be displayed here.
[root@testserver ~]# sar -q 
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com)  05/26/09

00:00:01      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
00:10:01            0       590      1.62      1.89      1.21
00:20:01           11       574      0.24      0.63      0.86
[...]
15:10:01            7       671      2.36      2.26      2.03
15:20:01            9       651      1.85      1.96      1.99
Average:            7       600      1.02      1.04      1.00
[root@testserver ~]# 

Displaying the I/O Transfer Rate: sar -b

The I/O transfer rates (-r) for the current day will be displayed here.
[root@testserver ~]# sar -b
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com)  05/26/09

00:00:01          tps      rtps      wtps   bread/s   bwrtn/s
00:10:01       402.21    197.20    205.00  35133.80  27616.04
00:20:01        66.61     56.36     10.24   2034.96    288.93
[...]
15:20:01        72.43      6.54     65.89    176.29   2720.35
15:30:01        73.28      6.08     67.20    399.04   3516.21
Average:        40.21      5.57     34.64    585.00   1561.78
[root@testserver ~]# 
tps - Total number of transfers per second that were issued to physical devices. A transfer is an I/O request to a physical device. Multiple logical requests can be combined into a single I/O request to the device. A transfer is of indeterminate size
rtps - Total number of read requests per second issued to physical devices
wtps - Total number of write requests per second issued to physical devices
bread/s - Total amount of data read from the devices in blocks per second. Blocks are equivalent to sectors with 2.4 kernels and newer and therefore have a size of 512 bytes. With older kernels, a block is of indeterminate size.
bwrtn/s - Total amount of data written to devices in blocks per second.

Displaying the Network Statistics: sar -n DEV

The statistical network values (-n) for the current day will be displayed here.
[root@testserver ~]# sar -n DEV
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com)  05/26/09

00:00:01        IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
00:10:01           lo      0.82      0.82    177.69    177.69      0.00      0.00      0.00
00:10:01         eth0     31.56     40.21   4537.41  35891.07      0.00      0.00      0.00
00:10:01         eth1   4876.29   9919.22 451754.61 14927283.09      0.00      0.00      0.00
00:10:01       venet0     52.88     44.19  46547.68  15279.15      0.00      0.00      0.00
[...]
15:30:01           lo      0.82      0.82    176.68    176.68      0.00      0.00      0.00
15:30:01         eth0    113.08    155.70  17825.90 188643.77      0.00      0.00      0.00
15:30:01         eth1    634.80   1268.92  58495.76 1888004.02      0.00      0.00      0.00
15:30:01       venet0    189.86    147.08 213164.21  42532.10      0.00      0.00      0.00
Average:           lo      0.82      0.82    177.10    177.10      0.00      0.00      0.00
Average:         eth0     56.42     78.90   9104.66  94428.28      0.00      0.00      0.00
Average:         eth1    281.59    559.55  25919.74 830592.96      0.00      0.00      0.00
Average:       venet0     87.26     64.75  99974.13  14933.05      0.00      0.00      0.00
[root@testserver ~]# 

Displaying All Values

The collective values for all devices (CPU, RAM, etc.) can be displayed using sar -A.

Tuesday, September 9, 2014

Subnetting

TCP/IP Address Construct

http://subnettingpractice.com/calc.html

A TCP/IP address is a 32 bit, binary number that has been converted to decimal. 
Octet = An octet is simply a group of 8 numbers. The IP address 191.168.1.1 has four octets: 191, 168, 1, and 1. I know I said there are 8 numbers and I only showed you four, but keep in mind that IP is in binary, not decimal. Each set of numbers represent 8 binary digits (zeroes or ones).
Bits = A bit is simply a single character. In other words, 32 bits equals 32 zeroes or ones.
Binary = A number system that is based on two characters - 0 & 1.

Decimal 191 = Binary 10111111
10111111
--------------------------------
1286432168421

Decimal 54 = Binary 00110110
00110110
--------------------------------
1286432168421

Decimal 38 = Binary 00100110
00100110
--------------------------------
1286432168421

Decimal 15 = Binary 00001111
00001111
--------------------------------
1286432168421

191543815
10111111001101100010011000001111
191.54.38.15 = 10111111.00110110.00100110.00001111

Subnet Mask
A subnet mask is used to determine where the network ends and the hosts begin. We get this information by converting the decimal numbers within the subnet mask to binary. The 1's in our binary subnet mask represents the network portion of our IP address, and the 0's represent the hosts. Here's an example:
IP Address: 192.168.1.0
Subnet Mask: 255.255.255.0
The first thing we do is convert our first octet to binary:
11111111
--------------------------------
1286432168421
When we add up all the decimal numbers underneath our binary 1's, we get 255 (128+64+32+16+8+4+2+1). In this example, the next two octets are also all 1's. And as you probably have guessed the fourth and final octet in our example is all 0's or all hosts.
So in binary, 255.255.255.0 is equal to:
11111111.11111111.11111111.00000000
Wherever our 1's stop and our zeros begin is called our network boundary:
11111111.11111111.11111111.|00000000
In this example, the first three octets are our network and the last one represents our hosts:
Subnet = 192.168.1.0
Hosts* = 192.168.1.1 - 192.168.1.254 (E.g. 192.168.1.1, 192.168.1.2, 192.168.1.3, etc...)
*The number of hosts on any network is determined by taking 2 to the power of the number of binary zero's. In this example, 8 0's = 2^8 = 256. However, we have to remove the first and last address from the pool of usable addresses. We will discuss this later, for now suffice it to say that the actual formula to determine how many hosts is (2^n)-2, where n = the number of binary zero's.
In our example n=8, so we have 2^8-2=256-2=254. We have a single network with 254 usable IP addresses for hosts (PC's, printers, etc...).
Now, let's take a look at what happens if we change our subnet mask:
IP Address: 192.168.1.0
Subnet Mask: 255.255.0.0
Just like the previous example, the first thing we need to do is to determine our network boundary by converting our decimal subnet mask to binary:
11111111.11111111.|00000000.00000000
Subnet = 192.168.0.0
Hosts = 192.168.0.1-192.168.255.254
Note that we can't use 192.168.0.0 as a host because it is the network address and 192.168.255.255 also can't be used because it is reserved for the broadcast address. However, all addresses in between the network address and the broadcast address can be assigned to hosts. Although it may look strange, addresses such as 192.168.0.255, 192.168.1.0, and 192.168.255.0 are all valid host addresses in the 192.168.0.0/16 network.
So now we can use the same formula to determine the number of assignable hosts - 16 zeros = 2^16-2 = 65,534 hosts.

IP Address Classes
There are five classes of IP addresses:
ClassPurposeFirst Octet RangeMaximum HostsTotal Networks
Class AVery Large Networks1-126*16,777,216 (2^24)128 (2^7)
Class BLarge Enterprise128-19165,536 (2^16)16,384 (2^14)
Class CSmall Business192-223256 (2^8)2,097,152 (2^21)
Class DMulticast224-239N/AN/A
Class EExperimental240-255N/AN/A
*IP addresses that begin with 127 are reserved for various functions.
Some find it easier to remember these addresses via the first binary bits of each network type:
0 = Class A
10 = Class B
110 = Class C
1110 - Class D
1111 - Class E

Private Network Ranges
Each class of IP addresses has a private address range. These ranges were created to conserve public IP addresses. Instead of issuing a real IP address to every host on your network, you can issue a private address and translate the private address to a public one when you communicate with the Internet. For example, a network with 200 or even 200,000 hosts, could use just one public IP address. This process is called NAT/PAT and will be covered in another lesson.
Class A Private Address = 10.0.0.0/8. If an IP address begins with the number 10, it is a class A private address.
Class B Private Address = 172.16.0.0/12. If an IP address begins with 172.16-31, it is a class B private address.
Class C Private Address = 192.168.0.0/16. If an IP address begins with 192.168, it is a class C private address.
Chances are if you look at the IP address of your PC right now, you will have a private IP address in one of the above ranges. If you are at home, your router is likely running DHCP and issued your PC a private IP Address. When you communicate on the Internet, the public IP address that has been issued by your ISP will be used. The router in your home is translating your private address to your public address. Key Topic: A private IP address cannot be routed over the Internet, but can be routed throughout your internal network.
Subnet Mask Chart
DecimalShorthandBinary
255.0.0.0/811111111.00000000.00000000.00000000
255.128.0.0/911111111.10000000.00000000.00000000
255.192.0.0/1011111111.11000000.00000000.00000000
255.224.0.0/1111111111.11100000.00000000.00000000
255.240.0.0/1211111111.11110000.00000000.00000000
255.248.0.0/1311111111.11111000.00000000.00000000
255.252.0.0/1411111111.11111100.00000000.00000000
255.254.0.0/1511111111.11111110.00000000.00000000
255.255.0.0/1611111111.11111111.00000000.00000000
255.255.128.0/1711111111.11111111.10000000.00000000
255.255.192.0/1811111111.11111111.11000000.00000000
255.255.224.0/1911111111.11111111.11100000.00000000
255.255.240.0/2011111111.11111111.11110000.00000000
255.255.248.0/2111111111.11111111.11111000.00000000
255.255.252.0/2211111111.11111111.11111100.00000000
255.255.254.0/2311111111.11111111.11111110.00000000
255.255.255.0/2411111111.11111111.11111111.00000000
255.255.255.128/2511111111.11111111.11111111.10000000
255.255.255.192/2611111111.11111111.11111111.11000000
255.255.255.224/2711111111.11111111.11111111.11100000
255.255.255.240/2811111111.11111111.11111111.11110000
255.255.255.248/2911111111.11111111.11111111.11111000
255.255.255.252/3011111111.11111111.11111111.11111100

There is no need to memorize these, as you practice they will become second nature.
Reserved Host Addresses
As mentioned earlier, for every subnet, the first and the last IP addresses are reserved:
First IP Address = Network ID
Last IP Address = Broadcast Address. The broadcast address is used for a specific type of network traffic that is destined for every device attached to a network.
Example:
IP Address = 192.168.1.1
Subnet Mask = 255.255.255.0
Network ID = 192.168.1.0
Broadcast Address = 192.168.1.255
Usable IP's = 192.168.1.1 - 192.168.1.254


Load balancer algorithms

Algorithms for making load balancing decisions

Load balancer groups use algorithms to make load balancing decisions. The decision determines to which remote server to forward a new connection.
Load balancer groups support weighted and non-weighted algorithms:
  • First alive
  • Hash
  • Least connections
  • Round robin
  • Weighted least connections
  • Weighted round robin
A weighted algorithm uses weight (or preference) to help determine which server receives the next request. A server with a higher weight receives more traffic than one with a lower weight. The percentage of traffic that is sent to each server is approximately equal to its weight divided by the cumulative weight of all servers in the group.
A non-weighted algorithm assumes that the capacity of all servers in the group to be equivalent. Although non-weighted algorithms are typically faster than weighted algorithms, some non-weighted algorithms, such as the hash algorithm, could send more traffic to some servers. If there are servers with different capacities in the group, processing cannot optimize the capacities of all the servers.

First alive

The first alive algorithm uses the concept of a primary server and backup servers.
  • The primary server is the first server in the members list.
  • backup server is any subsequent server in the members list.
When the primary server is healthy, the DataPower® service forwards all connections to this server. When the primary server is quarantined or convalescent, the DataPower service forwards connections to the next server in the list.


Hash

The hash algorithm uses the IP address of the client or the value of an HTTP header as the basis for server selection.
When using an HTTP header, use the Load Balancer Hash Header property to identify the header to read. This property is available for only Multi-Protocol Gateway and Web Service Proxy services. Additionally, this property is available on only the Main tab in the object view.
With the hash algorithm, the same client is served by the same server. Use this algorithm for applications that require the storage of server-side state information, such as cookies.


Least connections

The least connections algorithm maintains a record of active server connections and forward a new connection to the server with the least number of active connections.


Round robin

The round robin algorithm maintains a list of servers and forwards a new connection to the next server in the members list.


Weighted least connections

The weighted least connections algorithm maintains a weighted list of application servers with their number of active connections and forwards a new connection to an application server based on a combination of its proportion to the weight (or preference) and number of active connections.
This algorithm uses more computation times than the least connection algorithm. However, the additional computation results in distributing the traffic more efficiently to the server that is most capable of handling the request.
This algorithm applies to application servers, not authentication or authorization servers, and requires the Option for Application Optimization feature.


Weighted round robin

The weighted round robin algorithm maintains a weighted list of servers and forwards new connections in proportion to the weight (or preference) of each server.
This algorithm uses more computation times than the round robin algorithm. However, the additional computation results in distributing the traffic more efficiently to the server that is most capable of handling the request.