Configurazione dei Proximity Placement Groups in Microsoft Azure

Da oggi sono disponibili i Proximity Placement Groups per le macchine virtuali eseguite in Microsoft Azure. Questo tipo di raggruppamenti logico delle macchine virtuali è particolarmente utile per tutti quei workload che richiedono una bassa latenza di connessione tra le VM e permetteno di raggruppare le macchine virtuali in modo tale che vengano ospitate in host di virtualizzazione fisicamente vicini tra loro.

Se già creare le macchine virtuali in una singola region di Azure riduce la distanza fisica tra le istanze, mettendole in una singola availability zone permette alle VM di essere fisicamente più vicine tra di loro. Poiché c’è una grossa espansione degli ambienti Azure, a causa della domanda sempre crescente di risorse e all’aumentare dei clienti, è possibile che una singola availability zone possa raggruppare diversi data center fisici e questo impatta sulla latenza di rete. Ho già avuto modo di spiegare cos’è una availability zone nel precedente articolo Aumentare l’alta affidabilità delle VM in Azure utilizzando le Availability Zones

Grazie ai Proximity Placement Group è possibile raggruppare logicamente le macchine virtuali in modo tale che siano vicine tra di loro e si possa abbassare notevolmente la latenza tra le diverse macchine virtuali, sia che siano stand-alone VMs sia che si trovino in un availability set oppure in un virtual machine scale set

Figura 1: Principio di funzionamento di un Proximity Placement Group

È possibile utilizzare i Proximity Placement Group sia al momento della creazione delle nuove macchine virtuali o dei nuovi virtual machine scale set sia successivamente nel caso abbiate risorse già esistenti. È necessario però, nel caso di risorse già esistenti, che le macchine virtuali sia nella modalità Stopped (deallocated).

Per creare un nuovo Proximity Placement Group cercate nel portale di Azure tra le risorse disponibili e seguite il wizard di creazione, che è molto semplice. Nelle figure sotto sono mostrati i diversi passaggi:

Figura 2: Creazione di un nuovo Proximity Placement Group dal portale di Azure

Figura 3: Nome e configurazioni del Proximity Placement Group

Figura 4: Validazione del nuovo Proximity Placement Group creato

Potete verificare in qualsiasi momento i Proximity Placement Group disponibili semplicemente ricercandoli tra le risorse create in Azure

Figura 5: Proximity Placement Group disponibili

Se le macchine virtuali si trovano già in un Availability Set sarà necessario mettere tutto l’availability set nel Proximity Placement Group. Come si può vedere dalla figura sotto, ho selezionato un availability set e ho modificato la configurazione del Proximity Placement Group. È obbligatorio, come già scritto, che tutte le VM inserite nell’availability set siano nello stato stopped (deallocated).

Figura 6: Modifica del Proximity Placement Group nell’Availability Set

Selezionando le diverse macchine contenute nell’Availability Set sarà possibile verificare che sono state tutte inserite nel Proximity Placement Group

Figura 7: La macchina virtuale è stata inserita nel Proximity Placement Group corretto

Quando create una nuova macchina virtuale è possibile inserirla in un Proximity Placement Group di vostra scelta a patto che ce ne sia uno disponibile nella region dove state creando la VM. Come si può vedere dalla figura sotto, sto creando una nuova macchina virtuale in UK West dove non ci sono Proximity Placement Group mentre mi viene visualizzato quello che ho precedentemente creato nella region West Europe.

Figura 8: Scelta del Proximity Placement Group al momento della creazione di una nuova VM

Per testare la latenza tra le macchine virtuali create nello stesso Proximity Placement Group mi sono servito del tool latte.exe (Windows), che mi permette di misurare il payload delivery time (TCP oppure UDP). Invece che utilizzare il protocollo ICMP e quindi il comando PING, il tool latte.exe mi permette di ottenere dei risultati più vicini al mondo reale perché effettivamente le applicazioni utilizzano il protocollo TCP oppure UDP. Nell’esempio sotto, ho lanciato il tool latte.exe sul server con indirizzo 192.168.5.4 che riceverà i pacchetti e ho specificato la porta 5005 . Assicuratevi di aprire questa porta sul firewall per poter ricevere le connessioni.

Il comando che ho lanciato sul server di destinazione è:

 

Figura 9: Il tool latte.exe è in ascolto sulla porta 5005

Ho quindi lanciato lo stesso tool da una macchina che si trova nello stesso Proximity Placement Group e ho verificato quanto tempo ci ha messo per spedire e ricevere 10.100 messaggi (o interazioni)

Il comando che ho lanciato sul server di partenza è:

 

Figura 10: Test utilizzando il tool latte.exe

Maggiori informazioni sull’utilizzo di questo tool sono disponibili alla pagina https://gallery.technet.microsoft.com/Latte-The-Windows-tool-for-ac33093b7.

Se invece volete capire come effettuare al meglio i test di latenza di rete delle macchine virtuali, vi consiglio di leggere l’articolo https://docs.microsoft.com/it-it/azure/virtual-network/virtual-network-test-latency

Conclusioni

Per essere certi che le macchine Azure che devo interagire tra di loro siano il più possibile vicine, è possibile creare i Proximity Placement Group, che permettono di poter ridurre la latenza e quindi di ottenere migliori performance quando il vostro workload prevede l’utilizzo di applicazioni che sono installate su macchine virtuali diverse, come nel caso di web server e di database server.