Come installare il software RAID per un semplice file server su Ubuntu

Sommario:

Come installare il software RAID per un semplice file server su Ubuntu
Come installare il software RAID per un semplice file server su Ubuntu

Video: Come installare il software RAID per un semplice file server su Ubuntu

Video: Come installare il software RAID per un semplice file server su Ubuntu
Video: How to install Invoke AI on a Mac + Lifetime Access to Airbrush - YouTube 2024, Aprile
Anonim
Hai bisogno di un server di file a basso costo che sia facile da configurare, "solido" affidabile con Email Alerting? ti mostrerà come usare Ubuntu, RAID software e SaMBa per realizzare proprio questo.
Hai bisogno di un server di file a basso costo che sia facile da configurare, "solido" affidabile con Email Alerting? ti mostrerà come usare Ubuntu, RAID software e SaMBa per realizzare proprio questo.

Panoramica

Nonostante il recente ronzio di spostare tutto sul cloud "tutto potente", a volte potresti non voler le tue informazioni nel server di qualcun altro o semplicemente non è possibile scaricare i volumi di dati richiesti da Internet ogni volta (ad esempio la distribuzione di immagini ). Quindi, prima di eliminare un posto nel budget per una soluzione di archiviazione, prendere in considerazione una configurazione che non richiede licenze con Linux.

Detto questo, andare a buon mercato / libero non significa "lanciare prudenza al vento", e a tal fine, noteremo punti di cui essere a conoscenza, configurazioni che dovrebbero essere messe in atto oltre all'utilizzo del RAID software, per ottenere rapporto tra prezzo massimo e affidabilità.

Immagine di Filomena Scalise

Informazioni sul software RAID

Come suggerisce il nome, questa è una configurazione RAID (Redundant Array of Inexpensive Disks) che viene eseguita completamente nel software invece di utilizzare una scheda hardware dedicata. Il vantaggio principale di una cosa del genere è il costo, in quanto questa scheda dedicata è un ulteriore vantaggio per la configurazione di base del sistema. I principali svantaggi sono fondamentalmente le prestazioni e l'affidabilità in quanto tale scheda di solito viene fornita con RAM + CPU per eseguire i calcoli necessari per la matematica di ridondanza, memorizzazione nella cache dei dati per prestazioni elevate e batteria di backup opzionale che mantiene le operazioni non scritte nella cache fino il potere è stato ripristinato in caso di mancanza di corrente.

Con una configurazione RAID software si sacrificano alcune delle prestazioni della CPU del sistema per ridurre il costo totale del sistema, tuttavia con le CPU di oggi il sovraccarico è relativamente trascurabile (specialmente se si dedica principalmente a questo server per essere un "file server"). Per quanto riguarda le prestazioni del disco, c'è una penalità … tuttavia non ho mai riscontrato un collo di bottiglia dal sottosistema del disco dal server per notare quanto sia profondo. La guida Tom's Hardware "Tom's goes RAID5" è un gioco vecchio ma esaustivo sull'argomento, che io personalmente uso come riferimento, tuttavia prendo i benchmark con un pizzico di sale in quanto si tratta dell'implementazione di Windows del software RAID (come con tutto il resto, sono sicuro che Linux è molto meglio: P).

Prerequisiti

  • Pazienza giovane, questa è una lunga lettura.
  • Si presume che tu sappia cos'è il RAID e a cosa serve.
  • Questa guida è stata scritta usando Ubuntu server9.10 x64, quindi si presume che tu abbia un sistema basato su Debian con cui lavorare.
  • Mi vedrai usare VIM come programma di editor, questo solo perché sono abituato … puoi usare qualsiasi altro editor che vorresti.
  • Il sistema Ubuntu che ho usato per scrivere questa guida, è stato installato su un disk-on-key. In questo modo mi ha permesso di usare sda1 come parte dell'array RAID, quindi regolare di conseguenza la configurazione.
  • A seconda del tipo di RAID che si desidera creare, sono necessari almeno due dischi sul sistema e in questa guida vengono utilizzate 6 unità.

Scegliere i dischi che fanno la matrice

Il primo passo per evitare una trappola è conoscere la sua esistenza (Thufir Hawat di Dune).

Scegliere i dischi è un passo fondamentale che non dovrebbe essere preso alla leggera, e sarebbe saggio capitalizzare sulla propria esperienza e prestare attenzione a questo avvertimento:

Fare NON utilizzare unità "consumer grade" per creare l'array, utilizzare unità "server grade" !!!!!!

Ora so cosa pensi, non abbiamo detto che andremo a buon mercato? e sì, l'abbiamo fatto, ma questo è esattamente uno dei posti in cui farlo è spericolato e dovrebbe essere evitato. Nonostante il loro prezzo interessante, i dischi rigidi di tipo consumer non sono progettati per essere utilizzati in un tipo "on" 24/7. Fidati di me, il tuo ha provato questo per te. Almeno quattro unità di livello consumer nei 3 server che ho configurato in questo modo (a causa di vincoli di budget) non sono riuscite dopo circa 1,5 ~ 1,8 anni dal giorno di avvio iniziale del server. Mentre non c'era perdita di dati, perché il RAID ha fatto il suo lavoro bene e sopravvissuto … momenti come questo riducono l'aspettativa di vita del sysadmin, per non parlare del tempo morto per l'azienda per la manutenzione del server (qualcosa che potrebbe finire per costare di più delle unità di livello superiore).

Alcuni potrebbero dire che non vi è alcuna differenza nel tasso di errore tra i due tipi. Potrebbe essere vero, tuttavia, nonostante queste affermazioni, le unità di qualità server hanno ancora un livello più elevato di restrizioni SMART e QAing dietro di esse (come si può osservare dal fatto che non vengono rilasciate sul mercato non appena le unità del consumatore sono), quindi consiglio vivamente di sborsare extra $ per l'aggiornamento.

Scelta del livello RAID.

Mentre non ho intenzione di andare in tutte le opzioni disponibili (questo è molto ben documentato nella voce wikipedia RAID), sento che è degno di nota dire che si dovrebbe sempre optare per almeno RAID 6 o anche superiore ( useremo Linux RAID10). Questo perché quando un disco si guasta, c'è una maggiore possibilità di un guasto del disco vicino e quindi si ha un errore "due dischi" in mano.Inoltre, se utilizzi dischi di grandi dimensioni, poiché i dischi più grandi hanno una densità di dati superiore sulla superficie del piatto, la possibilità di errore è più elevata. I dischi IMHO da 2T e oltre rientrano sempre in questa categoria, quindi fai attenzione.

Diventiamo scottanti

Dischi di partizionamento

Mentre in Linux / GNU, potremmo usare l'intero dispositivo a blocchi per esigenze di archiviazione, useremo le partizioni perché rende più semplice l'uso degli strumenti di salvataggio su disco nel caso in cui il sistema sia andato in pezzi. Stiamo usando il programma "fdisk" qui, ma se utilizzerete dischi più grandi di 2T avrete bisogno di usare un programma di partizionamento che supporti il partizionamento GPT come parted.

sudo fdisk /dev/sdb

Nota: Ho osservato che è possibile creare l'array senza modificare il tipo di partizione, ma poiché questo è il modo descritto in tutta la rete, seguirò l'esempio (di nuovo quando si utilizza l'intero dispositivo a blocchi non è necessario).

Una volta in fdisk le sequenze di tasti sono:

n; per una nuova partizione accedere p; per una partizione primaria accedere 1; numero di partizione accedere; accetta il valore predefinito accedere; accetta il valore predefinito t; per cambiare il tipo fd; imposta il tipo come "Rilevamento automatico di Linux raid" (83h) w; scrivere le modifiche sul disco e uscire

Risciacquare e ripetere per tutti i dischi che faranno parte dell'array.

Creazione di un array RAID10 Linux

Il vantaggio di usare "Linux raid10 "è che sa come sfruttare un numero di dischi non pari per aumentare le prestazioni e la resilienza anche oltre il vanilla RAID10, oltre al fatto che quando lo si utilizza, l'array" 10 "può essere creato in un unico passo.

Crea l'array dai dischi che abbiamo preparato nell'ultimo passaggio emettendo:

sudo mdadm --create /dev/md0 --chunk=256 --level=10 -p f2 --raid-devices=5 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 --verbose

Nota: Questo è tutto solo una riga nonostante il fatto che la rappresentazione la spezzi in due.

Rompiamo i parametri:

  • "-Chunk = 256" - La dimensione dei byte su cui sono suddivise le strisce raid, e questa dimensione è raccomandata per dischi nuovi / grandi (le unità 2T utilizzate per fare questa guida erano senza dubbio in quella categoria).
  • "-Level = 10" - Utilizza il Linux raid10 (se è richiesto un raid tradizionale, per quale motivo, dovresti creare due array e unirti a loro).
  • "-P f2" - Usa il piano di rotazione "lontano" vedi nota sotto per maggiori informazioni e "2" dice che l'array manterrà due copie dei dati.

Nota: Usiamo il piano "lontano" perché questo fa sì che il layout dei dati fisici sui dischi NON sia lo stesso. Questo aiuta a superare la situazione in cui l'hardware di una delle unità si guasta a causa di un errore di produzione (e non pensare "questo non mi succederà" come il tuo ha fatto veramente). A causa del fatto che i due dischi sono della stessa marca e modello, sono stati usati allo stesso modo e tradizionalmente hanno mantenuto i dati nella stessa posizione fisica … Esiste il rischio che l'unità contenente la copia dei dati non sia riuscita troppo o è vicino e non fornirà la necessaria resilienza fino all'arrivo di un disco sostitutivo. Il piano "lontano" rende la distribuzione dei dati in una posizione fisica completamente diversa sulle unità di copia oltre a utilizzare dischi non vicini tra loro nel case del computer. Ulteriori informazioni possono essere trovate qui e nei link sottostanti.

Una volta che la matrice è stata creata, inizierà il processo di sincronizzazione. Mentre si potrebbe desiderare di aspettare per l'amore della tradizione (poiché potrebbe richiedere del tempo), è possibile iniziare a utilizzare immediatamente l'array.

Il progresso può essere osservato utilizzando:

watch -d cat /proc/mdstat

Creare il file di configurazione mdadm.conf

Mentre è stato dimostrato che Ubuntu semplicemente sa di scansionare e attivare automaticamente l'array all'avvio, per completezza e cortesia per il prossimo sysadmin creeremo il file. Il tuo sistema non crea automaticamente il file e cerca di ricordare tutti i componenti / partizioni del tuo set RAID, è un punto fermo della sanità dell'amministratore di sistema. Questa informazione può e deve essere conservata nel file mdadm.conf. La formattazione può essere complicata, ma fortunatamente l'output del comando mdadm -detail -scan -verbose ti fornisce ciò.

Nota: È stato detto che: "La maggior parte delle distribuzioni prevede il file mdadm.conf in / etc /, non in / etc / mdadm. Credo che questo sia un "ubuntu-ism" per avere come /etc/mdadm/mdadm.conf ". A causa del fatto che noi siamo usando Ubuntu qui, ci andremo e basta.

sudo mdadm --detail --scan --verbose > /etc/mdadm/mdadm.conf

IMPORTANTE! è necessario rimuovere uno "0" dal file appena creato perché la sintassi risultante dal comando precedente non è completamente corretta (GNU / Linux non è ancora un sistema operativo).

Se vuoi vedere il problema causato da questa errata configurazione, puoi emettere il messaggio "scansione" comando a questo punto, prima di effettuare la regolazione:

mdadm --examine --scan

Per superare questo, modifica il file /etc/mdadm/mdadm.conf e cambia:

metadata=00.90

Leggere:

metadata=0.90

Esecuzione del mdadm -examina -scan il comando ora dovrebbe tornare senza errori.

Configurazione del filesystem sull'array

Ho usato ext4 per questo esempio, perché per me si basava solo sulla familiarità del filesystem ext3 che veniva prima, pur fornendo prestazioni e caratteristiche promettenti. Vi suggerisco di dedicare del tempo per studiare quale filesystem è più adatto alle vostre esigenze e un buon inizio perché questo è il nostro articolo "Quale file system Linux dovreste scegliere?".

sudo mkfs.ext4 /dev/md0

Nota: In questo caso non ho partizionato la matrice risultante perché, semplicemente non ne avevo bisogno al momento, in quanto la parte richiedente richiedeva specificamente almeno 3,5 T di spazio continuo. Detto questo, se avessi voluto creare partizioni, avrei dovuto usare una utility in grado di partizionare GPT come "parted".

Montaggio

Crea il punto di montaggio:

sudo mkdir /media/raid10

Nota: Può trattarsi di qualsiasi posizione, il precedente è solo un esempio.

Perché abbiamo a che fare con un "dispositivo assemblato" lo faremo non utilizzare l'UUID del filesystem che si trova sul dispositivo per il montaggio (come consigliato per altri tipi di dispositivi nella nostra guida "cosa è il linux fstab e come funziona") in quanto il sistema potrebbe effettivamente vedere parte del filesystem su un singolo disco e prova a in modo non corretto montalo direttamente per ovviare a ciò desideriamo aspettare esplicitamente che il dispositivo sia "assemblato" prima di provare a montarlo, e useremo il nome dell'array assemblato ("md") all'interno fstab per realizzare questo. Modifica il file fstab:

sudo vim /etc/fstab

E aggiungici questa linea:

/dev/md0 /media/raid10/ ext4 defaults 1 2

Nota: Se si modifica la posizione di montaggio o il filesystem dall'esempio, sarà necessario regolare di conseguenza.

Usa mount con il parametro automatico (-a) per simulare l'avvio del sistema, in modo che tu sappia che la configurazione funzioni correttamente e che il dispositivo RAID verrà automaticamente montato al riavvio del sistema:

sudo mount -a

Ora dovresti essere in grado di vedere l'array montato con il comando "mount" senza parametri.

Avvisi e-mail per l'array RAID

A differenza degli array RAID hardware, con un array software non c'è alcun controller che inizi a emettere segnali acustici per farti sapere quando qualcosa è andato storto. Pertanto gli avvisi e-mail saranno il nostro unico modo per sapere se qualcosa è successo a uno o più dischi nell'array, e quindi renderlo il passo più importante.

Segui la guida "Come impostare gli avvisi via e-mail su Linux utilizzando Gmail o SMTP" e quando è fatto tornare qui per eseguire i passaggi specifici RAID.

Conferma che mdadm può inviare email Il comando seguente, dirà a mdadm di sparare solo una e-mail e chiudere.

sudo mdadm --monitor --scan --test --oneshot

In caso di successo dovresti ricevere un'email, specificando le condizioni dell'array.

Imposta la configurazione di mdadm per inviare un'e-mail all'avvio Anche se non è un must assoluto, è bello ricevere un aggiornamento di tanto in tanto dalla macchina per farci sapere che l'abilità e-mail è ancora funzionante e delle condizioni dell'array. probabilmente non sarai sopraffatto da e-mail in quanto questa impostazione interessa solo le startup (che sui server non dovrebbero essere molte). Modifica il file di configurazione di mdadm:

sudo vim /etc/default/mdadm

Aggiungi il -test parametro al DAEMON_OPTIONS sezione in modo che assomigli a:

DAEMON_OPTIONS='--syslog --test'

È possibile riavviare la macchina solo per assicurarsi che sia "in loop", ma non è obbligatorio.

Configurazione Samba

L'installazione di SaMBa su un server Linux consente di agire come un file server di Windows. Quindi, per ottenere i dati che stiamo ospitando sul server Linux disponibili per i client Windows, installeremo e configureremo SaMBa. È divertente notare che il nome del pacchetto di SaMBa è un gioco di parole sul protocollo Microsoft utilizzato per la condivisione di file chiamato SMB (Service Message Block).

In questa guida il server viene utilizzato a scopo di test, quindi abiliteremo l'accesso alla sua condivisione senza richiedendo una password, potresti voler approfondire un po 'il modo in cui impostare i permessi una volta completata l'installazione.

Inoltre, si consiglia di creare un utente non privilegiato come proprietario dei file. In questo esempio usiamo l'utente "geek" che abbiamo creato per questa attività. Spiegazioni su come creare un utente e gestire la proprietà e le autorizzazioni sono disponibili nelle nostre guide "Crea un nuovo utente su Ubuntu Server 9.10" e "Guida per principianti per la gestione di utenti e gruppi in Linux".

Installa Samba:

aptitude install samba

Modifica il file di configurazione di samba:

sudo vim /etc/samba/smb.conf

Aggiungi una condivisione chiamata "generale" che consentirà l'accesso al punto di mount "/ media / raid10 / general" aggiungendo il file sottostante.

[general] path = /media/raid10/general force user = geek force group = geek read only = No create mask = 0777 directory mask = 0777 guest only = Yes guest ok = Yes

Le impostazioni precedenti rendono la condivisione indirizzabile senza una password per chiunque e rende il proprietario predefinito dei file l'utente "geek".

Come riferimento, questo file smb.conf è stato preso da un server funzionante.

Riavviare il servizio samba affinché le impostazioni abbiano effetto:

sudo /etc/init.d/samba restart

Una volta fatto puoi usare il testparm comando per vedere le impostazioni applicate al server samba. è così, ora dovrebbe essere il server, accessibile da qualsiasi finestra di Windows utilizzando:

server-namegeneral

Risoluzione dei problemi

Quando hai bisogno di risolvere un problema o un disco ha fallito in un array, ti suggerisco di fare riferimento al cheat sheet mdadm (è quello che faccio …).

In generale dovresti ricordare che quando un disco si guasta devi "rimuoverlo" dall'array, spegnere la macchina, sostituire l'unità guasta con una sostituzione e quindi "aggiungere" la nuova unità all'array dopo aver creato il disco appropriato layout (partizioni) su di esso, se necessario.

Una volta fatto, potresti voler assicurarti che l'array sia ricostruito e guardare i progressi con:

watch -d cat /proc/mdstat

In bocca al lupo!:)

Riferimenti: mdadm cheat sheet I livelli RAID si interrompono Linux RAID10 spiegato mdadm command man page pagina man di file di configurazione mdadm Limitazioni delle partizioni spiegate

L'uso del software RAID non costa molto … Solo la tua VOICE;-)

Consigliato: