Kaip galima netikėtai sustabdyti „Linux“ kompiuterį?
Ar netikėti išjungimai yra kenksmingi Linux, kaip ir kitoms operacinėms sistemoms? Skaitykite toliau, kai tiriame katastrofiškų sistemos išjungimų poveikį Linux failų sistemoms.
Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.
Klausimas
„SuperUser“ skaitytuvas „User208554“ smalsu apie „Linux“ failų struktūras ir yra susirūpinęs dėl programos / įrenginio, kuriame jis dirba:
Sukuriu programą „Linux“ integruotoje lentoje (veikia „Debian“), pvz. Raspberry Pi, Beagle valdyba / kaulai arba olimex. Plokštės veikia aplinkoje, kurioje elektros energija netikėtai supjaustoma (PSU ir tt) yra pernelyg sudėtinga, ir tai įvyktų kiekvieną dieną porą kartų. Įdomu, ar netikėta elektros pertrauka sukeltų problemų „Linux“ operacinėje sistemoje? Jei tai būtų kažkas, apie kurį turėčiau nerimauti, ką norėtumėte išvengti, kad OS nepadarytų žalos netikėtoms elektros energijos pertraukoms?
PS. Programai reikia įrašyti kai kuriuos duomenis į laikmeną (SD kortelę), manau, kad nebūtų tinkama jį prijungti kaip tik skaitymui.
Taigi, kas yra nuosprendis?
Atsakymas
„SuperUser“ dalyvis l0b0 siūlo šiek tiek įžvalgų apie žurnalines / ne žurnalines rinkmenų sistemas:
Tai priklausytų nuo
- ar naudojate žurnalinės rinkmenos sistemą ir
- kaip gerai programos gali apdoroti nutrauktą apdorojimą.
Apsvarstykite, pavyzdžiui, programą, kuri apdoroja failą ir įrašo rezultatus, kaip jie yra apskaičiuojami (viena išvesties eilutė kiekvienai įvesties eilutei) į kitą failą. Jei apdorojimo metu sumažinama galia, o po to, kai iš naujo paleidžiama, vykdoma ta pati programa, ji negali tiesiog paleisti apdorojimo iš įvesties failo pradžios - tai reikštų, kad išvesties faile būtų dubliuota informacija.
Gali būti labai sunku pasakyti ką nors apie hipotetinę sudėtingą sistemą, bet atrodo, kad labiausiai stabili Linux programinė įranga gali tvarkyti avarijas.
„Stu“ siūlo atskirti operacinę sistemą ir duomenis, taip pat pridėti akumuliatoriaus atsarginę kopiją:
Kad būtų sumažinta OS korupcijos galimybė, greičiausiai geriausia turėti atskirą „sistemos“ ir „duomenų“ skaidinį SD kortelėje. Tokiu būdu jūs galite prijungti „sistemos“ skaidinį tik skaityti ir naudoti labai atsparų FS „duomenų“ skaidinyje.
Be to, dauguma šių plokščių turi labai mažai energijos, todėl galimas akumuliatoriaus atsarginis kopijavimas. „Raspberry Pi“ „LiPo rider“ plokštė gali būti naudojama kaip pagrindinė UPS, užtikrinanti švarų maitinimo praradimą.
Galiausiai „Jenny D“ plečiasi žurnalinio failų sistemos pasiūlymu:
Netikėta elektros pertrauka gali sukelti failų sistemos duomenų - pvz. jei procesas pradeda rašyti į failą, bet jo nebaigtas, byla gali baigtis tik puse. Įsivaizduokite, ar elektros energijos suveikimas įvyksta, kai jūs esate pusiaukelėje per branduolio atnaujinimą ...
Kaip rašė l0b0, naudojant žurnalinę rinkmenų sistemą, tai padės, nes ji galės sekti tai, kas iš tikrųjų buvo padaryta. Be „wikipedia“ informacijos, kurią l0b0 susiejo, jums gali tekti susidomėti „Doinging Filesystems“ garantija prieš korupciją..
Jūs, kaip programuotojas, akivaizdžiai reikia kruopščiai apsvarstyti, kaip tvarkyti rašymą į rinkmenas, kad jis taptų atominiu procesu (t. Y. Jis yra visiškai atliktas arba visai nepadarytas, bet niekada niekada nesibaigė). Tai gana sudėtingas klausimas.
Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.