Ultima versione: 2.0.2-1

|
In breve |
|
|
Catalogo |
Sistema |
|
Categoria |
Switch |
|
Volumi di utente |
no |
|
Min. Memoria |
96 M |
|
OS |
Linux |
|
Vincoli |
no |
HALB è uno switch per la distribuzione del carico di lavoro a più server Web dello stesso tipo o di tipo differente. HALB è basato sul pacchetto software di bilanciamento del carico di HAProxy TCP/HTTP; quale viene progettato per essere estremamente veloce consumando poco risorse.
HALB esegue le funzioni di bilanciamento del carico usando diversi algoritmi. Esegue un semplice bilanciamento del carico round-robin eguagliando il carico per i server di backend. Supporta inoltre le sessioni persistenti, legando il client a un particolare server di backend usando l'indirizzo di IP di origine come codice. Utilizzando i cookie di sessione, qualsiasi nuova sessione che non ha cookie di sessione viene distribuito mediante l'algoritmo round-robin. HALB supporta sessioni con più cookie e modifica e/o tiene traccia soltanto di quelli necessari, lasciando gli altri intatti. Una sessione o client particolare può essere legato a un server Web di backend o applicazione specifica usando l'associazione di cookie. I cookie esistenti possono essere modificati da HALB per i client che non supportano le richieste con più cookie.
HALB monitora costantemente lo stato di tutti i server Web di backend. I controlli di stato condotti da HALB possono includere una semplice connessione TCP o una richiesta HTTP più complessa (specificata sul limite di HALB). In caso di un errore del server rilevato da HALB usando il metodo di healthcheck parametrizzato, HALB passa il traffico a un server alternativo. Se il server guasto recupera, HALB può riportare il traffico a tale server.
HALB espone un'interfaccia di servizio Web sul suo terminale di ctl. Questa interfaccia permette all'utente di abilitare/disabilitare in modo pragmatico i terminali di output out1 - out8 e di recuperare lo stato di tutti i terminali. Ciò è utile in caso di guasto di backend (ad esempio in un'appliance di storage o del database) in cui l'applicazione stessa può disabilitare automaticamente il traffico a una serie di server specifici. In questo caso, HALB non è in grado di rilevare questo tipo di errore; quindi, sta all'applicazione individuare il guasto e disabilitare la serie di server di backend corrispondenti.
HALB mantiene statistiche dettagliate incluso lo stato di backend, il numero di richieste elaborate per server, il numero di errori verificatisi, ecc. Le statistiche sono riportate attraverso il terminale di MON e i contatori separati sono esposti mediante il terminale di ui come GUI accessibile con un browser.
HALB è progettato per essere estremamente velocemente usando pochissime risorse. In normali condizioni di utilizzo, HALB usa circa 25 KB di memoria in ogni sessione, o 1 GB per 40000 sessioni simultanee ed elabora fino a 6000 richieste al secondo.
Risorse
|
Risorsa |
Minimo |
Massimo |
Predefinito |
|
CPU |
0,1 |
16 |
0,4 |
|
Memory (Memoria) |
96 MB |
32 GB |
96 MB |
|
Larghezza di banda |
1 Mbps |
2 Gbps |
250 Mbps |
La quantità di memoria assegnata a L3LB non aumenta la velocità effettiva o il tempo di risposta. L3LB è un'appliance associata alla CPU/larghezza di banda.
Terminali
|
nome |
dir |
prot. |
descrizione |
|
in |
in |
Qualsiasi |
Input comune. Le richieste TCP inviate a IN sono indirizzata a uno degli output, o mediante la selezione di round-robin o mediante informazioni di sessione basate sull'origine. |
|
ctl |
in |
HTTP |
Terminale di controllo che è usato per abilitare/disabilitare gli output e recuperare lo stato del terminale di output |
|
out1-out8 |
out |
Qualsiasi |
Output bilanciati. È possibile lasciare uno qualsiasi e tutti questi output non connessi; il traffico è distribuito soltanto agli output abilitati e connessi. Per impostazione predefinita, tutti i terminali sono abilitati. |
|
mon |
out |
CCE |
Serve per le statistiche di utilizzo delle prestazioni e delle risorse. |
Proprietà
Proprietà generali
|
nome |
tipo |
descrizione |
|
modalità |
Stringa |
Specifica la modalità di operazione e un modo per utilizzare il cookie della sessione denominato per l'identificazione della sessione. I valori validi sono: |
|
cookie_name |
Stringa |
Il nome del cookie usato per identificare una sessione. Per le modalità passive (passive e synch - consultare la proprietà di modalità descritta di seguito), ovvero il nome del cookie usato dai server di backend connessi ad out1 - out8 ai fini dell'identificazione delle sessioni del client. Per la modalità di inserimento, questo è il nome del cookie che HALB dovrebbe inserire nelle risposte HTTP in modo che ciascun client "rimanga" con un solo server. Se questa proprietà è impostata sul valore vuoto, non viene tenuta traccia della sessione e tutte le richieste sono distribuite nella tipica modalità round-robin. Ignorato per la modalità di origine. |
|
cookie_check_length |
Int |
Definisce il numero di byte dal valore di cookie usato come codice unico in modalità operativa passiva per combinare la sessione al server Web di backend. Il valore predefinito di 10 è in genere sufficiente per tutte le comune applicazioni PHP e java. Questo valore deve essere sempre uguale o inferiore alla lunghezza del valore del cookie. |
|
max_connections |
numero intero |
Il numero massimo di connessioni attive concorrenti che l'utilità di bilanciamento del carico gestisce. Quando questo numero viene raggiunto, le nuove connessioni sono comunque accettate ma la loro elaborazione è ritardata fino alla chiusura di un'altra connessione. All'avvio, HALB determina automaticamente il numero massimo di connessioni in base alla memoria disponibile, lo confronta al valore di questa proprietà e usa il valore inferiore. Se questa proprietà è pari a 0, allora viene usato il valore calcolato. Né la memoria disponibile, né un'impostazione esplicita di questa proprietà hanno un effetto diretto sulla velocità effettiva dell'utilità di bilanciamento del carico o sulla sua velocità di richiesta massima. Se si imposta un numero basso (o se la memoria disponibile è poca), la risposta è influenzata soltanto se i server di backend stanno eseguendo lunghe operazioni per ogni richiesta (ad es., ricerche di database) e molte richieste rimangono aperte allo stesso tempo. |
|
backup_outputs |
Stringa |
Un elenco di output delimitato da spazio o virgola (out1 - out8) che sono considerati backup. Il traffico è diretto ai server di backup soltanto se nessun server di backend è disponibile. Lo scopo di tali server di backup è di notificare i client che qualcosa non va oppure di reindirizzarli, piuttosto che immettere errori di timeout o di backend non disponibile. |
Proprietà di timeout
|
nome |
tipo |
descrizione |
|
timeout |
numero intero |
Timeout in secondi alla scadenza delle sessioni inattive. Se impostato su zero, le sessioni inattive non scadono. Se impostato su un valore diverso da zero, le sessioni inattive riprese dopo i secondi di timeout sono considerate vecchie e le richieste recanti il cookie 'forgotten' sono trattate come se non avessero alcun cookie e sono reindirizzate a un server casuale mediante il metodo usuale round-robin. Questa proprietà è valida esclusivamente per la modalità passiva ed è ignorata nelle altre modalità. |
|
client_timeout |
Int |
Timeout in secondi di attesa di una richiesta da un client dopo che è stata stabilita una connessione. |
|
server_timeout |
Int |
Timeout in secondi di attesa di una risposta da un server Web di backend dopo che è stata stabilita una connessione. |
|
conn_timeout |
Int |
Timeout in secondi per stabilire una connessione TCP. Ciò include gli healthcheck. Prestare particolare attenzione a questa impostazione perché, se il carico è elevato, gli healthcheck vanno in timeout perché il valore non è abbastanza ridotto, e HALB inizia a disabilitare gli output. Si raccomanda di non impostarlo al di sotto di 20 secondi. |
Proprietà di healthcheck
|
nome |
tipo |
descrizione |
|
healthcheck_url |
Stringa |
L'URL usato per eseguire l'healthcheck dei server Web di backend nei metodi di healthcheck http_get e http_head dei server Web. Può essere specificato come URL completo (http://host.name/file/to/check/for.php) o come percorso relativo (/file/to/check/for.php). Se specificato come URL, HALB usa il protocollo HTTP/1.1 mentre esegue gli healthcheck usando uno nome di host estratto da UR, in un host: intestazione. Questo permette l'utilizzo di host virtuali. Se specificato come percorso relativo, HALB usa il protocollo HTTP/1.0 e controlla il documento specificato da questa proprietà. Se questa proprietà è vuota, HALB controlla la radice predefinita '/' usando il protocollo HTTP/1.0. |
|
healthcheck_agent |
Stringa |
La stringa usata come identificatore di agente per i metodi di healthcheck http_get e http_head. Se vuoto, viene usato HALB-health-check. |
|
healthcheck_method |
Stringa |
Il metodo usato per l'healthcheck dei server Web di backend. |
|
healthcheck_regexp |
Stringa |
Una stringa di testo usata con la modalità di healthcheck http_get. I valori abbreviati o comuni (ad esempio: "OK") potrebbero causare false corrispondenze positive. Questa stringa è un'espressione regolare di Perl. Per maggiori dettagli sulle espressioni regolari di Perl, andare qui. |
|
healthcheck_interval |
Int |
Intervallo tra gli healthcheck dei server Web di backend (specificati in secondi). |
Proprietà di interfaccia di servizio UI/Web
|
nome |
tipo |
descrizione |
|
nome utente |
Stringa |
Nome utente di accesso alla GUI di HALB mediante il terminale UI. Se vuoto, non c'è autenticazione. |
|
password |
Stringa |
Password per accedere alla GUI di HALB attraverso il terminale di ui. La password è ignorata se il nome utente è vuoto. |
|
ctl_port |
Int |
Porta usata per accedere all'interfaccia di controllo del servizio Web mediante il terminale CTL. |
|
ui_port |
Int |
Porta usata per accedere alla GUI delle statistiche di runtime di HALB mediante il terminale UI. |
Contatori personalizzati
L'appliance di HALB riporta i seguenti calcolatori personalizzati usando il terminale MON.
I seguenti calcolatori appartengono al gruppo di calcolatori di HALB: X può avere un valore da 1 a 8.
|
Nome di contatore |
Descrizione |
|
outX_status |
Stato di terminale di output outX: 0 - abilitato e in cima a, 1 - abilitato e lungo, 100 - disconnesso. |
|
outX_queue |
Numero di richieste in coda per il terminale outX. |
|
outX_queue_max |
Massimo storico di richieste in coda simultaneamente per il terminale outX. |
|
outX_sessions_active |
Numero di sessioni attive per il terminale outX. |
|
outX_sessions_max |
Numero massimo di sessioni simultanee attive per il terminale outX. |
|
outX_sessions_total |
Numero di sessioni completate per il terminale outX. |
|
outX_errors |
Numero di healthcheck non riusciti per il terminale outX. |
|
coda |
Lunghezza di coda attuale, cumulativa per out1 - out8. |
|
queue_max |
Massimo storico di richieste in coda simultaneamente, cumulative per out1 - out8. |
|
sessions_active |
Numero di sessioni attive, cumulativo per out1 - out8. |
|
sessions_max |
Numero storico di sessioni attive, cumulativo per out1 - out8. |
|
sessions_total |
Numero di sessioni completate, cumulativo per out1 - out8. |
|
errori |
Numero di errori di healthcheck, cumulativo per out1 - out8. |
Prestazioni
Tasso di richiesta
HALB indirizza non meno d 6000 transazioni (coppia richiesta/risposta) al secondo, in base alla dimensione del documento e alla larghezza di banda di rete disponibile.
Velocità effettiva di dati
HALB dirige non meno d 15 MByte/secondo
Connessioni concorrenti
HALB supporta non meno d 2000 richieste in sospeso in concorrenza. (Una richiesta pendente è una connessione TCP aperta dal client, su cui è presente una o più richieste HTTP non completate). Il valore massimo di connessioni concorrenti dipende dalla memoria libera disponibile e può essere di fino a 40000. HALB è stato testato per il supporto di oltre 15000 trasferimenti attivi simultanei.
Messaggi di errore
In caso di errore nell'avvio dell'appliance, è possibile che vengano registrarti i seguenti errori nel log di sistema:
|
Messaggio di errore |
Descrizione |
|
Errore: impossibile determinare la configurazione di memoria dell'appliance. Si prega di contattare il Supporto di CA Technologies. |
HALB non è riuscito a rilevare il valore della memoria disponibile. Si prega di contattare il Supporto di CA. |
|
Errore: impossibile creare il file di configurazione di HAProxy. Si prega di contattare il Supporto di CA Technologies. |
HALB non è riuscito a creare il file di configurazione di HAProxy. Si prega di contattare il Supporto di CA Technologies. |
|
Errore: impossibile determinare il numero di CPU disponibili. Si prega di contattare il Supporto di CA Technologies. |
HALB non è riuscito a rilevare il valore di CPU disponibile. Si prega di contattare il Supporto di CA. |
|
Errore: healthcheck_url, quando specificato come URL, deve iniziare con http:// e contenere un percorso completo al documento (es: http://host.name.domain/file/to/check/for.html). |
il valore della proprietà di healthcheck_url non è corretto: dovrebbe iniziare con 'http://' e contenere un percorso completo, es.: http://host.name.domain/file/to/check/for.html |
|
Errore: metodo di healthcheck sconosciuto, healthcheck_method specificato. |
il valore della proprietà di healthcheck_method non è corretto; dovrebbe essere uno fra tcp_connect, http_head o http_get |
|
Errore: specificata una modalità di operazione non valida |
Specificata modalità non valida, dovrebbe essere una fra passivo, sincronizzazione, inserimento od origine |
|
Errore: il valore di ui_port deve essere compreso tra 1 e 65535. |
il valore di ui_port deve essere superiore a 1 e inferiore a 65535. |
|
Errore: il valore di ctl_port deve essere compreso tra 1 e 65535. |
il valore di ctl_port deve essere superiore a 1 e inferiore a 65535. |
|
Errore: impossibile avviare HALB; consultare il file di log '/var/log/appliance/log' per ulteriori informazioni. |
Si è verificato un errore di sistema all'avvio di HALB. Si prega di contattare il Supporto di CA Technologies. |
|
Errore: impossibile inizializzare l'interfaccia del servizio Web di controllo. Si prega di contattare il Supporto di CA Technologies. |
Si è verificato un errore di sistema durante l'inizializzazione dell'interfaccia del servizio Web di controllo esposta al terminale di ctl. Si prega di contattare il Supporto di CA Technologies. |
|
Errore: impossibile inizializzare il report delle statistiche, contattare il Supporto di CA Technologies. |
Si è verificato un errore di sistema durante l'inizializzazione del report delle statistiche. Si prega di contattare il Supporto di CA Technologies. |
|
Errore: impossibile inizializzare il terminale dell'interfaccia utente. Si prega di contattare il Supporto di CA Technologies. |
Si è verificato un errore di sistema durante l'inizializzazione dell'interfaccia del servizio Web di controllo esposta al terminale di ui. Si prega di contattare il Supporto di CA Technologies. |
|
Errore: impossibile inizializzare healthcheck esterno. Si prega di contattare il Supporto di CA Technologies. |
Si è verificato un errore di sistema durante l'avvio dell'healthcheck esterno. Si prega di contattare il Supporto tecnico di CA Technologies. |
Panoramica
Un'interfaccia di servizio Web di controllo è esposta al terminale di ctl (sulla porta configurata) permettendo di abilitare o disabilitare i terminali di output (out1 - out8) e di recuperare lo stato del terminale corrente.
Protocollo
Il protocollo utilizza solamente il metodo HTTP GET, in quanto fornisce una funzionalità di sola lettura. Per questo motivo ogni tipo di richiesta di protocollo supportato può essere definito per mezzo dell'URI e della struttura di output. I caratteri che vengono considerati speciali per l'URI dovrebbero essere evitati mediante lo standard di codifica %.
Segue una descrizione di tutti gli URI supportati.
Chiamate di controllo
Come disabilitare i terminali di output
Esistono due formati distinti per disabilitare la chiamata di controllo, in base a come viene identificato il terminale di output:
Richiesta: /api/disable?channel=out3 (disabilita il terminale di output out3)
Richiesta: /api/disable?10,11.12.13 (disabilita il terminale di output che è connesso al server Web con l'indirizzo IP di 10.11.12.13)
Risposta:
HALB restituisce la seguente struttura con un codice di stato e un messaggio di stato facoltativo:
{
"status" :
{
"code": code_value,
"message": "status_message"
}
}
I possibili valori di codice di stato sono elencati di seguito:
|
Valore di codice |
Descrizione |
|
0 |
L'operazione è riuscita, il terminale è stato disabilitato. |
|
10 |
L'operazione non è riuscita, la configurazione di HALB non è stata modificata. Le cause più probabili sono che il terminale è già disabilitato o l'indirizzo IP specificato non è valido. |
|
100 |
Si è verificato un errore durante l'elaborazione della richiesta. Per maggiori informazioni, consultare il messaggio di stato. |
Come abilitare i terminali di output
Esistono due formati distinti per abilitare la chiamata di controllo, in base a come viene identificato il terminale di output:
Richiesta: /api/enable?channel=out3 (abilita il terminale di output out3)
Richiesta: /api/disable?10,11.12.13 (abilita il terminale di output che è connesso al server Web con l'indirizzo IP di 10.11.12.13)
Risposta:
HALB restituisce la seguente struttura con un codice di stato e un messaggio di stato facoltativo:
{
"status" :
{
"code": code_value,
"message": "status_message"
}
}
I possibili valori di codice di stato sono elencati di seguito:
|
Valore di codice |
Descrizione |
|
0 |
L'operazione è riuscita, il terminale è stato abilitato. |
|
10 |
L'operazione non è riuscita, la configurazione di HALB non è stata modificata. Le cause più probabili sono che il terminale è già abilitato o l'indirizzo IP specificato non è valido. |
|
100 |
Si è verificato un errore durante l'elaborazione della richiesta. Per maggiori informazioni, consultare il messaggio di stato. |
Recupero dello stato del terminale di output
Richiesta: /api/status (restituisce lo stato di tutti i terminali di output)
Risposta:
HALB restituisce la seguente struttura con un codice di stato e un messaggio di stato facoltativo:
{
"status" :
{
"code": code_value,
"message": "status_message",
"terminal_id": "terminal_state",
"terminal_id": "terminal_state",
...
}
}
Lo stato è restituito soltanto per i terminali connessi; lo stato per i terminali disabilitati e disconnessi non è riportato.
I possibili valori di codice di stato sono elencati di seguito:
|
Valore di codice |
Descrizione |
|
0 |
L'operazione è riuscita. |
|
100 |
Si è verificato un errore durante l'elaborazione della richiesta. Per maggiori informazioni, consultare il messaggio di stato. |
I possibili valori di terminale sono out1 - out8.
I possibili valori di stato sono:
|
Valore di stato |
Descrizione |
|
up |
Il terminale è connesso e attivo. |
|
down |
Il terminale non è attivo. Il server Web che è connesso a questo terminale non è attivo o non è riuscito a eseguire l'healthcheck di HALB. |
Un esempio di output di stato:
{
"status" :
{
"code": 0,
"message": "",
"out1": "up",
"out2": "up",
"out3": "down",
"out4": "up"
}
}
HALB espone una GUI delle statistiche attraverso il terminale UI. Vari informazioni di runtime sono disponibili attraverso l'interfaccia utente:
|
Parametro |
Descrizione |
|
nbcproc |
Numero di CPU disponibili per HALB. |
|
tempo di attività |
Tempo di attività di HALB. |
|
limiti di sistema |
I limiti di risorsa imposti ad HALB dal sistema operativo. |
|
memmax |
Memoria massima disponibile per HALB. |
|
ulimit-n |
Valore massimo di file aperti simultaneamente. I socket di rete sono considerati file. |
|
maxsock |
Valore massimo di socket aperti simultaneamente. |
|
maxconn |
Valore massimo di connessioni simultanee. Una volta raggiunto il valore, tutte le connessioni nuove sono messe in lista di attesa. |
|
connessioni correnti |
Numero corrente di connessioni attive. |
|
Stato del server |
Stato di un server di backend. UP - il server è funzionale, DOWN - il server non è funzionale. |
|
Coda corrente |
Lunghezza di coda della richiesta corrente del server di backend. |
|
Coda max. |
Lunghezza di coda massima del server di backend dall'avvio di HALB. |
|
Sessioni correnti |
Numero di sessioni correntemente attive. |
|
Sessioni max. |
Numero massimo raggiunto di sessioni attive simultaneamente. |
|
Sessioni completate |
Numero totale di sessioni completate. |
|
Errori connessione |
Numero di errori verificatisi alla connessione al server di backend. |
|
Errori riportati |
Numero di errori di 5xx riportati dal server di backend. |
|
Controllo errori |
Numero di controlli non riusciti per un server di backend. |
|
Errori down |
Numero di volte in cui il server di backend è passato dallo stato UP a DOWN. |
Applicazioni a contenuto dinamico a bilanciamento di carico lento
Se la sua applicazione richiede che molto calcolo produca ciascuna pagina, è naturalmente capace servire un valore limitato di client contemporaneamente. Tuttavia, se l'origine di dati è abbastanza veloce o può essere replicata e servita da più server, è possibile usare HALB per aumentare il numero di connessioni da gestire simultaneamente. Un esempio tipico è servire le mappe da un database di cartografia - il database è veloce da leggere, ma ogni carico di pagina richiede che la mappa sia resa come file di immagine.
Il seguente diagramma mostra come usare HALB per impiegare più CPU nel servire lo stesso contenuto consentendo una risposta più veloce sotto un carico elevato.

Configurazione per sessioni che mantengono il server - Bugzilla
Gli esempi di configurazione mostrano soltanto le proprietà impostate su valori non predefiniti.
|
Proprietà |
Valore |
Note |
|
cookie_name |
Bugzilla_logincookie |
Questo è il nome usato da Bugzilla per il suo cookie di accesso |
|
modalità |
passivo |
Bugzilla emette cookie unici per ciascuna combinazione di nome utente/indirizzo IP, perciò due istanze di bugzilla che sono connesse allo stesso database non restituiscono mai lo stesso cookie. Pertanto è sicuro usare la modalità passiva più semplice. Per gli altri tipi di server, l'impostazione di sincronizzazione è più appropriata. |
Bilanciamento di carico permanente per i server senza sessione che usano cookie
Per i server che non hanno sessioni, ma che hanno dei dati nella cache e potrebbero beneficiare di un client diretto coerentemente allo stesso server, il monitoraggio dei cookie passivo non funziona perché non ci sono cookie da monitorare. La modalità di inserimento è usata in questo caso, come mostrato nella tabella:
|
Proprietà |
Valore |
Note |
|
cookie_name |
session_id |
Nome arbitrario, ma verificare che non corrisponda a un nome usato dai server per altro. |
|
modalità |
inserimento |
HALB inserisce un set di cookie: intestazione |
Bilanciamento di carico permanente per i server senza sessione che non usano cookie con persistenza di sessione
Alcuni client non supportano cookie, o li disattivano. In questo caso, l'esempio di sopra non è la soluzione migliore, perché il client ignora il set di cookie. La soluzione migliore è la modalità di origine dell'operazione di HALB, che dirige il traffico al server Web basato sull'indirizzo di IP della sorgente richiesta. Inoltre, se il client usa più gateway simultaneamente per accedere a Internet, è possibile che le richieste non siano indirizzate allo stesso server Web.
|
Proprietà |
Valore |
Note |
|
modalità |
origine |
HALB dirige la richiesta al server Web usando l'indirizzo di IP sorgente della richiesta come codice. |
Bilanciante di carico con healthcheck di infrastruttura
Un healthcheck riuscito di un server Web di backend non garantisce che i dati restituiti siano validi o che il database da cui dipende sia ancora funzionale. Una caratteristica distintiva di HALB è la capacità di utilizzare non solo il modo convenzionale di healthcheck (connettendosi semplicemente alla porta 80 di un server Web), ma anche più metodi avanzati come http_head e http_get. L'utilizzo corretto di questa capacità garantisce non solo la disponibilità dei server di backend, ma anche dei loro server di dipendenza, database, applicazione e archiviazione. In questo esempio, sono usate due caratteristiche dell'healthcheck di HALB. Prima, viene creato un file speciale health_check.php speciale e viene specificato l'URL completo nella proprietà di healthcheck_url. Quando si accede a questo file, questo valuta la disponibilità del database, dell'applicazione o dei server NAS e restituisce un documento di stato con il testo ALL_SERVICES_ARE_OK. Questo valore è specificato nella proprietà healthcheck_regexp.
HALB controlla ogni output (out1 - out8) con le richieste HTTP/1.1 GET, usando il sito nell'host: intestazione HTTP e /health_check.php come documento URL. Questi valori sono estratti dalla proprietà di healthcheck_url (http://site/health_check.php). Nel documento, recuperato da ogni server di backend, HALB ricerca il valore di healthcheck_regexp (ALL_SERVICES_ARE_OK). Se viene trovata questa linea, il server è considerato funzionale/up; altrimenti il terminale di output è disabilitato. Se l'output è disabilitato e quindi healthcheck di HALB riesce, l'output viene nuovamente abilitato.
Se non sono usati host virtuali, o il server di backend non supporta il protocollo di HTTP/1.1, healthcheck_url può essere specificato in un modulo semplice (/health_check.php). In questo caso, HALB usa il protocollo HTTP/1.0 e non specifica host: intestazione HTTP.
|
Proprietà |
Valore |
Note |
|
healthcheck_mode |
http_get |
HALB usa la modalità http_get di healthcheck. |
|
healthcheck_url |
http://site/health_check.php |
l'URL che HALB controlla. |
|
healthcheck_regexp |
ALL_SERVICES_ARE_OK |
|
Utilizzo dei server di backup
I server di backup sono usati quando tutti i server di backend non sono disponibili e occorre fornire al client un messaggio o una pagina di reindirizzamento, invece di errori o timeout. Nell'esempio di seguito, il backup del server è configurato come server di ultimo ricorso, che serve solo una pagina statica che informa il client dell'esecuzione di una manutenzione tecnica. Quando tutti e quattro i server srv1 - srv4 sono inattivi, viene servito il contenuto di backup del server.

|
Proprietà |
Valore |
Note |
|
backup_outputs |
out8 |
|
Utilizzo dell'interfaccia del servizio Web di controllo
L'interfaccia del servizio Web di controllo è un modo per abilitare/disabilitare in modo dinamico e programmatico i terminali di output di HALB. Può anche essere usato per recuperare lo stato corrente di tutti i terminali di output. Questa interfaccia è esposta attraverso il terminale ctl di HALB.
Il seguente diagramma mostra un ambiente a cluster con più server del database e Web. Ogni server di database e Web ha una connessione di feedback al terminale ctl di HALB. Se un server Web rileva un problema in termini di database/connettività/prestazioni, può disabilitare il terminale di output corrispondente, ordinando ad HALB di interrompere il traffico diretto al server Web. Analogamente, qualsiasi server di database può disabilitare i terminali di output di HALB, e quindi disabilitare tutto il traffico in entrata. Dopo la risoluzione del problema, i terminali di output possono essere ri-abilitati.

Software Open Source e di terze parti utilizzato all'interno dell'appliance
HALB usa i seguenti pacchetti Open Source di terze parti oltre ai pacchetti Open Source di terze parti usati dalla loro classe di base LUX5.
|
Software |
Versione |
Modificato |
License |
Note |
|
haproxy |
1.4.9 |
No |
GPLv2 |
Home page |
|
php-thttpd |
2.25b |
No |
BSD |
N/D |
| Copyright © 2011 CA. Tutti i diritti riservati. | Contatta CA Technologies |