Accelerazione hardware nello storage virtuale
In ottica di flessibilità, a partire da ESX/ESXi 4.1, VMware ha introdotto l’interfaccia vStorage APIs for Array Integration (VAAI), che fornisce funzionalità di accelerazione hardware tramite dispositivi di storage con supporto VAAI. L’interfaccia consente di eseguire alcune specifiche operazioni, come la clonazione di macchine virtuali o la migrazione tramite Storage vMotion, direttamente dalle unità storage, consentendo agli host un risparmio di risorse CPU, memoria e rete.

VAAI prevede il supporto a diverse operazioni fondamentali, dette primitive.

Atomic Test & Set (ATS) - funzione eseguita durante la creazione e il blocco di file nei volumi VMFS.

Clone Blocks/Full Copy/XCOPY - funzione utilizzata per copiare o migrare dati all’interno dello stesso storage fisico.
Zero Blocks/Write Same – funzione utilizzata per le operazioni di azzeramento, che consente all'array storage di azzerare quantità elevate di blocchi.
Thin Provisioning - permette agli host ESXi di informare lo storage fisico perché possa reimpiegare in altre LUN lo spazio precedentemente occupato da una VM (cancellata o spostata su un altro datastore).
Block Delete – permette di richiamare spazio sfruttando la funzionalità SCSI UNMAP.

Per ogni datastore e ogni dispositivo di storage, è possibile verificare il supporto all’accelerazione hardware:

tramite vSphere Client, nella colonna Hardware Acceleration (tab Configuration, menu Storage);
tramite vSphere Web Client, nel blocco Datastore Capabilities all’interno delle impostazioni del datastore (entrare nel datastore, fare clic sul tab Manage e selezionare la voce Settings).

Lo stato del supporto può essere Unknown, Supported o Not Supported. Il valore iniziale è Unknown. Lo stato diventa Supported dopo che l’host esegue con successo un’operazione di offload. Se invece l’operazione fallisce, lo stato diventa Not Supported. Tuttavia, se lo storage fornisce un supporto all’accelerazione hardware solo parziale, lo stato rimane Unknown.

 

Accelerazione hardware per il thin provisioning

L’interfaccia VAAI fornisce supporto negli ambienti che utilizzano il thin provisioning con funzionalità integrate negli array storage, facilitando i meccanismi per il recupero dello spazio inutilizzato e semplificando le attività riguardanti il monitoraggio dello spazio disco.

VAAI Thin Provisioning informa l'array dello spazio che viene liberato, in seguito a operazioni di eliminazione o rimozione di file dal datastore mediante Storage vMotion, o in seguito all'eliminazione o alla migrazione in un altro datastore di un disco virtuale, ad esempio tramite Storage DRS. L'array può quindi recuperare i blocchi di spazio liberati. Inoltre, controlla l'utilizzo dello spazio sulle LUN con thin provisioning per evitare l'esaurimento dello spazio fisico.

 

La funzione di recupero dello spazio inutilizzato

Da sempre, in occasione della migrazione di macchine virtuali da un datastore, i blocchi utilizzati dalle macchine virtuali stesse prima della migrazione venivano ancora segnalati come "in uso" da parte dell'array. Questo significava che le statistiche di utilizzo dall'array di storage potevano essere fuorvianti e che in tali occasioni poteva verificarsi un notevole spreco di spazio su disco. Grazie alle nuove primitive VAAI, il dispositivo di storage viene informato quando i blocchi non sono più in uso, con conseguente miglioramento della segnalazione del consumo di spazio su disco e possibilità di recupero dei blocchi inutilizzati.

 

Accelerazione hardware nei dispositivi di storage a blocchi

Se si utilizzano dispositivi di storage a blocchi (Fibre Channel o iSCSI) con supporto all’accelerazione hardware, gli host ESXi sono agevolati in specifiche operazioni.

  • Full copy, chiamata anche clone blocks o copy offload. In questo caso lo storage esegue direttamente le operazioni di copia dei dati senza che vi siano attività di lettura e scrittura da parte degli host. L’operazione consente di ridurre il tempo e il carico di rete durante la clonazione delle macchine virtuali, il provisioning da un template, oppure la migrazione con vMotion.
  • Block zeroing, chiamata anche Zero blocks o Write Same. Consente all'array storage di azzerare quantità elevate di blocchi, per allocare nuovo spazio storage, sia esso libero o precedentemente occupato da dati. Permette di ridurre i tempi e i carichi di rete durante la creazione di nuove macchine virtuali e nella formattazione di dischi virtuali.
  • Hardware assisted locking, chiamata anche Atomic Test & Set (ATS). Permette il locking delle macchine virtuali senza la necessità di impiegare meccanismi di “SCSI reservations”. Permette il blocco dei dischi per settore, evitando di bloccare un’intera LUN utilizzando le prenotazioni SCSI.

 

Accelerazione hardware nei dispositivi NAS

L’accelerazione hardware nei dispositivi NAS è stata introdotta a partire da vSphere 5. Può essere abilitata con l’impiego di plug-in (pacchetti VIB) messi a disposizione dai produttori. Consente agli host ESXi di demandare ai dispositivi NAS diverse operazioni.

  • Full file clone - operazione simile al VMFS block cloning. La differenza sta nel fatto che il NAS clona interi file anziché segmenti di file.
  • Reserve space – consente allo storage di allocare lo spazio per dischi virtuali in formato thick.
  • Lazy file clone – consente a VMware View di demandare allo storage la creazione dei “linked clones”.
  • Extended file statistics – consente di demandare allo storage l’elaborazione di accurati report sull’utilizzo dello spazio.

 

Considerazioni sull’accelerazione hardware

Se si sfrutta l’accelerazione hardware nei dispositivi di storage, è necessario tener conto di alcune condizioni che potrebbero portare ad errori nelle operazioni. I dispositivi di storage restituiscono un errore per ogni funzione non implementata nel loro hardware. Questi errori obbligano l'host ESXi ad utilizzare i suoi metodi nativi per portare a termine le operazioni.

In particolare, il VMFS data mover interviene a livello software in queste situazioni:

  • datastore sorgente e di destinazione hanno differente dimensione dei blocchi;
  • il file sorgente corrisponde ad un disco RDM, mentre il file di destinazione è di tipo standard (non-RDM);
  • il disco sorgente VMDK è “eagerzeroed thick”, mentre quello di destinazione è di tipo thin;
  • il disco sorgente (o di destinazione) VMDK è in un formato “sparse” oppure “hosted”;
  • la macchina virtuale sorgente ha delle snapshot.

 

vSphere Storage I/O Control

vSphere Storage I/O Control (SIOC) fornisce un meccanismo di controllo dinamico per la gestione dell’accesso alle risorse I/O da parte delle macchine virtuali all’interno di un cluster. Rispetto alle versioni precedenti, dove il supporto era solo per storage FC e iSCSI, a partire da vSphere 5 la funzionalità SIOC è stata estesa anche ad NFS, e in generale ai NAS (Network-Attached Storage).

I benefici più rilevanti sono:

  • accesso contemporaneo di più VM allo storage regolato dinamicamente in base alle share, assegnate su disco a livello di VM;
  • prestazioni migliori per le applicazioni sensibili alla latenza, che utilizzano molti I/O di piccole dimensioni (minori di 8KB);
  • distribuzione di risorse non utilizzate alle VM che ne hanno bisogno, in base alle share assegnate su disco a livello di VM;
  • prestazioni migliori per le VM con carichi di lavoro critici, in particolare durante i momenti di congestione sull’ I/O.

Lo Storage I/O Control consente di controllare le code di accesso a un datastore condiviso per i dischi di ogni macchina virtuale; tramite la configurazione delle share permette di mantenere gli SLA corretti per le VM business-critical rispetto alle altre VM residenti nel medesimo volume. I valori di share sono gestiti a livello di datastore, con le informazioni condivise tra tutti gli host. Ciò significa che nessuna macchina virtuale deve essere in grado di creare da sola un collo di bottiglia in qualsiasi ambiente, indipendentemente dal tipo di storage condiviso utilizzato. Storage I/O Control riduce automaticamente la velocità di una macchina virtuale che consuma una grande quantità di larghezza di banda I/O quando viene superata la soglia di latenza configurata.

Vi sono tuttavia alcune limitazioni:

  • i datastore con SIOC abilitato devono essere gestiti da un solo vCenter Server;
  • SIOC non supporta dischi Raw Device Mapping (RDM);
  • SIOC non supporta datastore con estensioni multiple (multiple extents);
  • lo storage utilizzato deve essere certificato e compatibile con la funzione di Storage I/O Control.

 

Integrazione dello storage con vCenter Server

Le vSphere Storage APIs for Storage Awareness (VASA) sono delle API che permettono ai dispositivi di storage di integrarsi con le funzionalità di gestione del vCenter. Con esse è possibile verificare e gestire caratteristiche e funzionalità dello storage direttamente dal vCenter Server. Il sistema VASA può agevolare, ad esempio, il processo di risoluzione dei problemi o le comunicazioni tra vSphere e gli amministratori di storage. Le caratteristiche di storage, come i livelli RAID, thin o thick provisioning, oppure gli stati di replica, possono essere visualizzate nel vCenter Server attraverso funzionalità definite in base al sistema (descrittori per datastore), oppure attraverso attributi esposti tramite Storage Views e SMS API.

L’integrazione tra VASA e gli array di storage è possibile grazie a plug-in creati dai produttori dello storage stesso. I plug-in si integrano nel vCenter Server, riportando tutti i dati degli array nell’interfaccia grafica di vCenter. I dati riguardano il funzionamento dello storage, la configurazione fisica dei datastore e le informazioni sull’utilizzo degli spazi nelle LUN.

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.