Raspberry Pi rende un più resistente File Sistema
Scopu di u documentu
Stu documentu si applica à i seguenti prudutti Raspberry Pi:
Pi 0 | Pi 1 | Pi 2 | Pi 3 | Pi 4 | Pi 400 | CM1 | CM3 | CM4 | CM 5 | Picu | ||||
0 | W | H | A | B | A | B | B | Tuttu | Tuttu | Tuttu | Tuttu | Tuttu | Tuttu | Tuttu |
* | * | * | * | * | * | * | * | * | * | * | * | * | * |
|
Introduzione
I dispusitivi Raspberry Pi Ltd sò spessu usati cum'è dispusitivi di almacenamentu è di monitoraghju di dati, spessu in lochi induve ponu accade interruzioni di corrente improvvise. Cum'è cù qualsiasi dispusitivu informaticu, l'interruzioni di corrente ponu causà a corruzzione di u almacenamentu. Stu whitepaper furnisce alcune opzioni nantu à cumu prevene a corruzzione di dati in queste è altre circustanze selezziunendu apprupriate. file sistemi è cunfigurazioni per assicurà l'integrità di i dati. Stu whitepaper suppone chì u Raspberry Pi esegue u sistema operativu (OS) Raspberry Pi (Linux), è hè cumpletamente aggiornatu cù l'ultimi firmware è kernel.
Chì ghjè a corruzzione di dati è perchè si verifica?
A curruzzione di i dati si riferisce à cambiamenti involuntarii in i dati di l'urdinatore chì si verificanu durante a scrittura, a lettura, u almacenamentu, a trasmissione o u trattamentu. In questu documentu ci riferemu solu à u almacenamentu, piuttostu chè à a trasmissione o u trattamentu. A curruzzione pò accade quandu un prucessu di scrittura hè interrottu prima di esse cumpletatu, in un modu chì impedisce à a scrittura di esse cumpletata, per esempiu.ampsì l'alimentazione hè persa. Vale a pena à questu puntu dà una rapida introduzione à cumu u sistema operativu Linux (è, per estensione, Raspberry Pi OS), scrive dati in memoria. Linux di solitu usa cache di scrittura per almacenà dati chì devenu esse scritti in memoria. Queste memorizzanu in cache (archivanu temporaneamente) i dati in memoria à accessu aleatoriu (RAM) finu à chì si ghjunghje à un certu limite predefinitu, à quellu puntu tutte e scritture in sospesu in u supportu di memoria sò fatte in una sola transazzione. Questi limiti predefiniti ponu esse ligati à u tempu è/o à a dimensione. Per esempiuampPer esempiu, i dati ponu esse memorizzati in cache è scritti in memoria solu ogni cinque secondi, o scritti solu quandu una certa quantità di dati hè accumulata. Quessi schemi sò aduprati per migliurà e prestazioni: scrive un grande pezzu di dati in una volta hè più veloce chè scrive parechji picculi pezzi di dati.
Tuttavia, s'ellu ci hè una perdita di putenza trà u almacenamentu di dati in a cache è a so scrittura, questi dati sò persi. Altri prublemi pussibuli nascenu più in là in u prucessu di scrittura, durante a scrittura fisica di dati nantu à u supportu di almacenamentu. Una volta chì un pezzu di hardware (per esempiuampvale à dì, l'interfaccia di a carta Secure Digital (SD) hè detta di scrive dati, ci vole sempre un tempu finitu per chì questi dati sianu fisicamente almacenati. Di novu, se si verifica una mancanza di corrente durante quellu periodu estremamente breve, hè pussibule chì i dati scritti si currumpinu. Quandu si spegne un sistema informaticu, cumpresu u Raspberry Pi, a megliu pratica hè di utilizà l'opzione di spegnimentu. Questu assicurerà chì tutti i dati in cache sianu scritti, è chì l'hardware abbia avutu u tempu di scrive effettivamente i dati nantu à u supportu di almacenamiento. E carte SD aduprate da a maiò parte di i dispositivi Raspberry Pi sò ottime cum'è rimpiazzamenti economici di u discu duru, ma sò suscettibili à fallimenti cù u tempu, secondu cumu sò aduprate. A memoria flash aduprata in e carte SD hà una durata di u ciclu di scrittura limitata, è quandu e carte si avvicinanu à quellu limite ponu diventà inaffidabili. A maiò parte di e carte SD utilizanu una prucedura chjamata livellazione di l'usura per assicurassi chì duranu u più longu pussibule, ma à a fine ponu fallu. Questu pò esse da mesi à anni, secondu quanti dati sò stati scritti, o (più impurtante) cancellati da, a carta. Questa durata pò varià dramaticamente trà e carte. U fallimentu di a carta SD hè generalmente indicatu da errori aleatorii. file curruzzioni cum'è parti di a carta SD diventanu inutilizabili.
Ci sò altri modi per chì i dati si currumpinu, cumpresi, ma senza limitazione, supporti di almacenamentu difettosi, bug in u software di scrittura di almacenamentu (drivers), o bug in l'applicazioni stesse. Per i scopi di stu whitepaper, qualsiasi prucessu per mezu di u quale pò accade una perdita di dati hè definitu cum'è un avvenimentu di curruzzione.
Chì pò causà una operazione di scrittura?
A maiò parte di l'applicazioni facenu qualchì tipu di scrittura in u almacenamentu, per esempiuampl'infurmazioni di cunfigurazione, l'aghjurnamenti di a basa di dati è simili. Alcuni di questi fileI s ponu ancu esse tempuranei, vale à dì aduprati solu mentre u prugramma hè in esecuzione, è ùn anu micca bisognu di esse mantenuti durante un ciclu di alimentazione; tuttavia, risultanu sempre in scritture nantu à u supportu di almacenamentu. Ancu s'è a vostra applicazione ùn scrive micca dati, in u sfondate Linux farà constantemente scritture nantu à u almacenamentu, scrivendu soprattuttu informazioni di logging.
Soluzioni hardware
Ancu s'ellu ùn hè micca cumpletamente in u scopu di stu libru biancu, vale a pena di mintuvà chì a prevenzione di interruzioni di corrente impreviste hè una mitigazione cumunemente aduprata è ben capita contr'à a perdita di dati. I dispusitivi cum'è l'alimentatori di continuità (UPS) assicuranu chì l'alimentazione ferma solida è, se l'alimentazione hè persa à l'UPS, mentre hè alimentatu da a batteria, pò dì à u sistema informaticu chì a perdita di corrente hè imminente in modu chì l'arrestu pò procedere senza intoppi prima chì l'alimentazione di backup si esaurisca. Siccome e carte SD anu una durata di vita limitata, pò esse utile avè un regime di sustituzione chì assicura chì e carte SD sianu rimpiazzate prima ch'elle abbianu a pussibilità di ghjunghje à a fine di a so vita.
Robustu file sistemi
Ci sò parechji modi per prutege un dispositivu Raspberry Pi contr'à l'eventi di corruzzione. Quessi varianu in a so capacità di prevene a corruzzione, cù ogni azzione chì riduce a probabilità chì si verifichi.
- Riduzzione di e scritture
Riducendu simpliciamente a quantità di scrittura fatta da e vostre applicazioni è da u sistema operativu Linux pò avè un effettu beneficu. Sè vo fate assai logging, allora e probabilità chì e scritture si verifichinu durante un avvenimentu di curruzzione sò aumentate. Diminuisce u logging in a vostra applicazione dipende da l'utente finale, ma u logging in Linux pò ancu esse riduttu. Questu hè particularmente pertinente sè vo aduprate un almacenamentu basatu annantu à flash (per esempiu, eMMC, carte SD) per via di u so ciclu di vita di scrittura limitatu. - Cambià i tempi di commit
U tempu d'impegnu per un file U sistema hè a quantità di tempu per a quale mette in cache i dati prima di copià tutti in u almacenamentu. Aumentà stu tempu migliora e prestazioni accumulendu assai scritture, ma pò purtà à a perdita di dati s'ellu ci hè un avvenimentu di corruzzione prima chì i dati sianu scritti. Riducendu u tempu di commit significarà menu possibilità chì un avvenimentu di corruzzione porti à a perdita di dati, ancu s'ellu ùn l'impedisce micca cumpletamente.
Per cambià u tempu di commit per l'EXT4 principale file sistema nant'à Raspberry Pi OS, avete bisognu di mudificà u \etc\fstab file chì definisce cumu file I sistemi sò muntati à l'avviu. - $sudo nano /etc/fstab
Aghjunghjite u seguente à l'entrata EXT4 per a root file sistema:
- impegnu=
Cusì, fstab pò esse qualcosa cusì, induve u tempu di commit hè statu impostu à trè seconde. U tempu di commit serà per difettu à cinque seconde s'ellu ùn hè micca specificamente impostu.
Pruvisoriu file sistemi
Sè una applicazione richiede un tempurale file almacenamentu, vale à dì i dati aduprati solu mentre l'applicazione hè in esecuzione è ùn hè micca necessariu salvà dopu un arrestu, allora una bona opzione per impedisce e scritture fisiche in l'almacenamentu hè di utilizà un tempurale file sistema, tmpfs. Perchè questi file I sistemi sò basati nantu à a RAM (in realtà, in memoria virtuale), qualsiasi dati scritti in un tmpfs ùn sò mai scritti in un almacenamentu fisicu, è dunque ùn influenzanu micca a durata di vita di a memoria flash, è ùn ponu esse dannighjati per via di un avvenimentu di corruzzione.
A creazione di una o più locu tmpfs richiede a mudificazione di /etc/fstab file, chì cuntrolla tutti i file sistemi sottu à Raspberry Pi OS. I seguenti examprimpiazza i lochi basati nantu à u almacenamentu /tmp è /var/log cù quelli tempuranei file locu di u sistema. U secondu example, chì rimpiazza u cartulare di logging standard, limita a dimensione generale di u file sistema à 16 MB.
- tmpfs /tmp tmpfs predefiniti, noatime 0 0
- tmpfs /var/log valori predefiniti tmpfs, senza tempu, dimensione = 16m 0 0
Ci hè ancu un script di terze parti chì aiuta à cunfigurà a registrazione in RAM, chì si pò truvà nantu à GitHub. Questu hà a funzione supplementaria di scaricà i logs basati nantu à a RAM nantu à u discu à un intervallu predefinitu.
Radice di sola lettura file sistemi
A radica file u sistema (rootfs) hè u file sistema nantu à a partizione di u discu induve si trova u cartulare root, è hè u file sistema nantu à quale tutti l'altri file I sistemi sò muntati quandu u sistema hè avviatu. Nantu à u Raspberry Pi hè /, è per difettu si trova nantu à a carta SD cum'è una partizione EXT4 cumpletamente in lettura/scrittura. Ci hè ancu una cartella d'avvio, chì hè muntata cum'è /boot è hè una partizione FAT in lettura/scrittura. Fà chì rootfs sia in lettura SOLA impedisce ogni tipu d'accessu in scrittura, rendendulu assai più robustu à l'eventi di corruzzione. Tuttavia, à menu chì ùn sianu prese altre azzioni, questu significa chì nunda ùn pò scrive nantu à u file sistema in tuttu, dunque salvà dati di qualsiasi tipu da a vostra applicazione à u rootfs hè disattivatu. Sè avete bisognu di almacenà dati da a vostra applicazione ma vulete un rootfs di sola lettura, una tecnica cumuna hè di aghjunghje una chiavetta USB o simile chì hè solu per almacenà dati di l'utente.
NOTA
Sè vo aduprate un scambiu file quandu si usa una sola lettura file sistema, duverete spustà u swap file à una partizione di lettura/scrittura.
Overlay file sistema
Una sovrapposizione file sistema (overlayfs) combina dui file sistemi, una parte superiore file sistema è un più bassu file sistema. Quandu un nome esiste in i dui file sistemi, l'ughjettu in cima file u sistema hè visibile mentre l'ughjettu in u fondu file U sistema hè o piattu o, in u casu di i cartulari, fusu cù l'ughjettu superiore. Raspberry Pi furnisce una opzione in raspi-config per attivà un overlayfs. Questu rende u rootfs (inferiore) di sola lettura, è crea un ughjettu superiore basatu annantu à a RAM. file sistema. Questu dà un risultatu assai simile à a sola lettura file sistema, cù tutte e mudificazioni di l'utente chì si perdenu à u riavviu. Pudete attivà un overlayfs aduprendu a linea di cummanda raspi-config o aduprendu l'applicazione di cunfigurazione Raspberry Pi di desktop in u menu Preferenze.
Ci sò ancu altre implementazioni di overlayfs chì ponu sincronizà i cambiamenti richiesti da a parte superiore à quella inferiore. file sistema à un calendariu predeterminatu. Per esempiuampPer esempiu, pudete copià u cuntenutu di a cartella iniziale di un utilizatore da superiore à inferiore ogni dodici ore. Questu limita u prucessu di scrittura à un spaziu di tempu assai cortu, vale à dì chì a corruzzione hè assai menu prubabile, ma significa chì se a putenza hè persa prima di a sincronizazione, qualsiasi dati generati dapoi l'ultima sò persi. pSLC nantu à i moduli Compute A memoria eMMC aduprata nantu à i dispositivi Raspberry Pi Compute Module hè MLC (Multi-Level Cell), induve ogni cellula di memoria rapprisenta 2 bit. pSLC, o pseudo-Single Level Cell, hè un tipu di tecnulugia di memoria flash NAND chì pò esse attivata in dispositivi di almacenamiento MLC cumpatibili, induve ogni cellula rapprisenta solu 1 bit. Hè cuncipitu per furnisce un equilibriu trà e prestazioni è a resistenza di u flash SLC è l'efficienza in termini di costi è a capacità più elevata di u flash MLC. pSLC hà una resistenza di scrittura più alta chè MLC perchè a scrittura di dati in e cellule menu frequentemente riduce l'usura. Mentre MLC puderia offre circa 3,000 à 10,000 cicli di scrittura, pSLC pò ottene numeri significativamente più alti, avvicinendu si à i livelli di resistenza di SLC. Questa maggiore resistenza si traduce in una durata di vita più longa per i dispositivi chì utilizanu a tecnulugia pSLC paragunata à quelli chì utilizanu MLC standard.
A MLC hè più ecunomica chè a memoria SLC, ma mentre chì a pSLC offre prestazioni è resistenza megliu cà a MLC pura, a face à spese di a capacità. Un dispositivu MLC cunfiguratu per a pSLC avarà a metà di a capacità (o menu) ch'ella avaria cum'è un dispositivu MLC standard, postu chì ogni cellula immagazzina solu un bit invece di dui o più.
Dettagli di implementazione
pSLC hè implementatu annantu à eMMC cum'è una Enhanced User Area (cunnisciuta ancu cum'è Enhanced storage). L'implementazione vera di l'Enhanced User Area ùn hè micca definita in u standard MMC, ma hè di solitu pSLC.
- L'Area Utente Migliurata hè un cuncettu, mentre chì pSLC hè un'implementazione.
- pSLC hè un modu per implementà l'Area Utente Migliorata.
- À u mumentu di a scrittura, l'eMMC utilizatu nantu à i Moduli di Calculu Raspberry Pi implementa l'Area Utente Migliorata utilizendu pSLC.
- Ùn ci hè bisognu di cunfigurà tutta l'area d'utilizatore eMMC cum'è una Zona d'Utilizatore Migliorata.
- A prugrammazione di una regione di memoria per esse una Zona d'Utilizatore Migliorata hè un'operazione unica. Ciò significa chì ùn pò esse annullata.
Accendi lu
Linux furnisce un inseme di cumandamenti per manipulà e partizioni eMMC in u pacchettu mmc-utils. Installate un sistema operativu Linux standard nant'à u dispusitivu CM, è installate l'arnesi cum'è seguita:
- sudo apt installà mmc-utils
Per ottene infurmazioni nantu à l'eMMC (stu cumandamentu si cunnetta à menu chì ci sia assai infurmazioni da visualizà):
- sudo mmc extcsd leghje /dev/mmcblk0 | menu
ATTENZIONE
L'operazioni seguenti sò una tantum - pudete eseguisce una volta è ùn ponu esse annullate. Duvete ancu eseguisce prima chì u Modulu di Calculu sia statu utilizatu, postu chì cancelleranu tutti i dati. A capacità di l'eMMC serà ridutta à a mità di u valore precedente.
U cumandamentu utilizatu per attivà pSLC hè mmc enh_area_set, chì richiede parechji parametri chì li dicenu quanta area di memoria u pSLC deve esse attivatu. L'esempiu seguenteample usa tutta l'area. Per piacè riferitevi à l'aiutu di u cumandamentu mmc (man mmc) per i dettagli nantu à cumu aduprà un sottoinsieme di l'eMMC.
Dopu chì u dispusitivu si riavvia, duverete reinstallà u sistema operativu, postu chì l'attivazione di pSLC cancellerà u cuntenutu di l'eMMC.
U software Raspberry Pi CM Provisioner hà una opzione per cunfigurà pSLC durante u prucessu di provisioning. Questu pò esse truvatu nantu à GitHub à https://github.com/raspberrypi/cmprovision.
- Fora di u dispusitivu file sistemi / avviamentu di rete
U Raspberry Pi hè capace di avvià via una cunnessione di rete, per esempiuampaduprendu a Rete File Sistema (NFS). Questu significa chì una volta chì u dispusitivu hà cumpletatu i so primitage boot, invece di caricà u so kernel è a so root file sistema da a carta SD, hè caricatu da un servitore di rete. Una volta in esecuzione, tuttu file L'operazioni agiscenu nantu à u servitore è micca nantu à a carta SD lucale, chì ùn hà più alcun rolu in u prucessu. - Soluzioni in nuvola
Oghje ghjornu, parechje attività d'uffiziu si svolgenu in u navigatore, è tutti i dati sò almacenati in linea in u cloud. Mantene l'almacenamentu di dati fora di a carta SD pò ovviamente migliurà l'affidabilità, à u detrimentu di a necessità di una cunnessione sempre attiva à Internet, è ancu di pussibuli costi da i fornitori di cloud. L'utente pò aduprà una installazione cumpleta di Raspberry Pi OS, cù u navigatore ottimizatu per Raspberry Pi, per accede à qualsiasi serviziu cloud di fornitori cum'è Google, Microsoft, Amazon, ecc. Una alternativa hè unu di i fornitori di thin-client, chì rimpiazzanu Raspberry Pi OS cù un sistema operativu / applicazione chì funziona da risorse almacenate in un servitore cintrali invece di a carta SD. I thin client funzionanu cunnettendusi à distanza à un ambiente informaticu basatu nantu à u servitore induve sò almacenati a maiò parte di l'applicazioni, i dati sensibili è a memoria.
Cunclusioni
Quandu si seguitanu e procedure di spegnimentu currette, l'almacenamentu di a carta SD di u Raspberry Pi hè estremamente affidabile. Questu funziona bè in l'ambiente domesticu o di l'uffiziu induve u spegnimentu pò esse cuntrullatu, ma quandu si utilizanu dispositivi Raspberry Pi in casi d'usu industriale, o in zone cù una alimentazione elettrica inaffidabile, precauzioni supplementari ponu migliurà l'affidabilità.
In breve, l'opzioni per migliurà l'affidabilità ponu esse elencate cusì:
- Aduprate una carta SD cunnisciuta è affidabile.
- Riduce e scritture aduprendu tempi di commit più longhi, aduprendu tempuranee file sistemi, aduprendu un overlayfs, o simile.
- Aduprate u almacenamentu fora di u dispusitivu cum'è l'avviu di rete o u almacenamentu in nuvola.
- Implementà un regime per rimpiazzà e carte SD prima ch'elle ghjunghjenu à a fine di a so vita.
- Aduprate un UPS.
Raspberry Pi hè una marca di Raspberry Pi Ltd
Raspberry Pi Ltd
Colofone
© 2020-2023 Raspberry Pi Ltd (ex Raspberry Pi (Trading) Ltd.)
Questa ducumentazione hè licenziata sottu una licenza Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND).
- data di custruzzione: 2024-06-25
- versione di compilazione: githash: 3e4dad9-clean
Avvisu di disclaimer legale
I DATI TECNICI È DI AFFIDABILITÀ PER I PRODOTTI RASPBERRY PI (INCLUSI SCHEDE DI DATI) COME MODIFICATI DA TEMPU À TEMPU ("RESOURCES") SONU FORNITI DA RASPBERRY PI LTD ("RPL") "COME SO" È QUALSIASI GARANZIA ESPRESSA O IMPLICITA, INCLUDE, MA NON LIMITATA. À, E GARANTIE IMPLICITE DI MERCHANTABILITÀ E IDONEITÀ PER UN SUPPORTU PARTICULARI SONT DISCLIMATE. À LA MASSIMA MESSA PERMESSA DA A LEGGE APPLICABILE IN NESSUN CASU, RPL SERA RESPONSABILE PER QUALUNQUE DANNI DIRETTI, INDIRETTI, INCIDENTALI, SPECIALI, ESEMPLARI O CONSEGUENTI (INCLUSU, MA NON LIMITATI À, L'ACQUISSIONE DI BENE SOSTITUTI, PERDITA DI DORTI DI SERVIZI; , O PROFITTI ; O INTERRUPZIONE DI L'AFFARI) QUANTÀ CAUSATA E IN QUALSIASI TEORIA DI RESPONSABILITÀ, SIA IN CONTRATTU, RESPONSABILITÀ STRICTA, O TORT (INCLUSI A NEGGLIGENZA O ALTRE) SURGIENDA IN QUALSUNA MANERA DA L'USU DI A RESOURCES, ANCHE A PUBLICIDAD. DI TALI DANNI.
RPL si riserva u dirittu di fà qualsiasi miglioramentu, miglioramentu, currezzione o qualsiasi altra mudificazione à e RISORSE o à qualsiasi pruduttu discrittu in elli in ogni mumentu è senza ulteriore avvisu. E RISORSE sò destinate à utilizatori qualificati cù livelli adatti di cunniscenza di u cuncepimentu. L'utilizatori sò l'unichi rispunsevuli di a so selezzione è usu di e RISORSE è di qualsiasi applicazione di i prudutti descritti in elli. L'utilizatore accetta di indennizà è di mantene RPL innocu da tutte e responsabilità, i costi, i danni o altre perdite derivanti da u so usu di e RISORSE. RPL cuncede à l'utilizatori l'autorizazione d'utilizà e RISORSE solu in cunghjunzione cù i prudutti Raspberry Pi. Ogni altru usu di e RISORSE hè pruibitu. Nisuna licenza hè cuncessa à qualsiasi altru RPL o altru dirittu di pruprietà intellettuale di terzi.
ATTIVITÀ À ALTU RISCHIU. I prudutti Raspberry Pi ùn sò micca cuncipiti, fabbricati o destinati à esse aduprati in ambienti periculosi chì richiedenu prestazioni à prova di guasti, cum'è in u funziunamentu di impianti nucleari, sistemi di navigazione o di cumunicazione di l'aerei, cuntrollu di u trafficu aereu, sistemi d'armi o applicazioni critiche per a sicurezza (cumpresi sistemi di supportu vitale è altri dispositivi medichi), in i quali u fallimentu di i prudutti puderia purtà direttamente à a morte, ferite persunali o gravi danni fisichi o ambientali ("Attività à Altu Rischiu"). RPL declina specificamente ogni garanzia espressa o implicita di idoneità per Attività à Altu Rischiu è ùn accetta alcuna responsabilità per l'usu o l'inclusioni di prudutti Raspberry Pi in Attività à Altu Rischiu. I prudutti Raspberry Pi sò furniti sottumessi à i Termini Standard di RPL. A furnitura di e RISORSE da parte di RPL ùn espande nè altrimenti modifica i Termini Standard di RPL, cumpresi, ma senza limitazione, l'esclusioni di responsabilità è e garanzie espresse in elli.
Domande Frequenti
- D: Quali prudutti Raspberry Pi sò supportati da stu documentu?
A: Stu documentu s'applica à diversi prudutti Raspberry Pi, cumpresi Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 è Pico. - D: Cumu possu riduce e probabilità di curruzzione di dati nantu à u mo dispositivu Raspberry Pi?
A: Pudete riduce a curruzzione di dati minimizendu l'operazioni di scrittura, in particulare l'attività di registrazione, è aghjustendu i tempi di commit per u file sistema cum'è descrittu in questu documentu.
Documenti / Risorse
![]() |
Raspberry Pi rende un più resistente File Sistema [pdfGuida di l'utente Pi 0, Pi 1, Rendendu un Più Resiliente File Sistema, più resistente File Sistema, Resiliente File sistema, File Sistema |