Hjemmeside » hvordan » Sådan Setup Software RAID til en simpel filserver på Ubuntu

    Sådan Setup Software RAID til en simpel filserver på Ubuntu

    Har du brug for en filserver på den billige, der er let at installere, "rock solid" pålidelig med Email Alerting? vil vise dig, hvordan du bruger Ubuntu, software RAID og SaMBa for at opnå det.

    Oversigt

    På trods af den nylige buzz for at flytte alt til den "magtfulde" sky, kan du nogle gange ikke have dine oplysninger på en andens server eller det er måske bare umuligt at downloade de datamængder, du har brug for fra internettet hver gang (for eksempel billedudvikling ). Så før du sletter et sted i dit budget for en lageropløsning, overvej en konfiguration, der licenserer gratis med Linux.

    Med det sagt, at gå billig / fri betyder ikke "at give forsigtighed til vinden", og i den sammenhæng vil vi bemærke punkter at være opmærksomme på, konfigurationer, der skal indstilles ud over at bruge software RAID for at opnå den maksimal pris til pålidelighedsprocent.

    Billede af Filomena Scalise

    Om software RAID

    Som navnet antyder, er dette et RAID-system (Redundant Array of Cheap Disks), der er færdigt fuldstændigt i software i stedet for at bruge et dedikeret hardwarekort. Den største fordel ved en sådan ting er omkostninger, da dette dedikerede kort er en ekstra præmie til systemets basekonfiguration. De væsentligste ulemper er dybest set ydeevne og en vis pålidelighed, da et sådant kort normalt leveres med sin egen RAM + CPU til at udføre de beregninger, der kræves for redundansmatematikken, datakuffering for øget ydeevne og det valgfrie backupbatteri, der holder ukorrekte operationer i cachen indtil Strømmen er blevet genoprettet i tilfælde af strømforsyning.

    Med en software RAID-opsætning gør du ofre for nogle af systemets CPU-ydeevne for at reducere samlede systemomkostninger, men med dagens CPU'er er overhead relativt ubetydelig (især hvis du primært vil dedikere denne server til at være en "filserver"). Hvad angår diskens ydeevne, er der en straf ... men jeg har aldrig stødt på en flaskehals fra diskdelsystemet fra serveren for at bemærke, hvor dybt det er. Tom's Hardware guide "Tom's goes RAID5" er en gammel, men en god udtømmende artikel om emnet, som jeg personligt bruger som reference, men tager benchmarks med et saltkorn, da det taler om Windows-implementering af software RAID (som med Alt andet, jeg er sikker på at Linux er meget bedre: P).

    Forudsætninger

    • Tålmodighed ung en, dette er en lang læsning.
    • Det forudsættes at du ved, hvad RAID er, og hvad det bruges til.
    • Denne vejledning blev skrevet ved hjælp af Ubuntu server9.10 x64, derfor antages det, at du har et Debian-baseret system til at arbejde sammen med.
    • Du vil se mig bruge VIM som redaktørprogrammet, det er bare fordi jeg er vant til det ... du kan bruge andre redaktører, som du gerne vil have.
    • Det Ubuntu-system, jeg brugte til at skrive denne vejledning, blev installeret på en disk-on-key. Dette gjorde det muligt for mig at bruge sda1 som en del af RAID-arrayet, så juster derefter til dit setup.
    • Afhængigt af hvilken type RAID du vil oprette, skal du bruge mindst to diske på dit system, og i denne vejledning bruger vi 6 drev.

    Valg af diske, der gør arrayet

    Det første skridt i at undgå en fælde er at vide om dens eksistens (Thufir Hawat fra Dune).

    Valg af diske er et vigtigt skridt, der ikke bør tages let, og du ville være klogt at udnytte din virkelig oplevelse og følge denne advarsel:

    gøre IKKE brug "drive grade" drev til at oprette dit array, brug "server grade" drev!!!!!!

    Nu ved jeg hvad din tænkning, sagde vi ikke, vi skal gå på den billige? og ja det gjorde vi, men det er netop et af de steder, hvor det gør er rodeløst og bør undgås. På trods af deres attraktive pris er forbrugerkvalitetsdrev ikke designet til at blive brugt i en 24/7 "on" type af brug. Tro på dig, din har virkelig prøvet dette for dig. Mindst fire forbrugerkvalitetsdrev i de 3 servere, jeg har opsætning på denne måde (på grund af budgetbegrænsninger) mislykkedes efter ca. 1,5 ~ 1,8 år fra serverens første lanceringsdag. Mens der ikke var noget tab af data, fordi RAID gjorde det job godt og overlevede ... øjeblikke som dette forkorte sysadminens forventede levetid, for ikke at nævne nedetid for virksomheden til servervedligeholdelse (noget som kan ende med at koste mere end højere klasse-drev).

    Nogle kan sige, at der ikke er nogen forskel i fejlfrekvens mellem de to typer. Det kan nok være rigtigt, men på trods af disse påstande har serverkvalitetsdrev stadig et højere niveau af SMART-begrænsninger og QAing bag dem (som det kan ses af, at de ikke frigives til markedet, så snart forbrugernes drev er) så jeg anbefaler stadig, at du gaffel ud den ekstra $$$ til opgraderingen.

    Valg af RAID-niveau.

    Selvom jeg ikke går ind i alle de tilgængelige muligheder (dette er meget godt dokumenteret i RAID wikipedia-posten), mener jeg, at det er bemærkelsesværdigt at sige, at du altid skal vælge mindst RAID 6 eller endnu højere ( vi vil bruge Linux RAID10). Dette skyldes, at når en disk fejler, er der en højere chance for en tilstødende diskfejl, og så har du en "to disk" -fejl på dine hænder. Hvis du skal bruge store drev, da større disketter har en højere datatæthed på tallerkenets overflade, er chancen for fiasko højere. IMHO-diske fra 2T og derover vil altid falde ind under denne kategori, så vær opmærksom på.

    Lad os få revner

    Partitioner disker

    Mens vi i Linux / GNU kunne bruge hele blokenheden til opbevaring, vil vi bruge partitioner, fordi det gør det lettere at bruge redningsværktøjer, hvis systemet er gået bonkers. Vi bruger "fdisk" -programmet her, men hvis du skal bruge diske større end 2T, skal du bruge et partitioneringsprogram, der understøtter GPT-partitionering som afskilt.

    sudo fdisk / dev / sdb

    Bemærk: Jeg har observeret, at det er muligt at lave arrayet uden at ændre partitionstypen, men fordi det er den måde, der beskrives overalt på nettet, vil jeg følge med (igen når du bruger hele blokenheden, er det unødvendigt).

    En gang i fdisk er tastetrykket:

    n; til en ny partition
    gå ind
    p; for en primær partition
    gå ind
    1; antal partitioner
    gå ind ; accepter standard
    gå ind ; accepter standard
    t; at ændre typen
    fd; indstiller typen til at være "Linux raid auto detect" (83h)
    w; skriv ændringer til disk og exit

    Skyl og gentag for alle de diske, der vil være en del af arrayet.

    Oprettelse af et Linux RAID10 array

    Fordelen ved at bruge "Linux raid10 "er, at den ved, hvordan man kan drage fordel af et ikke-jævnt antal diske for at øge ydeevnen og fleksibiliteten endnu mere end vanilje RAID10, ud over det faktum at når man bruger det, kan" 10 "arrayet oprettes i en enkelt trin.

    Opret arrayet fra de diske, vi har forberedt i sidste trin ved at udstede:

    sudo mdadm --create / dev / md0 --chunk = 256 --level = 10 -p f2 - røde enheder = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -ordrig

    Bemærk: Dette er kun en linje på trods af at repræsentationen bryder den i to.

    Lad os bryde parametrene ned:

    • "-Chunk = 256" - Størrelsen af ​​bytes raidstrimmerne er brudt til, og denne størrelse anbefales til nye / store diske (de 2T-drev, der bruges til at gøre denne vejledning, var uden tvivl i den kategori).
    • "-Niveau = 10" - Bruger den Linux raid10 (hvis en traditionel raid er påkrævet, af en eller anden grund, skal du oprette to arrays og slutte sig til dem).
    • "-P f2" - Bruger "langt" rotationsplanen se note nedenfor for mere info og "2" fortæller at arrayet vil holde to kopier af dataene.

    Bemærk: Vi bruger "langt" planen, fordi det medfører, at det fysiske data layout på diskene IKKE er det samme. Dette hjælper med at overvinde den situation, hvor hardwaren på en af ​​drevene fejler på grund af en fabrikationsfejl (og tror ikke "det vil ikke ske for mig" som din virkelig gjorde). På grund af det faktum, at de to diske er af samme fabrikat og model, er de blevet brugt på samme måde og har traditionelt lagret dataene på samme fysiske placering ... Risikoen er, at drevet, der indeholder kopien af ​​dataene, har fejlet også eller er tæt på og giver ikke den krævede fleksibilitet, indtil en erstatningsdisk kommer frem. Den "langt" plan gør datadistributionen til en helt anden fysisk placering på kopiedrevene ud over at bruge diske, der ikke er tæt på hinanden i computerens tilfælde. Flere oplysninger kan findes her og i nedenstående links.

    Når arrayet er oprettet, starter det sin synkroniseringsproces. Mens du måske ønsker at vente på traditionernes skyld (da dette kan tage et stykke tid), kan du begynde at bruge arrayet med det samme.

    Fremskridtene kan observeres ved hjælp af:

    se -d cat / proc / mdstat

    Opret konfigurationsfilen mdadm.conf

    Selvom det har vist sig, at Ubuntu simpelthen ved at scanne og aktivere arrayet automatisk ved opstart, vil vi for fuldstændighedens skyld og høflighed for den næste sysadmin oprette filen. Dit system opretter ikke automatisk filen og forsøger at huske alle komponenter / partitioner i dit RAID-sæt, er en talje af systemadministratorens sanity. Disse oplysninger kan og skal opbevares i mdadm.conf filen. Formateringen kan være vanskelig, men heldigvis giver output fra mdadm -detail -scan -verbose kommandoen dig det.

    Bemærk: Det er blevet sagt at: "De fleste distributioner forventer mdadm.conf filen i / etc /, not / etc / mdadm. Jeg mener, at dette er en "ubuntu-ism" for at have det som /etc/mdadm/mdadm.conf ". På grund af det faktum, at vi er bruger Ubuntu her, vi vil bare gå med det.

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

    VIGTIG! du skal fjerne en "0" fra den nyoprettede fil, fordi den syntaks, der følger af kommandoen ovenfor, ikke er helt korrekt (GNU / Linux er ikke et OS endnu).

    Hvis du vil se problemet, som denne forkerte konfiguration forårsager, kan du udstede "Scan" kommando på dette tidspunkt, før du foretager justeringen:

    mdadm - undersøge - scan

    For at overvinde dette skal du redigere filen /etc/mdadm/mdadm.conf og ændre:

    metadata = 00,90

    At læse:

    metadata = 0,90

    Kører mdadm -examine -scan Kommandoen skal nu returnere uden en fejl.

    Filsystem opsætning på array

    Jeg brugte ext4 til dette eksempel, fordi det for mig var baseret på kendskabet til ext3-filsystemet, der kom før det, mens det gav lovede bedre ydeevne og funktioner.
    Jeg foreslår at tage tid til at undersøge, hvilket filsystem der bedre passer til dine behov, og en god start for det er vores "Hvilket Linux-filsystem skal du vælge?" Artikel.

    sudo mkfs.ext4 / dev / md0

    Bemærk: I dette tilfælde delte jeg ikke det resulterende array, fordi jeg simpelthen ikke havde brug for det på det tidspunkt, da den anmodende part specifikt anmodede om mindst 3,5 T kontinuerligt rum. Når det var sagt, havde jeg ønsket at oprette partitioner, ville jeg have haft brug for en GPT-partitioneringsfunktion som "parted".

    Montering

    Opret monteringspunktet:

    sudo mkdir / media / raid10

    Bemærk: Dette kan være et hvilket som helst sted, ovenstående er kun et eksempel.

    Fordi vi har at gøre med en "samlet enhed" vil vi ikke brug filsystemets UUID, der findes på enheden til montering (som anbefalet til andre typer enheder i vores "hvad er linux fstab og hvordan fungerer det" guide), da systemet muligvis kan se en del af filsystemet på en enkelt disk og forsøge at forkert Monter det direkte. for at overvinde dette vil vi udtrykkeligt vente på, at enheden skal "monteres", før vi forsøger at montere den, og vi vil bruge det samlede array navn ("md") indenfor fstab at opnå dette.
    Rediger fstab-filen:

    sudo vim / etc / fstab

    Og tilføj denne linje:

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

    Bemærk: Hvis du ændrer monteringsstedet eller filsystemet fra eksemplet, skal du justere ovenstående i overensstemmelse hermed.

    Brug mount med den automatiske parameter (-a) til at simulere en systemstart, så du ved, at konfigurationen fungerer korrekt, og at RAID-enheden automatisk monteres, når systemet genstarter:

    sudo mount -a

    Du skal nu kunne se arrayet monteret med "mount" kommandoen uden parametre.

    Email Alerts for RAID Array

    I modsætning til hardware RAID arrays, med en software array er der ingen controller, der ville begynde at bippe for at fortælle dig, når noget gik galt. Derfor vil e-mail-varslene være vores eneste måde at vide, om der er sket noget med en eller flere diske i arrayet og dermed gør det til vigtigste skridt.

    Følg "Vejledning til opsætning af e-mail på Linux ved hjælp af Gmail eller SMTP" guide og når du er færdig, kom tilbage her for at udføre RAID-specifikke trin.

    Bekræft, at mdadm kan e-maile
    Kommandoen nedenfor, vil fortælle mdadm at slukke kun en email og lukke.

    sudo mdadm - monitor - scan - test --oneshot

    Hvis du lykkes, skal du have en e-mail, der beskriver arrayets tilstand.

    Indstil mdadm konfigurationen for at sende en Email ved opstart
    Selvom det ikke er et absolut must, er det rart at få en opdatering fra tid til anden fra maskinen for at fortælle os, at e-mail-evnen stadig arbejder og i arrayets tilstand. du sandsynligvis ikke vil blive overvældet af e-mails, da denne indstilling kun påvirker startups (som på servere bør der ikke være mange).
    Rediger mdadm konfigurationsfilen:

    sudo vim / etc / default / mdadm

    Tilføj -prøve parameter til DAEMON_OPTIONS sektion, så det ser ud som:

    DAEMON_OPTIONS = "- syslog - test"

    Du må genstarte maskinen bare for at sikre din "i loop", men det er ikke et must.

    Samba Konfiguration

    Installation af SaMBa på en Linux-server gør det muligt at virke som en Windows-filserver. Så for at få de data, vi er vært for på Linux-serveren til rådighed for Windows-klienter, installerer og konfigureres SaMBa.
    Det er sjovt at bemærke, at pakkenavnet SaMBa er et ordsprog på Microsofts protokol anvendt til fildeling kaldet SMB (Service Message Block).

    I denne vejledning bruges serveren til testformål, så vi får adgang til dens andel uden kræver en adgangskode, kan du måske grunde lidt mere til, hvordan man opsætter tilladelser, når installationen er færdig.

    Det anbefales også, at du opretter en ikke-privilegeret bruger for at være ejer af filerne. I dette eksempel bruger vi den "geek" bruger, vi har oprettet til denne opgave. Forklaringer på, hvordan man opretter en bruger og styrer ejerskab og tilladelser, findes i vores "Opret en ny bruger på Ubuntu Server 9.10" og "Begynderens Guide til Administration af Brugere og Grupper i Linux" -guider.

    Installer Samba:

    aptitude install samba

    Rediger samba konfigurationsfilen:

    sudo vim /etc/samba/smb.conf

    Tilføj en del kaldet "generel", der giver adgang til monteringspunktet "/ media / raid10 / general" ved at tilføje nedenstående til filen.

    [generel]
    sti = / media / raid10 / general
    force user = geek
    force group = geek
    læses kun = nej
    opret maske = 0777
    directory mask = 0777
    gæst kun = ja
    gæst ok = ja

    Indstillingerne ovenfor gør den del adresserbar uden et kodeord til nogen og gør standard ejer af filerne brugeren "geek".

    Til din reference blev denne smb.conf-fil taget fra en arbejdsserver.

    Genstart samba-tjenesten for at indstillingerne skal påvirke:

    sudo /etc/init.d/samba genstart

    Når du er færdig kan du bruge testparm kommando for at se de indstillinger, der er anvendt på samba-serveren.
    det er det, serveren skal nu være tilgængelig fra enhver Windows-boks ved hjælp af:

    \ Server-namegeneral

    Fejlfinding

    Når du har brug for at fejlfinding et problem, eller en disk har fejlet i en matrix, foreslår jeg at henvise til mdadm cheat sheet (det er hvad jeg gør ...).

    Generelt skal du huske, at når en disk fejler, skal du "fjerne" den fra arrayet, slukke for maskinen, udskifte det fejle drev med en erstatning og derefter "tilføje" det nye drev til arrayet, efter at du har oprettet den rigtige disk layout (partitioner) på det om nødvendigt.

    Når det er gjort, kan du sikkert sørge for, at arrayet er ved at genopbygge og se fremskridt med:

    se -d cat / proc / mdstat

    Held og lykke! :)

    Referencer:
    mdadm snydeark
    RAID niveauer nedbrydes
    Linux RAID10 forklaret
    mdadm command man side
    mdadm konfigurationsfil man side
    Partition begrænsninger forklaret


    Brug af software RAID koster ikke meget ... Bare din stemme ;-)