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:
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:
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:
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:
- Installare la funzionalità Bilanciamento carico di rete in tutti i server ARR.
- Creare un cluster bilanciamento carico di rete per ARR.
- Configurare Bilanciamento carico di rete per la distribuzione attiva/passiva.
Installare la funzionalità Bilanciamento carico di rete in tutti i server ARR
- Aprire Gestione server.
- Espandere Funzionalità.
- Fare clic su Aggiungi funzionalità.
- Nella Procedura guidata Aggiungi funzionalità selezionare Bilanciamento carico di rete.
- Fare clic su Installa per confermare l'installazione della funzionalità Bilanciamento carico di rete.
- Verificare che la funzionalità Bilanciamento carico di rete sia stata installata correttamente.
- Ripetere i passaggi precedenti in tutti i server ARR.
Creare un cluster bilanciamento carico di rete per ARR
- Verificare che Bilanciamento carico di rete sia installato in tutte le istanze dei server ARR.
- Passare a Avvia > tutti i programmi > Strumenti di amministrazione e aprire Gestione bilanciamento carico di rete.
- Fare clic con il pulsante destro del mouse su Cluster di bilanciamento del carico di rete e quindi scegliere Nuovo cluster.
- 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.
- 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.
- L'INDIRIZZO IP del cluster, un indirizzo IP virtuale, è necessario. Fare clic su Aggiungi. Si tratta dell'indirizzo IP con cui i client comunicheranno.
- Digitare l'indirizzo IP virtuale e quindi fare clic su OK.
- Fare clic su Avanti.
- Accettare i valori predefiniti. Per informazioni più dettagliate, vedere l'Appendice.
- Fare clic su Fine per completare la creazione del cluster NLB.
- 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.
- Digitare l'indirizzo del server del membro da aggiungere. Se sono presenti più interfacce, selezionare quella che deve essere usata dal cluster NLB.
- 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.
- Fare clic su Fine per aggiungere il server membro al cluster.
- Network Load Balancer Manager dovrebbe essere simile al seguente:
Configurare il bilanciamento del carico di rete per la distribuzione attiva/passiva
- 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.
- Selezionare Singolo host e quindi fare clic su OK.
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:
- Installare la funzionalità bilanciamento carico di rete in tutti i server ARR.
- Creare un cluster NLB per ARR.
- 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.
- 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.
- 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.
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:
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:
- Installare la funzionalità bilanciamento carico di rete.
- Creare un cluster NLB per ARR.
- 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:
- Installare la funzionalità Bilanciamento carico di rete.
- Creare un cluster bilanciamento carico di rete per ARR.
- 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
Istruzioni per server di bilanciamento carico di rete:
- Installare la funzionalità Bilanciamento carico di rete:
https://download.microsoft.com/download/6/3/5/6350896f-1e08-440b-9f24-d50f5e9b2390/ServerCoredeepdive.ppt
- Installare la funzionalità Bilanciamento carico di rete:
Bilanciamento carico di rete e SSL:
Altri collegamenti di Bilanciamento carico di rete:
- https://technet.microsoft.com/library/cc782694.aspx
- https://technet.microsoft.com/library/cc778263.aspx
https://support.microsoft.com/kb/323437
https://support.microsoft.com/kb/890159
- https://blogs.msdn.com/clustering