Costruire un private cloud: ancora sullo storage

Con un precedente post ho iniziato a raccogliere alcune idee sulla costruzione di un Private Cloud basato su tecnologia Microsoft, e ho iniziato parlando dello storage.

Oggi ritorno a parlare di storage, perché?

Perché a mio avviso lo storage è uno degli elementi più importanti, se non il più importante, e una scelta errata di questo componente può compromettere la riuscita del progetto o portare a un’espansione molto significativa dei costi.

Quindi come scegliere lo storage ? Ovviamente non c’è una risposta univoca e in questo post cerco di fare mente locale su quali sono le caratteristiche di cui tener conto e i razionali da tenere presenti nella scelta, oltre al costo evidentemente.

Tecnologie per i dischi

Cosa dovremmo tenere in considerazione nella scelta dei dischi?

La dimensione fisica: i dischi da 2,5” occupano per esempio meno spazio e quindi si può ottenere una maggiore densità di disco per unità rack rispetto ai dischi da 3,5”.

Performance: in particolare velocità di rotazione (RPM) e Seek Time.

  • 7200 RPM – 9 ms
  • 10000 RPM – 6 ms
  • 15000 RPM – 4,5 ms
  • SSD – >1 ms

Assorbimento di energia per unità disco:

disk_001
fig. 1 – Assorbimento di energia per unità disco (fonti diverse)

Affidabilità

L’affidabilità di un disco può essere misurata in diversi modi:

  • Mean time to failure (MTTF): misura il tempo medio tra due rotture
  • Annual failure rate (AFR): numero medio di errori in un anno
  • Unrecoverable Error Rate (UER): misurato in blocchi persi per numero di bit.
    Per esempio
    • 1x10^14 bit = 1 blocco ogni 11 TB (Common Consumer )
    • 1x10^15 bit = 1 blocco ogni 113 TB (Near-Line SATA)
    • 1x10^16 bit = 1 blocco ogni 1 PT (Enterprise SAS)
  • Mean time to data loss (MTTDL): misura il tempo medio tra due perdite di dati. Questo valore dipende, oltre che dalle caratteristiche del singolo disco, anche dall’organizzazione dell’array

Facciamo alcuni esempi.

Usando dischi SATA da 2TB in un array RAID 5 di 16 dischi e un disco si rompe, esiste circa il 30% di probabilità di incontrare un bad block durante la ricostruzione del disco. Il bad block può causare la corruzione di uno stripe di dati che potrebbe essere 1MB di dati.

Usando una configurazione RAID 0+1 la probabilità di incontrare un bad block scende al 3% e la possibile perdita di dati a 64KB. Usando RAID 6 la probabilità di incontrare un bad block scende allo 0,03%. Un’ulteriore accorgimento per ridurre i tempi di ricostruzione di un disco è l’utilizzo di dischi di minori dimensione che hanno tipicamente un minor AFR e possono essere ricostruiti più velocemente.

Riassumendo le best practice sono: usare dischi di capacità minore con migliore AFR/MTTF e UER e nel caso si debbano usare dischi di elevata capacità, sacrificare più drive alla parità usando RAID 6 (double parity) o set RAID 5 piccoli (riduzione della finestra di rebuild).

Tipo di disco

disk_002
fig. 2 – Penetrazione sul mercato delle diverse tecnologie di disco (fonti diverse)

Come illustra il grafico precedente le tecnologie SAS e SATA stanno ampiamente dominando il mercato per numero di unità vendute.

Tecnologie di connessione disk shelf – controller

In questo caso le tecnologie tra cui scegliere sono sostanzialmente due:

  • Fibre Channel disk shelf attach: due porte a 4Gb/s per ogni controller per un totale di 8Gb/s dal controller allo stack di dischi
  • SAS disk shelf attach: 4 porte per 4 linee a 3Gb/s per un totale di 96Gb/s dal controller allo stack di dischi

Tecnologie di connessione server – storage

Pensando alla connessione server – storage possiamo considerare due grandi categorie di soluzioni: DAS e SAN

Direct Attached Storage (DAS)

In questo caso i dischi sono locali al server e questo tipo di soluzione manca spesso di funzioni tipiche di uno storage avanzato (snapshot , Thin provisioning, global hot spare, ecc…).

In genere la scelta ricade sui DAS quando a guidare è il costo, senza prendere in considerazione altre caratteristiche.

Questo tipo di soluzione tende ad incrementare i costi di deployment iniziale, dei backup e dei ripristini in caso di disaster recovery e nello stesso tempo a ridurre la flessibilità d’uso dello storage, per esempio in situazioni di veloce incremento dell’allocazione di spazio.

Storage Area Network (SAN)

In una SAN i dischi sono esterni al server e “remoti” e i vantaggi che offre rispetto ad una configurazione DAS sono molteplici.

Alcune caratteristiche tipiche sono:

  • RAID condivisi: IOPS e spazio disco non consumati da un server possono essere usati da altri rendendo più efficiente l’uso dell’infrastruttura
  • Cache condivisa
  • Supporto degli Snapshot: possono essere usati per effettuare restore istantanei, per site to site mirroring, per deployment immediati di immagini, per operazione di data mining
  • Possibilità di miscelare dischi di tecnologie diverse nella stessa unità che consente di:
    • creare unità logiche di diverso “valore” da assegnare a workload diversi
    • spostare automaticamente i dati dai dischi più veloci a quelli più lenti al crescere del tempo trascorso dall’ultimo accesso
  • Possibilità di aggiungere spazio disco all’unità e di assegnarlo ad un workload senza interruzioni di servizio
  • Usabili per boot da remoto dei server; la completa rimozione dei dischi dai server consente di ridurre i tempi di ripristino in caso di disaster recovery

Protocolli SAN

La comunicazione tra server e storage avviene utilizzando protocolli dedicati.

  • Fibre Channel
    E’ il protocollo di trasporto ad alta velocità (1,2,4,8,16Gb/s) “tradizionale” per storage di livello enterprise
    E’ basato su token; non si hanno pacchetti persi per congestione
    Tutti gli HBA (Host Bus Adapter) sono hardware
    Richiede l’uso di switch dedicati e connessioni in fibra il che porta a costi elevati di implementazione
  • iSCSI
    Questo protocollo può utilizzare una qualsiasi rete TCP/IP
    Non sono necessari switch dedicati anche se sono altamente consigliati
    La rete può determinare perdita di pacchetti e la ritrasmissione fa affidamento sul sovrastante protocollo SCSI
    Costo d’ingresso decisamente inferiore rispetto a FC
    Può essere ruotato come qualsiasi altro traffico TCP/IP
  • Fibre Channel over Ethernet (FCoE)
    E’ un protocollo ad alta velocità (10Gb/s) che si sta rapidamente diffondendo
    Non si appoggia a TCP/IP
    Richiede l’uso di switch CEE (Converged Enhanced Ethernet) che inglobano il supporto a QoS e VLAN e supportano contemporaneamente traffico di rete standard e FC
    E’ possibile usare sia fibre ottiche (per lunghe distanze) che doppino in rame
    Il maggior beneficio è la possibilità di utilizzare un unico set di apparati di rete

disk_003

Quindi cosa usare?

Se si sta espandendo un’infrastruttura FC conviene prendere in considerazione la possibilità di usare FCoE (con dei bridge verso FC?), se si è in fase di disegno di una nuova infrastruttura vale la pena confrontare attentamente FC e FCoE:  FC può essere la soluzione più economica oggi, ma lo sarà ancora fra 8 mesi?

Vale anche la pena di considerare iSCSI, magari usando switch CEE in modo da iniziare con una soluzione a basso costo d’ingresso (ricordate che l’iSCSI iniziator è gratis in Windows Server) mantenendo la possibilità di passare a FCoE in tempi successivi.

In questo lungo post ho cercato di raccogliere alcune idea sul tema storage, ma mi piacerebbe avere il vostro parere e sentire le vostre esperienze.

Buona giornata a tutti

| giorgio | twitter-logo-1 @pgmalusardi |full_black