Configurare la modalità di distribuzione per Azure Load BalancerConfigure the distribution mode for Azure Load Balancer

Importante

Azure Load Balancer supporta due tipi diversi: Basic e Standard.Azure Load Balancer supports two different types: Basic and Standard. Questo articolo illustra Load Balancer Basic.This article discusses Basic Load Balancer. Load Balancer Basic è disponibile a livello generale, mentre Load Balancer Standard è attualmente in anteprima pubblica.Basic Load Balancer is generally available, whereas Standard Load Balancer is currently in Public Preview. Per altre informazioni su Load Balancer Standard, vedere Panoramica di Load Balancer Standard.For more information about Standard Load Balancer, see Standard Load Balancer Overview.

Modalità di distribuzione basata su hashHash-based distribution mode

La modalità di distribuzione predefinita per Azure Load Balancer è un hash a 5 tuple.The default distribution mode for Azure Load Balancer is a 5-tuple hash. La tupla è formata da IP di origine, porta di origine, IP di destinazione, porta di destinazione e tipo di protocollo.The tuple is composed of the source IP, source port, destination IP, destination port, and protocol type. L'hash viene usato per eseguire il mapping del traffico ai server disponibili e l'algoritmo fornisce persistenza solo all'interno di una sessione di trasporto.The hash is used to map traffic to the available servers and the algorithm provides stickiness only within a transport session. I pacchetti che si trovano nella stessa sessione vengono indirizzati alla stessa istanza di IP di data center (DIP) nell'endpoint con carico bilanciato.Packets that are in the same session are directed to the same datacenter IP (DIP) instance behind the load-balanced endpoint. Quando il client avvia una nuova sessione dallo stesso IP di origine, la porta di origine cambia e il traffico quindi viene indirizzato a un endpoint DIP diverso.When the client starts a new session from the same source IP, the source port changes and causes the traffic to go to a different DIP endpoint.

Modalità di distribuzione basata su hash a 5 tuple

Modalità di affinità IP di origineSource IP affinity mode

Load Balancer può anche essere configurato usando la modalità di distribuzione affinità IP di origine.Load Balancer can also be configured by using the source IP affinity distribution mode. Questa modalità di distribuzione è nota anche come affinità di sessione o affinità IP client.This distribution mode is also known as session affinity or client IP affinity. La modalità usa un hash a 2 tuple (IP di origine e IP di destinazione) o a 3 tuple (IP di origine, IP di destinazione e tipo di protocollo) per eseguire il mapping del traffico ai server disponibili.The mode uses a 2-tuple (source IP and destination IP) or 3-tuple (source IP, destination IP, and protocol type) hash to map traffic to the available servers. Usando l'affinità IP di origine, le connessioni che vengono avviate dallo stesso computer client passano allo stesso endpoint DIP.By using source IP affinity, connections that are initiated from the same client computer go to the same DIP endpoint.

La figura seguente illustra una configurazione a 2 tuple.The following figure illustrates a 2-tuple configuration. Si noti che la configurazione a 2 tuple viene eseguita tramite il bilanciamento del carico nella macchina virtuale 1 (VM1).Notice how the 2-tuple runs through the load balancer to virtual machine 1 (VM1). Quindi viene eseguito il backup di VM1 in VM2 e VM3.VM1 is then backed up by VM2 and VM3.

Modalità di distribuzione affinità sessione a 2 tuple

La modalità affinità IP di origine risolve un'incompatibilità tra Azure Load Balancer e il Gateway Desktop remoto.Source IP affinity mode solves an incompatibility between Azure Load Balancer and Remote Desktop Gateway (RD Gateway). Mediante questa modalità è possibile creare una farm di gateway Desktop remoto in un singolo servizio cloud.By using this mode, you can build an RD Gateway farm in a single cloud service.

Un altro scenario d'uso è il caricamento di contenuti multimediali.Another use case scenario is media upload. Il caricamento dei dati avviene tramite UDP, ma il piano di controllo viene raggiunto tramite TCP:The data upload happens through UDP, but the control plane is achieved through TCP:

  • Un client avvia una sessione TCP all'indirizzo pubblico con carico bilanciato e viene indirizzato a uno specifico DIP.A client initiates a TCP session to the load-balanced public address and is directed to a specific DIP. Il canale viene lasciato attivo per monitorare lo stato della connessione.The channel is left active to monitor the connection health.
  • Viene avviata una nuova sessione UDP dallo stesso computer client allo stesso endpoint pubblico con carico bilanciato.A new UDP session from the same client computer is initiated to the same load-balanced public endpoint. La connessione viene indirizzata allo stesso endpoint DIP della connessione TCP precedente.The connection is directed to the same DIP endpoint as the previous TCP connection. Il caricamento del supporto può essere eseguito con una velocità effettiva elevata mantenendo un canale di controllo tramite TCP.The media upload can be executed at high throughput while maintaining a control channel through TCP.

Nota

Quando il set con carico bilanciato viene modificato (rimozione o aggiunta di una macchina virtuale), la distribuzione delle richieste client viene ricalcolata.When a load-balanced set changes by removing or adding a virtual machine, the distribution of client requests is recomputed. Non è possibile dipendere da nuove connessioni da client esistenti che terminano nello stesso server.You can't depend on new connections from existing clients to end up at the same server. Inoltre, l'uso della modalità di distribuzione dell'affinità IP di origine può comportare una distribuzione diversa del traffico.Additionally, using source IP affinity distribution mode can cause an unequal distribution of traffic. I client in esecuzione dietro i proxy possono essere visti come un'applicazione client univoca.Clients that run behind proxies might be seen as one unique client application.

Configurare le impostazioni dell'affinità IP di origineConfigure source IP affinity settings

Per le macchine virtuali, usare Azure PowerShell per modificare le impostazioni di timeout.For virtual machines, use Azure PowerShell to change the timeout settings. Aggiungere un endpoint di Azure a una macchina virtuale e configurare la modalità di distribuzione del bilanciamento del carico:Add an Azure endpoint to a virtual machine and configure the load balancer distribution mode:

Get-AzureVM -ServiceName mySvc -Name MyVM1 | Add-AzureEndpoint -Name HttpIn -Protocol TCP -PublicPort 80 -LocalPort 8080 –LoadBalancerDistribution sourceIP | Update-AzureVM

Impostare il valore dell'elemento LoadBalancerDistribution per la quantità desiderata di bilanciamento del carico.Set the value of the LoadBalancerDistribution element for the desired amount of load balancing. Specificare sourceIP per il bilanciamento del carico a 2 tuple (IP di origine e IP di destinazione).Specify sourceIP for 2-tuple (source IP and destination IP) load balancing. Specificare sourceIPProtocol per il bilanciamento del carico a 3 tuple (IP di origine, IP di destinazione e tipo di protocollo).Specify sourceIPProtocol for 3-tuple (source IP, destination IP, and protocol type) load balancing. Specificare none per il comportamento predefinito del bilanciamento del carico a 5 tuple.Specify none for the default behavior of 5-tuple load balancing.

Recuperare una configurazione di modalità di distribuzione del bilanciamento del carico con endpoint usando queste impostazioni:Retrieve an endpoint load balancer distribution mode configuration by using these settings:

PS C:\> Get-AzureVM –ServiceName MyService –Name MyVM | Get-AzureEndpoint

VERBOSE: 6:43:50 PM - Completed Operation: Get Deployment
LBSetName : MyLoadBalancedSet
LocalPort : 80
Name : HTTP
Port : 80
Protocol : tcp
Vip : 65.52.xxx.xxx
ProbePath :
ProbePort : 80
ProbeProtocol : tcp
ProbeIntervalInSeconds : 15
ProbeTimeoutInSeconds : 31
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes : 15
LoadBalancerDistribution : sourceIP

Quando l'elemento LoadBalancerDistribution non è presente, Azure Load Balancer usa l'algoritmo a 5 tuple predefinito.When the LoadBalancerDistribution element is not present, Azure Load Balancer uses the default 5-tuple algorithm.

Configurare la modalità di distribuzione su un set di endpoint con carico bilanciatoConfigure distribution mode on load-balanced endpoint set

Quando gli endpoint fanno parte di un set di endpoint con carico bilanciato, è necessario configurare la modalità di distribuzione sul set di endpoint con carico bilanciato:When endpoints are part of a load-balanced endpoint set, the distribution mode must be configured on the load-balanced endpoint set:

Set-AzureLoadBalancedEndpoint -ServiceName MyService -LBSetName LBSet1 -Protocol TCP -LocalPort 80 -ProbeProtocolTCP -ProbePort 8080 –LoadBalancerDistribution sourceIP

Configurare la modalità di distribuzione per gli endpoint di Servizi cloudConfigure distribution mode for Cloud Services endpoints

Usare Azure SDK per .NET 2.5 per aggiornare il servizio cloud.Use the Azure SDK for .NET 2.5 to update your cloud service. Le impostazioni degli endpoint per Servizi cloud vengono effettuate nel file .csdef.The endpoint settings for Cloud Services are made in the .csdef file. Per aggiornare la modalità di distribuzione del bilanciamento del carico per una distribuzione di Servizi cloud, è necessario un aggiornamento della distribuzione.To update the load balancer distribution mode for a Cloud Services deployment, a deployment upgrade is required.

Di seguito è riportato un esempio di modifiche del file con estensione csdef alle impostazioni degli endpoint:Here is an example of .csdef changes for endpoint settings:

<WorkerRole name="worker-role-name" vmsize="worker-role-size" enableNativeCodeExecution="[true|false]">
    <Endpoints>
    <InputEndpoint name="input-endpoint-name" protocol="[http|https|tcp|udp]" localPort="local-port-number" port="port-number" certificate="certificate-name" loadBalancerProbe="load-balancer-probe-name" loadBalancerDistribution="sourceIP" />
    </Endpoints>
</WorkerRole>
<NetworkConfiguration>
    <VirtualNetworkSite name="VNet"/>
    <AddressAssignments>
<InstanceAddress roleName="VMRolePersisted">
    <PublicIPs>
    <PublicIP name="public-ip-name" idleTimeoutInMinutes="timeout-in-minutes"/>
    </PublicIPs>
</InstanceAddress>
    </AddressAssignments>
</NetworkConfiguration>

Esempio di APIAPI example

L'esempio seguente illustra come riconfigurare la modalità di distribuzione del bilanciamento del carico per un set con carico bilanciato specificato in una distribuzione.The following example shows how to reconfigure the load balancer distribution mode for a specified load-balanced set in a deployment.

Modificare la modalità di distribuzione per il set con carico bilanciato distribuitoChange distribution mode for deployed load-balanced set

Per modificare una configurazione di distribuzione esistente, usare il modello di distribuzione classico di Azure.Use the Azure classic deployment model to change an existing deployment configuration. Aggiungere l'intestazione x-ms-version e impostare il valore alla versione 2014-09-01 o a una versione successiva.Add the x-ms-version header and set the value to version 2014-09-01 or later.

RichiestaRequest

POST https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>?comp=UpdateLbSet   x-ms-version: 2014-09-01
Content-Type: application/xml

<LoadBalancedEndpointList xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <InputEndpoint>
    <LoadBalancedEndpointSetName> endpoint-set-name </LoadBalancedEndpointSetName>
    <LocalPort> local-port-number </LocalPort>
    <Port> external-port-number </Port>
    <LoadBalancerProbe>
      <Port> port-assigned-to-probe </Port>
      <Protocol> probe-protocol </Protocol>
      <IntervalInSeconds> interval-of-probe </IntervalInSeconds>
      <TimeoutInSeconds> timeout-for-probe </TimeoutInSeconds>
    </LoadBalancerProbe>
    <Protocol> endpoint-protocol </Protocol>
    <EnableDirectServerReturn> enable-direct-server-return </EnableDirectServerReturn>
    <IdleTimeoutInMinutes>idle-time-out</IdleTimeoutInMinutes>
    <LoadBalancerDistribution>sourceIP</LoadBalancerDistribution>
  </InputEndpoint>
</LoadBalancedEndpointList>

Come descritto in precedenza, impostare l'elemento LoadBalancerDistribution su sourceIP per l'affinità a 2 tuple, sourceIPProtocol per l'affinità a 3 tuple o none per nessuna affinità (affinità a 5 tuple).As previously described, set the LoadBalancerDistribution element to sourceIP for 2-tuple affinity, sourceIPProtocol for 3-tuple affinity, or none for no affinity (5-tuple affinity).

ResponseResponse

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Length: 0
Server: 1.0.6198.146 (rd_rdfe_stable.141015-1306) Microsoft-HTTPAPI/2.0
x-ms-servedbyregion: ussouth2
x-ms-request-id: 9c7bda3e67c621a6b57096323069f7af
Date: Thu, 16 Oct 2014 22:49:21 GMT

Passaggi successiviNext steps