Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

1.3. Panoramica sulla schedulazione LVS

Uno dei vantaggi dell'utilizzo di LVS è rappresentato dalla sua capacità di eseguire un bilanciamento del carico a livello-IP flessibile nel gruppo dei real server. Questa flessibilità è dovuta alla varietà di algoritmi di schedulazione, che un amministratore può scegliere quando configura LVS. Il bilanciamento del carico LVS risulta essere superiore rispetto a metodi meno flessibili, come ad esempio Round-Robin DNS, dove la natura gerarchica di DNS ed il caching da parte di macchine client, può portare ad uno squilibrio del carico. In aggiunta, un livello basso di filtraggio implementato dal router LVS produce dei vantaggi nei confronti dell'inoltro della richieste livello-applicazione, poichè il bilanciamento dei carichi al livello del pacchetto di rete causa un overhead minimo e permette una maggiore scalabilità.
Using scheduling, the active router can take into account the real servers' activity and, optionally, an administrator-assigned weight factor when routing service requests. Using assigned weights gives arbitrary priorities to individual machines. Using this form of scheduling, it is possible to create a group of real servers using a variety of hardware and software combinations and the active router can evenly load each real server.
Il meccanismo di schedulazione per LVS è fornito da una raccolta di patch del kernel chiamata module IP Virtual Server o IPVS. I suddetti moduli abilitano il cambiamento del livello di trasporto (transport layer) Livello 4 (L4), ideato per funzionare bene con server multipli su di un indirizzo IP singolo.
Per controllare e direzionare i pacchetti ai real server in modo efficiente, IPVS crea una tabella IPVS nel kernel. Questa tabella viene utilizzata dal router LVS attivo per instradare le richieste da un indirizzo del server virtuale per, e in ritorno, dai real server nel gruppo. La tabella IPVS viene costantemente aggiornata da una utilità chiamata ipvsadm — aggiungendo e rimuovendo i membri del cluster a seconda della loro disponiblità.

1.3.1. Algoritmi di schedulazione

The structure that the IPVS table takes depends on the scheduling algorithm that the administrator chooses for any given virtual server. To allow for maximum flexibility in the types of services you can cluster and how these services are scheduled, Red Hat Enterprise Linux provides the following scheduling algorithms listed below. For instructions on how to assign scheduling algorithms refer to Sezione 4.6.1, «La sottosezione SERVER VIRTUALE».
Round-Robin Scheduling
Distribuisce ogni richiesta in modo sequenziale attraverso il gruppo di real server. Utilizzando questo algoritmo, tutti i real server vengono trattati nello stesso modo, senza considerare la capacità o il carico. Questo modello di schedulazione richiama il round-robin DNS, ma risulta essere più granulare poichè essa si basa sul collegamento alla rete e non sull'host. La schedulazione LVS round-robin non soffre lo squilibrio creato dalle richieste DNS della cache.
Weighted Round-Robin Scheduling
Distributes each request sequentially around the pool of real servers but gives more jobs to servers with greater capacity. Capacity is indicated by a user-assigned weight factor, which is then adjusted upward or downward by dynamic load information. Refer to Sezione 1.3.2, «Peso del server e Schedulazione» for more on weighting real servers.
La schedulazione Weighted round-robin è la scelta preferita se sono presenti differenze significative di capacità nei server di un gruppo. Tuttavia, se il carico richiesto varia in modo drammatico, il server con più peso potrebbe assumere un carico maggiore alle sue capacità.
Least-Connection
Distribuisce un numero maggiore di richieste ai real server con un numero minore di collegamenti attivi. Poichè mantiene un controllo sui collegamenti attivi per i real server attraverso la tabella IPVS, least-connection è un tipo di algoritmo di schedulazione dinamico ideale se è presente una variazione molto ampia del carico. È la scelta migliore per un gruppo di real server dove ogni nodo del membro possiede più o meno la stessa capacità. Se un gruppo di server presenta una capacità diversa, allora la schedulazione weighted least-connection è quella migliore.
Weighted Least-Connections (default)
Distributes more requests to servers with fewer active connections relative to their capacities. Capacity is indicated by a user-assigned weight, which is then adjusted upward or downward by dynamic load information. The addition of weighting makes this algorithm ideal when the real server pool contains hardware of varying capacity. Refer to Sezione 1.3.2, «Peso del server e Schedulazione» for more on weighting real servers.
Locality-Based Least-Connection Scheduling
Distribuisce un numero maggiore di richieste ai server con meno collegamenti attivi in base ai loro IP di destinazione. Questo algoritmo è stato ideato per un utilizzo all'interno di un proxy-cache server cluster. Esso instrada i pacchetti di un indirizzo IP al server per quel indirizzo, a meno che il server in questione non abbia superato le proprie capacità, ed un altro server è presente con un carico a metà delle proprie capacità. In tal caso verrà assegnato l'indirizzo IP al real server con un carico minore.
Locality-Based Least-Connection Scheduling with Replication Scheduling
Distribuisce un numero maggiore di richieste ai server con un numero di collegamenti attivi minori in base ai propri IP di destinazione. Questo algoritmo è stato creato anche per un suo utilizzo in un proxy-cache server cluster. Differisce dalla schedulazione Least-Connection in base al locale, a causa di una mappatura dell'indirizzo IP target su di un sottoinsieme di nodi del real server. Le richieste vengono instradate al server all'interno del sottoinsieme, con il numero più basso di collegamenti. Se tutti i nodi per l'IP di destinazione sono oltre la loro capacità, esso replicherà un nuovo server per l'indirizzo IP di destinazione, aggiungendo il real server con un numero minore di collegamenti dal gruppo di real server al sottoinsieme di real server per l'IP di destinazione interessato. Il nodo con un carico maggiore viene rilasciato dal sottoinsieme di real server, in modo da evitare una replicazione accessiva.
Destination Hash Scheduling
Distribuisce le richieste al gruppo di real server andando alla ricerca dell'IP di destinazione in una tabella Hash statica. Questo algoritmo è stato creato per un suo utilizzo in un proxy-cache server cluster.
Source Hash Scheduling
Distribuisce le richieste al gruppo di real server andando alla ricerca dell'IP sorgente in una tabella Hash statica. Questo algoritmo è stato creato per i router LVS con firewall multipli.