Hoe RAID-1 op de Raspberry Pi in te stellen, de gemakkelijke manier

Hoe RAID-1 op de Raspberry Pi in te stellen, de gemakkelijke manier

Het besturingssysteem van Raspberry Pi is geïnstalleerd op de SD-kaart of op een USB-schijf. Vanwege de beperkte schrijfcycli van flash-cellen op SD-kaarten, is hun betrouwbaarheid niet gegarandeerd. Harde schijven en SSD's presteren beter op betrouwbaarheid; de laatste gebruikt algoritmen voor slijtageniveaus om de levensduur van het apparaat te verlengen. Maar toch is het altijd riskant om gegevens op slechts één schijf te bewaren.





MAKEUSEVAN VIDEO VAN DE DAG

Het idee om gegevens te spiegelen met RAID-1

Om gegevensverlies bij een schijfstoring te voorkomen, RAID-1-gegevensspiegeling moet worden uitgevoerd. Het probleem is dat het instellen van RAID niet mogelijk is tijdens de installatiefase van het besturingssysteem op een Raspberry Pi.





Dit idee gaat over het instellen van RAID-1 Mirroring op twee USB SSD's, vervolgens het kopiëren van de homedirectory naar de RAID-partitie en configureren om deze te gebruiken als /home. Aangezien gebruikersgegevens zich in de homedirectory bevinden, kunnen gegevens volledig worden hersteld en kan RAID opnieuw worden opgebouwd in het geval van een enkele schijfstoring.





Het besturingssysteem blijft nog steeds op de SD-kaart (of een andere SSD). Als de besturingssysteemschijf defect raakt, zijn de belangrijke gegevens nog steeds beschikbaar op de RAID-1-array. Ook gaat de OS-schijf langer mee omdat er minder schijfdruk is. Dit komt omdat het grootste deel van de schijfactiviteit plaatsvindt in de map /home (bijvoorbeeld continu lezen/schrijven naar 'Firefox-profielbestanden').

Dit proces maakt gebruik van een webinterface om het anders complexe proces van het instellen van RAID te vereenvoudigen. Opstelling hier getoond gebruikt Ubuntu MATE 22.04 en hetzelfde proces kan worden toegepast op elk ander Pi OS.



Kies de juiste hardware rekening houdend met de beschikbaarheid van stroom

Er zijn minimaal twee schijven vereist voor RAID-1. Deze schijven kunnen harde schijven of SSD's zijn. Zodra RAID-1 is ingesteld, worden gegevens gespiegeld (gekloneerd) over de array. Dit betekent dat gegevens naar beide schijven worden geschreven en worden gelezen van het snelste RAID-lid.

  Twee SSD's aangesloten op een Raspberry Pi 4 met behulp van USB-naar-SATA-adapters

USB naar SATA-adapters worden gebruikt om SSD's aan de Pi te bevestigen. Een SSD verbruikt bij piekgebruik ongeveer 5 Watt aan stroom. Aangezien er twee nodig zijn voor RAID-1, moet rekening worden gehouden met de beschikbaarheid van stroom.





2 (SSD's) x 5 (Watt) = 10 Watt

Een Pi 4 die op de standaardklok draait, verbruikt ongeveer 6 Watt en een overgeklokte Pi 4 verbruikt bij volledige belasting bijna 8 Watt.





De officiële voeding van een Raspberry Pi 4 is 5.1V, 3.0A.

5,1 (volt) x 3 (ampère) = 15,3 watt

  Vermogenswaarden van een officiële Raspberry Pi-adapter

Samenvattend, de stroombehoefte is meer dan de maximale output van de adapter.

10 Watt + 8 Watt > 15,3 Watt

De Pi moet ook zijn koelsysteem van stroom voorzien. De SSD's moeten dus extern worden gevoed om voldoende hoofdruimte te hebben voor een stabiele werking.

EEN USB HDD/SSD dubbel dock ideaal voor dit doel, het kan zowel 2,5' als 3,5' schijven bevatten. Het heeft zijn eigen stroomadapter en zal geen stroom halen uit de Pi.

SD's voor RAID, kies modellen met niet-identieke TBW's zodat beide schijven met verschillende tussenpozen storingspunten hebben. Dit geeft voldoende tijd om de RAID-array opnieuw op te bouwen en houdt uw gegevens voor altijd intact. Er zijn twee USB 3.0-poorten op de Pi 4. Omdat het dock er maar één gebruikt, is er nog een vrije poort beschikbaar om een ​​ander snel apparaat aan te sluiten.

  Raspberry Pi 4 aangesloten via USB 3.0-poort op een Dual HDD Dock

Installeer de hulpprogramma's om RAID-1-mirroring in te stellen

Sluit de schijven aan op het dock en schakel de Pi in. RAID-installatie is eenvoudig met behulp van een tool genaamd 'Webmin', de interface is toegankelijk via de browser. Open de terminal (snelkoppeling: Ctrl+Alt+T ) en gebruik deze opdrachten om Webmin te installeren:

hoe de telefoon als microfoon te gebruiken

Bewerk sources.list-bestand:

sudo nano /etc/apt/sources.list

Voeg deze regel toe (snelkoppeling: Ctrl+Shift+Invoegen ):

deb http://download.webmin.com/download/repository sarge contrib
  Een nieuwe repository toevoegen aan het softwarebronnenbestand met behulp van nano-editor

Bestand opslaan met Ctrl+O , druk op 'Enter' en sluit af met Ctrl+X .

Downloadsleutel om de bron te vertrouwen:

wget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add

Update nieuwe opslagplaatsen:

sudo apt update

Webmin installeren:

sudo apt install webmin -y

Installeer mdadm Software RAID-hulpprogramma:

sudo apt install mdadm -y

Installeer het hulpprogramma voor schijfbeheer:

sudo apt install gnome-disk-utility -y

Stel een wachtwoord in voor de rootgebruiker (om Webmin te beheren):

sudo su 
passwd
  Een wachtwoord maken voor de supergebruiker in Terminal

Update, upgrade en herstart:

sudo apt update && sudo apt upgrade -y && sudo reboot

Proces om de RAID-1-array te bouwen

Open Schijven gereedschap van Menu > Voorkeuren . Je kunt ook het commando gebruiken:

gnome-disks

Het zou de nieuwe schijven tonen, beide formatteren.

  Een schijf formatteren met Gnome Disk Utility

Open de webbrowser en voer deze URL in:

https://localhost:10000

Webmin draait op localhost op poort 10000. Aangezien https wordt gebruikt en SSL-certificaat niet is geïnstalleerd, zal de browser een waarschuwing tonen. Het is veilig om te klikken Geavanceerd en dan Accepteer het risico en ga verder .

  Een uitzondering toevoegen in Firefox terwijl u door een https-URL bladert zonder een geldig certificaat

Log in met gebruiker als “root” en het wachtwoord dat je eerder voor root hebt ingesteld. Als eerste, Modules vernieuwen . Als u klaar bent, breidt u uit Hardware en selecteer Linux RAID . Selecteer in de vervolgkeuzelijst RAID1 (gespiegeld) en klik op de knop Maak RAID-apparaat van niveau .

  De RAID-modus kiezen in de Webmin-interface

Selecteer de twee schijven door de . ingedrukt te houden Ctrl sleutel. Schakelaar Initialisatie van apparaten overslaan . Dit omdat initialisatie veel tijd kost, meer dan een uur voor elke 100 GB, en het niet nodig is om lege schijven te repliceren.

  Schijven toevoegen aan RAID-1 bij het maken van het RAID-apparaat met behulp van de Webmin-interface

Klik Creëren . Webmin zou binnen drie minuten moeten reageren met de nieuw gemaakte array. U kunt dan meer details bekijken via /dev/md0 . De twee schijven worden weergegeven als: Partities in RAID en de Status van bestandssysteem is Actief maar niet gekoppeld .

  Een weergave van alle schijven die zijn aangesloten op een RAID-apparaat in de Webmin-interface

De nieuwe RAID-array moet worden geformatteerd voordat deze wordt gemonteerd. Dit kan worden gedaan met behulp van Schijven aan de linkerkant. Selecteer de RAID-1-array en Partitie formatteren .

  Een RAID-array formatteren met Gnome Disk Utility

Geef bijvoorbeeld een naam Gegevens . Selecteer het keuzerondje Interne schijf alleen voor gebruik met Linux-systemen (Ext4) en ga verder met het formatteren.

  Het bestandssysteem voor RAID 1-partitie selecteren

Deze array moet bij elke opstart automatisch worden gemount. Selecteer Koppelingsopties bewerken .

  Het proces van het monteren van een RAID-array met behulp van Gnome Disk Utility

Schakelaar Standaardinstellingen gebruikerssessie en klik Oké . Na authenticatie wijzigt dit proces het bestand '/etc/fstab'.

  Toggle Gebruikersinstellingen tijdens het koppelen van RAID-array

Start opnieuw op, de gekoppelde RAID-1-array verschijnt als de map 'Data' in de bestandsverkenner.

Verplaats de basismap naar RAID-1-array

Om belangrijke gegevens te spiegelen, moet de homedirectory zich in de RAID-1-array bevinden. Het wordt aanbevolen om een ​​kopie te maken in plaats van deze te verplaatsen, omdat dit in de toekomst zal helpen bij 'RAID Rebuild'.

In de terminal:

dir /mnt

Kopieer de naam van de RAID-mount, het ziet eruit als '6256d81c-c23c-42c4-aea3-d194466c6c33' en het is anders voor jou. Vervang de directorynaam en gebruik deze opdracht om de homedirectory te klonen:

sudo rsync -av /home/* /mnt/6256d81c-c23c-42c4-aea3-d194466c6c33/

Maak deze nieuwe map om te mounten als /home in plaats van de oude:

sudo nano /etc/fstab

Vind de lijn /dev/schijf... (meestal de laatste regel sinds je hem zojuist hebt aangekoppeld) en verander het koppelpunt in '/home' zoals weergegeven in de onderstaande schermafbeelding.

  FStab bewerken om RAID-schijven te koppelen bij het opstarten

Start opnieuw op, de thuismap van de Pi staat nu op RAID-1 en de gegevens worden gespiegeld.

Herstelopties voor Raspberry Pi RAID-fout

In het geval van een RAID-storing zijn er twee beschikbare opties voor herstel en deze moeten nu worden ingesteld.

1) Monteer de gedegradeerde array en herbouw

Maak een nieuw bestand aan:

sudo nano /etc/initramfs-tools/conf.d/mdadm

Voeg deze inhoud toe:

BOOT_DEGRADED=true

Hierdoor wordt de RAID-array geactiveerd, zelfs als een schijf uitvalt. De thuismap op de gedegradeerde array wordt gebruikt.

2) Mount de gedegradeerde array niet, maar herbouw

Doe niets, de gedegradeerde array wordt niet geactiveerd bij het opstarten. In plaats daarvan wordt de oude thuismap gebruikt; eerder kopieerde u de homedirectory om deze reden in plaats van deze te verplaatsen. Nu zal het helpen om de RAID-array opnieuw op te bouwen. Raak niet in paniek na het waarnemen van ontbrekende gegevens in deze modus, onthoud dat dit niet uw werkelijke thuismap is. Uw gegevens staan ​​veilig op een andere schijf en wachten op herstel.

In het geval dat Webmin een foutmelding toont 'mdadm: Cannot get array info for /dev/md0.'

  mdadm geeft een foutmelding dat het de RAID-array-informatie niet kan krijgen

Gebruik deze opdracht om de array te starten:

sudo mdadm --run /dev/md0

De array opnieuw opbouwen in het geval van een storing

Hoewel het niet nodig is dat u deze stap repliceert, is het goed om te weten dat gegevens kunnen worden hersteld in het geval van een schijfstoring.

Simulatieproces

De Pi wordt afgesloten en één schijf wordt verwijderd. De Pi wordt vervolgens ingeschakeld en Webmin wordt geopend. In Linux RAID , de Toestand wordt nu weergegeven als Inactief . Bij nadere inspectie, controle /dev/md0 toont een gedegradeerde array met slechts één schijf in RAID.

  Webmin-interface die slechts één beschikbare schijf toont nadat een RAID-lid is uitgevallen

De gegevens zijn intact, maar staan ​​nu nog maar op één schijf. De RAID-array moet opnieuw worden opgebouwd om de gegevens te behouden.

De Pi wordt afgesloten, een nieuwe lege HDD/SSD-schijf wordt in de plaats van de oude geplaatst en de Pi wordt ingeschakeld. Webmin is geopend, controleren /dev/md0 toont opties om een ​​nieuwe schijf aan de RAID-array toe te voegen. Selecteer de nieuwe schijf in de vervolgkeuzelijst en klik op Partitie toevoegen .

  Een nieuwe schijf toevoegen om RAID opnieuw op te bouwen in de Webmin-interface

Het opnieuw opbouwen zou onmiddellijk beginnen, de duur hangt af van de grootte van de schijven. Het duurt over het algemeen een uur voor elke 100 GB (voor SSD's).

  Webmin-interface die de voortgang van een RAID 1-rebuild toont

Het beschermen van de gegevens van uw Pi is essentieel

Met deze implementatie zijn data veiliger en kan de Pi als dagelijkse driver worden gebruikt. De laatste tijd worden Raspberry Pi's veelvuldig gebruikt in industriële toepassingen en kan downtime worden geminimaliseerd.

Met de keuze aan SSD's maak je een slimme keuze. Fabrikanten hebben SSD's met vergelijkbare capaciteit in verschillende prijsklassen, met als verschil TBW (Total Bytes Written); het betere model heeft meestal 50% meer TBW. Kies bij het gebruik van SSD's voor RAID modellen met niet-identieke TBW's, zodat beide schijven met verschillende tussenpozen storingspunten hebben. Dit geeft voldoende tijd om de RAID-array opnieuw op te bouwen en houdt uw gegevens voor altijd intact.