- Alessio Carta
- VMware
- Read Time: 1 min
Su VMware ESXi 5.0, il servizio SSH può essere attivato tramite vSphere Client o direttamente sull'interfaccia grafica che si visualizza a monitor sul server.
Su VMware ESXi 5.0, il servizio SSH può essere attivato tramite vSphere Client o direttamente sull'interfaccia grafica che si visualizza a monitor sul server.
Proseguiamo l'argomento del networking virtuale di VMware ESX/ESXi mostrando e descrivendo le configurazioni avanzate degli switch virtuali e dei Port Groups. Vedremo in particolare le funzionalità per bilanciare il carico di rete e le politiche di failover.
Nell'immagine sottostante vengono indicati gli oggetti e i termini chiave di una rete virtuale gestibile con ESX/ESXi, descritti nel precedente articolo "Virtual networking: concetti base".
Uno switch virtuale può essere connesso a più interfacce di rete fisiche (quelle dell'host ESX/ESXi); la politica di gestione di tali interfacce è chiamata NIC Teaming.
Il NIC Teaming permette di configurare le funzionalità per il bilanciamento del carico di rete e per il failover:
Le interfacce fisiche di uno stesso team devono trovarsi nello stesso dominio di broadcast. Per intenderci, non devono essere collegate a porte di uno witch fisico che appartengono a VLAN diverse.
Il NIC Teaming è configurabile sia a livello di Virtual Switch che di Port Group. Se le impostazioni di un Port Group non vengono modificate, allora vengono ereditate le impostazioni dello switch virtuale.
Nella pratica:
VMware ESX/ESXi offre 3 diversi metodi per il bilanciamento del carico:
Con l'instradamento basato su porta virtuale, il traffico in uscita di una macchina virtuale è mappato in modo statico ad un'interfaccia fisica: non importa quanto sia occupata la scheda di rete, il traffico continuerà a transitare per la stessa scheda e non sarà mai inoltrato verso un'interfaccia inattiva o più scarica. Tuttavia, poiché il calcolo per la scelta della scheda di rete viene effettuato solo una volta, questo metodo impegna pochissimo la CPU. Inoltre, poiché ci si basa sulle porte, se una macchina virtuale è stata configurata con più interfacce di rete virtuali, si ha la certezza che, per ognuna di queste vNIC, saranno utilizzati uplinks diversi (ovviamente se le schede di rete fisiche saranno maggiori di una).
Con il metodo basato su MAC sorgente, il traffico in uscita da ogni macchina virtuale è associato a una specifica scheda di rete fisica, in base all'indirizzo MAC della vNIC. Questo comportamento è quasi identico al precedente, ma per macchine con più NIC virtuali non è garantito l'uso di schede di rete fisiche differenti. Questa opzione non viene consigliata quasi mai.
L'instradamento basato su IP è l'unico metodo che permette, ad una machina virtuale dotata di una sola vNIC, di utilizzare la larghezza di banda complessiva di più interfacce di rete fisiche. Richiede tuttavia una modifica sulla configurazione dello switch fisico esterno, con l'attivazione di funzioni (Ether-channel) che non tutti gli switch supportano.
La configurazione del failover, e quindi del metodo di rilevamento della caduta di un uplink, prevede la scelta di uno dei 2 metodi seguenti:
L'opzione Notify Switch, quando attiva, permette all'host ESX/ESXi di notificare immediatamente, allo switch fisico esterno, i cambiamenti avvenuti a seguito di failover. Le notifiche avvengono anche quando un'interfaccia virtuale di una qualsiasi VM viene collegata allo switch virtuale, nell'ottica di diminuire i tempi di latenza.
Per impostazione predefinita, le interfacce fisiche dello stesso team lavorano secondo una logica di Failback: se una scheda fisica in stato "failed" ritorna in linea, essa riprende servizio immediatamente rimpiazzando l'interfaccia che aveva assunto il suo ruolo. Di default, la modalità Failback è impostata su Yes. Al contrario, impostando il Failback su No, l'interfacia di rete viene mantenuta inattiva anche dopo essere tornata in linea (ovviamente finchè un'altra interfaccia non va in errore e si richiede un nuovo failover).
L'opzione Failover Order specifica come distribuire il carico di lavoro sulle interfacce di rete fisiche.
Le opzioni sono 3:
Il networking virtuale, una volta compreso come funzionano VMware ESX e le macchine virtuali che girano su di esso, è un argomento semplice da capire: una rete virtuale permette di collegare in rete le macchine virtuali così come si fa per le macchine fisiche. Così come esistono switch fisici, dove si collegano i cavi di rete dei vari PC, allo stesso modo esistono switch virtuali configurabili all'interno di un host ESX. Gli switch virtuali possono essere collegati con la rete fisica semplicemente associandoli ad una o più interfacce di rete disponibili nel server che ospita ESX.
Gli switch virtuali consentono alle macchine virtuali sullo stesso host ESX Server di comunicare tra loro utilizzando gli stessi protocolli utilizzati negli switch fisici, senza la necessità di hardware di rete aggiuntivo; vi è inoltre pieno supporto alle VLAN (standard 802.1Q).
Le stesse macchine virtuali, così come PC o server reali, possono essere dotate di una o più schede Ethernet, ognuna delle quali con proprio indirizzo IP e indirizzo MAC. Dal punto di vista della rete, le macchine virtuali hanno le stesse proprietà delle macchine fisiche.
Le componenti chiave del virtual networking sono pertanto due:
Esistono cinque diversi tipi di interfacce di rete virtuali, tutte con propri indirizzi MAC e strettamente operanti sul livello 2 della pila OSI.
Tre sono adattatori Ethernet destinati alle macchine virtuali:
Gli altri adattatori di rete virtuale sono:
In generale, per tutte le interfacce di rete virtuali, funzioni come velocità e impostazioni duplex, tipiche delle reti fisiche, non hanno rilevanza, perché tutto il processo di trasferimento dei dati avviene nella RAM del sistema host ESX/ESXi, istantaneamente e senza possibilità di collisioni.
Ricordiamo che VMXNET3 ed Enhanced VMXNET supportano i jumbo frames, diversamente dalle interfacce E1000 e vlance.
Importante: la velocità di rete riportata dai sistemi operativi delle macchine virtuali non riflette necessariamente la reale velocità sull'interfaccia di rete fisica. Ad esempio, può succedere di impiegare un'interfaccia vlance e rilevare che il sistema operativo riporti una velocità di 10Mbps, nonostante l'ìinterfaccia fisica di appoggio sia a 1Gbps. Il problema è dato dall'emulazione, tuttavia ESX non sarà limitato ad una velocità di soli 10Mbps, ma trasferirà i pacchetti alla massima velocità concessa dall'adattatore di rete fisica, nel nostro esempio a 1Gbps.
Nell'immagine qui sotto, possiamo vedere la fase di creazione di una macchina virtuale (in modalità avanzata) dove viene chiesto che tipo di interfaccia di rete utilizzare.
Cominciamo col dire che funzionano come gli switch reali. Come qualsiasi switch Ethernet, operano al livello 2 (Data Link) del modello OSI e mantengono una tabella di MAC address (mac-address table) aggiornata ogni volta che il traffico attraversa lo switch.
Tuttavia, a differenza degli switch fisici, non necessitano di alcuna fase di apprendimento degli indirizzi MAC per la compilazione della MAC-Address table, perchè conoscono in modo autoritativo quali sono i dispositivi collegati su ogni porta. Inoltre, a regime, gli switch virtuali non aggiornano la tabella di inoltro con informazioni provenienti dalla rete fisica. Questo pone al riparo da attacchi di denial of service o tentativi di worm o virus che provano a scansionare host vulnerabili da infettare .
Gli switch virtuali non possono condividere una stessa interfaccia fisica. Una volta assegnata un'interfaccia fisica ad uno switch virtuale, questa non è più disponibile per gli altri.
A differenza del mondo reale, nelle reti virtuali di VMware si è obbligati ad utilizzare una topologia di rete a livello singolo, ossia non c'è possibilità di interconnettere switch multipli: il vantaggio è che non possono generarsi loop di rete, pertanto il protocollo Spanning Tree, non essendo necessario, non esiste. Questa caratteristica è chiamata "Virtual Switch Isolation".
Pur essendo vero che gli switch virtuali non sono collegabili tra loro, bisogna aggiungere che possono essere messi in comunicazione passando per la rete fisica. Chiaramente se due o più switch virtuali vengono connessi tra di loro tramite la rete fisica esterna, sono possibili tutte le problematiche che si presentano con switch reali nelle reti ethernet.
Per maggiori informazioni sugli switch, vedere l'articolo Switch e tecniche di switching. Per maggiori informazioni sullo Spanning Tree, vedere l'articolo STP - Spanning Tree Protocol.
Le porte di uno switch virtuale forniscono le connessioni alle macchine virtuali così come le porte con connettore RJ-45 di uno switch fisico forniscono connessione ai dispositivi in rete. Ogni switch virtuale può avere fino a 1.016 porte virtuali, con un limite complessivo di 4.096 porte per tutti gli switch virtuali di un singolo host ESX/ESXi.
Le porte di uplink sono le porte di un vSwitch associate ad una o più interfacce fisiche Ethernet di un host ESX/ESXi, e permettono il collegamento della rete virtuale con quella fisica. Le interfacce fisiche Ethernet degli host ESX/ESXi che permettono la connessione tra la rete virtuale e la rete fisica sono pertanto dette "uplinks".
E' possibile configurare gli switch virtuali senza uplink, come spiegato nel paragrafo "Creazione di uno switch virtuale" più avanti.
Si usa questa modalità quando lo switch virtuale deve fornire connessione a macchine virtuali protette da un firewall, anch'esso installato all'interno di una VM. In tal caso il firewall virtuale avrà più interfacce virtuali, ed una di esse risulterà collegata allo switch privo di uplink.
Chiaramente per tutto il traffico interno alla rete virtuale, gli uplinks nono sono necessari.
I gruppi di porte costituiscono una funzionalità del virtual networking non presente nelle reti fisiche. Un Port Group può essere visto come insieme di caratteristiche ben precise che accomuna un preciso numero di porte. In sostanza, definisce tutte le caratteristiche di ogni porta. Proprio per questo motivo, quando si desidera collegare una macchina virtuale ad un particolare tipo di porta, è sufficiente specificare il nome del Port Groups a cui collegarla.
Fra le caratteristiche che si possono definire a monte vi sono:
• Nome del Virtual Switch di appartenenza
• VLAN ID e politiche per il tagging e il filtraggio (è concesso che diversi gruppi di porte possano avere lo stesso VLAN ID)
• Politica di Teaming (unione uplink, bilanciamento, ordine di failover, etc..)
• Opzioni di sicurezza
• Parametri di traffic shaping
Viene effettuata tramite VMware vSphere Client. Una volta connessi all'host ESX, bisogna andare sul tab "Configuration", quindi su "Networking".
1) All'interno del tab "Configuration", andiamo nella sezione "Networking" (voce nel menu a sinistra), quindi selezioniamo la voce "Add Networking". |
2) Selezioniamo la prima opzione. |
3) Utilizziamo lo switch esistente: in questo modo verrà creato un gruppo di porte all'interno dello vSwitch0. |
4) Un Port Group può essere visto come insieme di caratteristiche ben precise che accomuna tutte le porte appartenenti al gruppo stesso. In questo passaggio possiamo definira il VLAN ID, nel nostro esempio uguale a 20. Se non si vogliono utilizzare VLAN, lasciare il valore predefinito (0). |
5) Prima di cliccare su Finish possiamo vedere un riepilogo di quanto configurato. |
6) Per collegare una macchina virtuale ad un Port Group, o meglio una o più interfacce virtuali della VM, è sufficiente specificare il nome del Port Group a cui collegare l'interfaccia. |
7) Ecco un riepilogo. Possiamo vedere che ora la macchina virtuale con Ubuntu Server ha un'interfaccia all'interno del Port Group "VLAN 20". |
1) All'interno del tab "Configuration", andiamo nella sezione "Networking" (voce nel menu a sinistra), quindi selezioniamo la voce "Add Networking". |
2) Selezioniamo la prima opzione. Sino a questo punto i passaggi sono gli stessi che portano alla creazione di un Port Group. |
3) Creiamo un nuovo switch virtuale. |
4) La creazione di un nuovo virtual switch comporta la creazione di un primo Port Group. Diamo un nome al gruppo e un VLAN ID se necessario. Nel nostro esempio il gruppo raccoglierà macchine da proteggere in DMZ dietro un firewall. Il nostro switch sarà privo di uplinks: deve semplicemente fornire connessione a macchine virtuali protette da un firewall (anch'esso installato su una macchina virtuale). In tal caso il firewall avrà più interfacce virtuali, ed almeno una di esse sarà collegata allo switch appena creato. |
5) Dopo aver terminato la procedura, possiamo vedere un riepilogo di quanto configurato. Nella rete virtuale è stato aggiunto un nuovo switch, vSwitch1, con il Port Group "DMZ". |
Con VMware Vmotion è possibile spostare le macchine virtuali da un host ESX ad un altro, senza necessità di spegnere la macchine virtuali stesse e senza interruzioni di servizio. VMware vMotion necessita di un’infrastruttura vSphere completa di storage condiviso, come sistemi Fibre Channel, SAN iSCSI o NAS (Network Attached Storage), con i file delle Virtual Machines su partizioni VMFS. Più precisamente, una macchina virtuale può essere spostata, tramite vMotion, da un host sorgente ad uno di destinazione solo se questi vedono la stessa LUN contenente i files della VM stessa. Il file system cluster VMFS (Virtual Machine File System) di VMware consente infatti a più server ESX di accedere in contemporanea alla stessa macchina virtuale (ossia ai file che costituiscono la VM). Pertanto la macchina virtuale continua ad essere ospitata sulla stessa LUN, vMotion semplicemente "incarica" un altro host di mantenere in esecuzione la macchina virtuale, fornendo le risorse necessarie (principalmente memoria e cpu).
Con VMware vSphere, l'alta disponibilità (HA, High Availability) viene fornita partendo dalla creazione di un cluster di macchine virtuali. Un cluster è semplicemente un gruppo di hosts ESX. Quando si aggiunge un host ESX ad un cluster, le risorse di quell'host diventano risorse del cluster. Le risorse di un cluster sono in sostanza le risorse complessive di tutti i nodi ESX che partecipano al cluster.
Pagina 13 di 27