Storage iSCSI

Un sistema di storage basato su iSCSI lavora come una SAN (Storage Area Network), in modo che lo spazio storage sia disponibile a qualsiasi server della rete LAN. Una SAN iSCSI utilizza il protocollo iSCSI (Internet SCSI) per collegarsi alla rete dei nodi che intende servire. Il protocollo iSCSI impacchetta i comandi SCSI su TCP/IP rendendo così possibile l'utilizzo dell'infrastruttura di rete esistente.

Un host ESXi che vuole utilizzare lo spazio storage offerto da una SAN iSCSI deve utilizzare un client o driver iSCSI, detto initiator, implementabile a livello software oppure a livello hardware con interfacce HBA. L’initiator consente di inviare al target (il dispositivo iSCSI, nel nostro caso la SAN) i comandi che consentono di leggere e scrivere sui dischi. Sia l’initiator che il target sono definiti nodi iSCSI, e sono identificabili tramite un nome univoco, detto IQN (iSCSI Qualified Name). L’IQN può essere lungo sino a 255 caratteri: prevede il prefisso “iqn”, un codice che indica l’anno e il mese in cui il fornitore ha registrato il suo “naming authority string”, seguito dallo stesso “naming authority string”, infine una stringa opzionale, scelta dal fornitore, preceduta da “:”.

Un esempio di IQN è il seguente (relativo all’adattatore iSCSI software di un host ESXi):
iqn.1998-01.com.vmware:esx-host1-38114a04

vsphere iscsi architecture


Adattatore iSCSI software
È indicato da VMware come Software iSCSI adapter e corrisponde all'initiator implementato direttamente nel kernel di vSphere ESXi. Permette all’host di collegarsi ad uno storage iSCSI tramite normali interfacce di rete, consentendo di sfruttare questa tecnologia senza la necessità di acquistare interfacce hardware dedicate. Nell'immagine sotto, possiamo vedere l'adattatore iSCSI software, raggiungibile nel tab Configuration, sezione Storage Adapter.

vsphere iscsi storage adapter


Adattatori iSCSI hardware dipendenti
Vengono indicati da VMware come Dependent Hardware iSCSI Adapter. Sono interfacce di rete dove parte dello stack iSCSI è implementata in hardware (utilizzando le risorse hardware dell’adattatore), consentendo all'host di risparmiare risorse relative a CPU e memoria. La loro gestione a livello di configurazione di rete dipende da ESXi: indirizzo IP e parametri per instaurare le sessioni iSCSI vanno configurati nella gestione del Networking.

Qui sotto possiamo vedere una scheda Broadcom NetXtreme II 5709 a 4 porte con funzionalità di offload iSCSI: l'host ESXi in questo caso vede quattro adattatori Dependent Hardware. Nella sezione Networking questa scheda mette a disposizione quattro interfacce di rete.

vsphere iscsi hardware storage adapters


Adattatori iSCSI hardware indipendenti
Vengono indicati da VMware come Independent Hardware iSCSI Adapter, e sono anche chiamati iSCSI HBA. Si tratta di interfacce dove tutto lo stack iSCSI è implementato in hardware (utilizzando le risorse hardware dell’adattatore), consentendo all'host ESXi di risparmiare risorse relative a CPU e memoria. L'interfaccia di gestione, necessaria per configurare la parte di networking e lo stack iSCSI, è implementata direttamente sul firmware. Un esempio di adattatore di questo tipo è il QLogic QLA4052.


Considerazioni sugli adattatori iSCSI
Gli adattatori con funzionalità di accelerazione hardware iSCSI (iSCSI Offload Engine), siano essi di tipo dependent che independent, liberano le risorse del server che sarebbero impiegate nelle operazioni ad alta intensità sui dati, ottimizzando così le prestazioni di I/O sia del server sia dello storage.

In molti casi, specialmente per la piccola e media impresa, l'initiator software integrato nel kernel di vSphere ESXi sarà sufficiente, ma nelle situazioni "importanti" sarà utile utilizzare iSCSI su schede accelerate, che hanno tuttavia costi superiori rispetto alle normali interfacce di rete Ethernet. C'è comunque da rilevare che le prestazioni non dipendono solo dalle interfacce utilizzate, ma anche e soprattutto dalla SAN e dalla rete che collega la SAN agli host. Altri elementi importanti sono il supporto ai Jumbo Frame e il numero di interfacce che si utilizzano per il collegamento alla SAN: sfruttando il multipathing si hanno a disposizione percorsi fisici diversi da utilizzare contemporaneamente per il collegamento tra host e SAN, con notevole miglioramento delle prestazioni.

Configurazione dell’adattatore iSCSI software
Per creare un collegamento iSCSI è necessario predisporre prima il networking, al fine di poter associare le porte VMkernel alle interfacce fisiche. Chiameremo porte iSCSI le interfacce VMkernel impiegate per il collegamento iSCSI. In caso di impiego di una sola interfaccia di rete, è necessario creare una porta iSCSI nello switch virtuale connesso all'interfaccia stessa. Nel caso di più interfacce fisiche dedicate al collegamento iSCSI, si dovranno creare tante porte iSCSI quante sono le interfacce fisiche utilizzate (mapping 1 a 1). Si raccomanda di utilizzare sempre switch virtuali e interfacce di rete dedicate esclusivamente al collegamento iSCSI, e su reti distinte in cui passa solo traffico iSCSI.


Procedura tramite vSphere Client

Creazione di una porta VMkernel iSCSI
1. Selezionare un host ESXi, andare nel tab Configuration, quindi sulle impostazioni del Networking.
2. Fare clic su Add Networking, selezionare VMkernel per il tipo di connessione e andare avanti.
3. Creare un nuovo switch, selezionare l'interfaccia di rete da utilizzare per il traffico iSCSI e andare avanti.
4. Inserire un nome per la porta VMkernel che si sta creando e andare avanti.
5. Specificare le impostazioni IP, andare avanti e fare clic su Finish.

Attivazione dell’adattatore iSCSI software
1. Sempre nel tab Configuration dell’host ESXi, fare clic a sinistra su Storage Adapters.
2. Fare clic su Add in alto a destra, selezionare la voce Add Software iSCSI Adapter e fare clic su OK.

vsphere iscsi client add storage adapter

3. L’adattatore iSCSI software (vmhba##) sarà visibile nella lista degli Storage Adapters.

vsphere iscsi client storage adapters

Port binding
1. Fare clic con il tasto destro sull’adattatore iSCSI software e selezionare la voce Properties.
2. Nelle opzioni dell’adattatore iSCSI, andare sul tab Network Configuration, fare clic su Add, selezionare la porta iSCSI creata precedentemente e fare clic su OK. Questo passaggio realizza il binding (associazione) tra l’adattatore iSCSI software e la porta VMkernel creata precedentemente.
vsphere iscsi client port binding

Discovery
1. Sempre all’interno delle proprietà dell’adattatore iSCSI software, andare sul tab Dynamic Discovery.
2. Fare clic su Add e inserire l’indirizzo IP del target iSCSI, di norma corrispondente allo Storage Processor della SAN iSCSI, quindi fare clic su OK.
vsphere iscsi client discovery

3. Fare clic su Close per terminare la procedura. A questo punto il sistema propone un rescan dell’HBA iSCSI per rilevare le nuove modifiche: al termine della scansione, dovrebbero essere già visibili le LUN configurate sulla SAN.

In generale, la ricerca del target iSCSI prevede due possibili metodi (il primo è quello visto sopra).

Dynamic discovery - modalità chiamata anche “SendTargets discovery”, ossia l’host contatta lo storage processor della SAN su un preciso indirizzo IP, e la SAN risponde inviando la lista di tutti i target presenti al suo interno.
Static discovery - si utilizza se sono già noti tutti i target.

Terminata la fase di configurazione dell’adattatore, sarà possibile creare un datastore VMFS all’interno di una LUN della SAN iSCSI. Per la procedura, far riferimento più avanti al capitolo “Gestione dei datastore”.


Procedura tramite vSphere Web Client

Creazione di una porta VMkernel iSCSI
1. Nel pannello di navigazione a sinistra, selezionare l’host desiderato e fare clic con il tasto destro su di esso.
2. Selezionare le voci All vCenter Actions > Add Networking.
3. Selezionare VMkernel Network Adapter per il tipo di connessione e andare avanti.
4. Creare un nuovo switch, selezionare l’interfaccia di rete da utilizzare per il traffico iSCSI e andare avanti.
5. Inserire un nome per la porta VMkernel che si sta creando e andare avanti.
6. Specificare le impostazioni IP, andare avanti e fare clic su Finish.

Attivazione dell’adattatore iSCSI software
1. Andare nel tab Manage dell’host ESXi e fare clic su Storage.
2. Selezionare la voce Storage Adapters e fare clic su Add new storage adapter (simbolo “+”).
3. Selezionare Software iSCSI Adapter e confermare facendo clic su OK.
vsphere iscsi web client storage adapters

4. L’adattatore iSCSI software (vmhba#) sarà visibile nella lista degli Storage Adapters.

Port binding
1. Nella lista degli Storage Adapters, selezionare l’adattatore iSCSI software.
2. Nel riquadro inferiore Adapter Details, selezionare il tab Network Port Binding e fare clic su Add.
3. Selezionare la porta VMkernel iSCSI creata precedentemente e fare clic su OK. Questo passaggio realizza il binding (associazione) tra l’adattatore iSCSI software e la porta VMkernel creata precedentemente.
vsphere iscsi web client port binding

Discovery
1. Sempre all’interno del riquadro Adapter Details, spostarsi sul tab Targets
2. Selezionare la voce Dynamic Discovery e fare clic su Add.
3. Inserire l’indirizzo IP del target iSCSI, di norma corrispondente allo Storage Processor della SAN iSCSI, quindi fare clic su OK.
4. Eseguire un rescan dell’HBA iSCSI per rilevare le nuove modifiche: al termine della scansione, sotto il tab Devices dovrebbero essere già visibili le LUN configurate sulla SAN.

vsphere iscsi web client discovery
Configurazione di un adattatore iSCSI hardware
Prima di configurare un adattatore iSCSI hardware, bisogna assicurarsi che sia visibile nella lista Storage Adapters. Nell’immagine sotto, ad esempio, appare una scheda Broadcom NetXtreme II 5709 a 4 porte con funzionalità di offload iSCSI: in questo caso si tratta di un adattatore "Dependent Hardware" con 4 interfacce di rete.
vsphere iscsi configurazione adattatore iscsi hardware

Successivamente si procede con la creazione di una porta VMkernel iSCSI, con le stesse modalità viste per l’adattatore iSCSI software. Per quanto riguarda il port binding tra un adattatore iSCSI hardware e la porta VMkernel iSCSI, l’aspetto più importante è quello di determinare in modo esatto il nome dell’interfaccia di rete fisica associata all’adattatore iSCSI hardware, affinché l’associazione sia eseguita correttamente.

Per determinare la corretta associazione, nelle proprietà dell’iSCSI Initiator fare clic sul tab Network Configuration (con vSphere Client) o Network Port Binding (con vSphere Web Client) e fare clic su Add. Saranno mostrate le sole interfacce fisiche corrispondenti agli adattatori iSCSI hardware.

Sarà poi necessario configurare uno o più indirizzi per il target discovery (come già visto per gli adattatori software), in modo che l’initiator iSCSI possa individuare le risorse storage disponibili sulla rete.

Terminato la fase di configurazione dell’adattatore hardware, sarà possibile creare un datastore VMFS all’interno di una LUN della SAN iSCSI. Per la procedura di creazione di un nuovo datastore, far riferimento al capitolo “Gestione dei datastore” più avanti.

L'autore

Alessio Carta

Responsabile sistemi presso un System Integrator con sede in Sardegna, si occupa di informatica e telecomunicazioni da oltre 10 anni. La sua formazione comprende una laurea in ingegneria, una specializazione IFTS in progettazione di reti telematiche, certificazioni Cisco CCNA, Cisco CCNA Security, MCP sui sistemi Windows Server e VCP su VMware vSphere (5.1, 5.5, 6.0). È istruttore presso una VMware IT Academy con sede a Cagliari.