Sunt opriri neașteptate la fel de dăunătoare pentru Linux ca și alte sisteme de operare? Citiți în timp ce investigăm efectele opririi sistemelor catastrofale asupra sistemelor de fișiere Linux.
Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor Q & A.
Cititorul SuperUser User208554 este curios despre structurile de fisiere Linux si este preocupat de o aplicatie / instalare pe care lucreaza:
Dezvolt o aplicație pe o placă încorporată în Linux (rulează Debian) de ex. Zmeura Pi, Beagle Board / Oase, sau olimex. Plăcile lucrează într-un mediu în care energia electrică este tăiată în mod neașteptat (este prea complicat să se pună PSU etc.) și s-ar întâmpla în fiecare zi de câteva ori. Mă întreb dacă reducerile de energie neașteptate ar cauza probleme în sistemul de operare Linux? Dacă este ceva de care ar trebui să vă faceți griji, ce ați sugera pentru a preveni daunele cauzate de sistemul de operare împotriva reducerilor neașteptate de putere?
PS. Aplicația trebuie să scrie unele date pe suportul de stocare (cardul SD), cred că nu ar fi potrivit să-l montezi ca fiind doar pentru citire.
Deci, care este verdictul?
Contribuitorul SuperUser l0b0 oferă o oarecare perspectivă asupra sistemelor de fișiere de tip jurnal / non-jurnal:
Acest lucru depinde de
- dacă utilizați un sistem de fișiere de jurnalizare și
- cât de bine aplicațiile sunt capabile să gestioneze procesarea avortată.
Luați în considerare, de exemplu, o aplicație care procesează un fișier și scrie rezultatele în timp ce acestea sunt calculate (o linie de ieșire pe linie de intrare) într-un alt fișier. Dacă se taie curentul în timpul procesării și aceeași aplicație se execută după repornire, nu se poate reporni doar procesarea de la începutul fișierului de intrare - ceea ce înseamnă că fișierul de ieșire va conține informații duplicat.
Ar putea fi foarte dificil să spui ceva definit despre un sistem complex ipotetic, dar cel mai stabil software-ul Linux pare să poată gestiona accidentele destul de frumos.
Stu sugerează separarea sistemului de operare și a datelor, precum și adăugarea unei baterii de rezervă:
Pentru a minimiza posibilitatea corupției sistemului de operare, probabil că este bine să aveți separate partiții "sistem" și "date" pe cardul SD. În acest fel, puteți monta partiția "sistem" numai pentru citire și utilizați un FS foarte rezistent pe partiția "date".
În plus, majoritatea acestor plăci au cerințe de putere foarte scăzute, astfel încât este posibilă o baterie de rezervă. Placa "LiPo rider" pentru Raspberry Pi poate fi folosita ca un UPS de baza pentru a oferi o inchidere curata pe pierdere de putere.
În cele din urmă, Jenny D se extinde la sugestia privind sistemul de fișiere jurnal:
Reducerile de energie neașteptate pot provoca deteriorarea datelor sistemului de fișiere - de ex. dacă un proces a început să scrie într-un fișier, dar nu a terminat încă să-l scrie, fișierul poate ajunge doar pe jumătate scris. Acum, imaginați-vă dacă întreruperea alimentării se întâmplă când sunteți la jumătatea drumului printr-o actualizare de kernel ...
După cum scria l0b0, va ajuta la utilizarea unui sistem de fișiere de jurnalizare, deoarece va putea să urmărească ceea ce a făcut de fapt. În plus față de informațiile despre wikipedia care leagă l0b0, s-ar putea să fiți interesat în Garantarea sistemelor de fișiere de jurnalism împotriva corupției, după un defect de putere, de asemenea.
Sunteți în mod evident un programator care trebuie să ia în considerare cu atenție cum să se ocupe de scrierea fișierelor, astfel încât să devină un proces atomic (adică este fie făcut complet, fie nu făcut deloc, dar niciodată făcut vreodată pe jumătate). Este o problemă destul de complexă.
Aveți ceva de adăugat la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.