Cerca nel blog

domenica 31 luglio 2011

SIOC: Storage I/O Control

Storage I/O Control (SIOC), è una nuova funzionalità disponibile in vSphere4.1 che permette un controllo più granulare dell’accesso delle VM sullo storage.

Spesso i problemi legati alle performance sullo storage dipendono da una eccessiva latenza del device. Quando la latenza misurata sul device supera i 20ms, è possibile che le applicazioni comincino a soffrire ed è necessario risolvere il problema.

Prima di vSphere 4.1 il peso relativo della VM, lato storage, veniva calcolato a livello del singolo host ESX, questo non rappresenta una situazione ottimale in quanto lo storage viene utilizzato da più VM distribuite su più host. Un caso limite è rappresentato da un cluster composto da più host e molte VM nel quale abbiamo un host che ospita una singola VM, questo significa che la VM ottiene l’accesso completo al device, mentre altre VM potrebbero competere a causa delle loro collocazione sui server ESX.

Lo scopo di SIOC è quello di identificare la latenza a livello di volumi VMFS per cercare di evitare che le VM con alta priorità, distribuite su host differenti, vadano in sofferenza durante un picco di lavoro sullo storage.

L’abilitazione della feature avviene chiedendo le proprietà del datastore e premendo l’apposita check box.

Abilitazione SIOC
Abilitazione SIOC

Una volta applicata la funzionalità è possibile osservarne lo stato dal nel riquadro di dettaglio della datastore selezionato.

Dettagli Datastore con SIOC abilitato
Dettagli Datastore con SIOC abilitato

L’immagine sottostante mostra graficamente i vantaggi del SIOC.

Prima e dopo abilitazione SIOC
Prima e dopo abilitazione SIOC

Per comprendere questa funzione è necessario spiegare alcuni termini

  • Disk shares: rappresentano l’importanza relativa della VM rispetto alla distribuzione risorse dello storage. Questo significa che in fase di contesa la VM con più share otterrà un maggiore accesso allo storage e di conseguieunza avrà un throughput più alto e una minore latenza;
    Host aggregate shares: somma delle share sul disco di tutte le VM che condividono il datastore;
    Datastore-wide normalized I/O latency: media ponderata e normalizzata della latenza vista dagli host che raggiungono il datastore. Per fare il calcolo viene usato il numero delle richieste di I/O completate per secondo da ogni host. Dato che la richiesta di I/O può avere diverse dimensioni, deve essere normalizzata, in questo caso una elevata latenza per una grande I/O viene distinta da un’alta latenza causata dalla congestione del device;
    Congestion threshold: rappresenta la soglia normalizzata della latenza per l’intero datastore alla quale SIOC fa riferimento per assegnare la priorità alle richieste di I/O delle VM in base alle share stabilite.

Per maggiori informazioni è possibile consultare le seguenti guide:


2 commenti:

Gendibal ha detto...

Ciao,
vorrei implementare SIOC sulla mia struttura in azienda che ha 4 hosts, 4 datastore e circa 20 VM, distribuite in maniera (per ora) casuale. Vorrei utilizzare SIOC per ottimizzare la velocità delle VM e ridurre la latenza dei datastore. Se non ho capito male il valore di riferimento per impostare SIOC è di 30 ms di latenza, oltre i quali SIOC entra in azione e normalizza le risorse indirizzandole proporzionalmente verso le VM che hanno maggiore priorità.
Quello che non ho capito è come dare priorità ad una VM e se sia possibile dare diversi gradi di priorità.
Scusa la domanda banale ma per me è una cosa del tutto nuova.
Un saluto e complimenti per il blog.

Luca

Gendibal ha detto...

Ciao e complimenti per il blog.
Vorrei implementare SIOC nella mia struttura aziendale che è composta da 4 hosts e 4 datastore con 20 VM distribuite (per ora) a caso. Se ho capito bene indicando un limite di latenza (es. 30 ms) SIOC entra in azione reindirizzando le risorse verso le VM con maggiore priorità.
Quello che non ho capito è come fare per assegnare la priorità alle VM e se ci possono essere diversi gradi di priorità.
Complimeti ancora e saluti.


Gendibal