Hvordan kan uventede nedlukninger skade en Linux-computer?
Er uventede nedlukninger så skadelige for Linux, som de er til andre operativsystemer? Læs videre, da vi undersøger virkningerne af katastrofale systemafbrydelser på Linux filsystemer.
Dagens Spørgsmål & Svar session kommer til os med venlig hilsen af SuperUser-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.
Spørgsmålet
SuperUser-læser User208554 er nysgerrig efter Linux-filstrukturer og bekymret for en app / installation, han arbejder på:
Jeg udvikler en applikation på et Linux-indlejret kort (kører Debian) f.eks. Hindbær Pi, Beagle Board / Bone, eller olimex. Brædderne arbejder på et miljø, hvor strømmen skæres uventet (det er alt for kompliceret at placere PSU osv.), Og det ville ske hver dag et par gange. Jeg spekulerer på, om de uventede strømafbrydelser vil forårsage problemer på Linux Operation System? Hvis det er noget, jeg bør bekymre mig om, hvad vil du foreslå for at forhindre skade på OS mod de uventede strømafbrydelser?
PS. Applikationen skal skrive nogle data til lagermediet (SD-kort), jeg tror, det ikke ville være hensigtsmæssigt at montere det som skrivebeskyttet.
Så hvad er dommen?
Svaret
SuperUser bidragyder l0b0 giver et indblik i journaling / non-journaling filsystemer:
Dette ville afhænge af
- om du bruger et journaling filsystem og
- hvor godt applikationerne er i stand til at håndtere afbrudt behandling.
Overvej f.eks. En applikation, der behandler en fil og skriver resultaterne som de beregnes (en udgangslinje pr inputlinje) til en anden fil. Hvis strømmen skæres under behandlingen, og den samme applikation køres efter genstart, kan den ikke bare genstarte behandlingen fra begyndelsen af inputfilen - det ville betyde, at outputfilen ville indeholde dobbelt information.
Det kunne være meget svært at sige noget klart om et hypotetisk komplekst system, men det mest stabile Linux-software synes at kunne klare styrter helt pænt.
Stu foreslår at adskille operativsystemet og data, samt at tilføje et batteri backup:
For at minimere muligheden for OS-korruption er det nok bedst at have separate "system" og "data" partitioner på SD-kortet. På den måde kan du montere "system" partition skrivebeskyttet og bruge en stærkt modstandsdygtig FS på "data" partitionen.
Derudover har de fleste af disse bestyrelser meget lave strømkrav, så batteribackup er mulig. "LiPo rider" bordet til Raspberry Pi kan bruges som en grundlæggende UPS for at give en ren afbrydelse af strømsvigt.
Endelig udvider Jenny D på journaling filsystemet forslag:
Uventede strømafbrydelser kan forårsage korruption af filsystemdata - f.eks. Hvis en proces er begyndt at skrive til en fil, men endnu ikke er færdig med at skrive den, kan filen ende op med kun halvt skriftligt. Forestil dig nu, om strømafbrydelsen sker, når du er halvvejs igennem en kerneopgradering ...
Som l0b0 skrev, ved hjælp af et journaling filsystem vil hjælpe, da det vil være i stand til at holde styr på, hvad der faktisk er blevet gjort. Ud over wikipedia-infoen, der l0b0 er forbundet, kan du være interesseret i Do Journal File Systems garanti mod korruption efter en strømfejl også.
Du som programmør skal naturligvis overveje omhyggeligt, hvordan man håndterer skrivning til filer, så det bliver en atomproces (dvs. det er enten helt færdigt eller slet ikke gjort, men aldrig nogensinde halvt færdigt). Det er et ret komplekst problem.
Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.