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

Inhoudsopgave:

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

Video: Hoe software RAID in te stellen voor een eenvoudige bestandsserver op Ubuntu
Video: How to use Windows Sandbox - a lightweight virtual machine 2024, Maart
Hoe software RAID in te stellen voor een eenvoudige bestandsserver op Ubuntu
Hoe software RAID in te stellen voor een eenvoudige bestandsserver op Ubuntu
Anonim
Hebt u een goedkope bestandsserver nodig die eenvoudig is in te stellen, "rotsvast" betrouwbaar is met e-mailwaarschuwingen? zal je laten zien hoe je Ubuntu, software RAID en SaMBa kunt gebruiken om precies dat te bereiken.
Hebt u een goedkope bestandsserver nodig die eenvoudig is in te stellen, "rotsvast" betrouwbaar is met e-mailwaarschuwingen? 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 beeldimplementatie) ). 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 de stroom is hersteld in het geval van een stroomstoring.

Met een software-RAID-setup offer je een deel van de CPU-prestaties van het systeem op om de totale systeemkosten te verlagen, maar met de huidige CPU's is de overhead relatief verwaarloosbaar (vooral als je deze server voornamelijk als een "bestandsserver" gaat gebruiken). Wat de prestaties van de schijf gaat, is er een boete … maar ik ben nog nooit een knelpunt van het schijfsubsysteem van de server tegengekomen 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 verondersteld 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 mag elke andere editor 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" schijven om uw array te maken, gebruik "server grade" schijven !!!!!!

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 schijven met consumentengeschiktheid in de 3 servers die ik op deze manier heb ingesteld (vanwege budgetrestricties), zijn na ongeveer 1,5 ~ 1,8 jaar na de oorspronkelijke startdag van de server mislukt. 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 wat uiteindelijk meer kan kosten dan de schijven van de hogere klasse).

Sommigen zullen zeggen dat er geen verschil is in 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 kiezen van het RAID-niveau.

Hoewel ik niet zal ingaan op alle beschikbare opties (dit is zeer goed gedocumenteerd in de RAID-wikipedia-invoer), vind ik dat het opmerkelijk 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 nabestaande schijfstoring en er is een "twee schijf" -fout op uw handen.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

Partitioneringschijven

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 parted.

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 overal in het netwerk 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 op te voeren 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 één regel, ondanks het feit dat de weergave 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 "ver" -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 "veraf" -plan omdat hierdoor de fysieke gegevenslay-out op de schijven NIET hetzelfde is. Dit helpt 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 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 "verafgelegen" plan maakt de gegevensdistributie naar een compleet 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.

Zodra de array is gemaakt, start het zijn synchronisatieproces. Hoewel u misschien wilt wachten op het belang van tradities (dit kan even duren), kunt u de array onmiddellijk 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! u 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 gebruikt voor dit voorbeeld, omdat het voor mij alleen maar voortkwam uit de bekendheid van het ext3-bestandssysteem dat erbij kwam terwijl het beloofde betere prestaties en functies beloofde. Ik stel voor de tijd te nemen om te onderzoeken welk bestandssysteem beter bij je 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, 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") aangezien 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 defaults 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 is gebeurd met een of meer schijven in de array, en het zo te maken 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-mailfunctie nog steeds werkt 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/mdadm

Voeg de toe -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 het als een Windows-bestandsserver werken. 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 waarvoor u een wachtwoord nodig hebt, wilt u misschien wat meer weten over het instellen van rechten nadat de installatie is voltooid.

Het wordt ook aanbevolen 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 de handleiding 'Een nieuwe gebruiker maken op Ubuntu Server 9.10' en 'De beginnershandleiding voor het beheer van gebruikers en groepen in Linux'.

Samba installeren:

aptitude install 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.

[general] path = /media/raid10/general force user = geek force group = geek read only = No create mask = 0777 directory mask = 0777 guest only = Yes guest ok = Yes

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 invloed te laten zijn:

sudo /etc/init.d/samba restart

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 …).

In het algemeen moet u onthouden dat wanneer een schijf uitvalt, u 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 u de juiste schijf hebt gemaakt layout (partities) erop indien nodig.

Zodra dat is gebeurd, wilt u misschien controleren of 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;-)

Aanbevolen: