Hjemmeside » hvordan » Slik installerer du programvare RAID for en enkel filserver på Ubuntu

    Slik installerer du programvare RAID for en enkel filserver på Ubuntu

    Trenger du en filserver på det billige som er enkelt å installere, er "solid" pålitelig med e-postvarsling? vil vise deg hvordan du bruker Ubuntu, software RAID og SaMBa for å oppnå nettopp det.

    Oversikt

    Til tross for den siste buzzen for å flytte alt til "all mektig" skyen, kan du noen ganger ikke ha informasjonen din på en annen server, eller det er kanskje bare umulig å laste ned volumene data du trenger fra Internett hver gang (for eksempel bildeutplassering ). Så før du fjerner et sted i budsjettet ditt for en lagringsløsning, bør du vurdere en konfigurasjon som er lisensiert gratis med Linux.

    Med det sagt, å gå billig / gratis betyr ikke "å gi forsiktighet til vinden", og i den sammenheng vil vi legge merke til punkter for å være klar over, konfigurasjoner som bør settes på plass i tillegg til å bruke programvare RAID for å oppnå maksimal pris til pålitelighetsgrad.

    Bilde av Filomena Scalise

    Om programvare RAID

    Som navnet antyder, er dette et RAID (Redundant Array of Cheap Disks) oppsett som er gjort helt i programvare i stedet for å bruke et dedikert maskinvarekort. Den største fordelen med en slik ting er kostnad, da dette dedikerte kortet er en ekstra premie til systemets grunnkonfigurasjon. De viktigste ulempene er i utgangspunktet ytelse og noe pålitelighet, da et slikt kort vanligvis leveres med sin egen RAM + CPU for å utføre beregningene som kreves for redundansmatematikken, datakachingen for økt ytelse og det valgfrie backup-batteriet som holder ukjente operasjoner i hurtigbufferen til Strømmen har blitt gjenopprettet i tilfelle strømbrudd.

    Med en programvare RAID-oppsett avleder du noen av systemens CPU-ytelse for å redusere total systemkostnad, men med dagens CPUer er overhead relativt ubetydelig (spesielt hvis du skal hovedsakelig dedikere denne serveren til å være en "filserver"). Så langt som diskopptreden går, er det en straff ... men jeg har aldri møtt en flaskehals fra diskdelsystemet fra serveren for å merke hvor dyp det er. Tom's Hardware Guide "Tom er RAID5" er en gammel, men en god uttømmende artikkel om emnet, som jeg personlig bruker som referanse, men ta målene med et saltkorn som det snakker om Windows-implementering av programvare RAID (som med Alt annet, jeg er sikker på at Linux er mye bedre: P).

    Forutsetninger

    • Tålmodighet ung, dette er en lang lesning.
    • Det antas at du vet hva RAID er og hva det brukes til.
    • Denne veiledningen ble skrevet ved hjelp av Ubuntu server9.10 x64, derfor antas det at du har et Debian-basert system for å jobbe med.
    • Du vil se meg bruke VIM som redigeringsprogrammet, dette er bare fordi jeg er vant til det ... du kan bruke andre redaktører som du vil ha.
    • Ubuntu-systemet jeg brukte til å skrive denne håndboken, ble installert på en disk-på-tast. Å gjøre det tillot meg å bruke sda1 som en del av RAID-arrayet, så juster deretter til oppsettet ditt.
    • Avhengig av hvilken type RAID du vil opprette, trenger du minst to disker på systemet ditt og i denne veiledningen bruker vi 6 stasjoner.

    Velge diskene som lager oppstillingen

    Det første trinnet i å unngå en felle er å vite om dens eksistens (Thufir Hawat from Dune).

    Å velge diskene er et viktig skritt som ikke bør tas lett, og du vil være klokt å kapitalisere på din virkelig erfaring og ivareta denne advarselen:

    Gjøre IKKE bruk "forbruker grade" -stasjoner for å lage ditt array, bruk "server grade" -stasjoner!!!!!!

    Nå vet jeg hva du tenker, sa vi ikke vi skal gå på den billige? og ja det gjorde vi, men dette er akkurat et av stedene der det gjøres, er hensynsløs og bør unngås. Til tross for deres attraktive pris, er harddisker av forbrukerkvalitet ikke konstruert for å brukes i en 24/7 "på" type bruk. Stol på meg, din har virkelig prøvd dette for deg. Minst fire forbrukerkvalitetsdrifter i de 3 serverne jeg har installert på denne måten (på grunn av begrensede begrensninger) mislyktes etter ca. 1,5 ~ 1,8 år fra serverens første lanseringsdag. Mens det ikke var noe datatap, fordi RAID gjorde det jobb vi vil og overlevde ... øyeblikk som dette forkorter sysadminens forventede levetid, for ikke å nevne nedetid for selskapet for servervedlikehold (noe som kan ende opp med å koste mer enn høyere klasse-stasjoner).

    Noen kan si at det ikke er noen forskjell i sviktfrekvensen mellom de to typene. Det kan være sant, men til tross for disse påstandene har server-klassestasjoner fortsatt et høyere nivå av SMART-restriksjoner og QAing bak dem (som kan observeres av det faktum at de ikke er utgitt til markedet så snart forbrukerstasjonen er). så jeg anbefaler fortsatt at du gaffel ut ekstra $$$ for oppgraderingen.

    Velger RAID-nivået.

    Selv om jeg ikke kommer til å gå inn i alle tilgjengelige alternativer (dette er veldig godt dokumentert i RAID-wikipedia-oppføringen), føler jeg at det er bemerkelsesverdig å si at du alltid bør velge minst RAID 6 eller enda høyere ( vi skal bruke Linux RAID10). Dette skyldes at når en disk mislykkes, er det en høyere sjanse for en nærliggende diskfeil, og da har du en "to disk" -feil på hendene. Videre, hvis du skal bruke store stasjoner, da større disker har høyere datatetthet på platens overflate, er sjansen for feil, høyere. IMHO-disker fra 2T og utover vil alltid falle inn i denne kategorien, så vær oppmerksom på.

    La oss få sprekker

    Partisjoner disker

    Mens i Linux / GNU, kan vi bruke hele blokkeringsenheten til lagringsbehov, vi vil bruke partisjoner fordi det gjør det enklere å bruke redningsverktøy i tilfelle systemet har gått bonkers. Vi bruker "fdisk" -programmet her, men hvis du skal bruke disker som er større enn 2T, må du bruke et partisjoneringsprogram som støtter GPT-partisjonering som parted.

    sudo fdisk / dev / sdb

    Merk: Jeg har observert at det er mulig å lage arrayet uten å endre partisjonstypen, men fordi dette er måten som beskrives over nettet, skal jeg følge med (igjen når du bruker hele blokkeringsenheten, er dette unødvendig).

    En gang i fdisk er tastetrykkene:

    n; for en ny partisjon
    Tast inn
    p; for en primær partisjon
    Tast inn
    1 ; antall partisjoner
    Tast inn ; godta standard
    Tast inn ; godta standard
    t; å endre typen
    fd; setter typen for å være "Linux raid auto detect" (83h)
    w; skriv endringer til disk og avslutte

    Skyll og gjenta for alle diskene som vil være en del av arrayet.

    Opprette en Linux RAID10-array

    Fordelen med å bruke "Linux raid10 "er at den vet hvordan man kan dra nytte av et ikke-jevnt antall disker for å øke ytelsen og fleksibiliteten enda lenger enn vanilje RAID10, i tillegg til at når den brukes, kan 10-tallet opprettes i en enkelt skritt.

    Opprett matrisen fra diskene vi har utarbeidet i siste trinn ved å utstede:

    sudo mdadm - opprette / dev / md0 --chunk = 256 --level = 10 -p f2 - reddede enheter = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -verbose

    Merk: Dette er alt bare en linje til tross for at representasjonen bryter den inn i to.

    La oss bryte parametrene ned:

    • "-Chunk = 256" - Størrelsen på bytes raid stripes er brutt til, og denne størrelsen anbefales for nye / store disker (2T-stasjonene som brukes til å lage denne guiden var uten tvil i den kategorien).
    • "-Level = 10" - Bruker den Linux raid10 (hvis en tradisjonell raid kreves, for noen grunn, må du opprette to arrays og bli med dem).
    • "-P f2" - Bruker "langt" rotasjonsplanen se notat under for mer info og "2" forteller at arrayet vil beholde to kopier av dataene.

    Merk: Vi bruker "langt" planen fordi dette fører til at det fysiske datalayoutet på diskene ikke er det samme. Dette bidrar til å overvinne situasjonen der maskinvaren til en av stasjonene feiler på grunn av en produksjonsfeil (og ikke tenk "dette kommer ikke til å skje med meg" som du virkelig gjorde). På grunn av det faktum at de to diskene er av samme fabrikat og modell, har de blitt brukt på samme måte og har tradisjonelt lagret dataene på samme fysiske plassering ... Risikoen er at disken som holder kopien av dataene har feilet for eller er nær og vil ikke gi den nødvendige fleksibiliteten til en erstatningsdisk kommer. Den "langt" planen gjør datafordelingen til en helt annen fysisk plassering på kopieringsstasjonene i tillegg til å bruke disker som ikke er nær hverandre i datasettet. Mer informasjon finner du her og i linkene under.

    Når matrisen er opprettet, starter den sin synkroniseringsprosess. Mens du kanskje ønsker å vente på tradisjonens skyld (dette kan ta litt tid), kan du begynne å bruke arrayet umiddelbart.

    Fremdriften kan observeres ved å bruke:

    se -d katt / proc / mdstat

    Opprett mdadm.conf konfigurasjonsfilen

    Selv om det har blitt bevist at Ubuntu bare kan skanne og aktivere arrayet automatisk ved oppstart, for fullstendighet skyld og høflighet for neste sysadmin, vil vi opprette filen. Systemet lager ikke filen automatisk og prøver å huske alle komponentene / partisjonene i RAID-settet, er en midje av systemadministratorens sanselighet. Denne informasjonen kan og bør lagres i mdadm.conf filen. Formateringen kan være vanskelig, men heldigvis gir utdataene fra mdadm -detail-scan -verbose-kommandoen deg det.

    Merk: Det har blitt sagt at: "De fleste distribusjoner forventer at mdadm.conf filen er i / etc /, not / etc / mdadm. Jeg tror dette er en "ubuntu-ism" for å ha det som /etc/mdadm/mdadm.conf ". På grunn av det faktum at vi er bruker Ubuntu her, vi vil bare gå med det.

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

    VIKTIG! du må fjerne en "0" fra den nylig opprettede filen fordi syntaksen som følger av kommandoen ovenfor ikke er helt korrekt (GNU / Linux er ikke et OS ennå).

    Hvis du vil se problemet som denne feil konfigurasjonen forårsaker, kan du utstede "skanne” kommandoen på dette tidspunktet før du foretar justeringen:

    mdadm - undersøke - scan

    For å overvinne dette, rediger filen /etc/mdadm/mdadm.conf og endre:

    metadata = 00,90

    Å lese:

    metadata = 0,90

    Kjører mdadm -examine -scan Kommandoen skal nå returnere uten en feil.

    Oppsett av filsystem på arrayen

    Jeg brukte ext4 for dette eksempelet fordi for meg var det bare bygget på kjennskap til ext3-filsystemet som kom før det, samtidig som det ga lovet bedre ytelse og funksjoner.
    Jeg foreslår at du tar deg tid til å undersøke hvilket filsystem bedre passer dine behov, og en god start for det er vår "Hvilket Linux-filsystem bør du velge?" Artikkelen.

    sudo mkfs.ext4 / dev / md0

    Merk: I dette tilfellet delte jeg ikke den resulterende oppstillingen fordi jeg ganske enkelt ikke trengte det på det tidspunktet, da den anmodende partiet spesifikt ba om minst 3,5 T kontinuerlig plass. Med det sagt, hadde jeg ønsket å lage partisjoner, ville jeg hatt å bruke en GPT-partisjonering-funksjon som "parted".

    monterings~~POS=TRUNC

    Opprett monteringspunktet:

    sudo mkdir / media / raid10

    Merk: Dette kan være noe sted, ovennevnte er bare et eksempel.

    Fordi vi har å gjøre med en "samlet enhet" vil vi ikke bruk filsystemets UUID som er på enheten for montering (som anbefalt for andre typer enheter i vår "Hva er Linux fstab og hvordan fungerer det"), da systemet faktisk kan se en del av filsystemet på en individuell disk og Prøv å feil Monter den direkte. for å overvinne dette vil vi eksplisitt vente på at enheten skal "settes sammen" før vi prøver å montere den, og vi vil bruke det sammensatte arrayets navn ("md") innenfor fstab for å oppnå dette.
    Rediger fstab-filen:

    sudo vim / etc / fstab

    Og legg til denne linjen:

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

    Merk: Hvis du endrer monteringsstedet eller filsystemet fra eksempelet, må du justere ovenstående tilsvarende.

    Bruk monteringen med den automatiske parameteren (-a) for å simulere en systemstart, slik at du vet at konfigurasjonen fungerer som den skal, og at RAID-enheten vil bli automatisk montert når systemet starter på nytt:

    sudo mount -a

    Du bør nå kunne se arrayet montert med "mount" kommandoen uten parametere.

    E-postvarsler for RAID-arrayet

    I motsetning til hardware RAID-arrayer, med en programvaregruppe, er det ingen kontroller som vil begynne å pipe for å fortelle deg når noe gikk galt. Derfor vil e-postvarslene være vår eneste måte å vite om noe skjedde med en eller flere disker i arrayet, og dermed gjør det til viktigste trinnet.

    Følg "Hvordan oppsett e-postvarsler på Linux ved hjelp av Gmail eller SMTP" guide og når du er ferdig, kom tilbake hit for å utføre RAID-spesifikke trinnene.

    Bekreft at mdadm kan e-post
    Kommandoen nedenfor, vil fortelle mdadm å brenne av bare en e-post og lukke.

    sudo mdadm - monitor - scan - test --oneshot

    Hvis du lykkes, skal du få en e-post, og angi arrayets tilstand.

    Angi mdadm-konfigurasjonen for å sende en e-post ved oppstart
    Selv om det ikke er et absolutt must, er det fint å få en oppdatering fra tid til annen fra maskinen for å gi oss beskjed om at e-post-evnen fortsatt fungerer og i tilstanden til arraysystemet. Du vil sannsynligvis ikke bli overveldet av e-postmeldinger, da denne innstillingen bare påvirker oppstart (som på servere bør ikke være mange).
    Rediger mdadm konfigurasjonsfilen:

    sudo vim / etc / default / mdadm

    Legg til -test parameter til DAEMON_OPTIONS seksjon slik at det ser ut som:

    DAEMON_OPTIONS = "- syslog - test"

    Du kan starte maskinen på nytt for å være sikker på at du er "i loop", men det er ikke et must.

    Samba Konfigurasjon

    Installering av SaMBa på en Linux-server gjør det mulig å opptre som en Windows-filserver. Så for å få dataene vi er vert for på Linux-serveren tilgjengelig for Windows-klienter, vil vi installere og konfigurere SaMBa.
    Det er morsomt å merke seg at pakkenavnet SaMBa er et ordspill på Microsofts protokoll som brukes til fildeling, kalt SMB (Service Message Block).

    I denne veiledningen brukes serveren til test, slik at vi får tilgang til sin del uten krever et passord, kan det være lurt å grave litt mer på hvordan du konfigurerer tillatelser når oppsettet er fullført.

    Det anbefales også at du oppretter en ikke-privilegert bruker som eier av filene. I dette eksemplet bruker vi den "geek" brukeren vi har opprettet for denne oppgaven. Forklaringer på hvordan du oppretter en bruker og administrerer eierskap og tillatelser, kan du finne i "Opprett en ny bruker på Ubuntu Server 9.10" og "Begynnerhåndboken for å administrere brukere og grupper i Linux" -guider.

    Installer Samba:

    aptitude install samba

    Rediger samba konfigurasjonsfilen:

    sudo vim /etc/samba/smb.conf

    Legg til en del som heter "generell" som vil gi tilgang til monteringspunktet "/ media / raid10 / general" ved å legge til under i filen.

    [generell]
    bane = / media / raid10 / general
    tving brukeren = geek
    Force Group = Geek
    skrivebeskyttet = Nei
    opprett maske = 0777
    katalogmaske = 0777
    Kun gjest = Ja
    Gjest ok = Ja

    Innstillingene ovenfor gjør at aksjen kan adresseres uten et passord til noen og gjør standard eieren av filene brukeren "geek".

    Som referanse ble denne smb.conf filen hentet fra en arbeidsserver.

    Start samba-tjenesten på nytt for at innstillingene skal påvirke:

    sudo /etc/init.d/samba restart

    Når du er ferdig kan du bruke testparm kommando for å se innstillingene som er brukt på samba-serveren.
    det er det, serveren skal nå være tilgjengelig fra alle Windows-bokser ved å bruke:

    \ Server namegeneral

    Feilsøking

    Når du trenger å feilsøke et problem eller en disk har mislyktes i en matrise, foreslår jeg at du henviser til mdadm-svindelarket (det er det jeg gjør ...).

    Generelt bør du huske at når en disk mislykkes, må du "fjerne" den fra matrisen, slå av maskinen, bytte ut den sviktende stasjonen med en erstatning og deretter legge til den nye stasjonen til matrisen etter at du har opprettet riktig disk layout (partisjoner) på den om nødvendig.

    Når det er gjort, kan det være lurt å forsikre deg om at arrayet gjenoppbygger og se fremdriften med:

    se -d katt / proc / mdstat

    Lykke til! :)

    referanser:
    mdadm snydeark
    RAID-nivåer brytes ned
    Linux RAID10 forklart
    mdadm kommandobokkside
    mdadm konfigurasjonsfil man side
    Partisjon begrensninger forklart


    Bruke programvare RAID vil ikke koste mye ... Bare din stemme ;-)