Raspberry Pi postane bolj odporen File Sistem
Obseg dokumenta
Ta dokument velja za naslednje izdelke Raspberry Pi:
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 | Vse | Vse | Vse | Vse | Vse | Vse | Vse |
* | * | * | * | * | * | * | * | * | * | * | * | * | * |
|
Uvod
Naprave Raspberry Pi Ltd se pogosto uporabljajo kot naprave za shranjevanje in spremljanje podatkov, pogosto na mestih, kjer lahko pride do nenadnih izpadov električne energije. Kot pri vsaki računalniški napravi lahko tudi izpadi električne energije povzročijo poškodbe pomnilnika. Ta dokument ponuja nekaj možnosti, kako preprečiti poškodbe podatkov v teh in drugih okoliščinah z izbiro ustreznih file sisteme in nastavitve za zagotavljanje celovitosti podatkov. Ta dokument predvideva, da Raspberry Pi uporablja operacijski sistem (OS) Raspberry Pi (Linux) in je v celoti posodobljen z najnovejšo vdelano programsko opremo in jedri.
Kaj je poškodba podatkov in zakaj do nje pride?
Poškodba podatkov se nanaša na nenamerne spremembe računalniških podatkov, ki se pojavijo med pisanjem, branjem, shranjevanjem, prenosom ali obdelavo. V tem dokumentu se sklicujemo le na shranjevanje in ne na prenos ali obdelavo. Do poškodbe lahko pride, ko se postopek pisanja prekine, preden se zaključi, na način, ki preprečuje dokončanje pisanja, na primerampče pride do izpada napajanja. Na tej točki je vredno na hitro predstaviti, kako operacijski sistem Linux (in posledično tudi Raspberry Pi OS) zapisuje podatke v pomnilnik. Linux običajno uporablja predpomnilnike za pisanje za shranjevanje podatkov, ki jih je treba zapisati v pomnilnik. Ti predpomnijo (začasno shranjujejo) podatke v pomnilniku RAM, dokler ni dosežena določena vnaprej določena omejitev, pri čemer se vsi preostali zapisi na medij za shranjevanje izvedejo v eni transakciji. Te vnaprej določene omejitve so lahko povezane s časom in/ali velikostjo. Na primerampPodatki se lahko shranijo v predpomnilnik in zapišejo v pomnilnik le vsakih pet sekund ali pa se zapišejo le, ko se nabere določena količina podatkov. Te sheme se uporabljajo za izboljšanje zmogljivosti: zapisovanje velikega dela podatkov naenkrat je hitrejše kot zapisovanje veliko majhnih delov podatkov.
Če pa med shranjevanjem podatkov v predpomnilnik in njihovim zapisovanjem pride do izpada napajanja, se ti podatki izgubijo. Druge možne težave se pojavijo v nadaljevanju procesa zapisovanja, med fizičnim zapisovanjem podatkov na pomnilniški medij. Ko je strojna oprema (npr.ampČeprav je vmesnik kartice Secure Digital (SD) naročen za pisanje podatkov, še vedno traja omejen čas, da se ti podatki fizično shranijo. Če v tem izjemno kratkem obdobju pride do izpada električne energije, se lahko podatki, ki se zapisujejo, poškodujejo. Pri izklopu računalniškega sistema, vključno z Raspberry Pi, je najboljša praksa uporaba možnosti izklopa. To bo zagotovilo, da se vsi predpomnjeni podatki zapišejo in da je imela strojna oprema čas, da dejansko zapiše podatke na pomnilniški medij. Kartice SD, ki jih uporablja večina naprav Raspberry Pi, so odlične kot poceni zamenjava za trde diske, vendar so sčasoma dovzetne za okvare, odvisno od načina uporabe. Bliskovni pomnilnik, ki se uporablja v karticah SD, ima omejeno življenjsko dobo cikla pisanja in ko se kartice približajo tej omejitvi, lahko postanejo nezanesljive. Večina kartic SD uporablja postopek, imenovan izravnavanje obrabe, da se zagotovi čim daljša življenjska doba, vendar lahko na koncu odpovejo. To lahko traja od mesecev do let, odvisno od tega, koliko podatkov je bilo zapisanih na kartico ali (še pomembneje) izbrisanih z nje. Ta življenjska doba se lahko med karticami močno razlikuje. Napaka SD kartice se običajno kaže z naključnimi file poškodbe, saj deli kartice SD postanejo neuporabni.
Podatki se lahko poškodujejo tudi na druge načine, vključno z, vendar ne omejeno na, okvarjenim medijem za shranjevanje, napakami v programski opremi za zapisovanje podatkov v pomnilnik (gonilniki) ali napakami v samih aplikacijah. V tej beli knjigi je vsak proces, pri katerem lahko pride do izgube podatkov, opredeljen kot dogodek poškodbe.
Kaj lahko povzroči operacijo pisanja?
Večina aplikacij izvaja nekakšno pisanje v pomnilnik, npr.ampinformacije o konfiguraciji le, posodobitve baze podatkov in podobno. Nekatere od teh fileso lahko celo začasni, tj. uporabljajo se le med delovanjem programa in jih ni treba vzdrževati med izklopom in izklopom napajanja; vendar pa še vedno povzročijo pisanje na pomnilniški medij. Tudi če vaša aplikacija dejansko ne zapisuje nobenih podatkov, bo Linux v ozadju nenehno pisal na pomnilnik, večinoma zapisoval podatke za beleženje.
Strojne rešitve
Čeprav to ni povsem v okviru te bele knjige, je vredno omeniti, da je preprečevanje nepričakovanih izpadov napajanja pogosto uporabljen in dobro razumljen ukrep proti izgubi podatkov. Naprave, kot so neprekinjeni napajalniki (UPS), zagotavljajo, da napajanje ostane stabilno, in če UPS izgubi napajanje, lahko med napajanjem iz baterije sporočijo računalniškemu sistemu, da je izpad napajanja neizbežen, tako da se lahko zaustavitev izvede elegantno, preden se izprazni rezervni vir napajanja. Ker imajo kartice SD omejeno življenjsko dobo, je morda koristno imeti režim zamenjave, ki zagotavlja, da se kartice SD zamenjajo, preden se jim izteče življenjska doba.
Robusten file sistemi
Obstajajo različni načini, kako lahko napravo Raspberry Pi zaščitimo pred poškodbami. Ti se razlikujejo po svoji sposobnosti preprečevanja poškodb, pri čemer vsako dejanje zmanjša možnost njihovega nastanka.
- Zmanjšanje števila zapisov
Že samo zmanjšanje količine pisanja, ki ga izvajajo vaše aplikacije in operacijski sistem Linux, ima lahko koristen učinek. Če veliko beležite podatke, se poveča verjetnost, da se bodo zapisi zgodili med dogodkom poškodbe. Zmanjšanje beleženja podatkov v vaši aplikaciji je odvisno od končnega uporabnika, vendar se lahko beleženje podatkov zmanjša tudi v Linuxu. To je še posebej pomembno, če uporabljate pomnilnik na osnovi bliskovnega pomnilnika (npr. eMMC, SD kartice) zaradi njihovega omejenega življenjskega cikla pisanja. - Spreminjanje časov potrjevanja
Čas potrditve za file Sistem določa čas, ki ga predpomni podatke, preden jih kopira v pomnilnik. Povečanje tega časa izboljša zmogljivost z združevanjem velikega števila zapisov, vendar lahko povzroči izgubo podatkov, če pride do poškodbe, preden so podatki zapisani. Zmanjšanje časa potrjevanja pomeni manjšo verjetnost poškodbe, ki povzroči izgubo podatkov, čeprav je ne prepreči v celoti.
Če želite spremeniti čas potrditve za glavni EXT4 file sistem na Raspberry Pi OS, morate urediti datoteko \etc\fstab file ki določa, kako file sistemi so nameščeni ob zagonu. - $sudo nano /etc/fstab
Vnosu EXT4 za korenski imenik dodajte naslednje file sistem:
- commit=
Torej, fstab je lahko videti nekako takole, kjer je čas potrditve nastavljen na tri sekunde. Čas potrditve bo privzeto pet sekund, če ni posebej nastavljen.
Začasno file sistemi
Če vloga zahteva začasno file shranjevanje, tj. podatki, ki se uporabljajo le med delovanjem aplikacije in jih ni treba shranjevati ob zaustavitvi, je dobra možnost za preprečevanje fizičnega pisanja v shranjevanje uporaba začasnega file sistem, tmpfs. Ker ti file Ker sistemi temeljijo na RAM-u (pravzaprav v virtualnem pomnilniku), se podatki, zapisani v tmpfs, nikoli ne zapišejo v fizični pomnilnik in zato ne vplivajo na življenjsko dobo bliskovnega pomnilnika in se ne morejo poškodovati zaradi morebitne poškodbe.
Ustvarjanje ene ali več lokacij tmpfs zahteva urejanje datoteke /etc/fstab file, ki nadzoruje vse file sistemi v operacijskem sistemu Raspberry Pi. Naslednji primerampLe zamenja lokacije shranjevanja /tmp in /var/log z začasnimi file sistemske lokacije. Drugi example, ki nadomešča standardno mapo za beleženje, omejuje skupno velikost datoteke file sistem na 16 MB.
- tmpfs /tmp privzete vrednosti tmpfs, brez časa 0 0
- tmpfs /var/log privzete vrednosti tmpfs, čas brez prekinitve, velikost=16m 0 0
Na voljo je tudi skript tretje osebe, ki pomaga nastaviti beleženje v RAM in ga najdete na GitHubu. Ta ima dodatno funkcijo, da beleženje iz RAM-a v vnaprej določenem intervalu izpisuje na disk.
Koren samo za branje file sistemi
Koren file sistem (rootfs) je file sistem na particiji diska, na kateri se nahaja korenski imenik, in je file sistem, na katerem so vsi ostali file Sistemi se priklopijo ob zagonu sistema. Na Raspberry Pi je to / in se privzeto nahaja na kartici SD kot particija EXT4, ki je v celoti bralno/pisalna. Obstaja tudi zagonska mapa, ki je priklopljena kot /boot in je particija FAT za branje/pisalno uporabo. Če korensko datoteko nastavite SAMO za branje, preprečite kakršen koli dostop do pisanja vanjo, zaradi česar je veliko bolj odporna na dogodke poškodb. Če pa niso sprejeti drugi ukrepi, to pomeni, da vanjo ni mogoče pisati. file sistem sploh ne deluje, zato je shranjevanje kakršnih koli podatkov iz vaše aplikacije v korensko datoteko (rootfs) onemogočeno. Če morate shraniti podatke iz aplikacije, vendar želite korensko datoteko samo za branje, je pogosta tehnika dodajanje pomnilniškega ključka USB ali podobnega, ki je namenjen samo shranjevanju uporabniških podatkov.
OPOMBA
Če uporabljate zamenjavo file pri uporabi samo za branje file sistem, boste morali premakniti swap file na particijo za branje/pisanje.
Prekrivanje file sistem
Prekrivanje file sistem (overlayfs) združuje dva file sistemi, zgornji del file sistem in nižji file sistem. Ko ime obstaja v obeh file sistemi, objekt v zgornjem file sistem je viden, medtem ko je objekt v spodnjem file Sistem je bodisi skrit bodisi, v primeru imenikov, združen z zgornjim objektom. Raspberry Pi ponuja možnost v raspi-config za omogočanje overlayfs. To naredi korenski (spodnji) objekt samo za branje in ustvari zgornji objekt, ki temelji na RAM-u. file sistem. To daje zelo podoben rezultat kot pri načinu samo za branje file sistem, pri čemer se vse uporabniške spremembe ob ponovnem zagonu izgubijo. Prekrivanje lahko omogočite z ukazno vrstico raspi-config ali z namizno aplikacijo Raspberry Pi Configuration v meniju Nastavitve.
Obstajajo tudi druge implementacije overlayf-ov, ki lahko sinhronizirajo zahtevane spremembe od zgornjega do spodnjega. file sistem po vnaprej določenem urniku. Na primerampTorej, lahko kopirate vsebino domače mape uporabnika iz zgornje v spodnjo mapo vsakih dvanajst ur. To omejuje postopek pisanja na zelo kratek čas, kar pomeni, da je verjetnost poškodb veliko manjša, vendar pomeni, da če se napajanje prekine pred sinhronizacijo, se vsi podatki, ustvarjeni od zadnje sinhronizacije, izgubijo. pSLC na računalniških modulih Pomnilnik eMMC, ki se uporablja v napravah Raspberry Pi Compute Module, je MLC (Multi-Level Cell), kjer vsaka pomnilniška celica predstavlja 2 bita. pSLC ali psevdo-enonivojska celica je vrsta tehnologije bliskovnega pomnilnika NAND, ki jo je mogoče omogočiti v združljivih napravah za shranjevanje MLC, kjer vsaka celica predstavlja le 1 bit. Zasnovana je tako, da zagotavlja ravnovesje med zmogljivostjo in vzdržljivostjo bliskovnega pomnilnika SLC ter stroškovno učinkovitostjo in večjo zmogljivostjo bliskovnega pomnilnika MLC. pSLC ima večjo vzdržljivost pisanja kot MLC, ker manj pogosto pisanje podatkov v celice zmanjša obrabo. Medtem ko MLC lahko ponudi približno 3,000 do 10,000 ciklov pisanja, lahko pSLC doseže bistveno višje številke in se približa ravnem vzdržljivosti SLC. Ta povečana vzdržljivost pomeni daljšo življenjsko dobo naprav, ki uporabljajo tehnologijo pSLC, v primerjavi s tistimi, ki uporabljajo standardno MLC.
MLC je stroškovno učinkovitejši od SLC pomnilnika, vendar pSLC ponuja boljšo zmogljivost in vzdržljivost kot čisti MLC, vendar to počne na račun kapacitete. Naprava MLC, konfigurirana za pSLC, bo imela polovico kapacitete (ali manj) kot standardna naprava MLC, saj vsaka celica shranjuje le en bit namesto dveh ali več.
Podrobnosti o izvedbi
pSLC je na eMMC implementiran kot izboljšano uporabniško območje (znano tudi kot izboljšano shranjevanje). Dejanska implementacija izboljšanega uporabniškega območja ni opredeljena v standardu MMC, vendar je običajno pSLC.
- Izboljšano uporabniško območje je koncept, medtem ko je pSLC izvedba.
- pSLC je eden od načinov za uvedbo izboljšanega uporabniškega območja.
- V času pisanja tega besedila eMMC, ki se uporablja v računalniških modulih Raspberry Pi, izvaja izboljšano uporabniško območje z uporabo pSLC.
- Celotnega uporabniškega območja eMMC ni treba konfigurirati kot izboljšano uporabniško območje.
- Programiranje pomnilniške regije kot izboljšano uporabniško območje je enkratna operacija. To pomeni, da je ni mogoče razveljaviti.
Vklop
Linux ponuja nabor ukazov za upravljanje particij eMMC v paketu mmc-utils. Namestite standardni operacijski sistem Linux na napravo CM in namestite orodja na naslednji način:
- sudo apt namestite mmc-utils
Če želite pridobiti informacije o eMMC (ta ukaz se preusmeri v less, saj je treba prikazati kar nekaj informacij):
- sudo mmc extcsd preberi /dev/mmcblk0 | manj
OPOZORILO
Naslednje operacije so enkratne – zaženete jih lahko enkrat in jih ni mogoče razveljaviti. Prav tako jih zaženite, preden uporabite računalniški modul, saj bodo izbrisale vse podatke. Zmogljivost eMMC-ja se bo zmanjšala na polovico prejšnje vrednosti.
Ukaz za vklop pSLC je mmc enh_area_set, ki zahteva več parametrov, ki določajo, koliko pomnilniškega območja naj bo omogočen pSLC. Naslednji primerample uporablja celotno območje. Za podrobnosti o uporabi podmnožice eMMC glejte pomoč za ukaz mmc (man mmc).
Po ponovnem zagonu naprave boste morali znova namestiti operacijski sistem, saj bo omogočanje pSLC izbrisalo vsebino eMMC.
Programska oprema Raspberry Pi CM Provisioner ima možnost nastavitve pSLC med postopkom oskrbovanja. To najdete na GitHubu na naslovu https://github.com/raspberrypi/cmprovision.
- Zunaj naprave file zagon sistemov / omrežja
Raspberry Pi se lahko zažene prek omrežne povezave, na primerampuporabo omrežja File Sistem (NFS). To pomeni, da ko naprava zaključi svoje prvetage boot, namesto da bi naložil njegovo jedro in korenski program file sistem s kartice SD se naloži z omrežnega strežnika. Ko se zažene, vse file Operacije se izvajajo na strežniku in ne na lokalni SD kartici, ki v postopku nima nobene nadaljnje vloge. - Rešitve v oblaku
Dandanes se veliko pisarniških opravil izvaja v brskalniku, vsi podatki pa so shranjeni na spletu v oblaku. Shranjevanje podatkov zunaj kartice SD lahko očitno izboljša zanesljivost, vendar na račun potrebe po stalni internetni povezavi in morebitnih stroškov ponudnikov storitev v oblaku. Uporabnik lahko za dostop do katere koli storitve v oblaku ponudnikov, kot so Google, Microsoft, Amazon itd., uporabi popolno namestitev operacijskega sistema Raspberry Pi z brskalnikom, optimiziranim za Raspberry Pi. Alternativa je eden od ponudnikov tankih odjemalcev, ki nadomeščajo operacijski sistem Raspberry Pi z operacijskim sistemom/aplikacijo, ki deluje iz virov, shranjenih na centralnem strežniku, namesto s kartice SD. Tanki odjemalci delujejo tako, da se oddaljeno povežejo s strežniškim računalniškim okoljem, kjer je shranjena večina aplikacij, občutljivih podatkov in pomnilnika.
Sklepi
Če se upoštevajo pravilni postopki izklopa, je shranjevanje na SD-kartico Raspberry Pi izjemno zanesljivo. To dobro deluje v domačem ali pisarniškem okolju, kjer je izklop mogoče nadzorovati, pri uporabi naprav Raspberry Pi v industrijskih primerih ali na območjih z nezanesljivim napajanjem pa lahko dodatni previdnostni ukrepi izboljšajo zanesljivost.
Skratka, možnosti za izboljšanje zanesljivosti lahko naštejemo takole:
- Uporabite dobro znano in zanesljivo kartico SD.
- Zmanjšajte število zapisov z daljšim časom potrjevanja in uporabo začasnih file sistemi z uporabo overlayfs ali podobnega.
- Uporabite shranjevanje zunaj naprave, kot je omrežni zagon ali shranjevanje v oblaku.
- Uvedite režim zamenjave SD kartic, preden se jim izteče življenjska doba.
- Uporabite UPS.
Raspberry Pi je blagovna znamka družbe Raspberry Pi Ltd
Raspberry Pi Ltd
Kolofon
© 2020-2023 Raspberry Pi Ltd (prej Raspberry Pi (Trading) Ltd.)
Ta dokumentacija je licencirana pod licenco Creative Commons Priznanje avtorstva-Brez predelav 4.0 International (CC BY-ND).
- datum izdelave: 2024. 06. 25
- različica gradnje: githash: 3e4dad9-clean
Pravno obvestilo o zavrnitvi odgovornosti
TEHNIČNE PODATKE IN PODATKE O ZANESLJIVOSTI ZA IZDELKE RASPBERRY PI (VKLJUČNO S PODATKOVNIMI LISTI), KI SO OBČASNO SPREMENJENI (»VIRI«), ZAGOTAVLJA RASPBERRY PI LTD (»RPL«) »KAKRŠNE SO« IN VSE IZRECNE ALI NAZNAČENE GARANCIJE, VKLJUČNO, VENDAR NE OMEJENO NAZNAČENA JAMSTVA ZA PRODAJO IN PRIMERNOST ZA DOLOČEN NAMEN SE ZAVRAČAJO. DO NAJVEČJEGA OBSEGA, KI GA DOVOLJUJE VELJAVNA ZAKONODAJA, RPL V NOBENEM PRIMERU NE ODGOVARJA ZA KAKRŠNO KOLI NEPOSREDNO, POSREDNO, NAKLJUČNO, POSEBNO, EKSEMPLARNO ALI POSLEDIČNO ŠKODO (VKLJUČNO, VENDAR NE OMEJENO NA NABAVO NADOMESTNEGA BLAGA ALI STORITEV). ICES; IZGUBA UPORABE PODATKOV Ali dobiček ali poslovne prekinitve), ne glede na to TAKŠNE ŠKODE.
RPL si pridržuje pravico do kakršnih koli izboljšav, izboljšav, popravkov ali drugih sprememb VIROV ali katerega koli izdelka, opisanega v njih, kadar koli in brez predhodnega obvestila. VIRI so namenjeni usposobljenim uporabnikom z ustrezno stopnjo znanja o oblikovanju. Uporabniki so izključno odgovorni za svojo izbiro in uporabo VIROV ter za kakršno koli uporabo izdelkov, opisanih v njih. Uporabnik se strinja, da bo RPL odvezal odgovornosti in ga varoval pred vsemi obveznostmi, stroški, škodo ali drugimi izgubami, ki izhajajo iz njihove uporabe VIROV. RPL uporabnikom dovoljuje uporabo VIROV izključno v povezavi z izdelki Raspberry Pi. Vsaka druga uporaba VIROV je prepovedana. Nobena licenca ni podeljena za nobeno drugo pravico intelektualne lastnine RPL ali druge pravice intelektualne lastnine tretjih oseb.
DEJAVNOSTI Z VISOKIM TVEGANJEM. Izdelki Raspberry Pi niso zasnovani, izdelani ali namenjeni za uporabo v nevarnih okoljih, ki zahtevajo varno delovanje, kot so na primer delovanje jedrskih objektov, navigacijski ali komunikacijski sistemi za letala, nadzor zračnega prometa, orožni sistemi ali varnostno kritične aplikacije (vključno s sistemi za vzdrževanje življenja in drugimi medicinskimi pripomočki), pri katerih bi lahko okvara izdelkov neposredno povzročila smrt, telesne poškodbe ali hudo fizično ali okoljsko škodo („Dejavnosti z visokim tveganjem“). RPL izrecno zavrača kakršno koli izrecno ali implicitno jamstvo za primernost za dejavnosti z visokim tveganjem in ne prevzema nobene odgovornosti za uporabo ali vključitev izdelkov Raspberry Pi v dejavnosti z visokim tveganjem. Izdelki Raspberry Pi so na voljo v skladu s standardnimi pogoji RPL. Zagotavljanje VIROV s strani RPL ne razširja ali kako drugače spreminja standardnih pogojev RPL, vključno z, vendar ne omejeno na, izjave o omejitvi odgovornosti in jamstva, izražena v njih.
Pogosto zastavljena vprašanja
- V: Katere izdelke Raspberry Pi podpira ta dokument?
A: Ta dokument velja za različne izdelke Raspberry Pi, vključno s Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 in Pico. - V: Kako lahko zmanjšam možnosti za poškodbe podatkov na moji napravi Raspberry Pi?
A: Poškodbe podatkov lahko zmanjšate z zmanjšanjem števila operacij pisanja, zlasti dejavnosti beleženja, in prilagajanjem časov potrditve za file sistem, kot je opisan v tem dokumentu.
Dokumenti / Viri
![]() |
Raspberry Pi postane bolj odporen File Sistem [pdf] Uporabniški priročnik Pi 0, Pi 1, Izdelava bolj odpornega File Sistem, bolj odporen File Sistem, odporen File sistem, File Sistem |