VMware vSAN

Nell’ampio mondo di cui è composta l’offerta iperconvergente, VMware vSAN è sicuramente uno dei prodotti più utilizzati in ambito enterprise, grazie alla forte presenza di VMware sul mercato e grazie al livello di fidelizzazione raggiunto dai propri clienti. Per questo motivo, sempre più frequentemente, affrontiamo progetti e costruiamo soluzioni basate su VMware vSAN.

Esistono alcune vie per licenziare vSAN nel proprio ambiente e il più vantaggioso di questi è sicuramente quello di acquistare la suite VMware Horizon, al cui interno si possono trovare alcuni prodotti per la creazione e la gestione di ambienti VDI. Che include ovviamente anche VMware Virtual SAN o vSAN.

Questa è sempre stata la porta di ingresso per questa tecnologia in ogni infrastruttura: quindi, fino a qui nessuna novità. Ciò che stiamo vedendo, e che rende particolarmente interessante questa soluzione, sono le feature di Space Efficiency, che permettono di ridurre l’utilizzo dello spazio impiegato per ottenere la ridondanza del dato, soprattutto considerando come stanno cambiando i costi dei prodotti basati su tecnologie Flash / SSD.

Queste features non solo rendono la creazione di strutture iperconvergenti economicamente sostenibili, ma addirittura economicamente vantaggiose, soprattutto se stiamo approcciando l’iperconvergenza per ambienti server.

Tutto questo porterebbe a pensare che tali funzionalità di Space Efficiency sarebbero sempre da attivare, ma, riprendendo lo use case VDI e verificando l’effettivo funzionamento di queste feature, ci si accorge che potrebbe non essere sempre così. E abilitarle senza porsi le domande giuste potrebbe portare a un ambiente che non si comporta come pensiamo.

Andiamo con ordine, ed elenchiamo le funzionalità di Space Efficency in vSAN:

VMware vSAN

Erasure Coding: In vSAN la ridondanza del dato si basa sul parametro FTT (Failure to Tolerate) che determina quante copie del dato devono esistere. Con l’impostazione di default di FTT=1 possiamo tollerare 1 failure, perché esistono 2 copie del dato; questo comportamento ripercorre il classico Mirroring (RAID 1) che conosciamo negli storage tradizionali. Erasure Coding significa spezzare il dato in chunk che vengono posizionati su dischi diversi, e perciò acceduti in striping mode, ricalcando il comportamento di RAID 5 e RAID 6. Come nella sua forma tradizionale, questo comporta una riduzione di spazio necessario rispetto all’uso
del RAID 1.

Deduplication and Compression: questa funzionalità dal nome autoesplicativo ingloba due feature in una. Infatti, Deduplication e Compression non si possono abilitare disgiuntamente sul cluster.

Vale la pena menzionare che queste tecniche di riduzione dello spazio hanno una penalty in termini di performance, allo stesso modo in cui siamo abituati a gestirle in ambienti storage tradizionali. Ecco perché queste funzionalità di Space Efficiency si sposano bene con i sistemi All Flash, riducendone i requirements di spazio, e quindi i costi, senza compromettere le performance globali. Tali funzionalità infatti sono disponibili solo in modalità All Flash in VMware vSAN.

Negli ambienti VDI, a prescindere dal prodotto o dal vendor, sono sempre in atto metodi di provisioning tali per cui ogni desktop virtuale non è un’effettiva copia “Full” di tutti i suoi eguali, ma può essere una copia differenziale, o un’entità diskless, e perciò per sua natura non consuma molto spazio disco.

Prendendo come esempio Horizon View Composer, ogni desktop all’accensione può occupare ~100 MB di spazio disco.

In questi casi quindi il risparmio di spazio è un beneficio molto relativo, soprattutto sapendo di dover rinunciare a performance che sono sempre importanti quando si parla di workload con un grande fattore di interattività, come sono gli ambienti VDI.

Molto più importante è la tolleranza al fallimento, che si vuole ottenere quando si costruiscono strutture iperconvergenti, in quanto l’aspettativa potrebbe essere superiore al classico FTT=1, dove un solo failure è previsto.

Mettiamo che l’obiettivo sia di tollerare due failure nel cluster VDI; questo significa impostare FTT=2 e occupare 3 volte lo spazio per ogni singolo dato, e quindi in questo caso può sembrare naturale utilizzare ad esempio Erasure Coding.

Tuttavia esistono considerazioni sulle performance non solo legate alla natura di Erasure Coding, che comporta una write penalty a seconda della configurazione adottata (RAID 5 oppure RAID 6), ma soprattutto a una pesante read penalty nel momento in cui un disco o un nodo vengono a mancare; tutto questo avrebbe un impatto importante su un workload sensibile alle latenze come VDI, tanto da far squillare insistentemente il telefono del vostro Help Desk.

Queste considerazioni ricadono nel concetto di ripetibilità di un sistema, anche in termini di performance che non deve cambiare in caso di failure.

L’attivazione di Deduplication e Compression porterebbe grandi benefici se tutti i desktop virtuali fossero una copia Full di se stessi, ma sappiamo già che non è cosi; inoltre, l’attivazione di tale feature comporta la scrittura dei metadati all’interno del disk group in modalità striped, e questo significa che la perdita di un disco nel disk group lascia intendere la perdita dell’intero disk group, per la mancata possibilità di accedere ai metadati degli oggetti compressi e quindi ai dati stessi.

Questo per vSAN conta come un failure, sia che si parli di un singolo disco che di un intero nodo, ma nelle configurazioni in cui abbiamo un unico disk group per nodo (pensate alle configurazioni hardware che collassano 4 nodi in 2U dove ogni nodo ha pochi dischi a disposizione per la creazione dei disk group) la rottura di un disco significa perdere performance e spazio equivalente all’intero disk group, che è il contributo fornito al cluster di un intero nodo.

In ambienti server, queste features sono apprezzatissime, perché utili allo use case; mentre in ambiente VDI non persistenti potrebbero non dare l’apporto desiderato.

Per effettuare una ridondanza superiore alla perdita di un host, rimane consigliato prevedere una quota di overprovisioning dei desktop virtuali pari all’obiettivo di resilienza desiderato; se per esempio dobbiamo servire 300 VDI, e so di poter raggiungere una densità di 100 VDI per nodo, allora posso implementare 4 nodi ed effettuare il deploy di 400 VDI, tollerando in questo modo il failure di un nodo e continuare a servire i miei utenti. Se, perdendo quel nodo, dovessi perdere anche i dati in esso contenuto, comunque avrei 300 VDI a disposizione.

Questi ragionamenti ovviamente lasciano il tempo che trovano se non vengono applicati a dei business requirement, che devono essere stabiliti come obiettivo prima della creazione dell’infrastruttura e delle applicazioni che devono sfruttare quest’ultima per poter servire gli utenti; perciò, come sempre, la definizione dei requirements è alla base di ogni implementazione di successo.

Per completezza riportiamo alcuni dati di benchmark effettuati su un cluster vSAN All Flash ottenuti utilizzando lo strumento HCIBench (messo a disposizione da parte di VMware), per testare le performance di ambienti iperconvergenti.

Workload Profile:
Read: 50%
Write: 50%
Random %: 100%
Block Size: 4K

# Nodes = 8
Datastore = vsanDatastore
VMs = 72
IOPS = 104774.20 IO/s
THROUGHPUT = 409.28 MB/s
LATENCY = 1.3858 ms
R_LATENCY = 0.8615 ms
W_LATENCY = 1.9096 ms
=============================
Datastore: vsanDatastore
95th Percentile Latency = 1.631027777777777
IOPS associated with 95th Percentile Latency = 89107.0
=============================
Resource Usage:
CPU USAGE = 12.08%
RAM USAGE = 5.96%
VSAN PCPU USAGE = 3.741%

Da notare la bassa latenza ottenuta sviluppando più di 100k IOPS con un carico CPU / RAM estremamente basso: cosa che indica come probabilmente si può spingere il cluster a produrre ancora più IOPS, mantenendo delle buone performance.

Per chiudere riportiamo che oltre al supporto di vSAN per soluzione VDI VMware esiste anche il supporto da parte di Citrix per XenDesktop su vSAN.

Per maggiori informazioni potete consultare il white paper

VMware-vSAN-3

(https://storagehub.vmware.com/export_to_pdf/xenapp-and-xendesktop-7-12-on-vsan-6-5-all-flash)