2011-09-20 23 views
6

ext3 ha 3 opzioni di inserimento nel journal: giornale, ordinato e writeback. Secondo il wikipedia entry, questi vanno dal meno rischioso al più rischioso per il recupero da incidente. Per qualche ragione, la versione di Linux di Android supporta solo le ultime due opzioni, e il valore predefinito è il writeback. (Sto utilizzando Froyo)Inserimento di file system Android

C'è un modo per aggiungere supporto per la modalità journal? Mi piacerebbe farlo nella partizione/data, che è ext3, e anche dove avviene la maggior parte delle scritture di file. Il mio dispositivo non ha una batteria, quindi devo assicurarmi che sia a prova di crash quando qualcuno disconnette l'alimentazione.

Nel caso in cui qualcuno sia interessato, le opzioni di Linux sono definite in kernel/fs/ext3/Kconfig. L'opzione specifica è EXT3_DEFAULTS_TO_ORDERED.

+1

La mia ipotesi è che abbiano scelto di non utilizzare il journal completo a causa dei limitati cicli di scrittura della memoria flash. Se invece vuoi davvero esaurire il tuo flash, dovresti essere in grado di ricompilare il kernel con tutte le opzioni che desideri. Ciò ovviamente richiede un modo per ripristinare il kernel sul dispositivo, che può essere o non essere possibile o facile, a seconda del dispositivo che si possiede. – JesusFreke

+1

Qualche idea su come ricompilare il kernel con l'opzione full journal? Come notato sopra, al momento ci sono solo due opzioni in Kconfig. Per quanto riguarda i cicli di scrittura limitati, sto usando eMMC che utilizza il livellamento, ma sono d'accordo, l'inserimento completo del giornale causerà più usura. Sono in grado di eseguire il flashing del kernel sul dispositivo poiché la mia azienda sta effettivamente costruendo il dispositivo. – Ravi

risposta

1

La soluzione era aggiungere quanto segue a kernel/fs/ext3/Kconfig e ricostruire il kernel con EXT3_DEFAULTS_TO_JOURNAL.

choice 
    prompt "EXT3 default journal mode" 
    default EXT3_DEFAULTS_TO_ORDERED 
    help 
     The journal mode options for ext3 have different tradeoffs 
     between when data is guaranteed to be on disk and 
     performance. The use of "data=writeback" can cause 
     unwritten data to appear in files after an system crash or 
     power failure, which can be a security issue. However, 
     "data=ordered" mode can also result in major performance 
     problems, including seconds-long delays before an fsync() 
     call returns. "data=journal" is the safest option but possibly 
     the the great perfromance burden. For details, see: 

     http://ext4.wiki.kernel.org/index.php/Ext3_data_mode_tradeoffs 

     If you have been historically happy with ext3's performance, 
     data=ordered mode will be a safe choice. 


config EXT3_DEFAULTS_TO_JOURNAL 
    bool "Default to 'data=journal' in ext3" 
    depends on EXT3_FS 
    help 
     Both data and metadata are journaled. Should be safe 
     against crashes, power failure, etc. 


config EXT3_DEFAULTS_TO_ORDERED 
    bool "Default to 'data=ordered' in ext3" 
    depends on EXT3_FS 
    help 
     Only metadata are journaled. Data is written first and then 
     metadata is update. Mostly safe against crashes, power 
     failures, etc., except if the anomally occurred while a file 
     is being overwritten. Most of the time files are appended and 
     not over written. 

config EXT3_DEFAULTS_TO_WRITEBACK 
    bool "Default to 'data=writeback' in ext3" 
    depends on EXT3_FS 
    help 
     Ext2 with a fast ckfs. Not always safe against crashes, 
     power failure, etc., but has the best preformance 

endchoice 
Problemi correlati