Raspberry Pi és més resistent File Sistema
Àmbit del document
Aquest document s'aplica als següents productes 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 | Tots | Tots | Tots | Tots | Tots | Tots | Tots |
* | * | * | * | * | * | * | * | * | * | * | * | * | * |
|
Introducció
Els dispositius Raspberry Pi Ltd s'utilitzen amb freqüència com a dispositius d'emmagatzematge i monitorització de dades, sovint en llocs on es poden produir talls d'alimentació sobtats. Com amb qualsevol dispositiu informàtic, els talls d'alimentació poden causar corrupció de l'emmagatzematge. Aquest document tècnic ofereix algunes opcions sobre com prevenir la corrupció de dades en aquestes i altres circumstàncies seleccionant les opcions adequades. file sistemes i configuracions per garantir la integritat de les dades. Aquest document tècnic assumeix que la Raspberry Pi executa el sistema operatiu (SO) Raspberry Pi (Linux) i que està completament actualitzada amb el firmware i els nuclis més recents.
Què és la corrupció de dades i per què es produeix?
La corrupció de dades fa referència a canvis no desitjats en les dades informàtiques que es produeixen durant l'escriptura, la lectura, l'emmagatzematge, la transmissió o el processament. En aquest document només ens referim a l'emmagatzematge, en lloc de la transmissió o el processament. La corrupció es pot produir quan un procés d'escriptura s'interromp abans que es completi, de manera que s'impedeix que l'escriptura es completi, per exemple.ampsi es perd l'alimentació. En aquest punt, val la pena fer una breu introducció a com el sistema operatiu Linux (i, per extensió, el sistema operatiu Raspberry Pi) escriu dades a l'emmagatzematge. Linux normalment utilitza memòries cau d'escriptura per emmagatzemar dades que s'han d'escriure a l'emmagatzematge. Aquestes emmagatzemen temporalment les dades a la memòria RAM fins que s'arriba a un cert límit predefinit, moment en què totes les escriptures pendents al suport d'emmagatzematge es fan en una sola transacció. Aquests límits predefinits poden estar relacionats amb el temps i/o la mida. Per exempleampÉs a dir, les dades es poden emmagatzemar a la memòria cau i només escriure-les a l'emmagatzematge cada cinc segons, o només escriure-les quan s'ha acumulat una certa quantitat de dades. Aquests esquemes s'utilitzen per millorar el rendiment: escriure un gran bloc de dades de cop és més ràpid que escriure molts blocs petits de dades.
Tanmateix, si es perd energia entre l'emmagatzematge de dades a la memòria cau i l'escriptura, aquestes dades es perden. Altres possibles problemes sorgeixen més endavant en el procés d'escriptura, durant l'escriptura física de dades al suport d'emmagatzematge. Un cop una peça de maquinari (per exemple,ampés a dir, la interfície de la targeta Secure Digital (SD)) rep l'ordre d'escriure dades, encara triga un temps finit a emmagatzemar-se físicament aquestes dades. De nou, si es produeix una fallada d'alimentació durant aquest període extremadament breu, és possible que les dades que s'escriuen es corrompin. Quan s'apaga un sistema informàtic, inclosa la Raspberry Pi, la millor pràctica és utilitzar l'opció d'apagada. Això garantirà que totes les dades emmagatzemades a la memòria cau s'escriguin i que el maquinari hagi tingut temps d'escriure realment les dades al suport d'emmagatzematge. Les targetes SD utilitzades per la majoria dels dispositius Raspberry Pi són excel·lents com a substituts econòmics del disc dur, però són susceptibles de fallar amb el temps, depenent de com s'utilitzin. La memòria flash utilitzada a les targetes SD té una vida útil del cicle d'escriptura limitada i, a mesura que les targetes s'acosten a aquest límit, poden tornar-se poc fiables. La majoria de les targetes SD utilitzen un procediment anomenat anivellament de desgast per assegurar-se que durin el màxim possible, però al final poden fallar. Això pot ser de mesos a anys, depenent de quantes dades s'han escrit o (més important) s'han esborrat de la targeta. Aquesta vida útil pot variar dràsticament entre targetes. La fallada de la targeta SD normalment s'indica per errors aleatoris file corrupcions a mesura que parts de la targeta SD esdevenen inutilitzables.
Hi ha altres maneres en què les dades es poden corrompre, com ara, entre d'altres, un suport d'emmagatzematge defectuós, errors en el programari d'escriptura d'emmagatzematge (controladors) o errors en les pròpies aplicacions. Als efectes d'aquest document tècnic, qualsevol procés pel qual es pugui produir una pèrdua de dades es defineix com un esdeveniment de corrupció.
Què pot causar una operació d'escriptura?
La majoria d'aplicacions escrivien a l'emmagatzematge, per exempleampinformació de configuració de fitxers, actualitzacions de la base de dades i similars. Alguns d'aquests fileEls errors poden ser temporals, és a dir, només s'utilitzen mentre el programa s'està executant i no cal mantenir-los durant un cicle d'apagada i apagada; tanmateix, encara resulten en escriptures al suport d'emmagatzematge. Fins i tot si l'aplicació no escriu cap dada, en segon pla Linux estarà constantment escrivint a l'emmagatzematge, principalment escrivint informació de registre.
Solucions de maquinari
Tot i que no és totalment dins de l'àmbit d'aquest document tècnic, val la pena esmentar que la prevenció de talls d'energia inesperats és una mitigació habitual i ben coneguda contra la pèrdua de dades. Els dispositius com els sistemes d'alimentació ininterrompuda (SAI) garanteixen que la font d'alimentació es mantingui sòlida i, si es perd energia al SAI, mentre estan alimentats per bateria, poden indicar al sistema informàtic que la pèrdua d'energia és imminent, de manera que l'apagada es pot produir correctament abans que s'esgoti la font d'alimentació de reserva. Com que les targetes SD tenen una vida útil limitada, pot ser útil tenir un règim de substitució que garanteixi que les targetes SD es substitueixin abans que tinguin l'oportunitat d'arribar al final de la seva vida útil.
Robusta file sistemes
Hi ha diverses maneres de protegir un dispositiu Raspberry Pi contra esdeveniments de corrupció. Aquestes varien en la seva capacitat per prevenir la corrupció, i cada acció redueix la possibilitat que es produeixi.
- Reducció d'escriptures
Simplement reduir la quantitat d'escriptura que fan les vostres aplicacions i el sistema operatiu Linux pot tenir un efecte beneficiós. Si esteu fent molts registres, les possibilitats que es produeixin escriptures durant un esdeveniment de corrupció augmenten. La disminució del registre a la vostra aplicació depèn de l'usuari final, però el registre a Linux també es pot reduir. Això és especialment rellevant si utilitzeu emmagatzematge basat en flash (per exemple, eMMC, targetes SD) a causa del seu cicle de vida d'escriptura limitat. - Canviar els temps de commit
El temps de compromís per a un file El temps que el sistema emmagatzema les dades a la memòria cau abans de copiar-les totes a l'emmagatzematge. Augmentar aquest temps millora el rendiment en agrupar moltes escriptures, però pot provocar la pèrdua de dades si hi ha un esdeveniment de corrupció abans que s'escriguin les dades. Reduir el temps de confirmació significarà menys possibilitats que un esdeveniment de corrupció provoqui la pèrdua de dades, tot i que no ho evita completament.
Per canviar el temps de confirmació per a l'EXT4 principal file sistema al sistema operatiu Raspberry Pi, cal editar el fitxer \etc\fstab file que defineix com file Els sistemes es munten a l'arrencada. - $sudo nano /etc/fstab
Afegiu el següent a l'entrada EXT4 per a l'arrel file sistema:
- compromís=
Així doncs, fstab pot tenir un aspecte semblant a aquest, on el temps de confirmació s'ha establert en tres segons. El temps de confirmació serà per defecte de cinc segons si no s'estableix específicament.
Temporal file sistemes
Si una sol·licitud requereix un termini file emmagatzematge, és a dir, dades que només s'utilitzen mentre l'aplicació s'està executant i no cal que es guardin després d'un apagament, una bona opció per evitar escriptures físiques a l'emmagatzematge és utilitzar un emmagatzematge temporal file sistema, tmpfs. Com que aquests file Els sistemes es basen en RAM (en realitat, en memòria virtual), les dades escrites en un tmpfs no s'escriuen mai a l'emmagatzematge físic i, per tant, no afecten la vida útil de la memòria flaix i no es poden danyar en un esdeveniment de corrupció.
Crear una o més ubicacions tmpfs requereix editar el fitxer /etc/fstab file, que controla tots els file sistemes sota el sistema operatiu Raspberry Pi. El següent exempleample substitueix les ubicacions basades en l'emmagatzematge /tmp i /var/log per ubicacions temporals file ubicacions del sistema. El segon exempleample, que substitueix la carpeta de registre estàndard, limita la mida total de file sistema a 16 MB.
- tmpfs /tmp tmpfs valors per defecte, noatime 0 0
- tmpfs /var/log valors predeterminats de tmpfs, noatime, mida=16m 0 0
També hi ha un script de tercers que ajuda a configurar el registre a la RAM, que es pot trobar a GitHub. Té la funció addicional de descarregar els registres basats en la RAM al disc a un interval predefinit.
Arrel de només lectura file sistemes
L'arrel file El sistema (rootfs) és el file sistema a la partició de disc on es troba el directori arrel, i és el file sistema en què tots els altres file Els sistemes es munten a mesura que s'inicia el sistema. A la Raspberry Pi és /, i per defecte es troba a la targeta SD com a partició EXT4 de lectura/escriptura completa. També hi ha una carpeta d'arrencada, que es munta com a /boot i és una partició FAT de lectura/escriptura. Fer que rootfs sigui NOMÉS de lectura impedeix qualsevol tipus d'accés d'escriptura, cosa que el fa molt més robust davant d'esdeveniments de corrupció. Tanmateix, tret que es prenguin altres accions, això vol dir que res no pot escriure al file sistema en absolut, de manera que desar dades de qualsevol tipus de la vostra aplicació al rootfs està desactivat. Si necessiteu emmagatzemar dades de la vostra aplicació però voleu un rootfs de només lectura, una tècnica habitual és afegir una memòria USB o similar que només serveixi per emmagatzemar dades d'usuari.
NOTA
Si esteu utilitzant un intercanvi file quan s'utilitza una funció de només lectura file sistema, haureu de moure el swap file a una partició de lectura/escriptura.
Superposició file sistema
Una superposició file sistema (overlayfs) combina dos file sistemes, una part superior file sistema i un nivell inferior file sistema. Quan existeix un nom en tots dos file sistemes, l'objecte a la part superior file el sistema és visible mentre l'objecte a la part inferior file El sistema està ocult o, en el cas dels directoris, fusionat amb l'objecte superior. Raspberry Pi ofereix una opció a raspi-config per habilitar un overlayfs. Això fa que el rootfs (inferior) sigui de només lectura i crea un directori superior basat en RAM. file sistema. Això dóna un resultat molt similar al de només lectura file sistema, i tots els canvis de l'usuari es perden en reiniciar. Podeu habilitar un overlayfs mitjançant la línia d'ordres raspi-config o mitjançant l'aplicació de configuració de Raspberry Pi d'escriptori al menú Preferències.
També hi ha altres implementacions d'overlayfs que poden sincronitzar els canvis necessaris de la part superior a la inferior. file sistema a una programació predeterminada. Per exempleampÉs a dir, podeu copiar el contingut de la carpeta d'inici d'un usuari de la carpeta superior a la inferior cada dotze hores. Això limita el procés d'escriptura a un espai de temps molt curt, cosa que significa que la corrupció és molt menys probable, però sí que significa que si es perd l'alimentació abans de la sincronització, es perden totes les dades generades des de l'última. pSLC en mòduls de càlcul La memòria eMMC utilitzada en dispositius Raspberry Pi Compute Module és MLC (Multi-Level Cell), on cada cel·la de memòria representa 2 bits. pSLC, o pseudo-Single Level Cell, és un tipus de tecnologia de memòria flash NAND que es pot habilitar en dispositius d'emmagatzematge MLC compatibles, on cada cel·la representa només 1 bit. Està dissenyada per proporcionar un equilibri entre el rendiment i la resistència de la memòria flash SLC i la rendibilitat i la major capacitat de la memòria flash MLC. pSLC té una resistència d'escriptura més alta que MLC perquè escriure dades a cel·les amb menys freqüència redueix el desgast. Mentre que MLC pot oferir entre 3,000 i 10,000 cicles d'escriptura, pSLC pot aconseguir xifres significativament més altes, aproximant-se als nivells de resistència de SLC. Aquesta major resistència es tradueix en una vida útil més llarga per als dispositius que utilitzen la tecnologia pSLC en comparació amb els que utilitzen MLC estàndard.
La MLC és més rendible que la memòria SLC, però tot i que la pSLC ofereix un millor rendiment i resistència que la MLC pura, ho fa a costa de la capacitat. Un dispositiu MLC configurat per a pSLC tindrà la meitat de la capacitat (o menys) que tindria com a dispositiu MLC estàndard, ja que cada cel·la només emmagatzema un bit en lloc de dos o més.
Detalls de la implementació
pSLC s'implementa a eMMC com una Àrea d'Usuari Millorada (també coneguda com a emmagatzematge Millorat). La implementació real de l'Àrea d'Usuari Millorada no està definida a l'estàndard MMC, però normalment és pSLC.
- L'àrea d'usuari millorada és un concepte, mentre que pSLC és una implementació.
- pSLC és una manera d'implementar l'Àrea d'Usuari Millorada.
- En el moment d'escriure aquest article, l'eMMC utilitzat als mòduls de càlcul de Raspberry Pi implementa l'àrea d'usuari millorada mitjançant pSLC.
- No cal configurar tota l'àrea d'usuari de l'eMMC com a Àrea d'usuari millorada.
- Programar una regió de memòria com a Àrea d'Usuari Enhanced és una operació que es fa una sola vegada. Això vol dir que no es pot desfer.
Encenent-lo
Linux proporciona un conjunt d'ordres per manipular les particions eMMC al paquet mmc-utils. Instal·leu un sistema operatiu Linux estàndard al dispositiu CM i instal·leu les eines de la manera següent:
- sudo apt instal·la mmc-utils
Per obtenir informació sobre l'eMMC (aquesta ordre es dirigeix a less, ja que hi ha força informació per mostrar):
- sudo mmc extcsd llegeix /dev/mmcblk0 | menys
ADVERTIMENT
Les operacions següents són d'una sola vegada: les podeu executar una vegada i no es poden desfer. També les heu d'executar abans d'utilitzar el mòdul de càlcul, ja que esborraran totes les dades. La capacitat de l'eMMC es reduirà a la meitat del valor anterior.
L'ordre que s'utilitza per activar pSLC és mmc enh_area_set, que requereix diversos paràmetres que indiquen sobre quanta àrea de memòria s'ha d'habilitar el pSLC. El següent exempleamputilitza tota l'àrea. Consulteu l'ajuda de l'ordre mmc (man mmc) per obtenir més informació sobre com utilitzar un subconjunt de l'eMMC.
Després de reiniciar el dispositiu, HAUREU de reinstal·lar el sistema operatiu, ja que si activeu pSLC, s'esborrarà el contingut de l'eMMC.
El programari Raspberry Pi CM Provisioner té una opció per configurar pSLC durant el procés de provisionament. Això es pot trobar a GitHub a https://github.com/raspberrypi/cmprovision.
- Fora del dispositiu file sistemes / arrencada de xarxa
La Raspberry Pi pot arrencar a través d'una connexió de xarxa, per exempleamputilitzant la xarxa File Sistema (NFS). Això significa que un cop el dispositiu ha completat la seva primeratage boot, en comptes de carregar el seu nucli i root file sistema des de la targeta SD, es carrega des d'un servidor de xarxa. Un cop en funcionament, tot file les operacions actuen al servidor i no a la targeta SD local, que no té cap altre paper en els procediments. - Solucions al núvol
Avui dia, moltes tasques d'oficina es duen a terme al navegador, i totes les dades s'emmagatzemen en línia al núvol. Mantenir l'emmagatzematge de dades fora de la targeta SD pot millorar, òbviament, la fiabilitat, a costa de necessitar una connexió a Internet sempre activa, així com els possibles càrrecs dels proveïdors de núvol. L'usuari pot utilitzar una instal·lació completa del sistema operatiu Raspberry Pi, amb el navegador optimitzat per a Raspberry Pi, per accedir a qualsevol dels serveis al núvol de proveïdors com ara Google, Microsoft, Amazon, etc. Una alternativa és un dels proveïdors de clients lleugers, que substitueixen el sistema operatiu Raspberry Pi per un sistema operatiu/aplicació que s'executa des de recursos emmagatzemats en un servidor central en lloc de la targeta SD. Els clients lleugers funcionen connectant-se remotament a un entorn informàtic basat en servidor on s'emmagatzemen la majoria d'aplicacions, dades sensibles i memòria.
Conclusions
Quan es segueixen els procediments d'apagada correctes, l'emmagatzematge a la targeta SD de la Raspberry Pi és extremadament fiable. Això funciona bé en un entorn domèstic o d'oficina on es pot controlar l'apagada, però quan s'utilitzen dispositius Raspberry Pi en casos d'ús industrial o en zones amb una font d'alimentació poc fiable, cal prendre precaucions addicionals per millorar la fiabilitat.
En resum, les opcions per millorar la fiabilitat es poden enumerar de la manera següent:
- Feu servir una targeta SD coneguda i fiable.
- Reduir les escriptures utilitzant temps de confirmació més llargs, utilitzant temporals file sistemes, utilitzant un overlayfs o similar.
- Feu servir emmagatzematge extern al dispositiu, com ara l'arrencada de xarxa o l'emmagatzematge al núvol.
- Implementa un règim per substituir les targetes SD abans que arribin al final de la seva vida útil.
- Feu servir un SAI.
Raspberry Pi és una marca comercial de Raspberry Pi Ltd
Raspberry Pi Ltd
Colofó
© 2020-2023 Raspberry Pi Ltd (abans Raspberry Pi (Trading) Ltd.)
Aquesta documentació està subjecta a una llicència Creative Commons Reconeixement-SenseObraDerivada 4.0 Internacional (CC BY-ND).
- data de construcció: 2024-06-25
- versió de compilació: githash: 3e4dad9-clean
Avís legal d'exempció de responsabilitat
LES DADES TÈCNIQUES I DE FIABILITAT DELS PRODUCTES RASPBERRY PI (INCLOSO LES FITXES DE DADES) MODIFICAT DE TANTA EN TEMPS ("RECURSOS") LES PROPORCIONEN PER RASPBERRY PI LTD ("RPL") "TAL CUAL" I QUALSEVOL GARANTIA EXPRESSA O IMPLÍCITA, INCLOSA, PERÒ NO LIMITADA. A, LES GARANTIES IMPLÍCITES DE COMERCIABILITAT I IDONEITAT PER A UN PROPÒSIT PARTICULAR ES RENUNCIAN. EN LA MESURA MÀXIMA PERMESA PER LA LLEI APLICABLE EN CAP CAS, RPL SERÀ RESPONSABLE DE CAP DANYS DIRECTS, INDIRECTS, INCIDENTALS, ESPECIALS, EXEMPLARS O CONSEQUENTLS (INCLOSOS, PERÒ NO LIMITAR-SE, LA ADQUISICIÓ DE BÉNS SUBSTITUTS, PÈRDUES DE DADES; , O BENEFICIS; O INTERRUPCIÓ DE NEGOCIS) SIGUI QUE ÉS CAUSADA I SOBRE QUALSEVOL TEORIA DE RESPONSABILITAT, JA SIGUI EN CONTRACTE, RESPONSABILITAT ESTRICTA O ALTRES (INCLOSA LA NEGLIGÈNCIA O ALTRE MANERA) SORRIJADA DE QUALSEVOL MANERA DE L'ÚS DE LA RESPONSABILITAT, D'AQUEST DANY.
RPL es reserva el dret de fer qualsevol millora, correcció o qualsevol altra modificació als RECURSOS o a qualsevol producte que s'hi descriu en qualsevol moment i sense previ avís. Els RECURSOS estan destinats a usuaris qualificats amb nivells adequats de coneixements de disseny. Els usuaris són els únics responsables de la seva selecció i ús dels RECURSOS i de qualsevol aplicació dels productes que s'hi descriuen. L'usuari accepta indemnitzar i eximir RPL de tota responsabilitat, cost, dany o altres pèrdues derivades del seu ús dels RECURSOS. RPL concedeix als usuaris permís per utilitzar els RECURSOS únicament juntament amb els productes Raspberry Pi. Qualsevol altre ús dels RECURSOS està prohibit. No es concedeix cap llicència a cap altre dret de propietat intel·lectual de RPL o de tercers.
ACTIVITATS D'ALT RISC. Els productes Raspberry Pi no estan dissenyats, fabricats ni destinats a ser utilitzats en entorns perillosos que requereixin un rendiment a prova de fallades, com ara en el funcionament d'instal·lacions nuclears, sistemes de navegació o comunicació d'aeronaus, control de trànsit aeri, sistemes d'armes o aplicacions crítiques per a la seguretat (inclosos sistemes de suport vital i altres dispositius mèdics), en què la fallada dels productes podria provocar directament la mort, lesions personals o danys físics o ambientals greus ("Activitats d'alt risc"). RPL renuncia específicament a qualsevol garantia expressa o implícita d'idoneïtat per a Activitats d'alt risc i no accepta cap responsabilitat per l'ús o la inclusió de productes Raspberry Pi en Activitats d'alt risc. Els productes Raspberry Pi es proporcionen subjectes a les Condicions estàndard de RPL. El subministrament dels RECURSOS per part de RPL no amplia ni modifica les Condicions estàndard de RPL, incloses, entre d'altres, les exempcions de responsabilitat i les garanties que s'hi expressen.
Preguntes freqüents
- P: Quins productes Raspberry Pi són compatibles amb aquest document?
A: Aquest document s'aplica a diversos productes Raspberry Pi, inclosos Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 i Pico. - P: Com puc reduir les possibilitats de corrupció de dades al meu dispositiu Raspberry Pi?
A: Podeu reduir la corrupció de dades minimitzant les operacions d'escriptura, especialment les activitats de registre, i ajustant els temps de confirmació per a file sistema tal com es descriu en aquest document.
Documents/Recursos
![]() |
Raspberry Pi és més resistent File Sistema [pdfGuia de l'usuari Pi 0, Pi 1, fent-ne un de més resilient File Sistema, més resilient File Sistema, Resilient File sistema, File Sistema |