2011-09-20 25 views
6

ext3 tiene 3 opciones de diario: diario, ordenado y reescritura. De acuerdo con la wikipedia entry, estos van desde los menos riesgosos hasta los más riesgosos para la recuperación de un choque. Por alguna razón, la versión de Android de Linux solo admite las dos últimas opciones, y el valor predeterminado es la reescritura. (Estoy ejecutando Froyo)Diario del sistema de archivos de Android

¿Hay alguna manera de agregar soporte para el modo diario? Me gustaría hacer esto en la partición/data, que es ext3, y también donde ocurre la mayoría de las grabaciones de archivos. Mi dispositivo no tiene batería, por lo que debo asegurarme de que sea resistente a accidentes cuando alguien desconecta la energía.

En caso de que alguien esté interesado, las opciones de Linux se definen en kernel/fs/ext3/Kconfig. La opción específica es EXT3_DEFAULTS_TO_ORDERED.

+1

Supongo que eligieron no utilizar el diario completo debido a los ciclos de escritura limitados de la memoria flash. Sin embargo, si realmente quieres gastar tu flash, deberías poder volver a compilar el kernel con las opciones que quieras. Obviamente, esto requiere una forma de actualizar el kernel en su dispositivo, lo que puede o no ser posible o fácil, dependiendo de qué dispositivo tenga. – JesusFreke

+1

¿Alguna idea de cómo volver a compilar el núcleo con la opción de diario completo? Como se indicó anteriormente, actualmente solo hay dos opciones en Kconfig. En cuanto a los ciclos de escritura limitados, estoy usando eMMC que no usa nivelación, pero estoy de acuerdo, el diario completo causará más desgaste. Puedo flashear el kernel en el dispositivo ya que mi empresa está realmente compilando el dispositivo. – Ravi

Respuesta

1

La solución fue agregar lo siguiente a kernel/fs/ext3/Kconfig, y reconstruir el 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 
Cuestiones relacionadas