Raspberry Pi maak 'n meer veerkragtig File Stelsel
Omvang van dokument
Hierdie dokument is van toepassing op die volgende Raspberry Pi-produkte:
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 | Almal | Almal | Almal | Almal | Almal | Almal | Almal |
* | * | * | * | * | * | * | * | * | * | * | * | * | * |
|
Inleiding
Raspberry Pi Bpk-toestelle word gereeld as databergings- en moniteringstoestelle gebruik, dikwels op plekke waar skielike kragonderbrekings kan voorkom. Soos met enige rekenaartoestel, kan kragonderbrekings bergingkorrupsie veroorsaak. Hierdie witskrif verskaf 'n paar opsies oor hoe om datakorrupsie onder hierdie en ander omstandighede te voorkom deur toepaslik te kies file stelsels en opstellings om data-integriteit te verseker. Hierdie witskrif neem aan dat die Raspberry Pi die Raspberry Pi (Linux) bedryfstelsel (OS) bestuur en ten volle op datum is met die nuutste firmware en pitte.
Wat is datakorrupsie en hoekom vind dit plaas?
Datakorrupsie verwys na onbedoelde veranderinge in rekenaardata wat plaasvind tydens skryf, lees, berging, oordrag of verwerking. In hierdie dokument verwys ons slegs na berging, eerder as oordrag of verwerking. Korrupsie kan voorkom wanneer 'n skryfproses onderbreek word voordat dit voltooi is, op 'n manier wat verhoed dat die skryfwerk voltooi word, bv.ample as krag verloor word. Dit is op hierdie punt die moeite werd om 'n vinnige inleiding te gee oor hoe die Linux-bedryfstelsel (en, by uitbreiding, Raspberry Pi-bedryfstelsel), data na die stoor skryf. Linux gebruik gewoonlik skryfkas om data te stoor wat na die stoor geskryf moet word. Hierdie kas (berg tydelik) die data in ewekansige toegangsgeheue (RAM) totdat 'n sekere voorafbepaalde limiet bereik word, op watter punt al die uitstaande skrywes na die stoormedium in een transaksie gemaak word. Hierdie voorafbepaalde limiete kan tyd- en/of grootteverwant wees. Byvoorbeeldample, data kan in die kas gestoor word en slegs elke vyf sekondes na die stoorplek geskryf word, of slegs uitgeskryf word wanneer 'n sekere hoeveelheid data opgehoop het. Hierdie skemas word gebruik om werkverrigting te verbeter: om 'n groot hoeveelheid data in een slag te skryf, is vinniger as om baie klein stukkies data te skryf.
As krag egter verlore gaan tussen data wat in die kasgeheue gestoor word en dit uitgeskryf word, gaan daardie data verlore. Ander moontlike probleme ontstaan verder in die skryfproses, tydens die fisiese skryf van data na die stoormedium. Sodra 'n stuk hardeware (bv.ampd.w.s. die Secure Digital (SD) kaart koppelvlak) word aangesê om data te skryf, neem dit steeds 'n beperkte tyd vir daardie data om fisies gestoor te word. Weereens, as 'n kragonderbreking gedurende daardie uiters kort tydperk plaasvind, is dit moontlik dat die data wat geskryf word, korrup raak. Wanneer 'n rekenaarstelsel, insluitend die Raspberry Pi, afgeskakel word, is die beste praktyk om die afsluit-opsie te gebruik. Dit sal verseker dat alle gekaste data uitgeskryf word, en dat die hardeware tyd gehad het om die data eintlik na die stoormedium te skryf. Die SD-kaarte wat deur die meerderheid van die Raspberry Pi-reeks toestelle gebruik word, is goed as goedkoop hardeskyfvervangings, maar is vatbaar vir mislukking oor tyd, afhangende van hoe hulle gebruik word. Die flitsgeheue wat in SD-kaarte gebruik word, het 'n beperkte skryfsiklusleeftyd, en soos kaarte daardie limiet nader, kan hulle onbetroubaar word. Die meeste SD-kaarte gebruik 'n prosedure genaamd slytasie-nivellering om seker te maak dat hulle so lank as moontlik hou, maar uiteindelik kan hulle faal. Dit kan van maande tot jare wees, afhangende van hoeveel data na die kaart geskryf is, of (meer belangrik) daarvan uitgevee is. Hierdie leeftyd kan dramaties tussen kaarte verskil. SD-kaartmislukking word gewoonlik aangedui deur ewekansige file korrupsies soos dele van die SD-kaart onbruikbaar word.
Daar is ander maniere waarop data korrup kan raak, insluitend, maar nie beperk tot, gebrekkige stoormedium, foute in die stoorskryfsagteware (drywers), of foute in toepassings self. Vir die doeleindes van hierdie witskrif word enige proses waardeur dataverlies kan plaasvind, gedefinieer as 'n korrupsiegebeurtenis.
Wat kan 'n skryfbewerking veroorsaak?
Die meeste toepassings skryf 'n soort van stoor, bvample konfigurasie-inligting, databasisopdaterings, en dies meer. Sommige hiervan files kan selfs tydelik wees, dws slegs gebruik terwyl die program loop, en hoef nie in stand gehou te word oor 'n kragsiklus nie; dit lei egter steeds tot skrywes aan die stoormedium. Selfs as jou toepassing nie werklik enige data skryf nie, sal Linux in die agtergrond voortdurend skryfwerk na die stoor maak, meestal skryf inligting.
Hardeware oplossings
Alhoewel dit nie heeltemal binne die bevoegdheid van hierdie witskrif is nie, is dit die moeite werd om te noem dat die voorkoming van onverwagte kragonderbrekings 'n algemeen gebruikte en goed verstaanbare versagting teen dataverlies is. Toestelle soos ononderbroke kragbronne (UPS'e) verseker dat die kragtoevoer solied bly en, as krag na die UPS verlore gaan, kan dit, terwyl dit op batterykrag is, die rekenaarstelsel vertel dat kragverlies op hande is sodat afskakeling grasieus kan voortgaan voordat die rugsteunkragtoevoer opraak. Omdat SD-kaarte 'n beperkte leeftyd het, kan dit nuttig wees om 'n vervangingsregime te hê wat verseker dat SD-kaarte vervang word voordat hulle 'n kans het om die einde van die lewe te bereik.
Robuust file stelsels
Daar is verskeie maniere waarop 'n Raspberry Pi-toestel verhard kan word teen korrupsiegebeure. Dit verskil in hul vermoë om korrupsie te voorkom, met elke aksie wat die kans dat dit sal voorkom, verminder.
- Verminder skryf
Die vermindering van die hoeveelheid skryfwerk wat u toepassings en die Linux-bedryfstelsel doen, kan 'n voordelige uitwerking hê. As jy baie aanteken, is die kanse dat skrywes tydens 'n korrupsiegebeurtenis plaasvind, groter. Die vermindering van aanmelding by jou toepassing is by die eindgebruiker af, maar aanmelding by Linux kan ook verminder word. Dit is veral relevant as jy flitsgebaseerde berging (bv. eMMC, SD-kaarte) gebruik as gevolg van hul beperkte skryflewensiklus. - Verander pleegtye
Die pleeg tyd vir 'n file stelsel is die hoeveelheid tyd wat dit data in die kas kas voordat dit alles na die stoor kopieer. Deur hierdie tyd te verhoog, verbeter werkverrigting deur baie skryfstukke saam te voeg, maar kan tot dataverlies lei as daar 'n korrupsiegebeurtenis is voordat die data geskryf word. Die vermindering van die toewysingstyd sal minder kans beteken dat 'n korrupsiegebeurtenis tot dataverlies sal lei, hoewel dit dit nie heeltemal verhoed nie.
Om die toewysingstyd vir die hoof EXT4 te verander file stelsel op Raspberry Pi OS, moet jy die \etc\fstab wysig file wat bepaal hoe file stelsels word gemonteer tydens opstart. - $sudo nano /etc/fstab
Voeg die volgende by die EXT4-inskrywing vir die wortel file stelsel:
- pleeg =
So, fstab kan iets soos hierdie lyk, waar die toewysingstyd op drie sekondes gestel is. Die toewysingstyd sal verstek na vyf sekondes as dit nie spesifiek gestel is nie.
Tydelik file stelsels
As 'n aansoek tydelike vereis file berging, dws data wat slegs gebruik word terwyl die toepassing loop en nie vereis word om gestoor te word tydens 'n afsluiting nie, dan is 'n goeie opsie om fisiese skryfwerk na berging te voorkom, om 'n tydelike file stelsel, tmpfs. Omdat hierdie file stelsels is RAM gebaseer (eintlik in virtuele geheue), enige data wat na 'n tmpfs geskryf word, word nooit na fisiese berging geskryf nie, en beïnvloed dus nie flitsleeftye nie, en kan nie beskadig word oor 'n korrupsiegebeurtenis nie.
Om een of meer tmpfs-liggings te skep, vereis die wysiging van die /etc/fstab file, wat al die beheer file stelsels onder Raspberry Pi OS. Die volgende example vervang die stoor-gebaseerde liggings /tmp en /var/log met tydelik file stelsel liggings. Die tweede eksample, wat die standaard logging-lêergids vervang, beperk die algehele grootte van die file stelsel tot 16MB.
- tmpfs /tmp tmpfs verstekwaardes,geen tyd 0 0
- tmpfs /var/log tmpfs verstekwaardes,geen tyd,grootte=16m 0 0
Daar is ook 'n derdeparty-skrip wat help om aanteken na RAM op te stel, wat op GitHub gevind kan word. Dit het die bykomende kenmerk om die RAM-gebaseerde logs met 'n voorafbepaalde interval na skyf te stort.
Leesalleen-wortel file stelsels
Die wortel file stelsel (rootfs) is die file stelsel op die skyfpartisie waarop die wortelgids geleë is, en dit is die file stelsel waarop al die ander file stelsels word gemonteer soos die stelsel opgelaai word. Op die Raspberry Pi is dit /, en by verstek is dit op die SD-kaart geleë as 'n volledig lees/skryf EXT4 partisie. Daar is ook 'n selflaailêergids wat gemonteer is as /boot en 'n lees/skryf FAT partisie is. Om die rootfs SLEGS te laat lees, verhoed enige soort skryftoegang daartoe, wat dit baie meer robuust maak vir korrupsiegebeure. Tensy ander aksies geneem word, beteken dit egter dat niks aan die kan skryf nie file stelsel enigsins, dus die stoor van data van enige aard van jou toepassing na die rootfs is gedeaktiveer. As jy data van jou toepassing moet stoor, maar 'n leesalleen-rootfs wil hê, is 'n algemene tegniek om 'n USB-geheuestokkie of soortgelyke by te voeg wat net vir die stoor van gebruikersdata is.
LET WEL
As jy 'n swap gebruik file wanneer 'n leesalleen gebruik word file stelsel, sal jy die ruil moet skuif file na 'n lees/skryf partisie.
Oorleg file stelsel
'n oorleg file stelsel (overlayfs) kombineer twee file stelsels, 'n boonste file stelsel en 'n laer file stelsel. Wanneer 'n naam in beide bestaan file stelsels, die voorwerp in die boonste file stelsel is sigbaar terwyl die voorwerp in die onderste file Die stelsel is óf versteek óf, in die geval van gidse, saamgesmelt met die boonste voorwerp. Raspberry Pi bied 'n opsie in raspi-config om 'n overlayfs in te skakel. Dit maak die rootfs (onderste) slegs leesbaar en skep 'n RAM-gebaseerde boonste voorwerp. file stelsel. Dit gee 'n baie soortgelyke resultaat as die leesalleen file stelsel, met alle gebruikersveranderinge wat verlore gaan met herlaai. Jy kan 'n overlayfs aktiveer deur óf die opdragreël raspi-config te gebruik óf deur die Raspberry Pi-konfigurasietoepassing op die lessenaar in die Voorkeure-kieslys te gebruik.
Daar is ook ander implementerings van oorlegsels wat vereiste veranderinge van die boonste na die onderste kan sinchroniseer file stelsel volgens 'n voorafbepaalde skedule. Byvoorbeeldample, jy mag dalk die inhoud van 'n gebruiker se tuisgids elke twaalf uur van bo na onder kopieer. Dit beperk die skryfproses tot 'n baie kort tydperk, wat beteken dat korrupsie baie minder waarskynlik is, maar dit beteken wel dat as kragonderbreking voor die sinchronisasie plaasvind, enige data wat sedert die laaste een gegenereer is, verlore gaan. pSLC op Berekeningsmodules Die eMMC-geheue wat op Raspberry Pi Berekeningsmodule-toestelle gebruik word, is MLC (Multi-Level Cell), waar elke geheuesel 2 bisse verteenwoordig. pSLC, of pseudo-Single Level Cell, is 'n tipe NAND-flitsgeheuetegnologie wat in versoenbare MLC-bergingstoestelle geaktiveer kan word, waar elke sel slegs 1 bis verteenwoordig. Dit is ontwerp om 'n balans te bied tussen die werkverrigting en uithouvermoë van SLC-flits en die koste-effektiwiteit en hoër kapasiteit van MLC-flits. pSLC het 'n hoër skryfuithouvermoë as MLC omdat die skryf van data na selle minder gereeld slytasie verminder. Terwyl MLC ongeveer 3,000 10,000 tot XNUMX XNUMX skryfsiklusse kan bied, kan pSLC aansienlik hoër syfers bereik, wat die uithouvermoëvlakke van SLC nader. Hierdie verhoogde uithouvermoë vertaal na 'n langer lewensduur vir toestelle wat pSLC-tegnologie gebruik in vergelyking met dié wat standaard MLC gebruik.
MLC is meer koste-effektief as SLC-geheue, maar alhoewel pSLC beter werkverrigting en uithouvermoë bied as suiwer MLC, doen dit dit ten koste van kapasiteit. 'n MLC-toestel wat vir pSLC opgestel is, sal die helfte van die kapasiteit (of minder) hê wat dit as 'n standaard MLC-toestel sou hê, aangesien elke sel net een bis stoor in plaas van twee of meer.
Implementering besonderhede
pSLC word op eMMC geïmplementeer as 'n Verbeterde Gebruikersarea (ook bekend as Verbeterde berging). Die werklike implementering van die Verbeterde Gebruikersarea word nie in die MMC-standaard gedefinieer nie, maar is gewoonlik pSLC.
- Verbeterde gebruikersarea is 'n konsep, terwyl pSLC 'n implementering is.
- pSLC is een manier om Verbeterde Gebruikersarea te implementeer.
- Ten tyde van skryf implementeer die eMMC wat op die Raspberry Pi Compute Modules gebruik word die Verbeterde Gebruikersarea met behulp van pSLC.
- Dit is nie nodig om die hele eMMC-gebruikersarea as 'n Verbeterde Gebruikersarea te konfigureer nie.
- Die programmering van 'n geheuegebied as 'n Verbeterde Gebruikersarea is 'n eenmalige bewerking. Dit beteken dat dit nie ongedaan gemaak kan word nie.
Skakel dit aan
Linux verskaf 'n stel opdragte vir die manipulering van die eMMC partisies in die mmc-utils pakket. Installeer 'n standaard Linux-bedryfstelsel op die CM-toestel, en installeer die gereedskap soos volg:
- sudo apt installeer mmc-utils
Om inligting oor die eMMC te kry (hierdie opdrag word in minder as daar nogal baie inligting is om te vertoon):
- sudo mmc extcsd lees /dev/mmcblk0 | minder
WAARSKUWING
Die volgende bewerkings is eenmalig – jy kan dit een keer uitvoer en hulle kan nie ongedaan gemaak word nie. Jy moet dit ook laat loop voordat die Rekenmodule gebruik is, aangesien hulle alle data sal uitvee. Die kapasiteit van die eMMC sal verminder word tot die helfte van die vorige waarde.
Die opdrag wat gebruik word om pSLC aan te skakel is mmc enh_area_set, wat verskeie parameters vereis wat dit vertel oor hoeveel geheue area die pSLC geaktiveer moet word. Die volgende example gebruik die hele area. Verwys asseblief na die mmc-opdraghulp (man mmc) vir besonderhede oor hoe om 'n subset van die eMMC te gebruik.
Nadat die toestel herselflaai, SAL jy die bedryfstelsel moet herinstalleer, aangesien die inskakeling van pSLC die inhoud van die eMMC sal uitvee.
Die Raspberry Pi CM Provisioner sagteware het 'n opsie om pSLC tydens die voorsieningsproses in te stel. Dit kan op GitHub gevind word by https://github.com/raspberrypi/cmprovision.
- Van die toestel af file stelsels / netwerk selflaai
Die Raspberry Pi kan oor 'n netwerkverbinding begin, bvample met behulp van die netwerk File Stelsel (NFS). Dit beteken dat sodra die toestel sy eerste-s voltooi hettage boot, in plaas daarvan om die kern en wortel daarvan te laai file stelsel vanaf die SD-kaart, word dit vanaf 'n netwerkbediener gelaai. Sodra hardloop, almal file bedrywighede werk op die bediener en nie die plaaslike SD-kaart nie, wat geen verdere rol in die verrigtinge speel nie. - Wolkoplossings
Deesdae vind baie kantoortake in die blaaier plaas, met alle data wat aanlyn in die wolk gestoor word. Om databerging van die SD-kaart af te hou, kan natuurlik betroubaarheid verbeter, ten koste van 'n altyd-aan-verbinding met die internet, sowel as moontlike koste van wolkverskaffers. Die gebruiker kan óf 'n volskaalse Raspberry Pi OS-installasie gebruik, met die Raspberry Pi-geoptimaliseerde blaaier, om toegang te verkry tot enige van die wolkdienste van verskaffers soos Google, Microsoft, Amazon, ens. 'n Alternatief is een van die dunkliënt-verskaffers, wat Raspberry Pi OS vervang met 'n bedryfstelsel/toepassing wat loop vanaf hulpbronne wat op 'n sentrale bediener gestoor is in plaas van die SD-kaart. Dun kliënte werk deur afstand te koppel aan 'n bediener-gebaseerde rekenaaromgewing waar die meeste toepassings, sensitiewe data en geheue gestoor word.
Gevolgtrekkings
Wanneer die korrekte afsluitprosedures gevolg word, is die SD-kaartberging van die Raspberry Pi uiters betroubaar. Dit werk goed in die huis- of kantooromgewing waar afskakeling beheer kan word, maar wanneer Raspberry Pi-toestelle in industriële gebruiksgevalle gebruik word, of in gebiede met 'n onbetroubare kragtoevoer, kan ekstra voorsorgmaatreëls die betroubaarheid verbeter.
Kortliks kan die opsies vir die verbetering van betroubaarheid soos volg gelys word:
- Gebruik 'n bekende, betroubare SD-kaart.
- Verminder skryfwerk deur langer toelatingstye te gebruik, met behulp van tydelike file stelsels, met behulp van 'n overlayfs, of soortgelyk.
- Gebruik stoorplek buite die toestel, soos netwerkopstart of wolkberging.
- Implementeer 'n regime om SD-kaarte te vervang voordat hulle die einde van hul lewensiklus bereik.
- Gebruik 'n UPS.
Raspberry Pi is 'n handelsmerk van Raspberry Pi Bpk
Raspberry Pi Bpk
Kolofon
© 2020-2023 Raspberry Pi Ltd (voorheen Raspberry Pi (Trading) Ltd.)
Hierdie dokumentasie is gelisensieer onder 'n Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND).
- boudatum: 2024-06-25
- bou-weergawe: githash: 3e4dad9-skoon
Wetlike vrywaringskennisgewing
TEGNIESE EN BETROUBAARHEIDSDATA VIR RASPBERRY PI-PRODUKTE (INSLUITEND DATABLADE) SOOS VAN TYD TOT TYD GEWYSIG ("HULPBRONNE") WORD VERSKAF DEUR RASPBERRY PI BPK ("RPL") "SOOS IS" EN ENIGE UITDRUKKELIJKE OF INGESULDE, INGESULDE, INGESLUIT, NIE geïmpliseer nie. TOT, WORD DIE GEÏSPLISEERDE WAARBORGE VAN VERHANDELBAARHEID EN GESKIKTHEID VIR 'N SPESIFIEKE DOEL AFGEWYS. SAL RPL IN GEEN GEVAL AANSPREEKLIK WEES VIR ENIGE DIREKTE, INDIREKTE, TOEVALLE, SPESIALE, VOORBEELDE OF GEVOLLIKE SKADE (INSLUITEND, MAAR NIE BEPERK TOT, VERKRYWERS VAN GOEDE, VERKRYWER) IN DIE MAKSIMUM MAAT WAT DEUR TOEPASSELIJKE WET TOEGESTAAN WORD NIE; , DATA , Of winste; of onderbreking van sakeonderbrekings) egter veroorsaak en op enige teorie van aanspreeklikheid, hetsy in kontrak, streng aanspreeklikheid, of skadelike (insluitend nalatigheid of andersins) wat voortspruit uit die gebruik van die hulpbronne, selfs al is dit van die moontlikheid in kennis gestel. VAN SULKE SKADE.
RPL behou die reg voor om te eniger tyd en sonder verdere kennisgewing enige verbeterings, regstellings of enige ander wysigings aan die HULPMIDDELS of enige produkte wat daarin beskryf word, aan te bring. Die HULPMIDDELS is bedoel vir bekwame gebruikers met geskikte vlakke van ontwerpkennis. Gebruikers is alleen verantwoordelik vir hul keuse en gebruik van die HULPMIDDELS en enige toepassing van die produkte wat daarin beskryf word. Die gebruiker stem in om RPL te vrywaar en skadeloos te hou teen alle aanspreeklikhede, koste, skade of ander verliese wat voortspruit uit hul gebruik van die HULPMIDDELS. RPL gee gebruikers toestemming om die HULPMIDDELS slegs in samewerking met die Raspberry Pi-produkte te gebruik. Alle ander gebruik van die HULPMIDDELS is verbode. Geen lisensie word toegestaan aan enige ander RPL- of ander derdeparty-intellektuele eiendomsreg nie.
HOËRISIKO-AKTIWITEITE. Raspberry Pi-produkte is nie ontwerp, vervaardig of bedoel vir gebruik in gevaarlike omgewings wat veilige werkverrigting vereis nie, soos in die bedryf van kernfasiliteite, vliegtuignavigasie- of kommunikasiestelsels, lugverkeersbeheer, wapenstelsels of veiligheidskritieke toepassings (insluitend lewensondersteuningstelsels en ander mediese toestelle) waarin die mislukking van die produkte direk tot die dood, persoonlike besering of ernstige fisiese of omgewingskade ("Hoërisiko-aktiwiteite") kan lei. RPL verwerp spesifiek enige uitdruklike of geïmpliseerde waarborg van geskiktheid vir hoërisiko-aktiwiteite en aanvaar geen aanspreeklikheid vir die gebruik of insluiting van Raspberry Pi-produkte in hoërisiko-aktiwiteite nie. Raspberry Pi-produkte word verskaf onderhewig aan RPL se Standaardvoorwaardes. RPL se voorsiening van die HULPMIDDELS brei nie RPL se Standaardvoorwaardes uit of wysig dit andersins nie, insluitend maar nie beperk tot die vrywarings en waarborge wat daarin uitgedruk word nie.
Gereelde Vrae
- V: Watter Raspberry Pi-produkte word deur hierdie dokument ondersteun?
A: Hierdie dokument is van toepassing op verskeie Raspberry Pi-produkte, insluitend Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 en Pico. - V: Hoe kan ek die kanse van datakorrupsie op my Raspberry Pi-toestel verminder?
A: Jy kan datakorrupsie verminder deur skryfbewerkings, veral logboekaktiwiteite, te minimaliseer en die toelatingstye vir die file stelsel soos beskryf in hierdie dokument.
Dokumente / Hulpbronne
![]() |
Raspberry Pi maak 'n meer veerkragtig File Stelsel [pdf] Gebruikersgids Pi 0, Pi 1, Maak 'n meer veerkragtig File Stelsel, meer veerkragtig File Stelsel, veerkragtig File Stelsel, File Stelsel |