Vaarika-logo

Raspberry Pi muudab vastupidavamaks File Süsteem

Raspberry Pi-st vastupidavama disaini loomineFile-Süsteem-toode

Dokumendi ulatus

See dokument kehtib järgmiste Raspberry Pi toodete kohta:

Pi 0 Pi 1 Pi 2 Pi 3 Pi 4 Pi 400 CM1 CM3 CM4 CM 5 Pico
0 W H A B A B B Kõik Kõik Kõik Kõik Kõik Kõik Kõik
* * * * * * * * * * * * * *  

 

Sissejuhatus

Raspberry Pi Ltd seadmeid kasutatakse sageli andmete salvestamise ja jälgimise seadmetena, sageli kohtades, kus võivad esineda ootamatud voolukatkestused. Nagu iga arvutiseadme puhul, võivad voolukatkestused põhjustada salvestusruumi riknemist. See tehniline dokument pakub mõningaid võimalusi andmete rikkumise vältimiseks nendes ja muudes olukordades, valides sobiva režiimi. file süsteemid ja seadistused andmete terviklikkuse tagamiseks. See tehniline dokument eeldab, et Raspberry Pi töötab Raspberry Pi (Linux) operatsioonisüsteemiga ning on täielikult ajakohane uusima püsivara ja kernelidega.

Mis on andmete korruptsioon ja miks see tekib?
Andmete rikkumine viitab arvutiandmete tahtmatutele muutustele, mis toimuvad kirjutamise, lugemise, salvestamise, edastamise või töötlemise ajal. Selles dokumendis peame silmas ainult salvestamist, mitte edastamist ega töötlemist. Andmete rikkumine võib tekkida siis, kui kirjutamisprotsess katkestatakse enne selle lõpuleviimist viisil, mis takistab kirjutamise lõpuleviimist, näiteksampkui toide kaob. Siinkohal tasub anda kiire sissejuhatus sellesse, kuidas Linuxi operatsioonisüsteem (ja laiemalt ka Raspberry Pi operatsioonisüsteem) andmeid salvestusruumi kirjutab. Linux kasutab salvestusruumi kirjutatavate andmete salvestamiseks tavaliselt kirjutusvahemälusid. Need vahemällu salvestavad (ajutiselt salvestavad) andmeid muutmällu (RAM), kuni saavutatakse teatud etteantud piirang, mille möödudes tehakse kõik pooleliolevad kirjutusoperatsioonid salvestuskeskkonnale ühe tehinguga. Need etteantud piirangud võivad olla seotud aja ja/või suurusega. NäiteksampNäiteks andmeid võidakse vahemällu salvestada ja salvestusruumi kirjutada ainult iga viie sekundi järel või kirjutada välja alles siis, kui teatud hulk andmeid on kogunenud. Neid skeeme kasutatakse jõudluse parandamiseks: suure andmehulga korraga kirjutamine on kiirem kui paljude väikeste andmehulkade kirjutamine.

Kui aga andmete vahemällu salvestamise ja väljakirjutamise vahel elektrikatkestus tekib, siis andmed lähevad kaotsi. Muud võimalikud probleemid tekivad kirjutamisprotsessi hilisemas etapis, andmete füüsilise kirjutamise ajal andmekandjale. Kui riistvara (näiteksampKuigi Secure Digitali (SD) kaardiliidesele antakse käsk andmeid kirjutada, kulub andmete füüsiliseks salvestamiseks siiski piiratud aeg. Jällegi, kui selle äärmiselt lühikese aja jooksul toimub voolukatkestus, on võimalik, et kirjutatavad andmed riknevad. Arvutisüsteemi, sealhulgas Raspberry Pi, väljalülitamisel on parim tava kasutada väljalülitusvalikut. See tagab, et kõik vahemällu salvestatud andmed kirjutatakse välja ja riistvaral on olnud aega andmed tegelikult andmekandjale kirjutada. Enamiku Raspberry Pi seadmete poolt kasutatavad SD-kaardid sobivad suurepäraselt odavate kõvaketaste asendajateks, kuid on aja jooksul rikketele vastuvõtlikud, olenevalt sellest, kuidas neid kasutatakse. SD-kaartides kasutataval välkmälul on piiratud kirjutamistsükkel ja kui kaardid lähenevad sellele piirile, võivad need muutuda ebausaldusväärseks. Enamik SD-kaarte kasutab protseduuri nimega kulumise tasandamine, et tagada nende võimalikult pikk eluiga, kuid lõpuks võivad need rikki minna. See võib kesta kuudest aastateni, olenevalt sellest, kui palju andmeid on kaardile kirjutatud või (mis veelgi olulisem) kaardilt kustutatud. See eluiga võib kaartide lõikes dramaatiliselt erineda. SD-kaardi riket näitab tavaliselt juhuslik... file riknemine, kuna SD-kaardi osad muutuvad kasutuskõlbmatuks.

Andmete rikkumiseks on ka teisi viise, sealhulgas, kuid mitte ainult, defektne andmekandja, vead salvestustarkvaras (draiverites) või vead rakendustes endis. Käesolevas tehnilises dokumendis defineeritakse andmete rikkumise sündmusena iga protsessi, mille käigus võib tekkida andmete kadu.

Mis võib kirjutamisoperatsiooni põhjustada?
Enamik rakendusi kirjutab mingil moel salvestusruumi, näiteksampfaili konfiguratsiooniteave, andmebaasi värskendused ja muu selline. Mõned neist files võivad olla isegi ajutised, st neid kasutatakse ainult programmi töötamise ajal ja neid ei pea pärast toitetsüklit säilitama; aga need toovad ikkagi kaasa kirjutamise salvestuskandjale. Isegi kui teie rakendus tegelikult andmeid ei kirjuta, kirjutab Linux taustal pidevalt salvestusruumi, enamasti logiteavet.

Riistvaralahendused

Kuigi see ei kuulu täielikult selle tehnilise dokumendi pädevusse, väärib mainimist, et ootamatute voolukatkestuste ennetamine on levinud ja hästi mõistetav meede andmete kadumise vastu. Seadmed, näiteks katkematu toiteallikad (UPS), tagavad stabiilse toiteallika ja kui UPS-il peaks voolukatkestus olema, saavad need akutoitel olles arvutisüsteemile teatada peatsest voolukatkestusest, et väljalülitamine saaks toimuda sujuvalt enne varutoiteallika otsa saamist. Kuna SD-kaartidel on piiratud eluiga, võib olla kasulik omada asenduskorda, mis tagab SD-kaartide väljavahetamise enne nende eluea lõppu.

Tugev file süsteemid

Raspberry Pi seadet saab riknemise eest kaitsta mitmel viisil. Need erinevad oma võime poolest riknemist ära hoida, kusjuures iga toiming vähendab selle tekkimise võimalust.

  • Kirjutamissageduse vähendamine
    Juba ainuüksi rakenduste ja Linuxi operatsioonisüsteemi kirjutamismahu vähendamine võib avaldada kasulikku mõju. Kui logite palju, suureneb kirjutamisvigade tekkimise oht andmete rikke korral. Rakenduse logimise vähendamine sõltub lõppkasutajast, kuid ka Linuxis saab seda vähendada. See on eriti oluline välkmäluseadmete (nt eMMC, SD-kaardid) kasutamisel nende piiratud kirjutamistsükli tõttu.
  • Muutuvad kinnitusajad
    Pühendumisaeg a jaoks file Süsteemi aeg on aeg, mille jooksul andmeid enne salvestusruumi kopeerimist vahemällu salvestatakse. Selle aja pikendamine parandab jõudlust suure hulga kirjutustoimingute pakkimise teel, kuid see võib viia andmete kadumiseni, kui enne andmete kirjutamist toimub andmete rikkesündmus. Kinnitusaja lühendamine tähendab väiksemat võimalust, et andmete rikkesündmus viib andmete kadumiseni, kuigi see ei takista seda täielikult.
    Peamise EXT4 kinnitusaja muutmiseks file Raspberry Pi operatsioonisüsteemil peate muutma \etc\fstab faili file mis määratleb, kuidas file Süsteemid paigaldatakse käivitamisel.
  • $sudo nano /etc/fstab

Lisage juurkataloogi EXT4 kirjele järgmine tekst file süsteem:

  • commit=

Seega võib fstab välja näha umbes selline, kus kinnitusajaks on seatud kolm sekundit. Kui kinnitusaega pole spetsiaalselt määratud, on see vaikimisi viis sekundit.

Raspberry Pi-st vastupidavama disaini loomineFile-Süsteem-

 

Ajutine file süsteemid

Kui taotlus nõuab ajutist file salvestusruumi, st andmeid kasutatakse ainult rakenduse töötamise ajal ja neid ei pea sulgemise ajal salvestama, on hea võimalus füüsiliste salvestusruumi kirjutamiste vältimiseks kasutada ajutist file süsteem, tmpfs. Sest need file süsteemid on RAM-põhised (tegelikult virtuaalmälus), siis tmpfs-i kirjutatud andmeid ei kirjutata kunagi füüsilisse salvestusruumi ning seetõttu ei mõjuta need välkmälu eluiga ega saa rikke korral kahjustuda.
Ühe või mitme tmpfs asukoha loomiseks on vaja muuta faili /etc/fstab file, mis kontrollib kõiki file süsteemid Raspberry Pi operatsioonisüsteemi all. Järgmised näitedampfail asendab salvestuspõhised asukohad /tmp ja /var/log ajutiste asukohtadega file süsteemi asukohad. Teine näideampfail, mis asendab standardset logikausta, piirab faili üldist suurust. file süsteemi 16 MB-ni.

  • tmpfs /tmp tmpfs vaikeväärtused, aeg puudub 0 0
  • tmpfs /var/log tmpfs vaikeväärtused,aeg,suurus=16m 0 0

GitHubist leiab ka kolmanda osapoole skripti, mis aitab seadistada RAM-i logimist. Sellel on lisafunktsioon, mis võimaldab RAM-põhiseid logisid kettale eelmääratud intervalliga salvestada.

Kirjutuskaitstud juurkasutaja file süsteemid

Juur file süsteem (rootfs) on file süsteem kettapartitsioonil, kus juurkataloog asub, ja see on file süsteem, millel kõik teised file süsteemid paigaldatakse süsteemi käivitamisel. Raspberry Pi-l on see / ja vaikimisi asub see SD-kaardil täielikult lugemis-/kirjutamisõigusega EXT4 partitsioonina. Samuti on olemas alglaadimiskaust, mis paigaldatakse kui /boot ja on lugemis-/kirjutamisõigusega FAT-partitsioon. Rootfs-i ainult lugemisõigusega partitsiooniks muutmine takistab igasugust kirjutamispääsu sellele, muutes selle palju vastupidavamaks riknemisjuhtumitele. Kui aga muid meetmeid ei võeta, tähendab see, et sinna ei saa midagi kirjutada. file süsteemi üldse, seega on igasuguste andmete salvestamine teie rakendusest rootfs-i keelatud. Kui teil on vaja salvestada andmeid oma rakendusest, aga soovite kirjutuskaitstud rootfs-i, on levinud tehnika lisada USB-mälupulk või sarnane seade, mis on mõeldud ainult kasutajaandmete salvestamiseks.

MÄRKUS
Kui kasutate vahetust file kirjutuskaitstud file süsteemi, peate vahetusketta teisaldama file lugemis-/kirjutamispartitsioonile.

Ülekate file süsteem

Kattekiht file süsteem (overlayfs) ühendab kaks file süsteemid, ülemine file süsteem ja madalam file süsteemis. Kui nimi on olemas mõlemas file süsteemid, objekt ülemises file süsteem on nähtav, samal ajal kui alumises osas olev objekt file süsteem on kas peidetud või kataloogide puhul ühendatud ülemise objektiga. Raspberry Pi pakub raspi-config-is valikut overlayfs lubamiseks. See muudab rootfs-i (alumise) kirjutuskaitstud ja loob RAM-põhise ülemise file süsteem. See annab väga sarnase tulemuse kui kirjutuskaitstud file süsteem, kusjuures kõik kasutaja tehtud muudatused lähevad taaskäivitamisel kaotsi. Saate overlayfsi lubada kas käsurea raspi-config abil või töölaua Raspberry Pi konfiguratsioonirakenduse abil menüüs Eelistused.

Samuti on olemas teisi overlayf-ide implementatsioone, mis suudavad sünkroniseerida vajalikke muudatusi ülemisest alumisse. file süsteem etteantud ajakava järgi. NäiteksampNäiteks võite kopeerida kasutaja kodukausta sisu ülemisest alumisse iga kaheteistkümne tunni järel. See piirab kirjutamisprotsessi väga lühikese ajaga, mis tähendab, et andmete rikkumine on palju vähem tõenäoline, kuid tähendab, et kui enne sünkroonimist kaob toide, siis lähevad kaotsi kõik pärast viimast sünkroonimist loodud andmed. pSLC arvutusmoodulitel Raspberry Pi arvutusmoodulites kasutatav eMMC-mälu on MLC (Multi-Level Cell), kus iga mäluelement esindab 2 bitti. pSLC ehk pseudo-Single Level Cell on NAND-välkmälu tehnoloogia tüüp, mida saab lubada ühilduvates MLC-salvestusseadmetes, kus iga element esindab ainult 1 bitti. See on loodud pakkuma tasakaalu SLC-välkmälu jõudluse ja vastupidavuse ning MLC-välkmälu kulutõhususe ja suurema mahutavuse vahel. pSLC-l on suurem kirjutamiskindlus kui MLC-l, kuna andmete harvem kirjutamine elementidele vähendab kulumist. Kuigi MLC võib pakkuda umbes 3,000–10,000 XNUMX kirjutamistsüklit, suudab pSLC saavutada oluliselt suuremaid numbreid, lähenedes SLC vastupidavustasemetele. See suurem vastupidavus tähendab pSLC-tehnoloogiat kasutavate seadmete pikemat eluiga võrreldes standardset MLC-d kasutavate seadmetega.

MLC on kuluefektiivsem kui SLC-mälu, kuid kuigi pSLC pakub paremat jõudlust ja vastupidavust kui puhas MLC, teeb see seda mahutavuse arvelt. pSLC jaoks konfigureeritud MLC-seadmel on pool tavalise MLC-seadme mahust (või vähem), kuna iga lahter salvestab ainult ühe biti kahe või enama asemel.

Rakenduse üksikasjad

pSLC rakendatakse eMMC-l täiustatud kasutajaalana (tuntud ka kui täiustatud salvestusruum). Täiustatud kasutajaala tegelik implementatsioon ei ole MMC standardis määratletud, vaid on tavaliselt pSLC.

  • Täiustatud kasutajaala on kontseptsioon, samas kui pSLC on implementatsioon.
  • pSLC on üks viis laiendatud kasutajaala (Enhanced User Area) rakendamiseks.
  • Kirjutamise ajal rakendab Raspberry Pi arvutusmoodulitel kasutatav eMMC täiustatud kasutajaala (Enhanced User Area), kasutades pSLC-d.
  • Kogu eMMC kasutajaala pole vaja konfigureerida laiendatud kasutajaalana.
  • Mälupiirkonna programmeerimine laiendatud kasutajaalaks on ühekordne toiming. See tähendab, et seda ei saa tagasi võtta.

Selle sisselülitamine
Linux pakub mmc-utils paketis käskude komplekti eMMC partitsioonide muutmiseks. Paigaldage CM-seadmesse standardne Linuxi operatsioonisüsteem ja installige tööriistad järgmiselt:

  • sudo apt install mmc-utils

eMMC kohta teabe saamiseks (see käsk suunatakse Less'i, kuna kuvatavat teavet on üsna palju):

  • sudo mmc extcsd loe /dev/mmcblk0 | vähem

 HOIATUS
Järgmised toimingud on ühekordsed – neid saab käivitada üks kord ja neid ei saa tagasi võtta. Samuti tuleks need käivitada enne arvutusmooduli kasutamist, kuna need kustutavad kõik andmed. eMMC maht väheneb poole võrra eelmisest väärtusest.

pSLC sisselülitamiseks kasutatav käsk on mmc enh_area_set, mis nõuab mitmeid parameetreid, mis määravad, kui suurel mälualal pSLC lubatakse. Järgmine näideampfail kasutab kogu ala. Lisateavet eMMC alamhulga kasutamise kohta leiate mmc käsu abist (man mmc).

Raspberry Pi-st vastupidavama disaini loomineFile-Süsteem-

Pärast seadme taaskäivitamist peate operatsioonisüsteemi uuesti installima, kuna pSLC lubamine kustutab eMMC sisu.

Raspberry Pi CM Provisioneri tarkvaral on võimalus seadistada pSLC seadistamise ajal. Selle leiab GitHubist aadressilt https://github.com/raspberrypi/cmprovision.

  • Seadmeväline file süsteemid / võrgu käivitamine
    Raspberry Pi suudab näiteks võrguühenduse kaudu käivitudaampvõrgu kasutamine File Süsteem (NFS). See tähendab, et kui seade on oma esimesed toimingud lõpetanudtage boot, selle asemel, et laadida kernel ja root file süsteemi SD-kaardilt, laaditakse see võrguserverist. Kui see on käivitunud, siis kõik file Toimingud toimuvad serveris, mitte kohalikul SD-kaardil, millel pole menetluses enam mingit rolli.
  • Pilvelahendused
    Tänapäeval toimub palju kontoritöid brauseris ja kõik andmed salvestatakse pilve. Andmete salvestamine SD-kaardilt eemal võib ilmselgelt parandada töökindlust, kuid see vähendab pidevat internetiühendust ja võib vähendada pilveteenuse pakkujate tasusid. Kasutaja saab kasutada täisfunktsionaalset Raspberry Pi operatsioonisüsteemi koos Raspberry Pi jaoks optimeeritud brauseriga, et pääseda ligi mis tahes pilveteenustele sellistelt tarnijatelt nagu Google, Microsoft, Amazon jne. Alternatiiviks on üks õhukese kliendi pakkujatest, kes asendab Raspberry Pi operatsioonisüsteemi operatsioonisüsteemi/rakendusega, mis töötab SD-kaardi asemel keskserveris salvestatud ressurssidest. Õhukesed kliendid töötavad serveripõhise arvutikeskkonnaga kaugühenduse loomise teel, kus enamik rakendusi, tundlikke andmeid ja mälu on salvestatud.

Järeldused

Kui järgitakse õigeid väljalülitusprotseduure, on Raspberry Pi SD-kaardi salvestusruum äärmiselt usaldusväärne. See toimib hästi kodu- või kontorikeskkonnas, kus väljalülitust saab kontrollida, kuid Raspberry Pi seadmete kasutamisel tööstuslikes tingimustes või ebausaldusväärse toiteallikaga piirkondades võivad töökindlust parandada täiendavad ettevaatusabinõud.

Lühidalt öeldes saab töökindluse parandamise võimalused loetleda järgmiselt:

  • Kasutage tuntud ja usaldusväärset SD-kaarti.
  • Vähendage kirjutamisaega pikemate kinnitusaegade ja ajutiste file süsteemid, kasutades overlayfs'i või sarnast.
  • Kasutage seadmevälist salvestusruumi, näiteks võrgust käivitamist või pilvesalvestust.
  • Rakendage kord SD-kaartide asendamiseks enne nende eluea lõppu.
  • Kasutage UPS-i.

Raspberry Pi on Raspberry Pi Ltd kaubamärk
Raspberry Pi Ltd

Kolofon
© 2020–2023 Raspberry Pi Ltd (endine Raspberry Pi (Trading) Ltd.)
See dokumentatsioon on litsentseeritud Creative Commonsi Attribution-NoDerivatives 4.0 International (CC BY-ND) litsentsi alusel.

  • ehituskuupäev: 2024-06-25
  • ehitusversioon: githash: 3e4dad9-clean

Juriidiline lahtiütlemine
RASPBERRY PI TOODETE (SH ANDMELEHED) TEHNILISI JA USALDUSVÕIME ANDMEID, MIS ON AEG-AJALT MUUDATUD ("RESSURSSID"), ESITAB RASPBERRY PI LTD ("RPL") "NAGU ON" NING MIS TAHES VÄLJESTUNUD, VÄLJASTATUD VÕI KAUDSETE ANDMED KAUDSED GARANTIID KAUBANDUSVÕIME JA KONKREETSEKS EESMÄRGIKS SOBIVUSE KOHTA VÄLJA TAGATAKSE. KOHALDATAVATE SEADUSTEGA LUBATUD MAKSIMAALSES MÄÄRAS EI VASTUTA RPL MITTE MITTE JUHUL MISGI OTSESE, KAUDSE, JUHUSLIKU, ERI-, EESMÄRGISTE VÕI JÄLJENDUSLIKU KAHJU EEST (SEALHULGAS, KUID MITTE PIIRATUD, TEENUSTE VÕI TEENUSED; KASUTAMINE, ANDMED VÕI KASUM; VÕI ÄRITEGEVUSE KATKESTUS), SIISKI PÕHJUSLIK JA MIS TAHES VASTUTUSE TEOORIA, KAS LEPINGU, RANGE VASTUTUS VÕI DEKETTLIKKUS (KAASA arvatud HOOLETUS VÕI MUUAL MUU), MIS TEKIB MIS TAHES MEIE KASUTAMISE KOHTA. ITY SELLISTE KAHJUSTUSTE KOHTA.

RPL jätab endale õiguse teha MATERJALIDESSE või neis kirjeldatud toodetesse igal ajal ja ilma ette teatamata täiustusi, parandusi, parandusi või muid muudatusi. MATERJALID on mõeldud oskuslikele kasutajatele, kellel on piisavad disainiteadmised. Kasutajad vastutavad ainuisikuliselt MATERJALIDE valiku ja kasutamise ning neis kirjeldatud toodete mis tahes rakenduse eest. Kasutaja nõustub hüvitama RPL-ile kõik kohustused, kulud, kahjud või muud kahjud, mis tulenevad MATERJALIDE kasutamisest. RPL annab kasutajatele loa kasutada MATERJALI ainult koos Raspberry Pi toodetega. MATERJALIDE mis tahes muu kasutamine on keelatud. Litsentsi RPL-i või muude kolmandate isikute intellektuaalomandi õigustele ei anta.

KÕRGE RISKIGA TEGEVUSED. Raspberry Pi tooted ei ole projekteeritud, toodetud ega ette nähtud kasutamiseks ohtlikes keskkondades, mis nõuavad tõrkekindlat toimimist, näiteks tuumarajatiste, õhusõidukite navigatsiooni- või sidesüsteemide, lennujuhtimise, relvasüsteemide või ohutuskriitiliste rakenduste (sh elutoetussüsteemide ja muude meditsiiniseadmete) käitamisel, kus toodete rike võib otseselt põhjustada surma, kehavigastusi või rasket füüsilist või keskkonnakahju („kõrge riskiga tegevused“). RPL ei anna otseseid ega kaudseid garantiisid sobivuse kohta kõrge riskiga tegevusteks ega vastuta Raspberry Pi toodete kasutamise või kaasamise eest kõrge riskiga tegevustesse. Raspberry Pi tooteid pakutakse RPL-i standardtingimuste kohaselt. RPL-i RESSURSIDE pakkumine ei laienda ega muuda muul viisil RPL-i standardtingimusi, sealhulgas, kuid mitte ainult, nendes väljendatud lahtiütlusi ja garantiisid.

Korduma kippuvad küsimused

  • K: Milliseid Raspberry Pi tooteid see dokument toetab?
    A: See dokument kehtib erinevate Raspberry Pi toodete kohta, sh Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 ja Pico.
  • K: Kuidas saan vähendada andmete rikkumise võimalust oma Raspberry Pi seadmes?
    V: Andmete rikkumist saab vähendada kirjutamisoperatsioonide, eriti logimistegevuste minimeerimise ja kinnitusaegade kohandamise teel. file süsteem, nagu selles dokumendis kirjeldatud.

Dokumendid / Ressursid

Raspberry Pi muudab vastupidavamaks File Süsteem [pdfKasutusjuhend
Pi 0, Pi 1, vastupidavamaks muutmine File Süsteem, vastupidavam File Süsteem, vastupidav File süsteem, File Süsteem

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *