Raspberry Pis operativsystem är installerat på antingen SD-kortet eller en USB-disk. På grund av de begränsade skrivcyklerna för flashceller på SD-kort kan deras tillförlitlighet inte garanteras. Hårddiskar och SSD: er klarar sig bättre vad gäller tillförlitlighet; den senare använder slitagenivåalgoritmer för att förlänga enhetens livslängd. Men ändå är det alltid riskabelt att behålla data på en enda disk.
Idén att spegla data med RAID-1
För att undvika dataförlust i händelse av ett diskfel, RAID-1-dataspegling bör genomföras. Problemet är att det inte är möjligt att ställa in RAID under installationsfasen av operativsystemet på en Raspberry Pi.
Den här idén handlar om att ställa in RAID-1-spegling på två USB SSD-enheter, sedan kopiera hemkatalogen till RAID-partitionen och konfigurera för att använda den som /home. Eftersom användardata finns i hemkatalogen kan data återställas helt och RAID kan byggas om igen i händelse av ett enstaka diskfel.
OS kommer fortfarande att finnas kvar på SD-kortet (eller en annan SSD). Om OS-disken misslyckas är viktig information fortfarande tillgänglig på RAID-1-arrayen. Dessutom kommer OS-disken att hålla längre eftersom det är mindre disktryck. Detta beror på att en majoritet av diskaktiviteten sker i /home-katalogen (till exempel kontinuerlig läsning/skrivning till "Firefox-profilfiler").
Denna process använder ett webbgränssnitt för att förenkla den annars komplicerade processen att ställa in RAID. Inställningen visas här använder Ubuntu MATE 22.04 och samma process kan tillämpas på alla andra Pi OS.
Välj rätt maskinvara med tanke på strömtillgänglighet
Minst två diskar krävs för RAID-1. Dessa diskar kan antingen vara hårddiskar eller SSD: er. När RAID-1 har ställts in speglas (klonas) data över arrayen. Det betyder att data skrivs till båda diskarna och läses från den snabbaste RAID-medlemmen.
USB till SATA-adaptrar används för att ansluta SSD: er till Pi. En SSD förbrukar cirka 5 watt vid maximal användning. Eftersom två av dem behövs för RAID-1 måste strömtillgängligheten beaktas.
2 (SSD) x 5 (watt) = 10 watt
En Pi 4 som körs på standardklocka förbrukar cirka 6 watt och en överklockad Pi 4 vid full belastning förbrukar nästan 8 watt.
Den officiella strömförsörjningen för en Raspberry Pi 4 är 5,1V, 3,0A.
5,1 (Volt) x 3 (Ampere) = 15,3 Watt
Sammanfattningsvis är strömbehovet mer än adapterns maximala effekt.
10 Watt + 8 Watt > 15,3 Watt
Pi kommer också att behöva driva sitt kylsystem. Så SSD: erna måste drivas externt för att ha utrymme för stabil drift.
A USB HDD/SSD Dual Dock passar detta ändamål idealiskt, den kan hysa både 2,5" och 3,5" diskar. Den har en egen strömadapter och drar inte ström från Pi.
SD: er för RAID, välj modeller med icke-identiska TBW: er så att båda diskarna har felpunkter med olika intervall. Detta ger tillräckligt med tid för att bygga om RAID-arrayen och kommer att hålla dina data ständigt intakta. Det finns två USB 3.0-portar på Pi 4. Eftersom dockan bara använder en av dem finns det fortfarande en extra port för att ansluta en annan snabb enhet.
Anslut skivorna till dockan och sätt på Pi. RAID-installationen är enkel med hjälp av ett verktyg som heter "Webmin", dess gränssnitt kan nås via webbläsaren. Öppna terminalen (genväg: Ctrl+Alt+T) och använd dessa kommandon för att installera Webmin:
Redigera filen sources.list:
sudo nano /etc/apt/sources.lista
Lägg till den här raden (genväg: Ctrl+Skift+Infoga):
deb http://download.webmin.com/download/repository sarge bidrag
Spara filen med Ctrl+O, tryck på "Enter" och avsluta med Ctrl+X.
Ladda ner nyckel för att lita på källan:
wget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add
Uppdatera nya förråd:
sudo apt uppdatering
Installera Webmin:
sudo apt Installera webmin -y
Installera mdadm Software RAID-verktyg:
sudo apt Installera mdadm -y
Installera diskhanteringsverktyget:
sudo apt Installera gnome-disk-verktyg -y
Ställ in ett lösenord för root-användaren (för att hantera Webmin):
sudo su
passwd
Uppdatera, uppgradera och starta om:
sudo apt uppdatering && sudo apt upgrade -y && sudo omstart
Process för att bygga RAID-1-arrayen
Öppna Diskar verktyg från Meny > Inställningar. Du kan också använda kommandot:
gnome-skivor
Det skulle visa de nya diskarna, formatera båda.
Öppna webbläsaren och ange denna URL:
https://lokal värd: 10 000
Webmin körs på localhost vid port 10000. Eftersom https används och SSL-certifikatet inte är installerat kommer webbläsaren att visa en varning. Det är säkert att klicka Avancerad och då Acceptera risken och fortsätt.
Logga in med användare som "root" och lösenordet du har angett för root tidigare. Först ut, Uppdatera moduler. När du är klar, expandera Hårdvara och välj Linux RAID. Välj i rullgardinsmenyn RAID1 (spegelvänd) och klicka på knappen Skapa RAID-enhet av nivå.
Välj de två skivorna genom att hålla nere Ctrl nyckel. Växla Hoppa över initiering av enheter. Detta eftersom initiering tar mycket tid, mer än en timme för varje 100 GB, och det är inte nödvändigt att replikera tomma diskar.
Klick Skapa. Webmin bör svara inom tre minuter med den nyskapade arrayen. Du kan sedan kontrollera mer information genom /dev/md0. De två skivorna visas som Partitioner i RAID och den Filsystemstatus är Aktiv men inte monterad.
Den nya RAID-arrayen måste formateras innan den monteras. Detta kan göras med hjälp av Diskar till vänster. Välj RAID-1 Array och Formatera partition.
Ge ett namn till exempel Data. Välj alternativknappen Intern disk för användning endast med Linux-system (Ext4) och gå vidare med att formatera den.
Denna array måste monteras automatiskt vid varje start. Välj Redigera monteringsalternativ.
Växla Standardinställningar för användarsession och klicka OK. Efter autentiseringen ändrar denna process filen "/etc/fstab".
Starta om, den monterade RAID-1-arrayen visas som mappen "Data" i filutforskaren.
Flytta hemkatalogen till RAID-1 Array
För att spegla viktiga data måste hemkatalogen finnas på RAID-1-arrayen. Det rekommenderas att göra en kopia istället för att flytta den, eftersom det kommer att hjälpa "RAID Rebuild" i framtiden.
I terminalen:
dir /mnt
Kopiera namnet på RAID-fästet, det ser ut som "6256d81c-c23c-42c4-aea3-d194466c6c33" och det är annorlunda för dig. Byt ut katalognamnet och använd det här kommandot för att klona hemkatalogen:
sudo rsync -av /home/* /mnt/6256d81c-c23c-42c4-aea3-d194466c6c33/
Gör den här nya katalogen att montera som /home istället för den gamla:
sudo nano /etc/fstab
Hitta linjen /dev/disk... (vanligtvis den sista raden sedan du precis monterade den) och ändra monteringspunkten till "/home" som visas i skärmdumpen nedan.
Starta om, Pi: s hemkatalog är nu på RAID-1 och data speglas.
Alternativ för återställning av Raspberry Pi RAID-fel
I händelse av ett RAID-fel finns det två tillgängliga alternativ för återställning och måste ställas in nu.
1) Montera den degraderade arrayen och bygg om
Skapa en ny fil:
sudo nano /etc/initramfs-tools/conf.d/mdadm
Inkludera detta innehåll:
BOOT_DEGRADED=Sann
Detta kommer att montera RAID-arrayen även om en disk misslyckas. Hemkatalogen på den försämrade arrayen kommer att användas.
2) Montera inte den degraderade arrayen, utan bygg om
Gör ingenting, den försämrade arrayen kommer inte att monteras vid uppstart. Den gamla hemkatalogen kommer att användas istället; tidigare kopierade du hemkatalogen istället för att flytta den av denna anledning. Nu kommer det att hjälpa till att bygga om RAID-arrayen. Få inte panik efter att ha observerat saknade data i det här läget, kom ihåg att detta inte är din faktiska hemkatalog. Din data är säker på en annan disk och väntar på att återställas.
Om Webmin visar ett felmeddelande "mdadm: Kan inte hämta matrisinformation för /dev/md0."
Använd detta kommando för att starta arrayen:
sudo mdadm --kör /dev/md0
Återuppbygga arrayen i händelse av ett misslyckande
Även om det inte är nödvändigt att du replikerar detta steg, är det bra att veta att data kan återställas i händelse av ett diskfel.
Simuleringsprocess
Pi: n stängs av och en skiva tas bort. Pi: n slås sedan på och Webmin nås. I Linux RAID, den Status visas nu som Inaktiv. Vid ytterligare inspektion, kontroll /dev/md0 visar en degraderad array med endast en disk i RAID.
Datan är intakt, men den finns bara på en disk nu. RAID-arrayen måste byggas om för att bevara data.
Pi: n stängs av, en ny tom hårddisk/SSD-skiva sätts in i stället för den gamla och Pi: n slås på. Webmin är tillgänglig, kontrollerar /dev/md0 visar alternativ för att lägga till en ny disk till RAID-arrayen. Välj den nya disken från rullgardinsmenyn och klicka Lägg till partition.
Återuppbyggnaden skulle starta omedelbart, varaktigheten beror på storleken på diskarna. Det tar vanligtvis en timme för varje 100 GB (för SSD-enheter).
Det är viktigt att skydda din Pis data
Med denna implementering är data säkrare och Pi kan användas som en daglig förare. På senare tid används Raspberry Pi i stor utsträckning i industriella applikationer och stilleståndstiden kan minimeras.
Du kan göra ett smart val med urvalet av SSD: er. Tillverkare har liknande kapacitet SSD: er till olika prispunkter, skillnaden är TBW (Total Bytes Written); den bättre modellen har vanligtvis 50 % mer TBW. När du använder SSD: er för RAID, välj modeller med icke-identiska TBW: er så att båda diskarna har felpunkter med olika intervall. Detta ger tillräckligt med tid för att bygga om RAID-arrayen och kommer att hålla dina data ständigt intakta.