Startpagina » hoe » Hoe software RAID in te stellen voor een eenvoudige bestandsserver op Ubuntu

    Hoe software RAID in te stellen voor een eenvoudige bestandsserver op Ubuntu

    Hebt u een goedkope bestandsserver nodig die gemakkelijk is in te stellen, "rotsvast" betrouwbaar met e-mailwaarschuwing? zal je laten zien hoe je Ubuntu, software RAID en SaMBa kunt gebruiken om precies dat te bereiken.

    Overzicht

    Ondanks de recente buzz om alles naar de 'all mighty'-cloud te verplaatsen, wil je soms niet dat je informatie op de server van iemand anders staat of is het misschien niet haalbaar om telkens weer de hoeveelheid gegevens te downloaden die je van internet nodig hebt (bijvoorbeeld image-implementatie ). Dus voordat u een plaats in uw budget vrijmaakt voor een opslagoplossing, overweeg dan een configuratie die licentievrij is met Linux.

    Dat gezegd hebbende, betekent goedkoop / gratis gaan niet "voorzichtig zijn met de wind", en daarom zullen we op de hoogte zijn van punten, configuraties die moeten worden ingesteld naast het gebruik van software-RAID, om de maximale prijs / betrouwbaarheid verhouding.

    Afbeelding door Filomena Scalise

    Over software RAID

    Zoals de naam al aangeeft, is dit een RAID-configuratie (Redundant Array of Inexpensive Disks) die volledig in de software wordt uitgevoerd in plaats van een speciale hardwarekaart. Het belangrijkste voordeel van zoiets is de kosten, omdat deze speciale kaart een extra premie is voor de basisconfiguratie van het systeem. De belangrijkste nadelen zijn in feite de prestaties en enige betrouwbaarheid, omdat een dergelijke kaart meestal wordt geleverd met een eigen RAM + CPU om de berekeningen uit te voeren die nodig zijn voor de redundantie-wiskunde, datacaching voor betere prestaties en de optionele back-upbatterij die ongeschreven bewerkingen in de cache houdt tot stroom is hersteld in het geval van een power-out.

    Met een software-RAID-installatie offert u een deel van de CPU-prestaties van het systeem op om de totale systeemkosten te verlagen, maar bij de huidige CPU's is de overhead relatief verwaarloosbaar (vooral als u deze server hoofdzakelijk als een "bestandsserver" gaat gebruiken). Wat de schijfprestaties betreft, is er een boete ... maar ik heb nog nooit een bottleneck van het schijfsubsysteem van de server gezien om te zien hoe diep het is. De Tom's Hardware-gids "Tom's goes RAID5" is een oud maar een goed uitvoerig artikel over het onderwerp, dat ik persoonlijk als referentie gebruik, maar neem de benchmarks met een korrel zout omdat het over Windows-implementatie van software RAID (zoals met al het andere, ik weet zeker dat Linux veel beter is: P).

    voorwaarden

    • Patience jong, dit is lang gelezen.
    • Er wordt aangenomen dat u weet wat RAID is en waarvoor het wordt gebruikt.
    • Deze handleiding is geschreven met Ubuntu-server9.10 x64, daarom wordt er vanuit gegaan dat je ook een Debian-gebaseerd systeem hebt om mee te werken.
    • Je zult zien dat ik VIM als het bewerkingsprogramma gebruik, dit is alleen omdat ik eraan gewend ben ... je zou elke andere editor kunnen gebruiken die je zou willen.
    • Het Ubuntu-systeem dat ik gebruikte voor het schrijven van deze handleiding, werd geïnstalleerd op een disk-on-key. Hierdoor kon ik sda1 gebruiken als onderdeel van de RAID-array, dus pas deze aan aan je instellingen.
    • Afhankelijk van het type RAID dat u wilt maken, hebt u ten minste twee schijven op uw systeem nodig en in deze handleiding gebruiken we zes schijven.

    De schijven kiezen die de array maken

    De eerste stap in het vermijden van een valstrik is het kennen van zijn bestaan ​​(Thufir Hawat van Dune).

    Het kiezen van de schijven is een essentiële stap die niet lichtvaardig moet worden genomen, en je zou er verstandig aan doen om te profiteren van de ervaring van de jouwe en gehoor geven aan deze waarschuwing:

    Do NIET gebruik "consumer grade" -drives om uw array te maken, gebruik servers van "server grade"!!!!!!

    Nu weet ik wat je denkt, hebben we niet gezegd dat we het goedkoop gaan doen? en ja dat hebben we gedaan, maar dit is precies een van de plaatsen waar dit roekeloos is en moet worden vermeden. Ondanks hun aantrekkelijke prijs, zijn harde schijven van consumentenklasse niet ontworpen om te worden gebruikt in een 24/7 "aan" gebruikstype. Vertrouw me, de jouwe heeft dit echt voor je uitgeprobeerd. Ten minste vier consument-grade schijven in de 3 servers die ik op deze manier heb ingesteld (vanwege budgetbeperkingen), faalden na ongeveer 1,5 ~ 1,8 jaar vanaf de oorspronkelijke startdag van de server. Hoewel er geen gegevens verloren zijn gegaan, omdat de RAID zijn werk deed goed en overleefd ... momenten als deze verkorten de levensverwachting van de systeembeheerder, om nog maar te zwijgen van de tijd die het bedrijf nodig heeft voor het onderhoud van de server (iets dat uiteindelijk meer kan kosten dan de schijven van de hogere klasse).

    Sommigen zullen zeggen dat er geen verschil is in het faalpercentage tussen de twee types. Dat kan waar zijn, ondanks deze claims hebben schijfeenheden op serverniveau nog steeds een hoger niveau van SMART-beperkingen en QAing erachter (zoals kan worden waargenomen door het feit dat ze niet op de markt worden vrijgegeven zodra de consument rijdt), dus ik raad je ten zeerste aan om de extra $ $ voor de upgrade uit te betalen.

    Het RAID-niveau kiezen.

    Hoewel ik niet zal ingaan op alle beschikbare opties (dit is zeer goed gedocumenteerd in de RAID-wikipedia-invoer), vind ik dat het opmer- kelijk is om te zeggen dat je altijd moet kiezen voor minstens RAID 6 of zelfs hoger ( we zullen gebruiken Linux RAID10). Dit komt omdat wanneer een schijf uitvalt, er een grotere kans is op een naburige schijfstoring en u een "twee schijf" -fout op uw handen hebt. Bovendien, als u grote schijven gaat gebruiken, omdat grotere schijven een hogere gegevensdichtheid hebben op het oppervlak van de schijf, is de kans op een storing groter. IMHO-schijven vanaf 2T en verder vallen altijd onder deze categorie, dus let op.

    Laten we kraken

    Partitioneringsschijven

    In Linux / GNU zouden we het hele block-apparaat kunnen gebruiken voor opslagbehoeften, we zullen partities gebruiken omdat het het gebruik van schijfreddingsgereedschappen gemakkelijker maakt als het systeem gek is geworden. We gebruiken het "fdisk" -programma hier, maar als je schijven gaat gebruiken die groter zijn dan 2T, zul je een partitioneringsprogramma moeten gebruiken dat GPT-partitionering ondersteunt zoals gescheiden.

    sudo fdisk / dev / sdb

    Notitie: Ik heb geconstateerd dat het mogelijk is om de array te maken zonder het partitietype te veranderen, maar omdat dit de manier is die over het net wordt beschreven, ga ik het voorbeeld volgen (opnieuw is dit bij het gebruik van het hele blokapparaat niet nodig).

    Eenmaal in fdisk zijn de toetsaanslagen:

    n; voor een nieuwe partitie
    invoeren
    p; voor een primaire partitie
    invoeren
    1; aantal partities
    binnengaan; accepteer de standaard
    binnengaan; accepteer de standaard
    t; om het type te veranderen
    fd; stelt het type in als "Linux raid auto detect" (83h)
    w; schrijf wijzigingen in schijf en sluit af

    Spoel en herhaal voor alle schijven die deel uitmaken van de array.

    Een Linux RAID10-array maken

    Het voordeel van het gebruik van "Linux raid10 "is dat het weet hoe te profiteren van een niet-even aantal schijven om de prestaties en de veerkracht nog verder te verhogen dan de vanilla RAID10, naast het feit dat bij gebruik de" 10 "-array kan worden gemaakt in één enkele stap.

    Maak de array van de schijven die we in de laatste stap hebben voorbereid door het uitgeven van:

    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

    Notitie: Dit is allemaal maar een regel, ondanks het feit dat de voorstelling het in tweeën deelt.

    Laten we de parameters naar beneden halen:

    • "-Chunk = 256" - De grootte van de bytes waarop de raid-strepen zijn uitgesplitst, en deze grootte wordt aanbevolen voor nieuwe / grote schijven (de 2T-stations die werden gebruikt om deze handleiding te maken waren ongetwijfeld in die categorie).
    • "-Level = 10" - Gebruikt de Linux raid10 (als een traditionele raid vereist is, om wat voor reden dan ook, zou je twee arrays moeten maken en eraan moeten deelnemen).
    • "-P f2" - Gebruikt het "verre" rotatieplan zie opmerking hieronder voor meer info en "2" vertelt dat de array twee kopieën van de gegevens zal bewaren.

    Notitie: We gebruiken het "ver" -plan omdat de fysieke gegevenslay-out op de schijven NIET hetzelfde is. Dit helpt om de situatie te overwinnen dat de hardware van een van de schijven defect raakt door een fabricagefout (en denk niet dat dit niet zal gebeuren zoals het uwe echt deed). Vanwege het feit dat de twee schijven van hetzelfde merk en hetzelfde model zijn, op dezelfde manier zijn gebruikt en traditioneel de gegevens op dezelfde fysieke locatie hebben bewaard ... Het risico bestaat dat de schijf met de kopie van de gegevens is mislukt te dicht bij en zal niet de vereiste veerkracht bieden totdat een vervangende schijf arriveert. Het "verre" plan maakt de gegevensdistributie naar een geheel andere fysieke locatie op de kopieerstations in aanvulling op het gebruik van schijven die niet dicht bij elkaar in de behuizing van de computer liggen. Meer informatie vindt u hier en in de onderstaande links.

    Nadat de array is gemaakt, start het synchronisatieproces. Hoewel u misschien wilt wachten op het belang van tradities (dit kan even duren), kunt u de array meteen gaan gebruiken.

    De voortgang kan worden waargenomen met behulp van:

    watch -d cat / proc / mdstat

    Maak het configuratiebestand mdadm.conf aan

    Hoewel het bewezen is dat Ubuntu eenvoudigweg weet hoe de array automatisch moet worden gescand en geactiveerd bij het opstarten, voor de volledigheid en beleefdheid voor het volgende systeem kunnen we het bestand maken. Uw systeem maakt het bestand niet automatisch aan en probeert alle componenten / partities van uw RAID-set te onthouden, het is een hulpmiddel voor de geestelijke gezondheid van de systeembeheerder. Deze informatie kan en moet worden bewaard in het bestand mdadm.conf. Het formatteren kan lastig zijn, maar gelukkig levert de uitvoer van het mdadm -detail -scan -verbose commando je dat op.

    Notitie: Er is gezegd dat: "De meeste distributies verwachten het bestand mdadm.conf in / etc /, niet / etc / madm. Ik geloof dat dit een "ubuntu-ism" is om het te hebben als /etc/mdadm/mdadm.conf ". Vanwege het feit dat wij zijn als we hier Ubuntu gebruiken, gaan we er gewoon mee akkoord.

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

    BELANGRIJK! je moet één "0" verwijderen uit het nieuw gecreëerde bestand omdat de syntaxis die resulteert uit de bovenstaande opdracht niet helemaal correct is (GNU / Linux is nog geen besturingssysteem).

    Als u het probleem wilt zien dat deze verkeerde configuratie veroorzaakt, kunt u de "scannen" commando op dit punt, voordat u de aanpassing uitvoert:

    mdadm --examine --scan

    Om dit te verhelpen, bewerkt u het bestand /etc/mdadm/mdadm.conf en veranderen:

    metadata = 00,90

    Lezen:

    metadata = 0,90

    Het uitvoeren van de mdadm -examine -scan commando nu zou moeten terugkeren zonder een fout.

    Filesystem setup op de array

    Ik heb ext4 voor dit voorbeeld gebruikt, omdat het voor mij gewoon is gebaseerd op de vertrouwdheid van het ext3-bestandssysteem dat ervoor is gepresenteerd, terwijl het beloofde betere prestaties en functies biedt.
    Ik stel voor de tijd te nemen om te onderzoeken welk bestandssysteem beter bij jouw behoeften past en een goede start daarvoor is ons "Welke Linux-bestandssysteem moet je kiezen?" -Artikel.

    sudo mkfs.ext4 / dev / md0

    Notitie: In dit geval heb ik de resulterende array niet gedistribueerd omdat ik deze op dat moment gewoon niet nodig had, omdat de aanvragende partij specifiek om ten minste 3,5 T aan ononderbroken opslagruimte vroeg. Met dat gezegd hebbende, als ik partities wilde maken, had ik een GPT partitioning capabel hulpprogramma zoals "parted" moeten gebruiken.

    Montage

    Maak het koppelpunt:

    sudo mkdir / media / raid10

    Notitie: Dit kan elke locatie zijn, het bovenstaande is slechts een voorbeeld.

    Omdat we te maken hebben met een "geassembleerd apparaat" zullen we dat doen niet gebruik de UUID van het bestandssysteem dat op het apparaat is om te monteren (zoals aanbevolen voor andere soorten apparaten in onze gids "wat is de linux fstab en hoe werkt het" gids) omdat het systeem een ​​deel van het bestandssysteem op een afzonderlijke schijf kan zien en probeer onjuist monteer hem direct. om dit te overwinnen, willen we expliciet wachten tot het apparaat wordt "geassembleerd" voordat we het proberen te monteren, en we zullen de naam van de verzamelde array ("md") gebruiken binnen fstab om dit te bereiken.
    Bewerk het fstab-bestand:

    sudo vim / etc / fstab

    En voeg deze regel toe:

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

    Notitie: Als u de mountlocatie of het bestandssysteem uit het voorbeeld wijzigt, moet u het bovenstaande dienovereenkomstig aanpassen.

    Gebruik mount met de automatische parameter (-a) om een ​​systeemstart te simuleren, zodat u weet dat de configuratie correct werkt en dat het RAID-apparaat automatisch wordt gemount wanneer het systeem opnieuw opstart:

    sudo mount -a

    Je zou nu de array gemount kunnen zien worden met de "mount" opdracht zonder parameters.

    E-mailwaarschuwingen voor de RAID-array

    In tegenstelling tot hardwarematige RAID-arrays, met een softwarematige array, is er geen controller die begint te piepen om u te laten weten wanneer er iets fout is gegaan. Daarom zullen de e-mailwaarschuwingen onze enige manier zijn om te weten of er iets met een of meer schijven in de array is gebeurd, waardoor het de belangrijkste stap.

    Volg de handleiding 'E-mailwaarschuwingen instellen op Linux met Gmail of SMTP' en wanneer u klaar bent, komt u hier terug om de RAID-specifieke stappen uit te voeren.

    Bevestig dat mdadm kan e-mailen
    De onderstaande opdracht zal mdadm vertellen om slechts één e-mail af te vuren en te sluiten.

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

    Als dit lukt, ontvangt u een e-mail met de staat van de array.

    Stel de mdadm-configuratie in om een ​​e-mail te verzenden bij het opstarten
    Hoewel het geen absolute must is, is het leuk om van tijd tot tijd een update van de machine te ontvangen om ons te laten weten dat de e-mailvaardigheden nog steeds werken en van de staat van de array. je zult waarschijnlijk niet overweldigd raken door e-mails omdat deze instelling alleen van invloed is op startups (die op servers er niet veel zouden moeten zijn).
    Bewerk het mdadm-configuratiebestand:

    sudo vim / etc / default / madm

    Voeg de -test parameter naar de DAEMON_OPTIONS sectie zodat het eruit zou zien:

    DAEMON_OPTIONS = "- syslog --test"

    U mag de machine opnieuw opstarten om er zeker van te zijn dat u "in de lus" zit, maar het is geen must.

    Samba-configuratie

    Door SaMBa op een Linux-server te installeren, kan deze zich gedragen als een Windows-bestandsserver. Dus om de gegevens die we op de Linux-server hosten beschikbaar te maken voor Windows-clients, zullen we SaMBa installeren en configureren.
    Het is grappig om op te merken dat de pakketnaam van SaMBa een woordspeling is op het Microsoft-protocol dat wordt gebruikt voor het delen van bestanden, genaamd SMB (Service Message Block).

    In deze handleiding wordt de server gebruikt voor testdoeleinden, dus we zullen de toegang tot zijn share mogelijk maken zonder Als u een wachtwoord nodig heeft, wilt u misschien wat meer weten over het instellen van rechten nadat de installatie is voltooid.

    Het wordt ook aangeraden om een ​​niet-bevoorrechte gebruiker als eigenaar van de bestanden aan te maken. In dit voorbeeld gebruiken we de "geek" -gebruiker die we voor deze taak hebben gemaakt. Uitleg over het maken van een gebruiker en het beheer van eigendom en machtigingen vindt u in onze "Een nieuwe gebruiker maken op Ubuntu Server 9.10" en "De beginnershandleiding voor het beheer van gebruikers en groepen in Linux" -gidsen.

    Samba installeren:

    aptitude installeer samba

    Bewerk het samba-configuratiebestand:

    sudo vim /etc/samba/smb.conf

    Voeg een share toe met de naam "general" die toegang geeft tot het mountpunt "/ media / raid10 / general" door onderstaande toe te voegen aan het bestand.

    [algemeen]
    path = / media / raid10 / algemeen
    dwingen gebruiker = nerd
    krachtgroep = geek
    alleen lezen = Nee
    maak masker = 0777
    mapmasker = 0777
    alleen gast = Ja
    gast ok = Ja

    De bovenstaande instellingen maken de share adresseerbaar zonder een wachtwoord voor iedereen en maakt de standaard eigenaar van de bestanden de gebruiker "geek".

    Ter referentie, dit smb.conf-bestand is van een werkende server gehaald.

    Start de sambadienst opnieuw om de instellingen van kracht te laten worden:

    sudo /etc/init.d/samba herstarten

    Als je klaar bent, kun je de testparm commando om de instellingen toegepast op de samba-server te zien.
    dat is het, de server zou nu toegankelijk moeten zijn vanuit elk venster met:

    \ Server-namegeneral

    Probleemoplossen

    Wanneer u een probleem moet oplossen of als een schijf in een array is mislukt, stel ik voor te verwijzen naar de mdadm-spiekbrief (dat is wat ik doe ...).

    Over het algemeen moet je onthouden dat wanneer een schijf uitvalt, je hem uit de array moet "verwijderen", de machine moet afsluiten, de defecte schijf moet vervangen en de nieuwe schijf vervolgens moet "toevoegen" aan de array nadat je de juiste schijf hebt gemaakt layout (partities) erop indien nodig.

    Zodra dat is gebeurd, wilt u misschien ervoor zorgen dat de array opnieuw wordt opgebouwd en de voortgang bekijken met:

    watch -d cat / proc / mdstat

    Succes! :)

    Referenties:
    mdadm spiekbriefje
    RAID-niveaus breken af
    Linux RAID10 uitgelegd
    mdadm command man pagina
    madm configuratie bestand man pagina
    Partitiebeperkingen uitgelegd


    Het gebruik van software RAID kost niet veel ... Alleen je stem ;-)