Debian med mdadm RAID 10 med redundans

Permalänk
Medlem

Debian med mdadm RAID 10 med redundans

Jag har en virtuell dator med Debian 12 och 4 diskar enligt bilden ovan. Den bootar från /dev/sda1, men när denna disk tas bort (för att simulera haveri), så kan inte systemet starta.

Datorn kör Debian 12 och jag har använt mdadm (via Debians icke-grafiska installationsprogram) för att skapa RAID 10 för /dev/sd[b-d]2 och /dev/sd[b-d]3.

Eftersom det är ett UEFI-system, så är /dev/sda1 en EFI-partition och ett UEFI-system kan inte starta från en mjukvaru-RAID. Jag har testat alla metoder jag lyckats hitta, men får det inte att fungera.

Hur gör jag för att datorn ska kunna starta från vilken som helst av diskarna, exempelvis när en disk havererat eller bytts ut?

Visa signatur

MSI PRO Z790-P WIFI | Intel i9 13900K | 128 GB DDR5
NVIDIA GeForce GTX 4070 12 GB
WD Black SN850X 2 TB Gen 4 | 2 x 1 TB Samsung 970 EVO Plus
3 x ASUS 27" | 1 x Philips 49"

Permalänk
Medlem

Nu är jag inte en superfena på Linux än men vad jag förstår ditt upplägg som så bootar det inte när sda1 inte finns och det beror väl helt och hållet på att din efi-partition (och kanske bootloader?) saknas. Borde väl i så fall gå att skapa fler EFI-partitioner på övriga diskarna för att ha som backup? Skulle sda1 då saknas så bootar du nästa EFI-partition i BIOS, likt hur man kan göra när man dualbootar med Windows med separata EFI-partitioner.

Permalänk
Medlem

Helt korrekt. Frågan är bara, hur gör jag det

Visa signatur

MSI PRO Z790-P WIFI | Intel i9 13900K | 128 GB DDR5
NVIDIA GeForce GTX 4070 12 GB
WD Black SN850X 2 TB Gen 4 | 2 x 1 TB Samsung 970 EVO Plus
3 x ASUS 27" | 1 x Philips 49"

Permalänk
Medlem

Ja, nu när man tänker efter lite mer hur det skulle gå till rent praktiskt så börjar jag ju inse att det inte är fullt så enkelt, haha.

Googlade lite snabbt och hittade följande länk;
https://askubuntu.com/questions/66637/can-the-efi-system-part...

som innehöll länk vidare till;
https://askubuntu.com/questions/1299978/install-ubuntu-20-04-...

Vad jag läst mig till av att skumma igenom ovan länkar så ser proceduren i det fallet ut som så att hen klonar EFI-partitionen och sedan använder sig av efibootmgr. Har inte jättemycket erfarenhet av det heller men min gissning skulle vara att detta ser till att BIOS kan hitta den klonade efi-partitionen?

Är det något av det som stämmer överens med ditt upplägg och skulle kunna hjälpa dig? Aldrig använt mig av RAID och kan nog nästintill ingenting om det heller.

Permalänk
Medlem

Har läst bägge sidorna, men den första sidan hoppar över en massa steg som uppenbarligen är självklara för skribenten (men inte för mig), så där hänger jag helt enkelt inte med. Andra sidan har jag också försökt följa efter bästa förmåga, men jag får det inte att fungera.

De flesta metoder jag testat ser ut att fungera, tills jag tar ur disken och startar om.

Men det verkar helt klart som att man på något sätt ska klona EFI-partitionen (sda1) och sedan ska man på något sätt tala om för något att det även går att starta från andra diskar.
Återstår bara att lista ut hur skiten ska klonas, hur jag ska tala om att det finns fler diskar att starta ifrån och för vem jag ska tala om det för Här är det ett myller av begrepp som jag inte har koll på. Det finns en massa grub-verktyg och efibootmgr, men jag har dålig koll på vad exakt dessa verktyg gör. Jag har klonat partitionen med "dd", men då får klonerna även samma UUID och jag är inte säker på att det är rätt...

https://paulgorman.org/technical/linux-software-raid-with-uef... verkade väldigt lovande och jag har ägnat ganska mycket tid åt att försöka få till det enligt hans lösning, men det fungerar inte. Vet inte vad det är jag missar.

Men jag lutar mer och mer åt att skippa RAID och istället installera på en disk, klona disken med jämna mellanrum, så när skiten havererar eller behöver bytas ut, så är det bara att ersätta med en klon. Det innebär visserligen några timmars nertid, men hellre det än ett system som inte bootar!

Kan starkt rekommendera dig att fortsätta avhålla dig från allt vad RAID heter Och stort tack för att du tagit dig tid att försöka hjälpa till!

Visa signatur

MSI PRO Z790-P WIFI | Intel i9 13900K | 128 GB DDR5
NVIDIA GeForce GTX 4070 12 GB
WD Black SN850X 2 TB Gen 4 | 2 x 1 TB Samsung 970 EVO Plus
3 x ASUS 27" | 1 x Philips 49"

Permalänk
Medlem

Menar du att de båda efi-partitionerna får samma uuid efter att du klonat? Det trodde jag var omöjligt. Dubbelkolla gärna det, kommer just nu inte ihåg om det är via lsblk eller blkid man hittade uuid dock.

Om jag inte är helt ute och cyklar så används efibootmgr för att tala om för ditt uefi/bios att 'här finns en esp att boota ifrån, lägg till den i listan över bootbara enheter' typ. Sen skulle jag gissa på att du får justera i varje esp att den skall boota från just den disken den ligger på, t.ex. sdb1 /boot/efi skall boota / ifrån sdb2 för uppenbarligen finns ju inte den disken som första esp vill boota ifrån.

Finns väl risk för att detta är lite att den blinde leder den döve men uppdatera gärna hur du får löst det. Mycket intressant övning det här.

Går väl även att sätta upp automatisk kloning med hjälp av bl.a. Rsync så du kan göra det löpande istället för att behöva avsätta tid till att klona diskarna med jämna mellanrum.

Permalänk
Medlem

sd[a-d]1 får samma UUID om jag klonar med dd if=/dev/sdX1 of=/dev/sdX1, och det ju faktiskt rimligt om det handlar om en klon. Om det är önskvärt, är en annan fråga

Jag har faktiskt gjort några framsteg, så jag har inte gett upp riktigt än. Har hållit på hela veckan, så kommer fortsätta under morgondagen också.

Och att en blind leder en döv är bättre än ingen ledning alls och jag är tacksam för all hjälp och stöd jag kan få

Visa signatur

MSI PRO Z790-P WIFI | Intel i9 13900K | 128 GB DDR5
NVIDIA GeForce GTX 4070 12 GB
WD Black SN850X 2 TB Gen 4 | 2 x 1 TB Samsung 970 EVO Plus
3 x ASUS 27" | 1 x Philips 49"

Permalänk
Medlem

https://askubuntu.com/questions/901290/is-it-a-problem-to-tem...

Här fanns lite matnyttig information på hur man kan gå tillväga för att ändra uuid på diskarna, men jag läste även att dom KAN ha samma uuid, men att det ibland kan vara sda1 som mountas och ibland sdb2 som mountas istället. Jag har som sagt aldrig provat något liknande men det kanske kan vara värt att testa dom med samma uuidn och se ifall det fungerar? Kan nog vara bra att undersöka ifall det kan ge oanade konsekvenser dock.

Kollade lite på Paul-länken du nämnde och det ser ju ut att kunna stämma överens med din setup vad jag förstått. Står ju även där om hur du gör för att synka dina efi-partitioner med varandra vilket borde vara ett måste i en sån setup.

Det är klurigt men lärorikt det här.

Permalänk
Medlem

Nu har jag fått till ett system som bootar efter att en disk tagits ur eller kraschat och det hela visade sig vara väldigt enkelt:

Efter installation av systemet, så kommer en av partitionerna sd[a-d]1 innehålla /boot/efi. I mitt fall är det sda1 som innehåller /boot/efi och installationsprogrammet har lagt in nödvändiga filer sda1. Installationsprogrammet har även lagt in en referens till denna partition i /etc/fstab

I mitt fall refereras /boot/efi till partitionen med UUID 1BA4-7E64 och genom att klona denna partition med "dd" till sd[b-d]1, så får dessa partitioner samma UUID, vilket innebär att "/boot/efi"-posten/raden i /etc/fstab pekar mot någon av dessa diskars partition 1.

Detta innebär att det räcker att klona EFI-partitionen till övriga diskar med "dd". That's it.

När det är dags att ersätta en disk (i förväg eller efter haveri), så är det bara att rycka ur disken och ersätta med en ny, läsa in partitionsschemat från någon av de andra diskarna och montera sdX2 och sdX3 till RAID:en.

Partitionsschemat har jag sparat i filen "part":

sfdisk -d /dev/sda > part

och läser in schemat till den ny disken med:

sfdisk /dev/sdX < part

Montering av RAID:

mdadm --add /dev/md0 /dev/sdX2 mdadm --add /dev/md1 /dev/sdX3

Klona en av de befintliga EFI-partitionerna:

dd if=/dev/sda1 of=/dev/sdX1

Klart

Har testat att byta ut en disk i taget, med om start efter varje byte, men har även bytt ut alla diskarna och sedan startat om. Bägge varianterna fungerar.

Har gjort detta både på virtuella datorer och på en fysisk server. Allt verkar fungera precis som jag vill, så jag hoppas kunna ägna mig åt något vettigare nästa vecka

Visa signatur

MSI PRO Z790-P WIFI | Intel i9 13900K | 128 GB DDR5
NVIDIA GeForce GTX 4070 12 GB
WD Black SN850X 2 TB Gen 4 | 2 x 1 TB Samsung 970 EVO Plus
3 x ASUS 27" | 1 x Philips 49"

Permalänk
Medlem

Grymt! Vad kul att det funkar och nu har jag också lärt mig lite mer om denna djungel som är boot/efi.