Raspberry Pi čini otpornijim File sustav
Opseg dokumenta
Ovaj se dokument odnosi na sljedeće Raspberry Pi proizvode:
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 | Sve | Sve | Sve | Sve | Sve | Sve | Sve |
* | * | * | * | * | * | * | * | * | * | * | * | * | * |
|
Uvod
Uređaji Raspberry Pi Ltd često se koriste kao uređaji za pohranu podataka i nadzor, često na mjestima gdje može doći do iznenadnih nestanaka struje. Kao i kod svakog računalnog uređaja, nestanci struje mogu uzrokovati oštećenje pohrane. Ova bijela knjiga pruža neke mogućnosti o tome kako spriječiti oštećenje podataka u ovim i drugim okolnostima odabirom odgovarajućeg file sustava i postavki kako bi se osigurao integritet podataka. Ova bijela knjiga pretpostavlja da Raspberry Pi pokreće operativni sustav (OS) Raspberry Pi (Linux) i da je u potpunosti ažuriran s najnovijim firmverom i kernelima.
Što je oštećenje podataka i zašto nastaje?
Oštećenje podataka odnosi se na nenamjerne promjene računalnih podataka do kojih dolazi tijekom pisanja, čitanja, pohrane, prijenosa ili obrade. U ovom dokumentu mislimo samo na pohranu, a ne na prijenos ili obradu. Do kvara može doći kada se proces pisanja prekine prije nego što se dovrši, na način koji sprječava završetak pisanja, npr.ample ako se izgubi napajanje. Vrijedi u ovom trenutku kratko predstaviti kako OS Linux (i, prema proširenju, OS Raspberry Pi) zapisuje podatke u pohranu. Linux obično koristi predmemorije pisanja za pohranu podataka koji se trebaju zapisati u memoriju. Oni predmemoriraju (privremeno pohranjuju) podatke u memoriju s izravnim pristupom (RAM) dok se ne dosegne određeno unaprijed definirano ograničenje, a tada se sva neovršena pisanja na medij za pohranu ostvaruju u jednoj transakciji. Ova unaprijed definirana ograničenja mogu biti povezana s vremenom i/ili veličinom. Na primjeramptj. podaci se mogu predmemorirati i zapisivati u pohranu samo svakih pet sekundi ili zapisivati samo kada se nakupi određena količina podataka. Ove se sheme koriste za poboljšanje performansi: zapisivanje velikog dijela podataka odjednom je brže od zapisivanja puno malih dijelova podataka.
Međutim, ako se napajanje prekine između pohranjivanja podataka u predmemoriju i njihovog zapisivanja, ti se podaci gube. Drugi mogući problemi nastaju dalje u procesu pisanja, tijekom fizičkog pisanja podataka na medij za pohranu. Nakon što hardver (npr.amptj. sučelju Secure Digital (SD) kartice se nalaže pisanje podataka, i dalje je potrebno ograničeno vrijeme da se ti podaci fizički pohrane. Ponovno, ako se dogodi nestanak struje tijekom tog izuzetno kratkog razdoblja, moguće je da se podaci koji se zapisuju oštete. Prilikom isključivanja računalnog sustava, uključujući Raspberry Pi, najbolja praksa je koristiti opciju isključivanja. To će osigurati da se svi predmemorirani podaci ispišu i da je hardver imao vremena da zapravo zapiše podatke na medij za pohranu. SD kartice koje koristi većina Raspberry Pi uređaja izvrsne su kao jeftine zamjene za tvrde diskove, ali su s vremenom podložne kvarovima, ovisno o tome kako se koriste. Flash memorija koja se koristi u SD karticama ima ograničen vijek trajanja ciklusa pisanja i kako se kartice približavaju tom ograničenju, mogu postati nepouzdane. Većina SD kartica koristi postupak koji se naziva izjednačavanje istrošenosti kako bi se osiguralo da traju što je dulje moguće, ali na kraju mogu otkazati. To može biti od mjeseci do godina, ovisno o tome koliko je podataka zapisano na karticu ili (što je još važnije) izbrisano s kartice. Taj vijek trajanja može se dramatično razlikovati između kartica. Kvar SD kartice obično se označava nasumičnim file oštećenja jer dijelovi SD kartice postaju neupotrebljivi.
Postoje i drugi načini oštećenja podataka, uključujući, ali ne ograničavajući se na, neispravan medij za pohranu, greške u softveru za pisanje u pohranu (upravljački programi) ili greške u samim aplikacijama. Za potrebe ovog dokumenta, svaki proces kojim može doći do gubitka podataka definira se kao događaj oštećenja.
Što može uzrokovati operaciju pisanja?
Većina aplikacija obavlja neku vrstu zapisa u pohranu, nprampkonfiguracijske informacije, ažuriranja baze podataka i slično. Neki od ovih filemogu čak biti privremeni, tj. koristiti se samo dok je program pokrenut, i ne zahtijevaju održavanje tijekom ciklusa napajanja; međutim, oni i dalje rezultiraju pisanjem na medij za pohranu. Čak i ako vaša aplikacija zapravo ne zapisuje nikakve podatke, Linux će u pozadini neprestano pisati u pohranu, uglavnom zapisujući informacije o zapisivanju.
Hardverska rješenja
Iako nije u potpunosti unutar nadležnosti ove bijele knjige, vrijedno je spomenuti da je sprječavanje neočekivanih prekida napajanja često korišteno i dobro shvaćeno ublažavanje gubitka podataka. Uređaji kao što su neprekidni izvori napajanja (UPS-ovi) osiguravaju da napajanje ostane čvrsto i, ako se napajanje UPS-a izgubi, dok je na baterijskom napajanju, može obavijestiti računalni sustav da je gubitak struje neizbježan tako da se isključivanje može lijepo nastaviti prije nego što nestane rezervnog napajanja. Budući da SD kartice imaju ograničen životni vijek, moglo bi biti korisno imati režim zamjene koji osigurava zamjenu SD kartica prije nego što dođu do kraja životnog vijeka.
Robustan file sustava
Postoje različiti načini na koje se Raspberry Pi uređaj može zaštititi od koruptivnih događaja. Oni se razlikuju u svojoj sposobnosti da spriječe korupciju, pri čemu svaka radnja smanjuje mogućnost da do nje dođe.
- Smanjenje zapisa
Jednostavno smanjenje količine pisanja koje rade vaše aplikacije i Linux OS može imati blagotvoran učinak. Ako radite puno bilježenja, tada se povećavaju šanse da se pisanje dogodi tijekom događaja korupcije. Smanjenje prijavljivanja u vašoj aplikaciji ovisi o krajnjem korisniku, ali prijavljivanje u Linux također se može smanjiti. Ovo je posebno važno ako koristite pohranu temeljenu na flash memoriji (npr. eMMC, SD kartice) zbog njihovog ograničenog životnog ciklusa pisanja. - Promjena vremena predaje
Vrijeme izvršenja za a file sustav je količina vremena za koje sprema podatke prije nego što ih sve kopira u pohranu. Povećanje ovog vremena poboljšava izvedbu skupljanjem velikog broja pisanja, ali može dovesti do gubitka podataka ako dođe do kvara prije nego što se podaci zapišu. Smanjenje vremena predaje značit će manje šanse da događaj kvara dovede do gubitka podataka, iako ga ne sprječava u potpunosti.
Za promjenu vremena predaje za glavni EXT4 file sustav na Raspberry Pi OS-u, potrebno je urediti \etc\fstab file koji definira kako file sustavi se montiraju pri pokretanju. - $sudo nano /etc/fstab
Dodajte sljedeće u EXT4 unos za root file sustav:
- počiniti=
Dakle, fstab može izgledati otprilike ovako, gdje je vrijeme predaje postavljeno na tri sekunde. Vrijeme izvršenja bit će zadano pet sekundi ako nije posebno postavljeno.
Privremeni file sustava
Ako zahtjev zahtijeva privremenu file pohranjivanje, tj. podaci koji se koriste samo dok je aplikacija pokrenuta i nije ih potrebno spremati nakon isključivanja, tada je dobra opcija za sprječavanje fizičkog pisanja u pohranjivanje upotreba privremene file sustav, tmpfs. Jer ovi file sustavi se temelje na RAM-u (zapravo, u virtualnoj memoriji), svi podaci zapisani u tmpfs nikada se ne zapisuju u fizičku pohranu, i stoga ne utječu na životni vijek flasha, i ne mogu se oštetiti zbog događaja oštećenja.
Stvaranje jedne ili više tmpfs lokacija zahtijeva uređivanje /etc/fstab file, koji kontrolira sve file sustava pod Raspberry Pi OS. Sljedeći prample zamjenjuje lokacije temeljene na pohrani /tmp i /var/log s privremenim file lokacije sustava. Drugi bivšiample, koji zamjenjuje standardnu mapu za bilježenje, ograničava ukupnu veličinu datoteke file sustav na 16MB.
- tmpfs /tmp tmpfs zadane vrijednosti,noatime 0 0
- tmpfs /var/log tmpfs zadane postavke, vrijeme_zadatka, veličina=16m 0 0
Postoji i skripta treće strane koja pomaže u postavljanju zapisivanja u RAM, a koja se može pronaći na GitHubu. Ovo ima dodatnu značajku izbacivanja zapisa temeljenih na RAM-u na disk u unaprijed definiranom intervalu.
Korijen samo za čitanje file sustava
Korijen file sustav (rootfs) je file sustava na particiji diska na kojoj se nalazi korijenski direktorij, a to je file sustav na kojem su svi ostali file sustavi se montiraju dok se sustav diže. Na Raspberry Pi je /, a prema zadanim postavkama nalazi se na SD kartici kao EXT4 particija za potpuno čitanje/pisanje. Tu je i mapa za pokretanje, koja je montirana kao /boot i FAT particija je za čitanje/pisanje. Omogućavanje rootfs-a SAMO za čitanje sprječava bilo kakav pristup upisivanju u njega, čineći ga mnogo otpornijim na događaje oštećenja. Međutim, osim ako se ne poduzmu druge radnje, to znači da ništa ne može pisati na file sustav uopće, tako da je spremanje podataka bilo koje vrste iz vaše aplikacije u rootfs onemogućeno. Ako trebate pohraniti podatke iz svoje aplikacije, ali želite rootfs samo za čitanje, uobičajena tehnika je dodavanje USB memorijskog ključa ili sličnog koji služi samo za pohranu korisničkih podataka.
BILJEŠKA
Ako koristite zamjenu file kada koristite samo za čitanje file sustava, morat ćete premjestiti swap file na particiju za čitanje/pisanje.
Prekrivanje file sustav
Prekrivanje file sustav (overlayfs) kombinira dva file sustavi, gornji dio file sustav i niži file sustav. Kad ime postoji u oba file sustava, objekt u gor file sustav je vidljiv dok je objekt u donjem file Sustav je ili skriven ili, u slučaju direktorija, spojen s gornjim objektom. Raspberry Pi nudi opciju u raspi-config za omogućavanje overlayfs-a. To čini rootfs (donji) samo za čitanje i stvara gornji objekt temeljen na RAM-u. file sustav. Ovo daje vrlo sličan rezultat samo za čitanje file sustav, pri čemu će se sve korisničke promjene izgubiti nakon ponovnog pokretanja. Overlayfs možete omogućiti pomoću naredbenog retka raspi-config ili pomoću aplikacije Raspberry Pi Configuration na računalu u izborniku Postavke.
Postoje i druge implementacije slojeva koji mogu sinkronizirati potrebne promjene s gornjeg na donji file sustav prema unaprijed utvrđenom rasporedu. Na primjerampnpr., možete kopirati sadržaj korisnikove početne mape s gornje na donju svakih dvanaest sati. To ograničava proces pisanja na vrlo kratko vrijeme, što znači da je oštećenje mnogo manje vjerojatno, ali znači da ako se napajanje izgubi prije sinkronizacije, svi podaci generirani od posljednjeg bit će izgubljeni. pSLC na Compute modulima eMMC memorija koja se koristi na Raspberry Pi Compute Module uređajima je MLC (Multi-Level Cell), gdje svaka memorijska ćelija predstavlja 2 bita. pSLC, ili pseudo-Single Level Cell, vrsta je NAND flash memorijske tehnologije koja se može omogućiti u kompatibilnim MLC uređajima za pohranu, gdje svaka ćelija predstavlja samo 1 bit. Dizajnirana je kako bi osigurala ravnotežu između performansi i izdržljivosti SLC flash memorije te isplativosti i većeg kapaciteta MLC flash memorije. pSLC ima veću izdržljivost pisanja od MLC-a jer rjeđe pisanje podataka u ćelije smanjuje trošenje. Dok MLC može ponuditi oko 3,000 do 10,000 XNUMX ciklusa pisanja, pSLC može postići znatno veće brojeve, približavajući se razinama izdržljivosti SLC-a. Ova povećana izdržljivost znači dulji vijek trajanja uređaja koji koriste pSLC tehnologiju u usporedbi s onima koji koriste standardni MLC.
MLC je isplativiji od SLC memorije, ali iako pSLC nudi bolje performanse i izdržljivost od čistog MLC-a, čini to nauštrb kapaciteta. MLC uređaj konfiguriran za pSLC imat će upola manji kapacitet (ili manje) od standardnog MLC uređaja budući da svaka ćelija pohranjuje samo jedan bit umjesto dva ili više.
Pojedinosti o provedbi
pSLC je implementiran na eMMC-u kao Enhanced User Area (također poznato kao Enhanced storage). Stvarna implementacija Enhanced User Area nije definirana u MMC standardu, ali je obično pSLC.
- Poboljšano korisničko područje je koncept, dok je pSLC implementacija.
- pSLC je jedan od načina implementacije poboljšanog korisničkog područja.
- U trenutku pisanja ovog teksta, eMMC korišten na Raspberry Pi Compute modulima implementira Enhanced User Area pomoću pSLC-a.
- Nema potrebe konfigurirati cijelo korisničko područje eMMC-a kao prošireno korisničko područje.
- Programiranje memorijske regije kao proširenog korisničkog područja je jednokratna operacija. To znači da se ne može poništiti.
Uključivanje
Linux pruža skup naredbi za upravljanje eMMC particijama u mmc-utils paketu. Instalirajte standardni Linux OS na CM uređaj i instalirajte alate na sljedeći način:
- sudo apt instalirajte mmc-utils
Da biste dobili informacije o eMMC-u (ova se naredba usmjerava u manje jer ima dosta informacija za prikazati):
- sudo mmc extcsd čita /dev/mmcblk0 | manje
UPOZORENJE
Sljedeće operacije su jednokratne – možete ih pokrenuti jednom i ne mogu se poništiti. Također ih trebate pokrenuti prije upotrebe računalnog modula jer će izbrisati sve podatke. Kapacitet eMMC-a smanjit će se na polovicu prethodne vrijednosti.
Naredba koja se koristi za uključivanje pSLC-a je mmc enh_area_set, koja zahtijeva nekoliko parametara koji joj govore preko koliko memorijskog područja pSLC treba biti omogućen. Sljedeći prample koristi cijelo područje. Pogledajte pomoć za mmc naredbu (man mmc) za detalje o tome kako koristiti podskup eMMC-a.
Nakon što se uređaj ponovno pokrene, morat ćete ponovno instalirati operativni sustav jer će omogućavanje pSLC-a izbrisati sadržaj eMMC-a.
Softver Raspberry Pi CM Provisioner ima opciju postavljanja pSLC-a tijekom procesa opskrbe. To se može pronaći na GitHubu na https://github.com/raspberrypi/cmprovision.
- Izvan uređaja file sustavi / pokretanje mreže
Raspberry Pi se može pokrenuti putem mrežne veze, nprample pomoću mreže File Sustav (NFS). To znači da nakon što uređaj završi svoje prvetage boot, umjesto učitavanja kernela i korijena file sustav sa SD kartice, učitava se s mrežnog poslužitelja. Jednom trčanje, sve file operacije djeluju na poslužitelju, a ne na lokalnoj SD kartici, koja nema daljnju ulogu u postupku. - Rješenja u oblaku
Danas se mnogi uredski zadaci odvijaju u pregledniku, a svi se podaci pohranjuju online u oblaku. Održavanje pohrane podataka izvan SD kartice očito može poboljšati pouzdanost, nauštrb potrebe za stalnom vezom s internetom, kao i mogućih naknada od pružatelja usluga oblaka. Korisnik može koristiti potpunu instalaciju OS Raspberry Pi, s preglednikom optimiziranim za Raspberry Pi, za pristup bilo kojem servisu u oblaku dobavljača kao što su Google, Microsoft, Amazon, itd. Alternativa je jedan od dobavljača tankog klijenta, koji zamjenjuje Raspberry Pi OS OS/aplikacijom koja radi iz resursa pohranjenih na središnjem poslužitelju umjesto SD kartice. Tanki klijenti rade daljinskim povezivanjem s računalnim okruženjem temeljenim na poslužitelju gdje se pohranjuje većina aplikacija, osjetljivih podataka i memorije.
Zaključci
Kada se slijede ispravni postupci gašenja, pohrana Raspberry Pija na SD karticu izuzetno je pouzdana. To dobro funkcionira u kućnom ili uredskom okruženju gdje se gašenje može kontrolirati, ali kada se Raspberry Pi uređaji koriste u industrijskim slučajevima ili u područjima s nepouzdanim napajanjem, dodatne mjere opreza mogu poboljšati pouzdanost.
Ukratko, opcije za poboljšanje pouzdanosti mogu se navesti kako slijedi:
- Koristite dobro poznatu i pouzdanu SD karticu.
- Smanjite broj upisa korištenjem duljih vremena potvrđivanja, korištenjem privremenih file sustave, korištenjem overlayfs-a ili slično.
- Koristite pohranu izvan uređaja, kao što je mrežno pokretanje ili pohrana u oblaku.
- Uvedite režim zamjene SD kartica prije nego što im istekne vijek trajanja.
- Koristite UPS.
Raspberry Pi je zaštitni znak Raspberry Pi Ltd
Raspberry Pi Ltd
Znak štampara
© 2020-2023 Raspberry Pi Ltd (bivši Raspberry Pi (Trading) Ltd.)
Ova dokumentacija je licencirana pod Creative Commons Imenovanje-Bez prerada 4.0 International (CC BY-ND).
- datum izrade: 2024.
- verzija-builda: githash: 3e4dad9-clean
Obavijest o odricanju od pravne odgovornosti
TEHNIČKE PODATKE I PODATKE O POUZDANOSTI ZA RASPBERRY PI PROIZVODE (UKLJUČUJUĆI PODATKOVNE TABLICE) POVREMENO MODIFICIRANE (“RESURSI”) PRUŽA RASPBERRY PI LTD (“RPL”) “KAKVI JESU” I SVA IZRIČITA ILI PODRAZUMEVANA JAMSTVA, UKLJUČUJUĆI, ALI NE OGRANIČENO TO, IMPLICIRANA JAMSTVA O PRODAJI I PRIKLADNOSTI ZA ODREĐENU NAMJENU SE ODRICU. U MAKSIMALNOJ MJERI DOPUŠTENOJ PRIMJENJIVIM ZAKONOM, RPL NI U KOJEM SLUČAJU NEĆE BITI ODGOVORAN ZA BILO KAKVU IZRAVNU, NEIZRAVNU, SLUČAJNU, POSEBNU, EKZEMPLARNU ILI POSLJEDIČNU ŠTETU (UKLJUČUJUĆI, ALI NE OGRANIČENO NA, NABAVU ZAMJENSKE ROBE ILI SE USLUGE; GUBITAK KORIŠTENJA, PODATAKA , ILI DOBITI; ILI PREKIDA U POSLOVANJU) KAKO BILO UZROKOVANO I NA BILO KOJOJ TEORIJI ODGOVORNOSTI, BILO U UGOVORU, STRIKTNOJ ODGOVORNOSTI ILI DELIKTU (UKLJUČUJUĆI NEMAR ILI NA DRUGI NAČIN) KOJI NA BILO KOJI NAČIN PROIZILAZE KORIŠTENJEM RESURSA, ČAK I AKO JE UPOZORENO O MOGUĆNOSTI. ITY TAKVE ŠTETE.
RPL zadržava pravo na bilo kakva poboljšanja, ispravke ili bilo koje druge izmjene RESURSA ili bilo kojeg proizvoda opisanog u njima u bilo kojem trenutku i bez daljnje obavijesti. RESURSI su namijenjeni vještim korisnicima s odgovarajućom razinom znanja o dizajnu. Korisnici su isključivo odgovorni za svoj odabir i korištenje RESURSA i bilo kakvu primjenu proizvoda opisanih u njima. Korisnik se slaže obeštetiti i zaštititi RPL od svih obveza, troškova, šteta ili drugih gubitaka koji proizlaze iz njihove upotrebe RESURSA. RPL daje korisnicima dopuštenje za korištenje RESURSA isključivo u kombinaciji s Raspberry Pi proizvodima. Svaka druga upotreba RESURSA je zabranjena. Ne daje se licenca za bilo koje drugo RPL ili pravo intelektualnog vlasništva treće strane.
AKTIVNOSTI VISOKOG RIZIKA. Raspberry Pi proizvodi nisu dizajnirani, proizvedeni niti namijenjeni za upotrebu u opasnim okruženjima koja zahtijevaju sigurne performanse, kao što je rad nuklearnih postrojenja, navigacijski ili komunikacijski sustavi zrakoplova, kontrola zračnog prometa, sustavi naoružanja ili sigurnosno kritične aplikacije (uključujući sustave za održavanje života i druge medicinske uređaje), u kojima bi kvar proizvoda mogao izravno dovesti do smrti, tjelesnih ozljeda ili teške fizičke ili ekološke štete („Aktivnosti visokog rizika“). RPL se izričito odriče bilo kakvog izričitog ili implicitnog jamstva o prikladnosti za aktivnosti visokog rizika i ne preuzima nikakvu odgovornost za upotrebu ili uključivanje Raspberry Pi proizvoda u aktivnosti visokog rizika. Raspberry Pi proizvodi pružaju se u skladu sa Standardnim uvjetima RPL-a. RPL-ovo pružanje RESURSA ne proširuje niti na drugi način mijenja Standardne uvjete RPL-a, uključujući, ali ne ograničavajući se na odricanja od odgovornosti i jamstva izražena u njima.
Često postavljana pitanja
- P: Koje Raspberry Pi proizvode podržava ovaj dokument?
A: Ovaj dokument odnosi se na razne Raspberry Pi proizvode, uključujući Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 i Pico. - P: Kako mogu smanjiti šanse za oštećenje podataka na svom Raspberry Pi uređaju?
A: Oštećenje podataka možete smanjiti minimiziranjem operacija pisanja, posebno aktivnosti zapisivanja, i prilagođavanjem vremena potvrđivanja za file sustav kako je opisano u ovom dokumentu.
Dokumenti / Resursi
![]() |
Raspberry Pi čini otpornijim File sustav [pdf] Korisnički priručnik Pi 0, Pi 1, stvaranje otpornijeg File Sustav, otporniji File Sustav, otporan File sustav, File sustav |