If-Koubou

Cum se instalează software RAID pentru un server de fișiere simplu pe Ubuntu

Cum se instalează software RAID pentru un server de fișiere simplu pe Ubuntu (Cum să)

Aveți nevoie de un server de fișiere la prețuri ieftine, care să fie ușor de configurat, "rock solid" fiabil cu Email Alerting? vă va arăta cum să utilizați Ubuntu, software-ul RAID și SaMBa pentru a realiza tocmai asta.

Prezentare generală

În ciuda buzelor recente de a muta totul la norul "toate cele mai puternice", uneori este posibil să nu doriți informațiile dvs. pe serverul altcuiva sau poate că este imposibil să descărcați volumele de date pe care le solicitați de pe internet de fiecare dată (de exemplu, ). Deci, înainte de a vă elibera un loc în bugetul dvs. pentru o soluție de stocare, luați în considerare o configurație care este licențiată gratuit cu Linux.

Cu aceasta a spus că a merge ieftin / liber nu înseamnă "a da prudență vântului" și, în acest scop, vom menționa puncte pentru a fi conștiente de configurații care ar trebui stabilite în plus față de utilizarea software-ului RAID, pentru a realiza raportul dintre prețul maxim și fiabilitatea.

Imagine de Filomena Scalise

Despre software-ul RAID

După cum sugerează și numele, aceasta este o configurație RAID (Redundant Array of Inexpensive Disks) care se face complet în software în loc să folosească o cartelă hardware dedicată. Principalul avantaj al unui astfel de lucru este costul, deoarece acest card dedicat este o primă adăugată la configurația de bază a sistemului. Principalele dezavantaje sunt practic performanța și o anumită fiabilitate, deoarece o astfel de carte vine de obicei cu propriul procesor RAM + pentru a efectua calculele necesare pentru matematica de redundanță, cache-ul de date pentru o performanță sporită și bateria de rezervă opțională care păstrează operațiile nescrise în cache până puterea a fost restabilită în cazul unei ieșiri de curent.

Cu o configurație software RAID sacrificând unele performanțe ale CPU-urilor pentru a reduce costul total al sistemului, cu toate CPU-urile de astăzi, cheltuielile aeriene sunt relativ neglijabile (mai ales dacă intenționați să dedicați în mod special serverului de fișiere). În ceea ce privește performanța discului, există o pedeapsă ... totuși nu am întâlnit vreodată o strangulare de la subsistemul de disc de pe server pentru a observa cât de profundă este. Ghidul lui Tom's Hardware "Tom's goes RAID5" este un articol vechi dar un articol exhaustiv despre subiect, pe care eu îl folosesc personal ca referință, însă iau referințele cu un bob de sare, deoarece vorbesc despre implementarea Windows a software-ului RAID orice altceva, sunt sigur că Linux este mult mai bine: P).

Cerințe preliminare

  • Răbdarea tânără, este o citire lungă.
  • Se presupune că știți ce este RAID și pentru ce este folosit.
  • Acest ghid a fost scris utilizând Ubuntu server9.10 x64, prin urmare, se presupune că aveți și un sistem bazat pe Debian pentru a lucra și cu acesta.
  • Vei vedea ca folosesc VIM ca program de editare, doar pentru ca sunt obisnuit cu asta ... poti folosi orice alt editor care iti doresti.
  • Sistemul Ubuntu pe care l-am folosit pentru scrierea acestui ghid, a fost instalat pe un disc-on-key. Acest lucru mi-a permis să utilizez sda1 ca parte a matricei RAID, deci ajustați în mod corespunzător configurației.
  • În funcție de tipul de RAID pe care doriți să îl creați, veți avea nevoie de cel puțin două discuri în sistemul dvs. și în acest ghid folosim 6 unități.

Alegerea discurilor care fac matricea

Primul pas în evitarea unei capcane este cunoașterea existenței sale (Thufir Hawat de la Dune).

Alegerea discurilor este un pas vital care nu ar trebui luat cu ușurință și ar fi înțelept să valorificați experiența dvs. cu adevărat și să luați în considerare acest avertisment:

Do NU utilizați unități "de calitate pentru consumatori" pentru a crea matricea dvs., utilizați unități de tipul "serverelor de calitate" !!!!!!

Acum știu ce gândești, nu am spus că o să mergem ieftin? și da, am făcut-o, dar acesta este exact unul dintre locurile în care acest lucru este nedrept și ar trebui evitat. În ciuda prețului atrăgător, hard disk-urile pentru consumatori nu sunt concepute pentru a fi utilizate într-un mod de folosire 24 de ore pe zi "on". Crede-mă, adevărul tău a încercat asta pentru tine. Cel puțin patru unități de consum pentru consumatori din cele 3 servere pe care le-am instalat ca atare (din cauza constrângerilor bugetare) au eșuat după aproximativ 1,5 ~ 1,8 ani de la data lansării inițiale a serverului. Deși nu a existat nicio pierdere de date, deoarece RAID-ul a făcut treaba bine și a supraviețuit ... momente ca aceasta scurtează speranța de viață a sysadmin-ului, ca să nu mai vorbim de timpul necesar pentru companie pentru întreținerea serverului (ceva care ar putea ajunge să costă mai mult decât unitățile de grad superior).

Unii pot spune că nu există nici o diferență în rata de eșec între cele două tipuri. Acest lucru ar putea fi adevărat, totuși, în ciuda acestor afirmații, unitățile de servere de servere au încă un nivel mai ridicat de restricții SMART și QAing în spatele lor (după cum se poate observa prin faptul că acestea nu sunt lansate pe piață imediat ce conduc consumatorii) așa că am recomandat în continuare să vă descurcați cu extra $ USD pentru upgrade.

Alegerea nivelului RAID.

În timp ce nu voi intra în toate opțiunile disponibile (acest lucru este foarte bine documentat în intrarea pe Wikipedia RAID), cred că este de remarcat că trebuie să alegeți cel puțin RAID 6 sau chiar mai mare ( vom folosi Linux RAID10). Acest lucru se datorează faptului că, atunci când un disc eșuează, există o șansă mai mare pentru un defect al discului vecin și apoi aveți un eșec "pe două discuri" pe mâini. În plus, dacă doriți să utilizați unități mari, deoarece discurile mai mari au o densitate mai mare a datelor pe suprafața platoului, șansa de eșec este mai mare. Discurile IMHO de la 2T și dincolo vor intra întotdeauna în această categorie, așa că fii conștient.

Hai să ne crăpat

Discuri de partiționare

În timp ce în Linux / GNU am putea folosi întregul dispozitiv bloc pentru nevoi de stocare, vom folosi partiții deoarece face mai ușoară utilizarea instrumentelor de salvare a discurilor în cazul în care sistemul a căzut. Folosim aici programul "fdisk", dar dacă folosiți discuri mai mari decât 2T, va trebui să utilizați un program de partiționare care să suporte partiționarea GPT, cum ar fi partajat.

sudo fdisk / dev / sdb

Notă: Am observat că este posibil să se facă matrice fără a schimba tipul de partiție, ci pentru că așa este descris tot pe net, o să urmez exemplul (din nou, atunci când folosești întregul dispozitiv bloc nu este necesar).

După ce în fdisk apăsările de la tastatură sunt:

n; pentru o nouă partiție
introduce
p; pentru o partiție primară
introduce
1; numărul de partiții
introduce ; accepta implicit
introduce ; accepta implicit
t; pentru a schimba tipul
fd; stabilește tipul de "Detectare auto raid Linux" (83h)
w; scrieți modificări pe disc și ieșiți

Clătiți și repetați pentru toate discurile care vor face parte din matrice.

Crearea unui matrice RAID10 Linux

Avantajul utilizării "Linux raid10 "este că știe cum să profite de un număr nenumit de discuri pentru a spori performanța și rezistența chiar mai departe decât vanilla RAID10, în plus față de faptul că atunci când o utilizează, matricea" 10 "poate fi creată într-o singură Etapa.

Creați matricea de pe discurile pe care le-am pregătit în ultimul pas prin emiterea:

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

Notă: Aceasta este doar o singură linie, în ciuda faptului că reprezentarea o împarte în două.

Să depășim parametrii:

  • "-Chunk = 256" - Mărimea octeților dungile raidurilor este ruptă și această dimensiune este recomandată pentru discurile noi / mari (unitățile 2T folosite pentru a face acest ghid au fost fără îndoială în acea categorie).
  • "- level = 10" - Utilizează Linux raid10 (dacă este nevoie de un raid tradițional, pentru orice motiv ar trebui să creați două tablouri și să vă alăturați).
  • "-P f2" - Utilizează planul de rotație "îndepărtat", vezi nota de mai jos pentru mai multe informații și "2" spune că matricea va păstra două copii ale datelor.

Notă: Folosim planul "îndepărtat" deoarece acest lucru face ca aspectul fizic al datelor de pe disc să NU să fie același. Acest lucru ajută la depășirea situației în care hardware-ul uneia dintre unități nu reușește din cauza unei defecțiuni de fabricație (și nu cred că "acest lucru nu se va întâmpla cu mine", cum a făcut cu adevărat dvs.). Datorită faptului că cele două discuri au aceeași marcă și model, au fost utilizate în același mod și în mod tradițional păstrează datele pe aceeași locație fizică ... Există riscul ca unitatea care deține copia datelor să nu reușească prea sau este aproape de și nu va oferi elasticitatea necesară până când nu ajunge un disc de înlocuire. Planul "îndepărtat" face distribuirea datelor într-o locație fizică complet diferită pe unitățile de copiere, pe lângă utilizarea discurilor care nu sunt aproape una de cealaltă în cazul calculatorului. Mai multe informații găsiți aici și în legăturile de mai jos.

Odată ce matricea a fost creată, va începe procesul de sincronizare. În timp ce ați dori să așteptați pentru dragul tradițiilor (deoarece acest lucru poate dura ceva timp), puteți începe să utilizați imediat matricea.

Progresul poate fi observat folosind:

ceas -d cat / proc / mdstat

Creați fișierul de configurare mdadm.conf

Deși sa dovedit că Ubuntu știe pur și simplu să scaneze și să activeze automat matricea la pornire, pentru a fi deplină și pentru curtoazia pentru următoarea sysadmin vom crea fișierul. Sistemul dvs. nu creează automat fișierul și încearcă să-și amintească toate componentele / partițiile din setul dvs. RAID, este o talie a sănătății administratorului sistemului. Aceste informații pot fi și trebuie păstrate în fișierul mdadm.conf. Formatarea poate fi dificilă, dar din fericire ieșirea comenzii mdadm -detail -scan -verbose vă oferă.

Notă: Sa spus că: "Majoritatea distribuțiilor așteaptă fișierul mdadm.conf în / etc /, nu / etc / mdadm. Cred că acesta este un "ubuntu-ism" pentru a avea ca /etc/mdadm/mdadm.conf ". Datorită faptului că noi sunteți folosind Ubuntu aici, vom merge cu ea.

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

IMPORTANT! trebuie să eliminați un "0" din fișierul nou creat deoarece sintaxa rezultată din comanda de mai sus nu este complet corectă (GNU / Linux nu este încă un sistem de operare).

Dacă doriți să vedeți problema care provoacă această configurație greșită, puteți emite mesajul "scanare“ comandă în acest moment, înainte de efectuarea ajustării:

mdadm - examinare - scanare

Pentru a depăși acest lucru, editați fișierul /etc/mdadm/mdadm.conf și schimbare:

metadate = 00.90

A citi:

metadate = 0,90

Rularea funcției mdadm -examine -scan comanda ar trebui să se întoarcă fără o eroare.

Setarea sistemului de fișiere pe matrice

Am folosit ext4 pentru acest exemplu, deoarece pentru mine sa bazat doar pe familiaritatea sistemului de fișiere ext3 care a venit înainte de el, oferind în același timp performanțe și caracteristici promise mai bune.
Vă sugerăm să luați timp pentru a investiga ce sistem de fișiere se potrivește mai bine nevoilor dvs. și un început bun pentru asta este articolul nostru "Care Linux File System Should You Choose?".

sudo mkfs.ext4 / dev / md0

Notă: În acest caz, nu am împărțit matricea rezultată, pentru că pur și simplu nu am nevoie de ea la acea dată, deoarece partea solicitantă a solicitat în mod special cel puțin 3,5T de spațiu continuu. Cu asta am spus că, dacă aș fi vrut să creez partiții, ar fi trebuit să folosesc o utilitate de partiționare GPT cum ar fi "parted".

Montare

Creați punctul de montare:

sudo mkdir / media / raid10

Notă: Aceasta poate fi orice locație, cele de mai sus sunt doar un exemplu.

Pentru că avem de-a face cu un "dispozitiv asamblat", o vom face nu utilizați UUID-ul sistemului de fișiere aflat pe dispozitivul de montare (așa cum este recomandat pentru alte tipuri de dispozitive în ghidul nostru "ce este linux fstab și cum funcționează"), deoarece sistemul poate vedea o parte a sistemului de fișiere pe un disc individual și încercați să în mod incorect montați-l direct. pentru a depăși acest lucru, dorim să așteptăm explicit ca dispozitivul să fie "asamblat" înainte de a încerca să îl montează și vom folosi numele matricei asamblate ("md") în cadrul fstab pentru a realiza acest lucru.
Editați fișierul fstab:

sudo vim / etc / fstab

Și adăugați la ea această linie:

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

Notă: Dacă schimbați locația de montare sau sistemul de fișiere din exemplul respectiv, va trebui să ajustați cele de mai sus.

Utilizați mount-ul cu parametrul automat (-a) pentru a simula o boot de sistem, deci știți că configurația funcționează corect și că dispozitivul RAID va fi montat automat când sistemul repornește:

sudo mount -a

Acum ar trebui să vedeți matricele montate cu comanda "mount" fără parametri.

Alerte de e-mail pentru array-ul RAID

Spre deosebire de array-urile hardware RAID, cu o matrice de software, nu există nici un controler care să pornească cu bipuri pentru a vă anunța când sa întâmplat ceva. Prin urmare, alertele de e-mail vor fi singura noastră modalitate de a ști dacă sa întâmplat ceva cu unul sau mai multe discuri în matrice, făcându-l astfel cel mai important pas.

Urmați ghidul "Cum se instalează Alertele prin e-mail pe Linux utilizând Gmail sau SMTP" și când faceți clic aici pentru a efectua pașii specifici RAID.

Confirmați că mdadm poate trimite prin e-mail
Comanda de mai jos va spune mdadm să tragă o singură e-mail și să se închidă.

sudo mdadm --monitor --scan --test - imagini

Dacă sunteți de succes, ar trebui să primiți un e-mail, detaliind starea matricei.

Setați configurația mdadm pentru a trimite un e-mail la pornire
Deși nu este o necesitate absolută, este bine să obțineți din când în când o actualizare din mașină pentru a ne anunța că abilitatea de e-mail funcționează încă și despre starea matricei. probabil că nu veți fi copleșiți de e-mailuri, deoarece această setare afectează doar startup-urile (care nu ar trebui să fie pe servere).
Editați fișierul de configurare mdadm:

sudo vim / etc / implicit / mdadm

Adaugă -Test parametru la DAEMON_OPTIONS astfel incat sa arate ca:

DAEMON_OPTIONS = "- syslog --test"

Puteți reporni aparatul doar pentru a vă asigura că "în buclă", dar nu este o necesitate.

Configurarea Samba

Instalarea SaMBa pe un server Linux îi permite să se comporte ca un server de fișiere Windows. Deci, pentru a obține datele pe care le găzduim pe serverul Linux disponibil pentru clienții Windows, vom instala și configura SaMBa.
Este amuzant să rețineți că numele pachetului de SaMBa este un punct de vedere pe protocolul Microsoft utilizat pentru partajarea de fișiere numit SMB (Service Message Block).

În acest ghid, serverul este folosit în scopuri de testare, astfel încât vom permite accesul la partea sa fără care necesită o parolă, este posibil să doriți să săturați un pic mai mult în modul de configurare a permisiunilor odată ce configurarea este finalizată.

De asemenea, este recomandat să creați un utilizator care nu este privilegiat pentru a fi proprietarul fișierelor. În acest exemplu, utilizăm utilizatorul "geek" pe care l-am creat pentru această sarcină. Explicațiile privind crearea unui utilizator și gestionarea drepturilor de proprietate și a permisiunilor pot fi găsite în ghidurile "Creați un utilizator nou pe Ubuntu Server 9.10" și "Ghidul începătorilor pentru gestionarea utilizatorilor și grupurilor în Linux".

Instalați Samba:

aptitude install samba

Editați fișierul de configurare samba:

sudo vim /etc/samba/smb.conf

Adăugați o partajare numită "generală" care va permite accesul la punctul de montare "/ media / raid10 / general" adăugând fișierul de mai jos.

[general]
cale = / media / raid10 / general
forța utilizatorului = geek
grup de forță = geek
Numai citire = Nu
creați masca = 0777
director masca = 0777
numai pentru oaspeți = Da
oaspete ok = Da

Setările de mai sus fac adresarea adresabilă fără o parolă pentru oricine și face proprietarul implicit al fișierelor utilizatorul "geek".

Pentru referință, acest fișier smb.conf a fost preluat de pe un server de lucru.

Reporniți serviciul samba pentru ca setările să afecteze:

sudo /etc/init.d/samba restart

După ce ați terminat, puteți utiliza funcția testparm comanda pentru a vedea setările aplicate serverului samba.
că este, serverul ar trebui să fie acum, accesibil din orice casetă de ferestre utilizând:

\ Server namegeneral

Depanare

Când aveți nevoie să depanați o problemă sau un disc a eșuat într-o matrice, vă sugerez să vă referiți la foaia de fraudare mdadm (asta este ceea ce fac ...).

În general, trebuie să vă amintiți că atunci când un disc eșuează, trebuie să îl "eliminați" din matrice, să opriți mașina, să înlocuiți unitatea defectă cu un înlocuitor și apoi să adăugați noua unitate la matrice după ce ați creat discul corespunzător aspect (partiții), dacă este necesar.

Odată ce ați făcut acest lucru, vă recomandăm să vă asigurați că matricea este reconstruită și urmăriți progresul cu:

ceas -d cat / proc / mdstat

Mult noroc! :)

Referințe:
mdadm cheat sheet
Nivelurile RAID se descompun
Linux RAID10 a explicat
mdadm comandă pagină man
mdadm pagina de configurare a fișierului man
Limitările de partajare au fost explicate

Utilizarea software-ului RAID nu va costa mult ... Doar vocea ta ;-)