|  | 

emFile Journaling

emFile Journaling è un componente aggiuntivo per il file system emFile che lo rende “fail-safe” (a prova di guasto). I file system privi di supporto al journaling (come FAT ed EFS) non sono fail-safe. Il journaling consiste nel registrare tutte le modifiche in un registro (journal) prima di applicarle al file system principale, garantendo così la coerenza dei dati.

Caratteristiche principali

  • I file system non fail-safe diventano fail-safe.
  • Piena compatibilità con le implementazioni standard dei file system (es. FAT).
  • Può essere utilizzata qualsiasi soluzione di archiviazione. Non è richiesta alcuna riformattazione.
  • I molteplici accessi in scrittura al supporto di memorizzazione possono essere combinati nell’applicazione utente.

Teoria del funzionamento

emFile viene tipicamente utilizzato con file system non fail-safe come FAT ed EFS. La perdita di dati può verificarsi sia a livello di driver che a livello di file system. Il livello driver è solitamente fail-safe, quindi l’unico punto critico per la perdita di dati è il livello del file system. Quest’ultimo può essere corrotto da un accesso in scrittura interrotto, ad esempio in caso di interruzione di corrente o crash del sistema. Ciò è intrinseco nel design del FAT e vale per tutte le implementazioni di qualsiasi fornitore. L’add-on emFile Journaling aggiunge il journaling a questo livello.

L’obiettivo di questo livello aggiuntivo è garantire che il file system si trovi sempre in uno stato coerente dopo un reset imprevisto. Le operazioni sul file system non sono quasi mai atomiche. Ad esempio, una singola chiamata a FS_FWrite() per scrivere dati in un nuovo file causa l’esecuzione delle seguenti tre operazioni a livello di memoria:

  1. Allocazione del cluster e aggiornamento della tabella di allocazione.
  2. Scrittura dei dati utente.
  3. Aggiornamento della voce di directory.

Un reset imprevisto durante questo processo può corrompere il file system. Per prevenire tali corruzioni, l’add-on Journaling memorizza ogni accesso in scrittura per mantenere uno stato sempre coerente. Tutte le modifiche vengono memorizzate in un file di journal. I dati presenti nel journal vengono copiati nel file system solo se l’operazione del livello file system è stata completata senza interruzioni.

Questa procedura garantisce la coerenza costante, poiché un’interruzione del processo di copia non porta alla perdita di dati: il processo di copia interrotto verrà riavviato automaticamente al riavvio del sistema.


Scenari di errore

Momento dell’erroreStato del file systemStato dei dati
Journal vuotoCoerente
Durante la scrittura nel journalCoerentePersi
Durante la finalizzazione del journalCoerentePersi
Dopo la finalizzazioneCoerenteOttenuti
Durante la copia dal journal al file systemCoerenteOttenuti
Dopo la copia, prima dell’invalidazione del journalCoerenteOttenuti
Durante l’invalidazione del journalCoerenteOttenuti

Come utilizzare il journaling

L’utilizzo del journaling è molto semplice dal punto di vista dell’utente:

  1. Abilitare il journaling nella configurazione di emFile.
  2. Chiamare FS_JOURNAL_Create() dopo la formattazione del volume.

Tutto qui. Ogni altra operazione è gestita automaticamente dall’estensione emFile Journaling.


Sicurezza del driver (Driver fail-safety)

I dati possono essere persi in caso di reset imprevisto sia nel livello del file system (FAT o EFS) che nel livello del driver del dispositivo. L’intero sistema è fail-safe solo se entrambi i livelli lo sono. L’add-on Journaling garantisce la sicurezza del livello file system. Per quanto riguarda la sicurezza dei singoli driver di dispositivo, si prega di fare riferimento alle pagine specifiche del driver interessato.

Articoli simili

  •  | 

    Segger emCompress

    La riduzione delle dimensioni dei dati per l’archiviazione e il trasferimento è estremamente preziosa nei sistemi embedded. Ridurre l’ingombro dell’archiviazione minimizza la complessità e i costi dei sistemi, mantenendo bassi i requisiti di memoria. Ridurre le dimensioni del trasferimento permette di superare i limiti della larghezza di banda disponibile per l’invio e la ricezione dei…

  •  |  | 

    Segger J-Trace

    Panoramica Lo J-Trace di SEGGER è una sonda di tracciamento (trace probe) professionale di tipo streaming che offre la migliore esperienza di analisi possibile, vantando un elenco esteso di funzionalità in grado di soddisfare ogni esigenza di debug degli sviluppatori embedded. Grazie allo streaming trace illimitato, al Live Code Profiling e alla Live Code Coverage,…

  •  | 

    Segger emDropbox

    emDropbox di SEGGER è una libreria software che consente alla tua applicazione di accedere facilmente a un account Dropbox utilizzando qualsiasi stack TLS (come emSSL) e qualsiasi stack TCP/IP (come emNet) che supporti i socket. Ciò permette alla tua applicazione di condividere file tra diversi dispositivi o di pubblicare file, come aggiornamenti per i tuoi…

  •  | 

    Segger Ozone

    Ozone è un ambiente di debugg grafico stand-alone completo per applicazioni embedded. Con Ozone è possibile eseguire il debug di qualsiasi applicazione basata su Arm o RISC-V a livello di sorgente (C, C++ e Rust) e assembly. Ozone può caricare applicazioni create con quasi tutti i tipi di toolchain o ambienti di sviluppo integrati (IDE),…

  •  |  | 

    Segger emFloat

    Sviluppato e perfezionato per oltre due decenni, emFloat è un componente altamente ottimizzato di emRun (la libreria runtime C di SEGGER) ed è parte integrante di SEGGER Embedded Studio. Progettato per essere “plug-and-play”, emFloat può sostituire la libreria a virgola mobile predefinita, offrendo prestazioni superiori con meno codice. Estremamente veloce e compatto, garantisce prestazioni simili…

  •  |  | 

    Segger IoT Toolkit

    Panoramica L’IoT Toolkit è una raccolta di librerie progettate per comunicare senza sforzo con i moderni dispositivi IoT, permettendoti di concentrarti sulle parti cruciali della tua applicazione. Sebbene i dispositivi IoT parlino tipicamente linguaggi semplici, implementare questi protocolli secondo gli standard ufficiali può diventare un onere gravoso. L’IoT Toolkit fornisce librerie collaudate per aiutarti a…