Gli advisor sono agent software che funzionano all'interno di Load Balancer per fornire informazioni sul carico su un determinato server. Esiste un advisor per ciascun protocollo standard (HTTP, SSL e altri).
Periodicamente, il codice di base di Load Balancer esegue un ciclo di advisor, durante il quale valuta singolarmente lo stato di tutti i server della configurazione.
Prima di iniziare
Gli advisor sono agent all'interno di Load Balancer. Il loro scopo è quello di valutare lo
stato e il carico delle macchine server. Questa operazione viene eseguita con uno scambio proattivo del tipo client con i server. Gli advisor possono essere considerati come
client leggeri dei server delle applicazioni.
Scrivendo i propri advisor per Load
Balancer, è possibile personalizzare il modo in cui viene determinato il carico delle macchine server.
Per
ulteriori informazioni relative al funzionamento degli advisor, consultare
Advisor.
Il prodotto fornisce alcuni advisor specifici per i protocolli più diffusi. Tuttavia, è inutile utilizzare tutti gli advisor forniti con ciascun
componente di Load Balancer. Load Balancer supporta, inoltre, il concetto di advisor personalizzato che consente agli utenti
di scrivere i propri advisor.
Limitazione sull'utilizzo degli advisor con applicazioni server specifiche del collegamento:- Per poter utilizzare gli advisor su server specifici del collegamento, avviare due istanze del server: una da collegare su cluster@porta e un'altra da collegare su server@porta.
Per determinare se il server è specifico del collegamento, immettere il comando netstat
-an e cercare server@porta.
Se il server non è
specifico del collegamento, il risultato di questo comando sarà 0.0.0.0:80. Se invece il server
è specifico del collegamento, verrà visualizzato un indirizzo del tipo 192.168.15.103:80.
Se si utilizza il comando arp
publish invece del comando
ifconfig alias, Load Balancer supporterà l'utilizzo
degli advisor durante il bilanciamento del carico dei server con
applicazioni server specifiche del collegamento quando viene eseguito il
collegamento all'indirizzo IP del cluster.
Informazioni su questa attività
È possibile avviare un advisor per una porta particolare attraverso tutti i cluster
(advisor di gruppo). Oppure, scegliere di eseguire diversi advisor sulla
stessa porta ma su cluster differenti (advisor specifici del cluster).
Nota: se
Load Balancer è in esecuzione su un computer con più schede adattatore di
rete, non è possibile forzare l'indirizzo IP di origine dei pacchetti su un
indirizzo specifico se si desidera che il traffico dell'advisor venga
distribuito attraverso un particolare adattatore.
Procedura
- Avviare l'advisor desiderato. Per un elenco di possibili advisor, fare riferimento alla sezione Elenco di advisor o Creazione di un advisor personalizzato.
- Advisor specifico del cluster: per avviare un advisor sulla porta 80 per
clusterA, ad esempio, specificare sia il cluster che la porta:
dscontrol advisor start ADV_nome clusterA@80
Questo comando consente di avviare l'advisor sulla porta 80 per
clusterA. Questo advisor esaminerà tutti i
server collegati alla porta 80 per il clusterA.
- Advisor del gruppo: per avviare un advisor personalizzato sulla
porta 80 per tutti gli altri cluster, è sufficiente specificare la porta:
dscontrol advisor start ADV_nome 80
Questo comando consente di avviare l'advisor sulla porta 80 per tutti i cluster e i siti che non hanno un advisor specifico del cluster o del sito. Questo advisor esaminerà tutti i
server collegati alla porta 80.
- Opzionale: Se viene avviato l'advisor HTTP o HTTPS, è possibile che si desideri
definire una stringa URL del client univoca per consentire all'advisor di
controllare singoli servizi sul server.
Per ulteriori informazioni relative a tale opzione, fare riferimento a
Ottenimento dei suggerimenti specifici del servizio con l'opzione di richiesta o risposta dell'advisor.
- Opzionale: Impostare l'intervallo dell'advisor. L'intervallo dell'advisor consente di impostare la frequenza con cui un advisor chiede
lo stato dei server sulla porta su cui esegue il monitoraggio e notifica i risultati al
gestore. Se l'intervallo dell'advisor è impostato su un valore troppo basso, le
prestazioni possono ridursi notevolmente come conseguenza delle continue interruzioni dei
server da parte dell'advisor. Se l'intervallo dell'advisor è impostato su un valore
troppo alto, le decisioni del gestore sul calcolo dei pesi non si baseranno su
informazioni precise e aggiornate.
Nota: le impostazioni predefinite dell'advisor dovrebbero funzionare
efficacemente nella maggior parte degli scenari possibili. Prestare attenzione quando si
specificano dei valori diversi da quelli predefiniti.
Ad esempio, per impostare l'intervallo dell'advisor
HTTP per la porta 80 su 3 secondi,
immettere il seguente comando: dscontrol advisor interval http 80 3
Non specificare un intervallo dell'advisor inferiore a quello del gestore. L'intervallo predefinito dell'advisor è 7 secondi.
- Opzionale: Impostare il timeout del report dell'advisor. Per garantire che il gestore non utilizzi informazioni non
aggiornate nelle decisioni per il bilanciamento del carico, il
gestore non utilizzerà le informazioni provenienti dall'advisor la
cui data/ora è precedente all'ora impostata nel timeout report
dell'advisor. Il timeout report dell'advisor deve essere essere maggiore
dell'intervallo di polling dell'advisor. Se minore, il gestore ignora i report che
dovrebbero essere utilizzati localmente. Per impostazione predefinita, i report
dell'advisor non sono sottoposti a timeout: il valore predefinito è
illimitato.
Ad esempio, per impostare il timeout report dell'advisor HTTP per la porta 80
su 3 secondi, immettere il seguente comando:
dscontrol advisor timeout http 80 30
Per ulteriori informazioni sull'impostazione del timeout report advisor,
vedere
dscontrol advisor.
- Opzionale: Impostare i valori dei timeout di connessione e ricezione degli advisor. Per Load Balancer, è possibile impostare i valori di timeout dell'advisor ai quali rileva che
una porta particolare sul server (un servizio) non funziona. I valori
di timeout per i server che non hanno funzionato correttamente (connecttimeout e
receivetimeout) stabiliscono per quanto tempo l'advisor deve rimanere in attesa prima di
notificare che l'operazione di connessione o l'operazione di ricezione non ha avuto
esito positivo.
Per rilevare più rapidamente il server in errore, impostare i timeout di connessione e di ricezione dell'advisor sul valore più
piccolo (un secondo) e impostare l'intervallo del gestore e dell'advisor sul
valore più piccolo (un secondo).
Nota: se l'ambiente presenta un traffico
medio-alto che aumenta il tempo di risposta dei server, non impostare dei valori
connecttimeout e receivetimeout troppo piccoli oppure l'advisor potrebbe
contrassegnare prematuramente un server occupato come guasto.
Ad esempio, per impostare connecttimeout e receivetimeout su 9 secondi per l'advisor
HTTP sulla porta 80,
immettere il seguente comando:
dscontrol advisor connecttimeout http 80 9
dscontrol advisor receivetimeout http 80 9
Il valore predefinito del timeout di
connessione e di ricezione è 3 volte il valore specificato per l'intervallo dell'advisor.
- Opzionale: Impostare il valore relativo al numero di tentativi dell'advisor. Gli advisor possono tentare nuovamente una connessione prima di contrassegnare come inattivo un server. L'advisor non contrassegna un server come inattivo finché la query eseguita sul server non ha avuto esito negativo per il numero di tentativi più 1. Il valore del numero di tentativi non deve essere maggiore di 3.
Il seguente comando imposta un valore dei tentativi di 2
per l'advisor LDAP sulla porta 389:
dscontrol advisor retry ldap 389 2