Hvordan kan uventede nedleggelser skade en Linux-datamaskin?
Er uventede nedleggelser like skadelige for Linux som de er til andre operativsystemer? Les videre når vi undersøker effektene av katastrofale systemavbrudd på Linux-filsystemer.
Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
Spørsmålet
SuperUser-leser User208554 er nysgjerrig på Linux-filstrukturer og bekymret for en app / installasjon han jobber med:
Jeg utvikler et program på et Linux-innebygd kort (kjører Debian), f.eks. Raspberry Pi, Beagle Board / Bone, eller olimex. Styrene arbeider på et miljø som strømmen blir kuttet uventet (det er altfor komplisert å plassere PSU, etc.), og det ville skje hver dag et par ganger. Jeg lurer på om de uventede strømbruddene vil forårsake problemer på Linux Operations System? Hvis det er noe jeg burde bekymre meg for, hva vil du foreslå for å forhindre skade på OS mot uventede strømavbrudd?
PS. Programmet må skrive noen data til lagringsmediet (SD-kort), jeg tror det ikke ville være egnet å montere det som skrivebeskyttet.
Så hva er dommen?
Svaret
SuperUser bidragsyter l0b0 gir litt innsikt i journaling / ikke-journaling filsystemer:
Dette vil avhenge av
- enten du bruker et journaling filsystem og
- Hvor godt er applikasjonene i stand til å håndtere avbrutt behandling.
Tenk for eksempel et program som behandler en fil og skriver resultatene etter hvert som de beregnes (en utgangslinje per inngangslinje) til en annen fil. Hvis strømmen blir kuttet under behandling, og det samme programmet kjøres etter omstart, kan det ikke bare starte om behandling fra starten av inngangsfilen - det vil si at utdatafilen vil inneholde duplisert informasjon.
Det kan være veldig vanskelig å si noe klart om et hypotetisk komplekst system, men den mest stabile Linux-programvaren synes å kunne håndtere krasjer ganske pent.
Stu foreslår å skille operativsystemet og dataene, samt legge til et batteri backup:
For å minimere muligheten for OS-korrupsjon, er det sannsynligvis best å ha separate "system" og "data" partisjoner på SD-kortet. På den måten kan du montere "system" partisjonen skrivebeskyttet og bruke en svært robust FS på "data" partisjonen.
I tillegg har de fleste av disse platene svært lave strømkrav, så det er mulig å få batteribackup. "LiPo rider" -bordet for Raspberry Pi kan brukes som en grunnleggende UPS for å gi en ren avslutning på strømtap.
Til slutt utvider Jenny D på journaling filsystemet forslaget:
Uventede strømbrudd kan føre til korrupsjon av filsystemdata - f.eks. Hvis en prosess har begynt å skrive til en fil, men ikke ferdig med å skrive den, kan filen ende opp med bare halv skriftlig. Forestill deg nå om strømbruken skjer når du er halvveis gjennom en kjerneoppgradering ...
Som l0b0 skrev, bruker et journaling filsystem vil hjelpe, siden det vil være i stand til å holde rede på hva som faktisk har blitt gjort. I tillegg til wikipedia-informasjonen som l0b0 er koblet, kan du være interessert i å gjøre journaling av filsystemsgaranti mot korrupsjon etter en strømbrudd også.
Du som programmerer trenger åpenbart å vurdere nøye hvordan man skal håndtere skriving til filer slik at det blir en atom prosess (det vil si at det enten er fullstendig gjort eller ikke gjort i det hele tatt, men aldri noen gang gjort halvveis). Det er et ganske komplekst problem.
Har du noe å legge til forklaringen? Lyde av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.