Raggiungimento della disponibilità elevata e della scalabilità - ARR e Bilanciamento carico di rete

di Won Yoo

Raggiungimento della disponibilità elevata e della scalabilità:
Routing delle richieste di applicazioni Microsoft (ARR) per IIS 7.0 e versioni successive e bilanciamento del carico di rete.Net Application Request Routing (ARR) per IIS 7.0 e versioni successive e Bilanciamento carico di rete.

Microsoft Corporation
Autore: Ahmed Bisht, Won Yoo
Pubblicato: 13 novembre 2008

Contenuto

Questo documento fornisce indicazioni prescrittive sul modo in cui il routing delle richieste di applicazione (ARR) può essere usato con Bilanciamento carico di rete (NLB) per ottenere disponibilità elevata e scalabilità.

Panoramica

Microsoft Application Request Routing (ARR) per IIS 7.0 e versioni successive è un modulo di routing basato su proxy che inoltra le richieste HTTP ai server di contenuto in base a intestazioni HTTP, variabili del server e algoritmi di bilanciamento del carico. Una distribuzione ARR tipica è illustrata nel diagramma seguente:

Diagramma che mostra l'inoltro A R R delle richieste H T T P.

Anche se ARR offre disponibilità elevata e scalabilità per i server di contenuto, la distribuzione complessiva non è a disponibilità elevata o scalabilità perché:

  • ARR è il singolo punto di errore.
  • La scalabilità dei server di contenuto è limitata dalla capacità massima di un server ARR.

Per superare queste sfide, gli amministratori possono prendere in considerazione l'uso di più server ARR con bilanciamento carico di rete. ARR può essere distribuito in modalità attiva/passiva per ottenere solo disponibilità elevata o in modalità attiva/attiva per ottenere disponibilità elevata e scalabilità. Questo white paper descrive in che modo È possibile distribuire insieme ARR e Bilanciamento carico di rete per abilitare gli scenari ARR di base, ottenendo al tempo stesso disponibilità elevata e scalabilità generali. Bilanciamento carico di rete è disponibile in tutti gli SKU di Windows Server 2008.

Uso del routing delle richieste dell'applicazione e del bilanciamento del carico di rete

ARR viene compilato come modulo su IIS ed è progettato per prendere decisioni di routing al livello 7 (applicazione). In modo più accurato, ARR si basa su un altro modulo IIS, URL Rewrite, per esaminare le intestazioni delle richieste HTTP in ingresso e le variabili del server per prendere le decisioni di routing. In base a questa progettazione, gli amministratori possono scrivere regole di routing intelligenti in base alle informazioni a livello di applicazione, ad esempio:

  • Nome host (HTTP_HOST): instradare il traffico a server di contenuto diversi in base al nome host.
  • Risorsa richiesta (URL): in base alle estensioni di file, determinare se le risorse richieste sono per contenuto statico o contenuto dinamico e indirizzare le richieste di conseguenza.
  • Informazioni client (HTTP_USER_AGENT): in base al tipo e alla versione del browser, instradare le richieste ai server di contenuto appropriati.
  • Intestazioni personalizzate (impostate come cookie dalle applicazioni): instradare il traffico in base alle informazioni sui cookie impostate dalle applicazioni, ad esempio preferenza utente o ID utente.

Di seguito sono riportati solo alcuni esempi. Per un elenco completo delle intestazioni HTTP e delle variabili del server, vedere Appendice A.

Poiché Bilanciamento carico di rete prende le decisioni di routing al livello 3, le informazioni specifiche dell'applicazione, ad esempio le intestazioni HTTP e le variabili del server, non possono essere usate per fornire il routing basato su livello di applicazione. Allo stesso tempo, ARR non fornisce funzionalità di distribuzione a tolleranza di errore per se stesso e deve basarsi su altre tecnologie e soluzioni complementari per ottenere la disponibilità elevata per il livello ARR. Bilanciamento carico di rete opera a un livello diverso nello stack di rete ed è abilitato negli stessi server in cui viene distribuito ARR:

Digram che mostra le connessioni tra R R 1 e 2 e i server di contenuto.

Scenario 1: routing basato su HTTP e bilanciamento del carico

Lo scenario di routing e bilanciamento del carico basato su HTTP consente un'architettura di distribuzione a 3 livelli che prevede:

  • Livello 1 (Web): fornisce due scopi per l'elaborazione di contenuto statico e routing e bilanciamento del carico delle richieste dinamiche rimanenti ai server di livello 2.
  • Livello 2 (applicazione): elabora il contenuto dinamico basato sulla logica di business.
  • Livello 3 (dati): archivia i dati.

Il diagramma seguente illustra la distribuzione a 3 livelli:

Diagramma che mostra il flusso di contenuto tra R R e server di contenuto in ogni livello.

Anche se l'esempio precedente mostra una regola di routing che distingue il contenuto statico dal contenuto dinamico, un altro scenario comune consiste nel distinguere le richieste di presentazione dalle richieste del servizio Web.

Opzione1: Attivo/Passivo

In modalità Attiva/Passiva, in genere sono presenti due server ARR in cui un server elabora le richieste mentre l'altro server è un server di failover. Come indicato in precedenza, sebbene questa configurazione raggiunga la disponibilità elevata rimuovendo il singolo punto di errore, non si tratta di una soluzione con scalabilità orizzontale perché la capacità aggregata dei server di contenuto è limitata dalla capacità massima di un server ARR.

In questa configurazione, poiché due server ARR sono configurati allo stesso modo, viene usata una configurazione condivisa. Prima di tutto, installare ARR in entrambi i server, quindi creare il cluster bilanciamento carico di rete. Il cluster bilanciamento carico di rete è configurato per accettare il traffico in uno solo dei nodi del cluster. A tale scopo, è possibile configurare le regole delle porte del cluster con la modalità di filtro a host singolo. Il nodo che accetta il traffico è determinato dall'impostazione della priorità host dei nodi del cluster bilanciamento carico di rete. Per altri dettagli, vedere Configurazione bilanciamento carico di rete.

Ad eccezione della funzionalità di affinità del nome host in ARR, non sono presenti informazioni sullo stato di runtime che devono essere condivise tra i due server ARR. Pertanto, per questo scenario, non è necessaria alcuna configurazione speciale in ARR o bilanciamento carico di rete. Anche se si usa la funzionalità di affinità server in ARR, le informazioni sullo stato affinità verranno rese disponibili al server passivo tramite un cookie nell'intestazione della richiesta.

Questo scenario è completamente supportato nella versione 1 di ARR.

Configurazione di ARR

Passaggio 1: Abilitare la configurazione condivisa in due server ARR.

  • Seguire la procedura descritta in questo documento per configurare la configurazione condivisa in IIS.

Passaggio 2: Configurare l'architettura di distribuzione a 3 livelli usando ARR.

  • Seguire i passaggi descritti in questo documento per configurare ARR nell'architettura di distribuzione a 3 livelli.

  • A livello generale, il documento precedente descrive:

    • Come rendere disponibile il contenuto statico nel server ARR.
    • Come scrivere regole di riscrittura URL per il contenuto statico in modo che vengano gestite direttamente dal server ARR.
    • Come scrivere regole di riscrittura URL per il contenuto dinamico in modo che vengano inoltrate ai server applicazioni.

Configurazione bilanciamento carico di rete

La configurazione di Bilanciamento carico di rete è suddivisa nei passaggi seguenti:

  1. Installare la funzionalità Bilanciamento carico di rete in tutti i server ARR.
  2. Creare un cluster bilanciamento carico di rete per ARR.
  3. Configurare Bilanciamento carico di rete per la distribuzione attiva/passiva.

Installare la funzionalità Bilanciamento carico di rete in tutti i server ARR

  1. Aprire Gestione server.
    Screenshot della finestra Server Manager che mostra i dettagli nel riquadro principale.
  2. Espandere Funzionalità.
  3. Fare clic su Aggiungi funzionalità.
  4. Nella Procedura guidata Aggiungi funzionalità selezionare Bilanciamento carico di rete.
    Screenshot della finestra Aggiungi funzionalità guidata che mostra le funzionalità nel riquadro principale.
  5. Fare clic su Installa per confermare l'installazione della funzionalità Bilanciamento carico di rete.
    Screenshot della finestra Aggiungi funzionalità guidata che mostra l'opzione Conferma selezioni di installazione nel riquadro principale.
  6. Verificare che la funzionalità Bilanciamento carico di rete sia stata installata correttamente.
    Screenshot della finestra Aggiungi funzionalità guidata che mostra la pagina Risultati installazione nel riquadro principale.
  7. Ripetere i passaggi precedenti in tutti i server ARR.

Creare un cluster bilanciamento carico di rete per ARR

  1. Verificare che Bilanciamento carico di rete sia installato in tutte le istanze dei server ARR.
  2. Passare a Avvia > tutti i programmi > Strumenti di amministrazione e aprire Gestione bilanciamento carico di rete.
    Screenshot della finestra Gestione bilanciamento carico di rete con i cluster di bilanciamento del carico di rete evidenziati.
  3. Fare clic con il pulsante destro del mouse su Cluster di bilanciamento del carico di rete e quindi scegliere Nuovo cluster.
    Screenshot della finestra di dialogo Nuovo cluster.
  4. Nella casella di testo Host della finestra di dialogo Nuovo cluster digitare l'indirizzo del server di uno dei server ARR. Se sono presenti più interfacce, digitare l'indirizzo del server in cui si vuole creare il cluster bilanciamento carico di rete.
    Screenshot della finestra di dialogo Nuovo cluster che mostra un indirizzo I P nella casella di input dell'host.
  5. In modalità attiva/passiva (modalità host singolo in Bilanciamento carico di rete), la priorità determina l'ordine in cui viene eseguito il failover. Per impostazione predefinita, il server con priorità 1 è il nodo attivo.
    Screenshot della finestra di dialogo Nuovi parametri host cluster con le impostazioni predefinite.
  6. L'INDIRIZZO IP del cluster, un indirizzo IP virtuale, è necessario. Fare clic su Aggiungi. Si tratta dell'indirizzo IP con cui i client comunicheranno.
    Screenshot della finestra di dialogo Nuovi indirizzi I P del cluster.
  7. Digitare l'indirizzo IP virtuale e quindi fare clic su OK.
    Screenshot della finestra di dialogo Aggiungi indirizzo I P
  8. Fare clic su Avanti.
    Screenshot della finestra di dialogo Indirizzi I P cluster che mostra un indirizzo I P e una subnet mask.
  9. Accettare i valori predefiniti. Per informazioni più dettagliate, vedere l'Appendice.
    Screenshot della finestra di dialogo Parametri cluster che mostra i parametri predefiniti.
  10. Fare clic su Fine per completare la creazione del cluster NLB.
    Screenshot della finestra di dialogo Regole porta
  11. Dopo aver creato il cluster di bilanciamento del carico di rete, è possibile aggiungere altri membri al cluster. Seguire i passaggi rimanenti in tutti i server membri aggiuntivi. In Gestione bilanciamento carico di rete fare clic con il pulsante destro del mouse sul cluster appena selezionato e quindi scegliere Aggiungi host al cluster.
    Screenshot della finestra di dialogo Aggiungi host al cluster.
  12. Digitare l'indirizzo del server del membro da aggiungere. Se sono presenti più interfacce, selezionare quella che deve essere usata dal cluster NLB.
    Screenshot della finestra di dialogo Connetti. Nella casella di input host è presente un indirizzo I P.
  13. Si noti che l'assegnazione di priorità è reciprocamente esclusiva e univoca tra i server membri nel cluster. In modalità attiva/passiva (modalità host singolo in bilanciamento carico di rete), la priorità determina l'ordine di failover.
    Screenshot della finestra di dialogo Parametri host. La priorità è impostata su 2.
  14. Fare clic su Fine per aggiungere il server membro al cluster.
    Screenshot della finestra di dialogo Regole porta. Il pulsante Fine è selezionato.
  15. Network Load Balancer Manager dovrebbe essere simile al seguente:
    Screenshot della finestra Gestione bilanciamento del carico di rete.

Configurare il bilanciamento del carico di rete per la distribuzione attiva/passiva

  1. Per configurare NLB per la distribuzione attiva/passiva, in Gestione bilanciamento carico di rete fare clic con il pulsante destro del mouse sul cluster e quindi selezionare Proprietà cluster. Fare clic sulla scheda Regole porta . Fare clic su Modifica.
    Screenshot della finestra di dialogo Proprietà con la scheda Regole porta selezionata.
  2. Selezionare Singolo host e quindi fare clic su OK.
    Screenshot della finestra di dialogo Aggiungi/Modifica regola porta. L'host singolo è selezionato nella sezione Modalità di filtro.

Il bilanciamento del carico di rete è configurato correttamente per funzionare in modalità attiva/passiva con ARR.

Opzione2: Attivo/Attivo

In modalità Active/Active è possibile avere due o più server ARR. Questa configurazione ottiene sia disponibilità elevata che scalabilità, a differenza della modalità Active/Pass, che ottiene solo disponibilità elevata.

Come indicato in precedenza, poiché vengono configurati più server ARR nello stesso modo, viene usata una configurazione condivisa. La differenza principale è la configurazione del bilanciamento del carico di rete. Per usare tutti i server ARR contemporaneamente, la regola della porta del cluster NLB è configurata in più modalità host.

Indipendentemente dal fatto che la funzionalità di affinità sia abilitata nel bilanciamento del carico di rete o meno, non è necessaria alcuna configurazione speciale nei server ARR. Per uno, i server ARR usano una configurazione condivisa in modo che siano configurati allo stesso modo. In secondo luogo, poiché ARR usa un cookie client per archiviare le informazioni sull'affinità del server per il proprio uso, queste informazioni sono disponibili per richiesta e quindi disponibili nei server ARR. La raccomandazione per il bilanciamento del carico di rete consiste nell'impostare l'affinità su nessuna poiché comporta una distribuzione di carico più uniforme.

Questo scenario è completamente supportato nella versione ARR versione 1.

Configurazione di ARR

La configurazione ARR per Active/Active è identica a quella di Active/Passive. La differenza principale è la configurazione del bilanciamento del carico di rete.

Passaggio 1: Abilitare la configurazione condivisa in due server ARR.

  • Seguire la procedura descritta in questo documento per configurare la configurazione condivisa in IIS.

Passaggio 2: Configurare l'architettura di distribuzione a 3 livelli usando ARR.

  • Seguire la procedura descritta in questo documento per configurare ARR nell'architettura di distribuzione a 3 livelli.

  • A livello generale, il documento precedente descrive:

    • Come rendere disponibile il contenuto statico nel server ARR.
    • Come scrivere regole di riscrittura URL per il contenuto statico in modo che vengano gestite direttamente dal server ARR.
    • Come scrivere regole di riscrittura URL per il contenuto dinamico in modo che vengano inoltrate ai server applicazioni.

Configurazione del bilanciamento del carico di rete

La configurazione del bilanciamento carico di rete è suddivisa nei passaggi seguenti:

  1. Installare la funzionalità bilanciamento carico di rete in tutti i server ARR.
  2. Creare un cluster NLB per ARR.
  3. Configurare NLB per la distribuzione attiva/attiva.

Installare la funzionalità di bilanciamento carico di rete in tutti i server ARR: documentata [qui](raggiungimento della disponibilità elevata e scalabilità-arr-and-nlb.md#install NLB).

Creare un cluster di bilanciamento del carico di rete per ARR: documentato [qui](raggiungimento della disponibilità elevata e scalabilità-arr-and-nlb.md#create nlb).

Configurare NLB per la distribuzione attiva/attiva.

  1. Per configurare NLB per la distribuzione attiva/attiva, in Gestione bilanciamento carico di rete fare clic con il pulsante destro del mouse sul cluster e quindi selezionare Proprietà cluster. Fare clic sulla scheda Regole porta . Fare clic su Modifica.
    Screenshot della finestra di dialogo Proprietà.
  2. Selezionare Più host. Per l'impostazione Affinità selezionare Nessuna. Come accennato in precedenza, la raccomandazione consiste nell'non usare l'affinità nel bilanciamento del carico di rete perché comporterà una distribuzione del carico migliore.
    Screenshot della finestra di dialogo Aggiungi/Modifica regola porta. L'host multiplo è selezionato nella sezione Modalità di filtro.

Il bilanciamento carico di rete è configurato correttamente per funzionare in modalità attiva/attiva con ARR.

Scenario 2: Hosting condiviso con affinità di nome host

Questo scenario usa la funzionalità di affinità del nome host in ARR per abilitare una distribuzione di hosting condivisa a:

  • Ridurre la gestione manuale e la manutenzione coinvolti nella distribuzione di hosting condiviso tradizionale.
  • Ottimizzare le risorse del server esistenti assicurando che tutte le risorse del server vengano usate in modo uniforme.
  • Aumentare facilmente l'ambiente.
  • Creare opportunità aziendali per vendere capacità aggiuntiva.

Per altre informazioni sull'hosting condiviso e sull'ARR, vedere questo documento.

Il diagramma seguente illustra l'ambiente di hosting condiviso usando ARR:

Diagramma che mostra il flusso di richieste e risposte.

Opzione1: Attivo/Passivo

Come indicato in precedenza, in modalità Active/Passivo, in genere sono presenti due server ARR in cui un server elabora le richieste mentre l'altro server si trova come server di failover. Sebbene questa configurazione raggiunga la disponibilità elevata rimuovendo il singolo punto di errore, non è una soluzione di scalabilità orizzontale poiché la capacità aggregata dei server di contenuto è limitata dalla capacità massima di un server ARR.

In questa configurazione, poiché vengono configurati due server ARR allo stesso modo, viene usata una configurazione condivisa. Il cluster NLB è configurato per accettare il traffico solo in uno dei nodi del cluster. Ciò viene ottenuto configurando le regole del cluster con la modalità di filtro host singolo. Il nodo che accetta il traffico è determinato dall'impostazione di priorità host dei nodi del cluster NLB. Per altre informazioni, vedere Configurazione bilanciamento carico di rete .

La funzionalità di affinità nome host in ARR affinizza le richieste a un determinato server (o un gruppo di server in RC) in base al nome host. Le informazioni sullo stato di runtime del mapping affinizzato tra i nomi host e i server di contenuto vengono archiviati in memoria all'interno di un'istanza di un server ARR. Nella versione 1 di ARR ARR sfrutta Microsoft External Cache Versione 1 per IIS per condividere e mantenere lo stato di runtime tra più server ARR. Altre informazioni su questo scenario sono disponibili in questo documento.

Questo scenario è completamente supportato nella versione ARR versione 1.

Configurazione di ARR

Passaggio 1: Configurare ARR per l'hosting condiviso con affinità di nome host.

  • Seguire la procedura descritta in questo documento per configurare la funzionalità di affinità del nome host in ARR per l'hosting condiviso.

Passaggio 2: Abilitare e configurare cache esterna.

  • Seguire la procedura descritta in questo documento per abilitare e configurare cache esterna.

Configurazione del bilanciamento del carico di rete

La configurazione del bilanciamento carico di rete è suddivisa nei passaggi seguenti:

  1. Installare la funzionalità bilanciamento carico di rete.
  2. Creare un cluster NLB per ARR.
  3. Configurare NLB per la distribuzione attiva/passiva.

Installare la funzionalità NLB: documentata [qui](raggiungimento di funzionalità a disponibilità elevata e scalabilità elevata-arr-and-nlb.md#Install NLB).

Creare un cluster bilanciamento carico di rete per ARR: documentato [qui](raggiungimento della disponibilità elevata e della scalabilità-arr-and-nlb.md#Create NLB cluster for ARR).

Configurare bilanciamento carico di rete per la distribuzione attiva/passiva: documentato [qui](raggiungimento della disponibilità elevata e della scalabilità-arr-and-nlb.md#Configurare bilanciamento carico di rete per attivo/passivo).

Opzione2: Attivo/Attivo in ARR

In modalità Attiva/Attiva è possibile avere due o più server ARR. Questa configurazione consente di ottenere disponibilità elevata e scalabilità, a differenza della modalità Attiva/Passiva, che consente di ottenere solo disponibilità elevata. Poiché più server ARR sono configurati allo stesso modo, viene usata una configurazione condivisa. Per utilizzare tutti i server ARR contemporaneamente, bilanciamento carico di rete viene configurato in modalità host multipla. Come indicato in precedenza, le informazioni sullo stato di runtime del mapping affinizzato tra i nomi host e i server di contenuto vengono archiviate in memoria all'interno di un'istanza di un server ARR. Per condividere queste informazioni tra più server ARR, viene usata la Cache esterna Microsoft per IIS. Per altre informazioni sulla cache esterna, vedere questo documento.

Configurazione di ARR

La configurazione ARR per Active/Active è identica a quella di Attivo/Passivo. La differenza principale è la configurazione di Bilanciamento carico di rete.

Passaggio 1: Configurare ARR per l'hosting condiviso con affinità del nome host.

  • Seguire la procedura descritta in questo documento per configurare la funzionalità di affinità dei nomi host in ARR per l'hosting condiviso.

Passaggio 2: Abilitare e configurare cache esterna.

  • Seguire la procedura descritta in questo documento per abilitare e configurare cache esterna.

Configurazione bilanciamento carico di rete

La configurazione di Bilanciamento carico di rete è suddivisa nei passaggi seguenti:

  1. Installare la funzionalità Bilanciamento carico di rete.
  2. Creare un cluster bilanciamento carico di rete per ARR.
  3. Configurare Bilanciamento carico di rete per la distribuzione attiva/attiva.

Installare la funzionalità Bilanciamento carico di rete: documentata [qui](raggiungimento delle funzionalità di bilanciamento carico di rete e scalabilità elevata-arr-and-nlb.md#Install NLB).

Creare un cluster bilanciamento carico di rete per ARR: documentato [qui](raggiungimento della disponibilità elevata e della scalabilità-arr-and-nlb.md#Create NLB cluster for ARR).

Configurare bilanciamento carico di rete per la distribuzione attiva/attiva: documentata [qui](raggiungimento della disponibilità elevata e della scalabilità-arr-and-nlb.md#Configure NLB for active/active). È consigliabile non usare l'affinità in Bilanciamento carico di rete per questo scenario ARR.

Riepilogo

In questo white paper sono stati esaminati due scenari ARR principali per ottenere disponibilità elevata e scalabilità distribuendo più server ARR e usando Bilanciamento carico di rete.

Appendice

Appendice A: Tutte le intestazioni HTTP disponibili e le variabili del server per la scrittura di regole decisionali di routing

ALL_HTTP ALL_RAW APPL_MD_PATH
APPL_PHYSICAL_PATH CERT_COOKIE CERT_FLAGS
CERT_ISSUER CERT_KEYSIZE CERT_SECRETKEYSIZE
CERT_SERIALNUMBER CERT_SERVER_ISSUER CERT_SERVER_SUBJECT
CERT_SUBJECT CONTENT_LENGTH CONTENT_TYPE
DOCUMENT_ROOT GATEWAY_INTERFACE HTTP_ACCEPT
HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_CONNECTION
HTTP_CONTENT_LENGTH HTTP_HOST HTTP_IF_MODIFIED_SINCE
HTTP_IF_NONE_MATCH HTTP_REFERER HTTP_UA_CPU
HTTP_USER_AGENT HTTPS HTTPS_KEYSIZE
HTTPS_SECRETKEYSIZE HTTPS_SERVER_ISSUER HTTPS_SERVER_SUBJECT
INSTANCE_ID INSTANCE_META_PATH LOCAL_ADDR
PATH_INFO PATH_TRANSLATED QUERY_STRING
REMOTE_ADDR REMOTE_HOST REMOTE_PORT
REMOTE_USER REQUEST_FILENAME REQUEST_METHOD
REQUEST_URI SCRIPT_FILENAME SCRIPT_NAME
SERVER_ADDR NOME_SERVER SERVER_PORT
SERVER_PORT_SECURE SERVER_PROTOCOL SERVER_SOFTWARE
URL

Appendice B: Documentazione aggiuntiva sul bilanciamento del carico di rete