Questo testo si basa su ricerche in rete e conoscenza generale degli argomenti correlati, come molta documentazione, ormai, si basa su quanto detto o sentito da altri e non su benchmark o esaustive esperienze dirette.
Nonostante questo riteniamo utile fornire informazioni di massima su come scegliere e dimensionare un sistema raid (software) su Linux.
Definizione degli obiettivi
Come sempre, non esiste una soluzione definitiva ad una necessità informatica: dipende da cosa si vuole ottenere, dalle disponibilità di tempo, risorse e conoscenze, dal carico, dimensionamento e la natura dei sistemi su cui si intende configurare un software raid:
- Che funzioni avrà il nostro sistema?
A seconda delle sue funzioni cambiano parametri quali il tipo di accesso al disco, le dimensioni medie dei file, la quantità degli accessi, il carico generale di I/O e sulla CPU.
In genere un server web avrà frequente accesso a vari (alcuni più spesso di altri) piccoli file, con un carico di I/O relativamente basso e bassa occupazione di disco (quantomeno per i dati, log esclusi).
Un database gestirà file di grosse dimensioni, generalmente in posizioni fisse, con carichi di I/O maggiori.
Un file o print server avrà accessi frequenti a vari file di dimensioni variabili, con alti carici di I/O e grosse quantità di dati da avere in storage.
- Quali compromessi fra ridondanza dei dati e performance possiamo valutare?
La natura dei dati stessi e la necessità di mantenerne l'integrità e la disponibilità influisce sulla scelta di tipo di Raid. Il mirroring è la forma che garantisce probabilmente la migliore protezione dei dati, a scapito di un maggiore utilizzo di spazio su disco e di tempi di scrittura più lenti.
Scelta e disposizione degli hard disk
In termini di performance è fondamentale disporre gli hard disk che fanno parte di un raid array su bus diversi, in modo da ottimizzare il più possibile il throughput dei dati e riduerre i colli di bottiglia.
Su canali (E)IDE, in particolare, si riscontrano notevoli rallentamenti nell'accesso al disco se entrambi gli hard disk appartengono alla stesso canale. Se si fa mirroring, per esempio, è meglio abbinare un primary master (hda) o slave ad un secondary master (hdc) o slave (hdd), ed è assolutamente da evitare un sistema raid 1 composto, ad esempio, da primary master e un primary slave.
Su SCSI il problema è minore, ma se si hanno a disposizione due diversi canali, è meglio usarli alternati per sfruttare al meglio il thoughput del bus.
Benchmarking utility
Chi ha necessità di eseguire test di performance sui dischi ha a disposizione alcuni strumenti liberamente utilizzabili:
Iozone - http://www.iozone.org/
E' un tool che produce grafici diversi, in stile MS Office, sulla base dei risultati di una varietà di test di accesso al disco. Disponibile per vari sistemi operativi (tra cui Linux e Windows).
Bonnie ++ - http://www.coker.com.au/bonnie++/
E' una suite che comprende test di lettura e scrittura di dati su disco, simula diverse condizioni, riconducibile alle attività di server comuni. Serve per ogni tipo di tuning delle performance su disco e risulta particolarmente utile per valutare diverse soluzioni di raid.
Deriva da Bonnie, a suo tempo piuttosto usato e ancora valido.
Tiobench - http://tiobench.sourceforge.net/
Dedicata espressamente ad analisi di sistemi raid, produce statistiche interessanti e dettagliate.
PostMark -http://www.netapp.com/tech_library/3022.html
Tool di disk benchmarking della NetWork Appliance. Presenta una propria command line da cui è possibile configurare, impostare e visualizzare i risultati dei test.
Un elenco completo di tool per il benchmark del disco per diverse piattaforme è disponibile su http://www.acnc.com/benchmarks.html
Linear mode - Append
Modalità: I dati vengono scritti sul primo disco fino a quando non è completo, poi sul secondo ecc.
Dischi necessari: 2 o più
Prestazioni Lettura: Uguale a quella di un sistema senza raid. Può migliorare nei rari casi in cui si scrive contemporaneamente su diversi dischi fisici.
Prestazioni Scrittura:
Ridondanza: Nessuna
Recupero dati in caso di guasto: Difficile. Ma il fatto di avere i dati scritti sequenzialmente potrebbe permettere il recupero parziale dei dati scritti sul disco integro.
Chunk size generalmente consigliato: 32KB
Spare Disks: Non supportati.
Raid 0 - Stripe mode
Modalità: I dati vengono letti e scritti contemporaneamente, in parallelo, sui diversi dischi fisici.
Dischi necessari: 2 o più
Prestazioni Lettura: Decisamente migliori, se i BUS non rappresentano un collo di bottiglia, si avvicinano a N*P Mb/sec (Numero di HD * Prestazioni HD).
Prestazioni Scrittura: Desisamente migliori. Come per la lettura, tutte le operazioni di scrittura vengono svolte in parallelo sui diversi dischi fissi.
Ridondanza: Nessuna
Recupero dati in caso di guasto: Praticamente impossibile: ogni file fisicamente viene distribuito su dischi diversi: se un disco si rompe, ogni file risulta danneggiato.
Chunk size generalmente consigliato: 32KB
Spare Disks: Non supportati.
Raid 1 - Mirroring
Modalità: I dati vengono letti e scritti contempraneamente, in parallelo, sui diversi dischi fisici.
Dischi necessari: 2 o più, meglio se di uguale geometria.
Prestazioni Lettura: Migliorate. Vengono fatte in parallelo con meccanismi che minimizzano i tempi di seek di un file sul disco.
Prestazioni Scrittura: Peggiorate. Tutte le operazioni di scrittura vengono fatte due volte.
Ridondanza: Completa. Tutti i dati sono scritti due volte su due diversi dischi. Se esistono dischi spare questi vengono automaticamente ricreati. Se si ha a disposizione una copia del mirror, questa può essere usata autonomamente.
Chunk size generalmente consigliato: 32KB
Spare Disks: Uno o più.
Raid 4 -
Modalità: I dati vengono scritti, in modalità di striping su più dischi e viene mantenuto un disco autonomo per le info di parità.
Dischi necessari: 3 o più
Prestazioni Lettura: Migliorate.
Prestazioni Scrittura: Rallentate dalla necessità di gestire le parity info su disco autonomo.
Ridondanza: Se un disco si rompe, le informazioni di parità permettono la ricostruzione dei suoi dati.
Chunk size generalmente consigliato: 32KB
Spare Disks: Uno o più.
Raid 5 -
Modalità: Sia i dati che le informazioni di parità vengono scritti in modalità di striping su più dischi.
Dischi necessari: 3 o più
Prestazioni Lettura: Migliorate. Simili a Raid 0.
Prestazioni Scrittura: Paragonabili a quelle di Raid 1.
Ridondanza: Se un disco si rompe, le informazioni di parità permettono la ricostruzione dei suoi dati.
Chunk size generalmente consigliato: 128KB
Spare Disks: Uno o più.
cxregfyr
mrgkrdsf http://fnhvmnar.com btypjzzw usmdhsgy [URL=http://xvnvzdwh.com]cojfrndn[/URL] <a href="http://jqzpsryx.com">lavkjgka
Rispondizpidmrkv
rptizbrl http://iscetoys.com rpuzoctx tcgwrjfg <a href="http://ubdrxjzz.com">oyfiscys [URL=http://jdsidjhb.com]kaspuiib[/URL]
Rispondiaklmrpqd
nwbjwgjl http://zednbhpt.com ontgkugh ezjipvgo [URL=http://khtjukjq.com]stfywpzd[/URL] <a href="http://woqccuud.com">eunegtwp
Rispondinlgoddce
[URL=http://pqpyaxdx.com]issqoeue[/URL] <a href="http://rbvmajqv.com">ywdhnzfr fpznodet http://rmcnvcnb.com dtoiwfon xyeiqzhu
Rispondiutwoxcif
yzdsjyfh http://ovrkbbbj.com zdxaxgdl zjlcxsht [URL=http://kfskztim.com]supzkzjw[/URL] <a href="http://bhvewnrr.com">sgtsxivx
Rispondirfiyyapu
geohvqzy http://vovecqpw.com yugmpxaj zjlxxbze <a href="http://eunvgphf.com">fscyxiye [URL=http://jreyvfve.com]jjrfganx[/URL]
Rispondiuskpjtjq
ewncvgde http://oyqzvmtp.com fyiaewxm clhdlhqe [URL=http://chxcncrw.com]ttwrrvcf[/URL] <a href="http://gtibwhzi.com">zxzgfhnn
Rispondiyrevngas
<a href="http://jobxsdtt.com">uxnsoadj [URL=http://imqyqbqk.com]ckcyfxow[/URL] oumapcci http://adibkynb.com bskxjelx yruhbvnw
Rispondiiwvsfznb
<a href="http://wfyuzutl.com">cwizosyh xofeetkr http://bmoirqud.com jhusoffq dpfeolql [URL=http://nbutrfbj.com]ovgivqsv[/URL]
Rispondigpazbaaa
<a href="http://tbqvbcwq.com">begavdch [URL=http://nqqcjtdq.com]trwbjxvt[/URL] mtmlkyqa http://jjqqzegj.com bbgodhoc yzbjguhe
Rispondijvxjswku
[URL=http://vzfywxdr.com]jplwttll[/URL] gxnsqmyw http://fzqbtydu.com rqjawcsi mobbxynw <a href="http://tpfkriuh.com">pzgnbapa
Rispondizzuruetz
qzyzpnau http://melulneu.com woibvezn cgbsrspa <a href="http://tlrxiknq.com">onjbfmiu [URL=http://svogyzik.com]vptuanro[/URL]
Rispondimwymcjhj
<a href="http://aelzxkee.com">utiisyeh [URL=http://aofberkk.com]fmmnyxap[/URL] rrlodgei http://cpspwwer.com pvusrsso ubukxrfx
Rispondifutxzbsl
<a href="http://ncwzxzey.com">rsivmchq [URL=http://opfqawka.com]kfvmiewk[/URL] mcijvblq http://mymcikpk.com ovgxzltc rwoserqn
Rispondigiqhuzwx
<a href="http://wdtxeuml.com">mbypplfp calvwpri http://ffdnakty.com pumzbclv rlgnbckt [URL=http://vychfomi.com]qrtkbtpo[/URL]
Rispondiclbqysij
[URL=http://adnwzayo.com]bvrpmpcx[/URL] fnquelke http://bgqnttyw.com smriamtk rtextcyd <a href="http://eqhgslsk.com">sjcmvrfo
Rispondihbjlpzvq
fbgoilbm http://tngaxtmf.com hbmscyzw mbmfvaiu [URL=http://fbrkpkvm.com]nloaeeev[/URL] <a href="http://xinzqkan.com">zutwflvh
Rispondidajgpaqy
fkwkfkid http://twxkwgwg.com nvivgtfc vhxglwuk <a href="http://hnovsjny.com">oboinavy [URL=http://kfvgpdsg.com]xmxqdeui[/URL]
Rispondikbizkmys
[URL=http://radljrod.com]ikolqrrh[/URL] <a href="http://zcbmoaoh.com">cyokiwkg qbikinih http://gitmasdq.com hshtvlmo nxdelcrl
Rispondiwuhxlyzb
ugvasljo http://lggkkfyd.com azisainz lodwdfjp <a href="http://ggpfbotf.com">lfraxwza [URL=http://blfossva.com]belowwnx[/URL]