Partizionamento avanzato e RAID concetti

Creato il 19 novembre 2012 da Antonio_cantaro
HOME Computer Le Vostre Risorse per Linux Partizionamento avanzato e RAID concetti

Partizionamento avanzato e RAID concetti

lunedь 19 novembre 2012

La presente guida tratta del partizionamento avanzato e del RAID a livello di concetti generali e di base. Questa è la terza guida, delle quattro guide, che trattano l'installazione del server, la sua configurazione, un esempio di installazione di Joomla (per siti web) ed, infine, vengono esposti alcuni concetti sul partizionamento avanzato e sul RAID ...

Vedremo come, nei sistemi Linux (Unix), è possibile creare una partizione per ogni cartella del sistema. Inoltre vedremo le 7 tipologie di RAID e quelle più utilizzate, con i relativi pro e contro.


Aiutaci a diffondere la notizia, condividi con i bottoni sotto:


 

Partizionamento avanzato e RAID


Ringraziamenti

L’amico Francesco Micciché, componente del Majorana Forum Team, con username Dukko, è l'autore della presente guida e videoguida. Francesco ha voluto aiutare quanti vogliono avvicinarsi al mondo dei server Linux, fornendo loro uno strumento di consultazione semplice ed immediato.

Un grazie a Francesco, per avere reso liberamente disponibile il frutto del suo lavoro.

Premessa

L'idea iniziale era di realizzare una videoguida per l'installazione di un server Ubuntu, ma essendo la prima volta che mi cimentavo in qualcosa del genere, ho scoperto che l'argomento  presentava molte sfaccettature. Troppe da poter trattare in un'unica videoguida, quindi ho deciso di dividerla in quattro parti:
1. Installazione di un sistema server LAMP di base;

2. Configurazione dello stesso sistema per l'esecuzione e la gestione da remoto;

3. Installazione di Joomla in Ubuntu Server 12.04;

4. Spiegazione ed implementazione del partizionamento avanzato e RAID.

Tengo a precisare che questa serie di tutorial non rappresentano una regola fissa, più che altro sono delle linee guida, delle basi da cui partire per poter realizzare qualcosa di unico e personale.

Ognuno di noi è il risultato delle esperienze maturate durante la vita e, allo stesso modo, i sistemi da noi realizzati e configurati saranno il risultato delle esperienze pregresse. Esperienze maturate grazie all'osservazione, allo studio ed alla sperimentazione.

Ogni fallimento ed ogni errore porterà sempre ed inequivocabilmente più vicini all'obiettivo prefissato; raggiungerlo dipenderà unicamente dalla nostra caparbietà nel perseguirlo.

Inoltre le comunità Linux e Open Source avranno sempre ottimi suggerimenti e spunti preziosissimi, d'altro canto, il significato della parola Ubuntu è:

“io sono ciò che sono in virtù di ciò che tutti siamo”


Tutorial 4 – Partizionamento avanzato e RAID  - Concetti

Ogni volta che si parla di partizionamento, si sentono varie correnti di pensiero. Ovviamente nessuna di queste è meglio o peggio dell'altra, in realtà nella scelta intervengono fattori tecnici, logistici e gusti personali.

In linea di massima la configurazione più usata è quella con due partizioni:

  1.         /          (root)

  2.    SWAP   (la memoria virtuale)

Ma, ovviamente, ogni cartella contenuta nell'albero principale  /  può essere montata in una partizione separata contenente filesystem differenti. Questo avviene perché nei sistemi *nix “ogni cosa è un file” quindi anche le periferiche o device (/dev).

Ma analizziamo nel dettaglio le cartelle più importanti dell'albero principale.

Ultimo aggiornamento ( giovedь 22 novembre 2012 )

/

=

ROOT (radice) da non confondere con l'utente amministratore del sistema. E' la cartella principale (appunto la radice) che contiene tutte quelle presenti nell'albero.

/BOOT

=

Contiene il/i kernel ed i file statici del bootloader.

/HOME

=

Contiene le cartelle utente di ogni account che, a loro volta, contengono documenti, impostazioni dei software, video, ecc... di ogni utente accreditato sul sistema.

/TMP

=

Contiene i file temporanei utilizzati dai programmi o dagli installer. E' buona norma svuotarla ad ogni spegnimento della macchina.

/USR

=

La cartella che contiene i programmi, le librerie, la documentazione, file condivisi (icone, sfondi, temi,...).

/VAR

=

Contiene i log di sistema e dei programmi, la cache apt, cartelle di default per server web o server mail.

/SRV

=

Contiene i riferimenti ai file riguardanti i servizi offerti dal sistema (FTP, web, mail, smb,...).

/OPT

=

Software aggiuntivi non gestiti dal sistema come ad esempio gli antivirus

Dunque, la cartella /boot è quella meno esosa di risorse, basterebbero 100MB conservando 2 o 3 kernel vecchi.

La /home è ovviamente una cartella che prenderà molto spazio, in particolare se il numero degli utenti è alto.

/var crescerà con i log di sistema e con la cache apt, ma se non usiamo servizi particolari non sarà molto voluminosa, specialmente se ogni tanto cancelliamo la cache apt.

/tmp è una cartella che può crescere anche molto in base all'uso del sistema, tenerla pulita è una buona regola.

Queste cartelle sono quelle che più spesso vengono separate in partizioni differenti. Ovviamente non tutte in contemporanea, come ho detto prima decidere quali cartelle montare in partizioni separate è una questione di preferenze, di considerazioni tecniche e logistiche.

Proviamo ad analizzare la situazione di ciò che sarà la nostra macchina finale e quindi poniamoci alcune domande:

  • Sarà un ambiente multiutente? Nel caso potrebbe essere utile avere la /home separata su di un disco differente (o partizione) o magari su di uno storage esterno.

  • Offrirà servizi come FTP, Web, Mail, Samba, ecc...? Allora forse sarebbe utile avere la /var su partizione dedicata.

  • Prevediamo grosse attività da parte di utenti e servizi? Nel qual caso, avere la /tmp su partizione a parte, può impedire che il suo crescere vada a “rubare” spazio per altre cartelle.

  • Prevediamo di usare software particolari come antivirus e vogliamo, ad esempio, che le nostre macchine virtuali risiedano su partizione dedicata tenendo “pulito” l'intero albero? Se fosse così magari potremmo montare la /opt a parte.

Ovviamente queste sono solo alcune considerazioni, il resto viene dettato tutto dall'esperienza personale. Può accadere magari che dopo qualche mese di utilizzo, scopriamo che abbiamo sopravvalutato la dimensione di una partizione, oppure che non importava proprio farla separata.

La sperimentazione è l'unica maestra veramente valida, si possono seguire alcune linee guida, ma l'esperienza diretta sarà quella che ci permetterà di migliorare.

RAID

Sempre più spesso si sente parlare di RAID e sempre più spesso siamo tentati di provarlo perché qualcuno ci ha detto che è molto meglio e che i dischi diventano più veloci... In parte è vero, ma sarebbe meglio saperne di più sull'argomento prima di avventurarsi in configurazioni a volte difficili e a volte, quando effettuate nel modo sbagliato, dannose per i nostri dati.

Il RAID (Redundant Array of Independent Disks – cioè Insieme Ridondante di Dischi Indipendenti), nacque come standard molto tempo fa per permettere l'utilizzo ottimale di più dischi in ambito server. Questo standard può essere applicato via software, integrato nei sistemi operativi, e via hardware con veri e propri controller dedicati. Nelle moderne schede madri, già da qualche anno con l'arrivo dei controller SATA, troviamo nel BIOS la modalità RAID. Non è un vero e proprio controller RAID ma una via di mezzo tra esso ed il software RAID, spesso etichettati come Fake RAID. Il mio consiglio è quello di usare controller dedicati o i software messi a disposizione dai sistemi operativi. Ma vediamo in dettaglio di cosa stiamo parlando.

Fondamentalmente esistono 7 tipologie di RAID individuate con i numeri da 0 a 6, le più usate sono 0, 1 e 5, ma vediamo nei dettagli cosa fanno.

RAID 0 (Striping)

Questa tipologia di RAID permette di utilizzare lo spazio combinato di 2 o più dischi. Supponendo di essere in possesso di 3 dischi da 100GB potremmo creare in RAID 0 un array da 300GB a sua volta partizionabile come un disco fisico. Avremo così un vantaggio in I/O poiché i 3 dischi lavoreranno in contemporanea. Ma lo svantaggio che, in caso di rottura di uno dei dischi, perderemmo tutti i dati.

 

RAID 1 (Mirroring)

Questa configurazione è detta anche fault tollerance infatti, in caso di rottura di un disco, permette al sistema di proseguire senza problemi nelle sue attività. Ciò avviene perché, supponendo di avere due dischi da 100GB, uno di questi sarà la copia identica dell'altro, istante per istante. Ogni attività di scrittura che avviene su di un disco, si ripercuote esattamente sull'altro.

I vantaggi sono che, in caso di rottura di un disco, il sistema continuerebbe a funzionare dandoci il tempo di sostituirlo. Inoltre la velocità in lettura sarà migliorata visto che sarà legata al disco più veloce dell'array.

Gli svantaggi sono che se volessimo effettuare il mirroring di 2 dischi, per salvaguardare i dati in essi contenuti, ne dovremmo usare almeno 4 con un'ovvia lievitazione dei costi. Inoltre la velocità di scrittura sarà legata al disco più lento.


RAID 2,3,4 (Vari livelli di striping)

Sono sistemi non più usati per vari motivi, implementano degli stripe (come il RAID 0) ma con memorizzazione dei dati a livello di bit, byte e blocchi rispettivamente. Inoltre il RAID 2 include un codice hamming per la correzione dell'errore sui bit scritti, il RAID 3 e 4 usano un disco dell'array per il controllo di parità. In pratica, alla rottura di un disco, i dati vengono recuperati dal disco di parità.

RAID 5 (Striping con controllo di parità distribuita su tutti i dischi)

E' il sistema più usato, permette l'uso di più dischi a livello di blocco (come il RAID 0 ed il RAID 4) per averne uno più grande.

Inoltre le informazioni di parità vengono distribuite su ogni disco, in questo modo qualsiasi elemento dell'array potrà rompersi in quanto le informazioni contenutevi sono recuperabili dai blocchi di parità presenti negli altri dischi.

RAID 6 (Striping con doppio controllo di parità distribuita su tutti i dischi)

In pratica è come il RAID 5, l'unica differenza è che il controllo di parità è scritto due volte. In definitiva permette di continuare a lavorare anche se due dischi hanno un malfunzionamento in contemporanea. Situazione possibile ma altamente improbabile, tanto improbabile che questa tipologia di RAID viene scarsamente usata, principalmente per i suoi costi elevati servono infatti 2 dischi in più per la parità, ma anche per la lentezza in scrittura.

In questo tutorial non ho incluso screenshot o video perché ogni controller RAID ha un menu ed un sistema di gestione suo, anche se il principio di funzionamento è il solito. Stessa cosa dicasi per gli installer delle distro più diffuse.

Spero di essere stato di aiuto e di aver chiarito, almeno in parte, i dubbi principali che si possono manifestare nella preparazione e nell'installazione di un sistema appena più complesso di un desktop.

Per una trattazione delle partizioni a livello di desktop (computer personale), si rimanda alla pagina:

Partizioni e Sistemi Operativi Guide facili



   Supporto, aiuto e commenti

Basta andare nel Forum del Majorana, alla discussione: Partizionamento avanzato e RAID concetti