Miten odottamattomat sulkemiset voivat vahingoittaa Linux-tietokonetta?
Ovatko odottamattomat keskeytykset haitallisia Linuxille kuin muille käyttöjärjestelmille? Lue, kun selvitämme katastrofaalisten järjestelmän sammumien vaikutuksia Linux-tiedostojärjestelmiin.
Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..
Kysymys
SuperUser-lukija User208554 on utelias Linux-tiedostorakenteista ja on huolissaan sovelluksesta / asennuksesta, jota hän työskentelee:
Kehitän sovelluksen Linux-upotetussa kortissa (toimii Debianilla) esim. Raspberry Pi, Beagle Board / Bone tai olimex. Paneelit toimivat ympäristössä, jossa sähkö leikataan odottamattomasti (PSU: n sijoittaminen jne. On aivan liian monimutkainen) ja se tapahtuu joka päivä pari kertaa. Ihmettelen, aiheuttavatko odottamattomat sähkökatkot ongelmia Linux-käyttöjärjestelmässä? Jos se on jotain, josta minun pitäisi huolehtia, mitä ehdottaisit estämään OS: n vahingot odottamattomilta sähkökatkoksilta?
PS. Sovelluksen on kirjoitettava tietyt tiedot tallennusvälineeseen (SD-kortti), mielestäni ei olisi tarkoituksenmukaista asentaa sitä vain lukukelpoiseksi.
Joten mikä on tuomio?
Vastaus
SuperUserin avustaja l0b0 tarjoaa jonkin verran oivalluksia päivittäisistä / ei-päivittävistä tiedostojärjestelmistä:
Tämä riippuu
- käytätkö journaling-tiedostojärjestelmää ja
- kuinka hyvin sovellukset pystyvät käsittelemään keskeytettyä käsittelyä.
Tarkastellaan esimerkiksi sovellusta, joka käsittelee tiedoston ja kirjoittaa tulokset sellaisenaan, kun ne lasketaan (yksi lähtölinja tulolinjaa kohti) toiseen tiedostoon. Jos teho leikataan käsittelyn aikana ja sama sovellus suoritetaan uudelleen käynnistämisen jälkeen, se ei voi käynnistää käsittelyä uudelleen syöttötiedoston alusta - se merkitsisi, että tulostustiedosto sisältäisi päällekkäisiä tietoja.
Hypoteettisesta monimutkaisesta järjestelmästä voisi olla hyvin vaikea sanoa mitään, mutta vakaa Linux-ohjelmisto näyttää pystyvän käsittelemään kaatumisia melko hyvin.
Stu ehdottaa käyttöjärjestelmän ja tietojen erottamista sekä akun varmuuskopion lisäämistä:
OS-korruption mahdollisuuden minimoimiseksi on todennäköisesti parasta, että SD-kortilla on erillinen ”järjestelmä” ja ”data”. Näin voit liittää vain "järjestelmä" -osiosta vain luku -tilaan ja käyttää erittäin joustavaa FS: ää "data" -osioon.
Lisäksi suurimmalla osalla näistä levyistä on erittäin alhaiset tehovaatimukset, joten akun varmuuskopiointi on mahdollista. Raspberry Pi: n "LiPo-ratsastaja" -levyä voidaan käyttää perus-UPS: nä, jotta virransyötön katkaisu olisi puhdasta.
Lopuksi Jenny D laajenee päivitystiedostojärjestelmän ehdotukseen:
Odottamattomat sähkökatkokset saattavat aiheuttaa tiedostojärjestelmän tietojen - esim. jos prosessi on alkanut kirjoittaa tiedostoon, mutta ei vielä ole kirjoittanut sitä, tiedosto voi lopulta olla vain puoli kirjoitettua. Kuvittele nyt, jos virran katkaisu tapahtuu, kun olet puolivälissä ytimen päivityksen…
Kuten l0b0 kirjoitti, käyttämällä journaling-tiedostojärjestelmää, se auttaa, koska se pystyy seuraamaan, mitä on todella tehty. L0b0: n linkittämän wikipedia-informaation lisäksi saatat myös olla kiinnostunut Doinging Filesystems -takuun korruptiota vastaan myös virheen jälkeen..
Sinun on ohjelmoijana ilmeisesti harkittava tarkasti, miten käsitellä tiedostoja niin, että siitä tulee atomiprosessi (eli se on joko täysin tehty tai sitä ei tehdä lainkaan, mutta ei koskaan koskaan tehty). Se on melko monimutkainen kysymys.
Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.