Uno dei termini di ricerca che appaiono più spesso sul mio blog sono frasi del tipo "storage per VMware" o "miglior storage per virtualizzare" e simili. Quindi penso che questo argomento possa avere un certo interesse per chi legge e vorrei provare a spendere due righe sull'argomento.

Venditori di macchine usate

Ieri ho fatto un giro sui siti dei principali di fornitori di storage ed è impossibile trovarne uno che non stia pubblicizzando il suo storage come il migliore per VMware: il più efficiente, economico ed integrato! Paroloni che in alcuni casi non trovano poi nessun riscontro nei fatti. In pratica tutti gli storage sono compatibili con VMware, è sufficiente andare nel sito della HCL (hardware compatibility list) di VMware per verificare in pochi secondi tutti i dettagli sugli storage certificati (comprese versioni di firmware, protocolli, limitazioni, ecc). Il problema, come al solito è che compatibile non significa che l'oggetto sia anche efficiente, economico nella gestione o integrato ma solo che funziona!

Qualche precisazione e una introduzione

VMware (ESXi) è un Hypervisor, cioè un software di base che, installato su un server x86, permette di controllare le VM (macchine virtuali) che vengono create su di esso.
All'interno delle VM vengono poi installati i diversi sistemi operativi, le applicazioni e, infine, i dati. Ormai possiamo dire che la quasi totalità dei software è certificata per gli ambienti virtualizzati, quindi è possibile trovare molti tipi di workload che "escono" addizionati dalla stessa macchina fisica ma generati da decine di macchine virtuali.

Le installazioni di storage per VMware si dividono in due gruppi: quelle basate su storage a blocchi (FC o iSCSI) e quelle basate su NFS (network file system).

NFS viene scelto principalmente per la semplicità d'uso e l'elasticità operativa mentre lo storage a blocchi rimane il più diffuso perchè è quello che garantisce le maggiori performance nelle situazioni più critiche. Ci sono due scuole di pensiero su questo argomento ma noi preferiamo sempre valutare nel dettaglio la situazione e scegliere il protocollo più adatto per ogni cliente/infrastruttura. Gli argomenti che tratterò in seguito riguardano maggiormente gli storage a blocchi.

Un'altro aspetto critico dello storage per VMware è il particolare Filesystem che si chiama VMFS: un cluster File System. Il VMFS è alla base di molte caratteristiche di successo di VMware ma ha anche dei limiti che possono compromettere le prestazioni e la scalabilità dell'infrastruttura.

Ma quali caratteristiche deve avere uno storage a blocchi per poter essere annoverato fra quelli più adatti ad ospitare una infrastruttura VMWare? in realtà non sono tante e le possiamo riassumere in 5 punti:

  • Supporto per il VAAI
  • Integrazione con vCenter
  • Snapshot VMware-aware
  • Thin Provisioning con zero-block detection
  • Integrazione con Site Recovery Manager

supporto per il VAAI

VAAI significa vStorage API for Array Integration. E' una API specifica che, se supportata dall'array permette di attivare l'uso di tre funzionalità specifiche di basso livello: Hardware Offloaded Copy, Write Same/Zero and Hardware Offloaded Locking.
Non voglio addentrarmi in una disamina dettagliata di cosa fanno le singole funzionalità (potete trovare ampia documentazione anche qui, qui e qui), ma in breve posso dire che:

  • Hardware Offloaded Copy: permette di demandare allo storage le operazioni di copia senza farle passare dall'host ESX, questo si traduce in un'accelerazione fino a dieci volte rispetto alla stessa operazione in modo tradizionale.
  • Write Same/Zero: permette di velocizzare in modo eccezionale le operazioni ripetitive di scrittura demandandole direttamente allo storage, come ad esempio la formattazione dei VMDK durante la loro creazione.
  • Hardware Offloaded Locking: permette di ridurre, se non eliminare, le scsi reservation conflict utilizzando un meccanismo di locking a livello di blocco anziché effettuare il lock dell'intero volume VMFS.

Un array che supporta pienamente il VAAI alleggerisce di molto il carico di lavoro dei server per alcune operazioni di IO rendendo l'intera infrastruttura più scalabile e performante.

Integrazione con vCenter

Se il VAAI è l'integrazione che va da VMware verso lo storage, l'integrazione dello storage verso VMware è quella che passa per il vCenter (di solito per mezzo di un plug-in).
Molti vendor hanno sviluppato una particolare integrazione che permette di controllare lo storage direttamente da VMware semplificando quindi di operazioni di management dello storage stesso, allocazione automatica di nuovo spazio disco per le VM, monitoring sulle performance e diverse altre operazioni molto sofisticate.

Snapshot VMware-aware

Per chi usa VMware le snapshot sono all'ordine del giorno, VMware ha un suo sistema di snapshot software. La snapshot hardware, se correttamente implementata, è molto più efficiente di quella messa a disposizione da VMWare. Tutti i sistemi di storage moderni permettono di fare le snapshot di una LUN ma sono molti meno quelli che hanno la capacità di fare delle snapshot hardware consistenti con VMware ed ancora meno quelli che hanno gli strumenti per mantenere traccia della singola VM all'interno di Datastore.

Thin provisioning con zero-block detection

Il thin provisioning è la capacità dello storage di allocare fisicamente solo lo spazio realmente richiesto ed evitare di pre-allocare tutto quello pianificato in anticipo.

Alcune implementazioni di TP sono molto più smart di altre e permettono di evitare la scrittura fisica di blocchi pieni di 0. In questo modo, quando un software fa operazioni di inizializzazione (come ad es. la preparazione di un datafile per un DB) o simili, lo storage intercetta queste particolare scritture e ne tiene traccia ma non le scrive fisicamente migliorando notevolmente i tempi di risposta e l'utilizzo reale di spazio fisico.

Integrazione con site recovery manager

Il site recovery manager è un tool di VMware che permette di gestire con relativa semplicità tutte le operazioni di Disaster Recovery di una infrastruttura virtualizzata. SRM funziona utilizzando la replica hardware messa a disposizione dallo storage, quindi è necessario un colloquio abbastanza serrato fra i due attori che viene gestito da un plug-in chiamato SRA (sviluppato dallo storage vendor). La specifica HCL per SRM è abbastanza corta ed è necessario assolutamente consultarla prima di scegliere lo storage per una infrastruttura con ambizioni di DR.

Scegliere lo storage giusto per la propria azienda e, in particolare, per applicazioni specifiche non è facile. Se poi aggiungiamo che ogni "commerciante di storage" si presenta con la soluzione migliore le difficoltà per prendere la decisione giusta sono ancora maggiori. Spero che questo articolo sia stato utile per fare un po’ di chiarezza sull'argomento.