|  | 

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 emUSB Device

    Panoramica emUSB-Device è un software per dispositivi USB ad alte prestazioni, progettato specificamente per i sistemi embedded. Scritto in codice ANSI C, consente una facile integrazione della funzionalità USB in qualsiasi sistema embedded. Vengono fornite molteplici classi di dispositivi standard, che permettono al sistema di comportarsi come un dispositivo USB standard e garantiscono la comunicazione…

  •  | 

    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 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…

  •  |  | 

    Segger emWin

      emWin è la libreria grafica per sistemi embedded di SEGGER. Fornisce strumenti e API per la creazione di interfacce grafiche (GUI) su piattaforme microcontrollore, consentendo anche a sistemi con risorse limitate di eseguire interfacce utente interattive di alta qualità. Supporta display sia semplici che complessi ad alta risoluzione, è progettata specificamente per il mondo…

  •  |  | 

    Segger emBoot Secure

    Panoramica emBoot-Secure è la soluzione di SEGGER conforme al Cyber Resilience Act (CRA) per aggiornamenti firmware sicuri e verificabili su dispositivi embedded. Questo approccio end-to-end protegge i dispositivi da modifiche non autorizzate del firmware, furto di proprietà intellettuale e clonazione. Garantisce che venga installato solo firmware autentico e approvato dal produttore, utilizzando un’architettura crittografica a…

  •  |  |  | 

    SEGGER embOS Safe

    embOS Safe è un sistema operativo in tempo reale (RTOS) certificato dall’organismo di ispezione tecnica tedesco TÜV SÜD. La certificazione è conforme agli standard IEC 61508 SIL 3, IEC 62304 Classe C e ISO 26262 ASIL D. Su richiesta, è disponibile anche la certificazione per altri standard di sicurezza funzionale derivati dalla norma IEC 61508.L’adesione…