[Linuxtrent] Re: raid 6+0

  • From: Flavio Visentin <THe_ZiPMaN@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Sat, 06 Sep 2014 01:26:55 +0200

On 09/05/2014 09:46 PM, Ivan Bolognani Asistar wrote:

* Un server HP xeon 8 core, dischi da 300 gb da 10.000 rpm, cache da 1 Gb
con batteria

Proxmox con virtualizzato circa 15 macchine

Allora un raid 6 mi da una buona garanzia ed avrei più disponibilità dii
capacita disco?

Ti da ridondanza e capacità, ma non è adeguato per l'uso che vuoi farne.
I conti della serva sono abbastanza semplici.

Un server fa da 100 IOPS (p.es. un controller di dominio) a 200 IOPS (un normale DB server applicativo), di media quindi 150 IOPS (a meno che non siano macchine che non fanno nulla).
150 x 15 = 2250 IOPS
Considerando un rapporto letture|scritture classico di 60|40 vuol dire che di quelli sopra circa 900 sono IO di scrittura e 1350 sono IO di lettura.

Un disco da 10Krpm fornisce circa 150 IOPS.

In lettura abbiamo quindi che il raid 10 fornisce circa 1200 IOPS, il raid 5 ne offre 1050 e il raid 6 ne fornisce 900.

In lettura quindi nessuna configurazione fornisce la piena velocità, ma mentre con il raid 10 sei sotto di un 10% con il raid 5 sei già al 20% e con il raid 6 sei oltre il 30% in meno. La cache in lettura generalmente non compensa molto bene, quindi con un carico di lavoro medio già il raid 5 è al limite e rischi di vedere sporadici I/O wait quando hai task concorrenti (e qui dipende dagli applicativi che fai girare).

Per quanto riguarda la scrittura il discorso è più complesso.

8 dischi in raid 10 quindi forniscono un massimo di 150*8/2=600 IOPS in scrittura (66% dei richiesti 900IOPS).
8 dischi in raid 5 sono 150*8/4=300 IOPS (33%)
8 dischi in raid 6 sono 150*8/6=200 IOPS (22%)

Per la scrittura in tutte le configurazioni sei sotto di parecchio rispetto a quanto ti servirebbe, ma in questo caso l'effetto cache si sente tantissimo. Il problema è che tu hai solo 1GB di cache. Un I/O tipico è pari ad una pagina, quindi di default 4kB, e in 1GB di cache ci stanno quindi teorici 242kIOPS, sufficienti per permetterti di accumulare I/O e svuotare la cache con agilità in condizioni operative standard. Ma questo è solo se si tratta di I/O random di 4kB. Se cominci ad avere carichi sequenziali pesanti (p.es. un file server o un media manager) la cache si riempie velocemente, nel giro di pochi secondi perché la velocità di svuotamento è molto bassa. Se facciamo I/O sequenziali ottimizzati, p.es. 1MB per ogni I/O, otteniamo un througput massimo di 600MB/s coll raid 10, 300MB/s col raid 5 e 200MB/s col raid 6. Tradotto significa che nella migliore delle ipotesi la cache regge per pochi secondi prima di riempirsi e annullare il proprio effetto e passare (ai fini pratici non in realtà) in Direct I/O.

Nel tuo caso quindi il raid 6 è praticamente impensabile, a meno che tu non abbia un carico di lavoro fortissimamente sbilanciato sulla lettura e non sia composto quasi esclusivamente di I/O di dimensioni ridotte. La presenza anche solo di un file server su cui vengano scritti file di qualche centinaio di MB renderebbe il raid 6 il collo di bottiglia della soluzione.

Il dimensionamento standard che farei io nel tuo caso sarebbe quello di uno storage con almeno 2GB di cache (ma punterei a 8GB) e 11 dischi configurati in due raid 5 da 4+1 dischi più un disco di hot spare, e distribuirei le macchine in modo equo tra i due volumi.


--
Flavio Visentin

A computer is like an air conditioner,
it stops working when you open Windows
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: