A causa della modalità delayed allocation del nuovo file system potrebbero verificarsi perdite di dati, sopratuttto all’interno di file di configurazione. La risposta di Ted Ts’o chiarisce tutto.
Un bug report postato all’interno dell’apposita sezione per la prossima versione di Ubuntu 9.04 (Jaunty Jackalope) parla di una possibile perdita di dati utilizzando il nuovo file system Ext4. Ricordiamo che Fedora 11 e openSUSE 11.2 lo utilizzeranno come file system predefinito, abbandonando di fatto Ext3.
Il report parla di un crash dopo il caricamento dei principali file di KDE 4. Subito dopo l’avvio dell’ambiente desktop, quindi, utilizzando Ext4 si assiste ad una perdita di un bel po’ di file di configurazione. L‘utente del bug report lamenta addirittura perdite di dati all’interno del file di configurazione di Plasma e di interi database MySQL.
Ma la risposta di Ted Ts’o, principale sviluppatore di Ext4, non si è fatta attendere. A quanto pare il nuovo file system utilizza la delayed allocation che in pratica scrive i dati su disco impiegando anche più di 60 secondi. Questa modalità aumenta da un lato le performance ma può portare a questi problemi, specialmente con ambienti desktop come KDE e GNOME che lavorano con un mucchio di piccoli file di configurazione.
Dunque, se durante l’avvio di KDE4 si verifica un crash, potrebbe venire a mancare il tempo necessario per allocare e scrivere i file sul disco rigido. Pertanto si verifica una perdita di dati, oppure vengono troncati i file di configurazione.
Allocate-on-flush (also called delayed allocation) is a computer file system feature implemented in the HFS+[1], XFS, Reiser4, ZFS and ext4 file systems.
When blocks must be allocated to hold pending writes, disk space for the appended data is subtracted from the free-space counter, but not actually allocated in the free-space bitmap. Instead, the appended data is held in memory until it must be flushed to storage due to memory pressure, when the kernel decides to flush dirty buffers, or when the application performs the Unix “sync” system call, for example.
Ts’o ha infine dichiarato che il problema affligge anche altri file system, come ad esempio XFS e Btrfs. Ma niente paura, una patch in grado di risolvere la situazione verrà inclusa all’interno del kernel 2.6.30.