3.7. Data Journaling


Ordinarily, GFS2 writes only metadata to its journal. File contents are subsequently written to disk by the kernel's periodic sync that flushes file system buffers. An fsync() call on a file causes the file's data to be written to disk immediately. The call returns when the disk reports that all data is safely written.
Il data journaling può causare una riduzione del periodo di fsync(), in modo particolare per file più piccoli, poichè i dati del file vengono scritti sul journal in aggiunta ai metadata. Verrà ritornato un fsync() appena i dati vengono scritti sul journal; questo processo può essere più veloce rispetto al tempo necessario per scrivere i dati del file sul file system principale.
Le applicazioni che si affidano al fsync() per eseguire la sincronizzazione dei dati del file possono avere migliori prestazioni attraverso il journaling dei dati. Il data journaling può essere abilitato automaticamente per qualsiasi file GFS2 in una directory flagged (insieme a tutte le sottodirectory relative). I file esistenti con una lunghezza allo zero possono avere la funzione di journaling dei data abilitata o disabilitata.
Enabling data journaling on a directory sets the directory to "inherit jdata", which indicates that all files and directories subsequently created in that directory are journaled. You can enable and disable data journaling on a file or a directory with either of the following methods:
  • Esecuzione del comando chattr +j o chattr -j sul file o directory
  • Impostazione o rimozione di jdata sulla directory o sul file tramite il comando gfs2_tool setflag o gfs2_tool clearflag
L'utilizzo del comando chattr è il modo preferito per abilitare o disabilitare il data journaling su di un file o una directory.

3.7.1. Come abilitare o disabilitare il data journaling con il comando chattr

È possibile abilitare e disabilitare il data journaling su di un file tramite il comando chattr. I seguenti comandi abilitano il journaling dei dati sul file /mnt/gfs2/gfs2_dir/newfile, e successivamente controllano l'impostazione corretta del flag.
[root@roth-01 ~]# chattr +j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
I seguenti comandi disabilitano il data journaling sul file /mnt/gfs2/gfs2_dir/newfile, e successivamente controllano l'impostazione corretta del flag.
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
È possibile utilizzare chattr per impostare il flag j su di una directory. Quando impostate il suddetto flag per una directory, tutti i file e le directory successivamente create nella directory in questione, verranno salvate nel journal. L'insieme di comandi imposta il flag j sulla directory gfs2_dir, e controlla se il flag è stato impostato correttamente. Altresì, i comandi creeranno un nuovo file chiamato newfile nella directory /mnt/gfs2/gfs2_dir, e successivamente controlleranno l'impostazione del flag j per il file. Poichè il flag j è stato impostato per la directory, anche il newfile dovrebbe avere il journaling abilitato.
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# touch /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Red Hat logoGithubRedditYoutubeTwitter

Formazione

Prova, acquista e vendi

Community

Informazioni sulla documentazione di Red Hat

Aiutiamo gli utenti Red Hat a innovarsi e raggiungere i propri obiettivi con i nostri prodotti e servizi grazie a contenuti di cui possono fidarsi.

Rendiamo l’open source più inclusivo

Red Hat si impegna a sostituire il linguaggio problematico nel codice, nella documentazione e nelle proprietà web. Per maggiori dettagli, visita ilBlog di Red Hat.

Informazioni su Red Hat

Forniamo soluzioni consolidate che rendono più semplice per le aziende lavorare su piattaforme e ambienti diversi, dal datacenter centrale all'edge della rete.

© 2024 Red Hat, Inc.