Početna » kako da » Kako postaviti softverski RAID za jednostavan datotečni poslužitelj na Ubuntuu

    Kako postaviti softverski RAID za jednostavan datotečni poslužitelj na Ubuntuu

    Trebate li datotečni poslužitelj na jeftini koji je jednostavan za postavljanje, "rock solid" pouzdan sa e-mail upozorenja? će vam pokazati kako koristiti Ubuntu, softverski RAID i SaMBa za postizanje upravo toga.

    Pregled

    Usprkos nedavnom buzzu da se sve premjesti u "svemoćni" oblak, ponekad možda ne želite da se vaše informacije na tuđem poslužitelju ili možda samo ne mogu prebaciti na sve količine podataka koje trebate s interneta svaki put (primjerice, postavljanje slika ). Dakle, prije nego što raščistite mjesto u proračunu za rješenje za pohranu, razmislite o konfiguraciji koja je licencirana besplatno za Linux.

    S tim u vezi, odlazak jeftin / besplatan ne znači "bacanje opreza na vjetar", iu tu svrhu, imat ćemo na umu točke koje bi trebale biti svjesne, konfiguracije koje bi trebale biti postavljene uz korištenje softverskog RAID-a, kako bi se postigla omjer cijene i pouzdanosti.

    Slika Filomena Scalise

    O softverskom RAID-u

    Kao što ime implicira, ovo je RAID (redundantni niz jeftinih diskova) koji je u potpunosti urađen u softveru umjesto da se koristi namenska hardverska kartica. Glavna prednost takve stvari je trošak jer je ova posvećena kartica dodatna premija za osnovnu konfiguraciju sustava. Glavni nedostaci su u osnovi izvedba i određena pouzdanost jer takva kartica obično dolazi s vlastitim RAM + CPU-om za izvođenje potrebnih kalkulacija za matematiku redundantnosti, caching podataka radi povećanja performansi i opcionalnu rezervnu bateriju koja čuva nepisana operacija u cacheu sve do snaga je obnovljena u slučaju nestanka struje.

    Pomoću softverskog RAID-a možete žrtvovati neke od performansi CPU-a sustava kako biste smanjili ukupni trošak sustava, ali s današnjim procesorima opterećenje je relativno zanemarivo (pogotovo ako ćete taj poslužitelj uglavnom poslužiti kao “poslužitelj datoteka”). Što se tiče performansi diska, postoji kazna… no nikada nisam naišao na usko grlo s diskovnog podsustava s poslužitelja kako bih zabilježio koliko je to duboko. Tomov hardverski vodič "Tom's goes RAID5" je oldie ali dobar i iscrpan članak o toj temi, koji osobno koristim kao referencu, ali uzimam mjerila sa zrnom soli jer govori o implementaciji softvera RAID-a na Windows (kao kod sve ostalo, siguran sam da je Linux mnogo bolji: P).

    Preduvjeti

    • Strpljenja mlada, ovo je dugo pročitano.
    • Pretpostavlja se da znate što je RAID i za što se koristi.
    • Ovaj vodič je napisan korištenjem Ubuntu server9.10 x64, stoga se pretpostavlja da imate sustav temeljen na Debianu koji će također raditi sa.
    • Vidjet ćete da koristim VIM kao program za uređivanje, to je samo zato što sam navikao na to ... možete koristiti bilo koji drugi uređivač koji želite.
    • Ubuntu sustav koji sam koristio za pisanje ovog vodiča instaliran je na disk-on-key. Na taj način mi je dopušteno koristiti sda1 kao dio RAID niza, pa prilagodite svoje postavke.
    • Ovisno o vrsti RAID-a koji želite stvoriti trebat će vam najmanje dva diska na vašem sustavu i u ovom vodiču koristimo 6 diskova.

    Odabir diskova koji čine polje

    Prvi korak u izbjegavanju zamke je spoznaja njegovog postojanja (Thufir Hawat iz Dune).

    Odabir diskova je ključan korak koji se ne smije uzeti olako, a vi biste bili mudri da iskoristite svoje iskreno iskustvo i obratite pažnju na ovo upozorenje:

    Čini NE koristite "potrošačku klasu" diskove za izradu polja, koristite "poslužiteljske" pogone!!!!!!

    Sada znam što misliš, zar nismo rekli da ćemo ići jeftino? i da, jesmo, ali ovo je točno jedno od mjesta gdje je to nepromišljeno i treba ga izbjegavati. Unatoč njihovoj atraktivnoj cijeni, potrošački hard diskovi nisu dizajnirani za uporabu u 24/7 "on" vrsti uporabe. Vjerujte mi, vaš je doista pokušao ovo za vas. Najmanje četiri potrošačka pogona u 3 poslužitelja koja imam ovakvu postavku (zbog proračunskih ograničenja) nisu uspjela nakon otprilike 1.5 ~ 1.8 godina od prvog dana pokretanja poslužitelja. Iako nije bilo gubitka podataka, jer je RAID radio svoj posao dobro i preživjele ... trenutke kao što je ovaj skraćuje životni vijek sysadmina, a da ne spominjem vrijeme za održavanje poslužitelja (nešto što može završiti troškom više od pogona viših razreda).

    Neki mogu reći da nema razlike u stopi neuspjeha između dvije vrste. To može biti istina, ali unatoč tim tvrdnjama, pogoni za poslužiteljsku klasu još uvijek imaju višu razinu SMART ograničenja i QAing iza njih (kao što se može vidjeti po činjenici da nisu pušteni na tržište čim potrošački pogoni), pa još uvijek visoko preporučujem da se izdvojite dodatni $ $ $ za nadogradnju.

    Odabir RAID razine.

    Iako neću ulaziti u sve dostupne opcije (ovo je vrlo dobro dokumentirano u unosu RAID wikipedije), osjećam da je vrijedno spomenuti da se uvijek morate odlučiti za barem RAID 6 ili čak i veći ( koristit ćemo Linux RAID10). To je zato što kad disk ne uspije, postoji veća vjerojatnost da će se susjedni disk dogoditi, a onda imate neuspjeh "dva diska" na vašim rukama. Štoviše, ako koristite velike pogone, budući da veći diskovi imaju veću gustoću podataka na površini pladnja, veća je vjerojatnost neuspjeha. IMHO diskovi iz 2T i dalje uvijek spadaju u ovu kategoriju, stoga budite svjesni.

    Idemo pucati

    Diskovi za particioniranje

    Dok smo u Linuxu / GNU-u, mogli bismo koristiti cijeli blok uređaj za potrebe pohrane, koristit ćemo particije jer olakšava korištenje alata za spašavanje diska u slučaju da je sustav prestao djelovati. Ovdje koristimo program "fdisk", ali ako koristite diskove veće od 2T morat ćete koristiti program za particioniranje koji podržava GPT particioniranje kao što je rastavljen..

    sudo fdisk / dev / sdb

    Bilješka: Primijetio sam da je moguće napraviti niz bez mijenjanja tipa particije, ali zato što je to način na koji je opisan na cijeloj mreži slijedit ću ga (opet kada koristim cijeli blok uređaj to je nepotrebno).

    Kada uđete u fdisk, tipke su sljedeće:

    n; za novu particiju
    Unesi
    p; za primarnu particiju
    Unesi
    1; broj particije
    Unesi ; prihvatite zadano
    Unesi ; prihvatite zadano
    t; za promjenu vrste
    F D ; postavlja vrstu na "Linux raid auto detect" (83 h)
    w; upisivati ​​promjene na disk i izlaziti

    Isperite i ponovite sve diskove koji će biti dio niza.

    Izrada Linux RAID10 niza

    Prednost korištenja "Linux raid10 "je da zna kako iskoristiti ne-paran broj diskova kako bi poboljšao performanse i elastičnost čak i dalje od vanilije RAID10, uz činjenicu da se pri korištenju polja" 10 "može stvoriti u jednom korak.

    Izradite polje s diskova koje smo pripremili u posljednjem koraku izdavanjem:

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

    Bilješka: Sve je to samo jedan redak unatoč činjenici da ga reprezentacija razbija na dva dijela.

    Razdvojimo parametre prema dolje:

    • "-Chunk = 256" - veličina bajtova na koje su raid pruge slomljene, a ta se veličina preporučuje za nove / velike diskove (2T pogoni koji su korišteni za izradu ovog vodiča bili su bez sumnje u toj kategoriji).
    • "-Razina = 10" - Koristi Linux raid10 (ako je potreban tradicionalni napad, iz bilo kojeg razloga, morat ćete stvoriti dva polja i pridružiti im se).
    • "-P f2" - Koristi "daleko" plan rotacije vidi napomenu ispod za više informacija i "2" kaže da će polje čuvati dvije kopije podataka.

    Bilješka: Koristimo plan "daleko" jer to uzrokuje da fizički izgled podataka na diskovima NE bude isti. To pomaže u prevladavanju situacije u kojoj hardver jednog od pogona ne uspijeva zbog greške u proizvodnji (i nemojte misliti da se "ovo meni neće dogoditi", kao što je vaš doista učinio). Zbog činjenice da su dva diska iste marke i modela, korišteni su na isti način i tradicionalno su čuvali podatke na istoj fizičkoj lokaciji ... Postoji rizik da pogon koji drži kopiju podataka nije uspio previše ili je blizu i neće pružiti potrebnu elastičnost dok ne stigne zamjenski disk. "Daleko" plan čini distribuciju podataka na potpuno različitu fizičku lokaciju na kopijama kopija uz korištenje diskova koji nisu blizu jedan drugome u kućištu računala. Više informacija možete pronaći ovdje i na linkovima ispod.

    Nakon što je polje stvoreno, započet će proces sinkronizacije. Iako možda želite pričekati tradiciju (jer to može potrajati neko vrijeme), možete odmah početi koristiti polje.

    Napredak se može uočiti pomoću:

    watch-d cat / proc / mdstat

    Stvorite konfiguracijsku datoteku mdadm.conf

    Dok je dokazano da Ubuntu jednostavno zna skenirati i aktivirati polje automatski pri pokretanju, za potpunost i za daljnji sysadmin stvorit ćemo datoteku. Vaš sustav neće automatski stvoriti datoteku i pokušati zapamtiti sve komponente / particije vašeg RAID skupa, to je pojas zdravog administratora sustava. Te se informacije mogu i trebaju čuvati u datoteci mdadm.conf. Formatiranje može biti nezgodno, ali na sreću izlaz iz naredbe mdadm -detail -scan -verbose pruža vam.

    Bilješka: Rečeno je da: "Većina distribucija očekuje datoteku mdadm.conf u / etc /, ne / etc / mdadm. Vjerujem da je to "ubuntu-ism" da ga imate kao /etc/mdadm/mdadm.conf. Zbog činjenice da smo su koristeći Ubuntu ovdje, samo ćemo ići s njom.

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

    VAŽNO! trebate ukloniti jednu "0" iz novo stvorene datoteke jer sintaksa koja proizlazi iz gore navedene naredbe nije potpuno točna (GNU / Linux još nije OS).

    Ako želite vidjeti problem koji uzrokuje kriva konfiguracija, možete izdati "skenirati" naredbu u ovom trenutku, prije podešavanja:

    mdadm - ispitivati ​​- skenirati

    Da biste to prevladali, uredite datoteku /etc/mdadm/mdadm.conf i promijeni:

    metapodataka = 00,90

    Čitati:

    metapodataka = 0.90

    Trčanje mdadm -razložiti -scan Sada bi se naredba trebala vratiti bez pogreške.

    Postavljanje datotečnog sustava na nizu

    Koristio sam ext4 za ovaj primjer, jer za mene je to samo izgrađen na poznavanju ext3 datotečnog sustava koji je došao prije njega, a pruža obećane bolje performanse i značajke.
    Predlažem da odvojite vrijeme da istražite što datotečni sustav bolje odgovara vašim potrebama i dobar početak za to je članak "Koji Linux datotečni sustav trebate odabrati?".

    sudo mkfs.ext4 / dev / md0

    Bilješka: U ovom slučaju nisam podijelila rezultirajući niz jer ga jednostavno nisam trebala u to vrijeme, budući da je stranka koja je podnijela zahtjev izričito zatražila najmanje 3.5T kontinuiranog prostora. S tim rečima, da sam htio stvoriti particije, morao bih koristiti uslužni program za GPT particioniranje kao što je "rastavljen".

    montiranje

    Stvorite točku montiranja:

    sudo mkdir / mediji / raid10

    Bilješka: To može biti bilo koje mjesto, gore navedeno je samo primjer.

    Budući da imamo posla s "sastavljenim uređajem", htjet ćemo ne koristite UUID datotečnog sustava koji se nalazi na uređaju za montažu (kao što je preporučeno za druge vrste uređaja u našem "Što je Linux fstab i kako to radi" vodič) jer sustav može zapravo vidjeti dio datotečnog sustava na pojedinačnom disku i pokušati nepravilno montirajte ga izravno. da bismo to prevladali, želimo eksplicitno čekati da se uređaj "sastavi" prije nego što ga pokušamo montirati, a koristit ćemo ime skupa ("md") u okviru fstab da bi to postigao.
    Uredite datoteku fstab:

    sudo vim / etc / fstab

    I dodajte mu ovu liniju:

    / dev / md0 / media / raid10 / ext4 zadane postavke 1 2

    Bilješka: Ako promijenite lokaciju ili datotečni sustav iz primjera, morat ćete prilagoditi gore navedeno.

    Upotrijebite mount s automatskim parametrom (-a) za simulaciju pokretanja sustava, tako da znate da konfiguracija radi ispravno i da će se RAID uređaj automatski montirati kada se sustav ponovno pokrene:

    sudo mount -a

    Sada bi trebali biti u mogućnosti vidjeti niz montiran s "montirati" naredbu bez parametara.

    Obavijesti e-poštom za RAID polje

    Za razliku od hardverskih RAID polja, s programskom paletom ne postoji kontroler koji će početi pisati kako bi vas obavijestio kada nešto krene po zlu. Stoga će upozorenja e-poštom biti naš jedini način da saznamo da li se nešto dogodilo s jednim ili više diskova u nizu, i na taj način učinili najvažniji korak.

    Slijedite upute "Kako postaviti alarme za e-poštu na Linuxu pomoću Gmaila ili SMTP-a" i kada završite, vratite se ovdje kako biste izvršili određene korake u RAID-u.

    Potvrdite da mdadm može slati e-poštu
    Naredba ispod će reći mdadmu da ispaljuje samo jednu poruku e-pošte i zatvori.

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

    Ako ste uspješni, trebali biste dobiti e-poštu s pojedinostima o stanju polja.

    Postavite konfiguraciju mdadm za slanje e-pošte prilikom pokretanja
    Iako nije apsolutno nužno, lijepo je s vremena na vrijeme primati ažuriranje iz stroja kako bismo znali da sposobnost e-pošte i dalje radi i stanje polja. Vaše poruke vjerojatno neće biti preopterećene e-poštom jer ova postavka utječe samo na startupove (što na poslužiteljima ne bi trebalo biti mnogo).
    Uredite konfiguracijsku datoteku mdadm:

    sudo vim / etc / default / mdadm

    Dodajte -test parametar DAEMON_OPTIONS kako bi izgledao ovako:

    DAEMON_OPTIONS = "- syslog --test"

    Možete ponovno pokrenuti stroj samo kako biste bili sigurni da je "u petlji", ali to nije potrebno.

    Samba konfiguracija

    Instaliranje SaMBa na Linux poslužitelju omogućuje da se ponaša kao Windows datotečni poslužitelj. Kako bismo dobili podatke koje smo hostirali na Linux poslužitelju dostupnima klijentima Windowsa, instalirat ćemo i konfigurirati SaMBa.
    Čudno je primijetiti da je ime paketa SaMBa dosjetka na Microsoftovom protokolu koji se koristi za dijeljenje datoteka pod nazivom SMB (Service Message Block).

    U ovom vodiču poslužitelj se koristi u svrhu testiranja, tako da ćemo omogućiti pristup njegovom udjelu bez Zahtijevajući zaporku, možda ćete htjeti još malo istražiti kako postaviti postavke dozvole nakon dovršetka postavljanja.

    Također se preporučuje da stvorite ne-povlaštenog korisnika koji će biti vlasnik datoteka. U ovom primjeru koristimo korisnika "geek" kojeg smo stvorili za ovaj zadatak. Objašnjenja o tome kako stvoriti korisnika i upravljati vlasništvom i dopuštenjima mogu se pronaći u našim vodičima "Kreirajte novog korisnika na Ubuntu Serveru 9.10" i "Vodič za početnike za upravljanje korisnicima i grupama u Linuxu"..

    Instaliraj Sambu:

    aptitude instaliraju sambu

    Uredite konfiguracijsku datoteku sambe:

    sudo vim /etc/samba/smb.conf

    Dodajte dionicu pod nazivom "općenito" koja će omogućiti pristup točki "/ media / raid10 / general" tako da dodate datoteku u datoteku.

    [general]
    put = / media / raid10 / general
    snagu korisnika = geek
    force group = geek
    samo za čitanje = Ne
    create mask = 0777
    maska ​​direktorija = 0777
    samo gost = Da
    gost ok = Da

    Postavke iznad čine dijeljenje adresabilnim bez lozinku za svakoga i čini zadani vlasnik datoteka korisnik "geek".

    Za vašu informaciju, ova datoteka smb.conf preuzeta je s radnog poslužitelja.

    Ponovno pokrenite uslugu sambe kako bi postavke utjecale:

    sudo /etc/init.d/samba restart

    Jednom učinjeno možete koristiti testparm da biste vidjeli postavke primijenjene na samba poslužitelj.
    to je to, poslužitelj bi sada trebao biti dostupan iz bilo kojeg prozora pomoću:

    \ Poslužitelja namegeneral

    Rješavanje problema

    Kada trebate otkloniti problem ili disk nije uspio u nizu, predlažem da se pozovete na mdadm list za varanje (to je ono što radim ...).

    Općenito treba zapamtiti da kada disk ne uspije, morate ga "ukloniti" iz niza, isključiti stroj, zamijeniti neispravni pogon zamjenom i zatim "dodati" novi pogon na niz nakon što ste stvorili odgovarajući disk. raspored (particije) na njemu ako je potrebno.

    Kada to učinite, možda želite provjeriti da li se niz obnavlja i gledate napredak pomoću:

    watch-d cat / proc / mdstat

    Sretno! :)

    Reference:
    mdadm varati list
    RAID razine se pokvare
    Linux RAID10 objasnio
    mdadm man stranicu za naredbe
    mdadm konfiguracijsku datoteku man stranicu
    Objašnjenje ograničenja particija


    Korištenje softverskog RAID-a neće koštati puno… Samo vaš GLAS ;-)