5Sep

Hur kan oväntade avbrott skada en Linux-dator?

click fraud protection

Är oväntade avstängningar lika skadliga för Linux som för andra operativsystem? Läs vidare när vi undersöker effekterna av katastrofala systemavstängningar på Linux-filsystem.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsare User208554 är nyfiken på Linux-filkonstruktioner och oroade sig för en app / installation han jobbar med:

Jag utvecklar en applikation på ett Linux-inbäddat kort( kör Debian), t.ex. Raspberry Pi, Beagle Board / Bone, eller olimex. Brädorna arbetar på en miljö som elet skärs oväntat( det är alldeles för komplicerat att placera PSU etc.) och det skulle hända varje dag ett par gånger. Jag undrar om de oväntade strömavbrott skulle orsaka problem på Linux Operations System? Om det är något jag borde oroa mig för, vad skulle du föreslå för att förhindra skadan på OS mot de oväntade strömavbrott?

PS.Programmet behöver skriva några data till lagringsmediet( SD-kort), jag tycker att det inte skulle vara lämpligt att montera det som skrivskyddad.

instagram viewer

Så vad är domen?

Svaret

SuperUser-bidragsgivaren l0b0 ger viss inblick i journaling / non-journaling filsystem:

Detta beror på

  1. om du använder ett journaling-filsystem och
  2. hur bra applikationerna kan hantera avbruten behandling.

Tänk på exempelvis en applikation som behandlar en fil och skriver resultaten som de beräknas( en utgångsledning per inmatningsrad) till en annan fil. Om strömmen skärs under bearbetningen och samma program körs efter omstart, kan den inte bara starta om bearbetningen från början av inmatningsfilen - det skulle innebära att utdatafilen skulle innehålla dubbletterinformation.

Det kan vara mycket svårt att säga något klart om ett hypotetiskt komplext system, men den mest stabila Linux-mjukvaran verkar kunna hantera kraschar ganska snyggt.

Stu föreslår att man separerar operativsystemet och data, samt lägger till ett batteribackup:

För att minimera risken för OS-korruption, är det troligtvis bäst att ha separata "system" och "data" -partitioner på SD-kortet. På så sätt kan du bara montera "system" -partitionens skrivskyddade och använda en högspänningsfärdig FS på "data" -partitionen.

Dessutom har de flesta av dessa brädor mycket låga kraven, så batteribackup är möjligt."LiPo rider" -bordet för Raspberry Pi kan användas som en grundläggande UPS för att ge en ren avstängning av strömförlusten.

Slutligen expanderar Jenny D på journaling-filsystemet förslag:

Oväntade strömavbrott kan orsaka korruption av filsystemdata - t.ex. Om en process har börjat skriva till en fil, men ännu inte klarat att skriva den, kan filen sluta endast hälften skriftlig. Föreställ dig nu om strömavbrottet händer när du är halvvägs genom en kärnuppgradering. ..

Som l0b0 skrev, kommer ett journalsystem att hjälpa till, eftersom det kommer att kunna hålla reda på vad som faktiskt har blivit gjort. Förutom wikipedia-informationen som l0b0 är länkad, kan du vara intresserad av att göra journaler för filsystemsgaranti mot korruption efter en strömavbrott också.

Du som programmerare behöver självklart noga överväga hur man hanterar skrivning till filer så att det blir en atomprocess( det vill säga det är helt eller delvis gjort, men aldrig någonsin halvt gjort).Det är en ganska komplicerad fråga.

Har något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.