Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Global File System 2

Red Hat Enterprise Linux 5

Red Hat Global File System 2

Edizione 3

Sommario

Questo manuale fornisce le informazioni relative al processo d'installazione, di configurazione e di gestione del Red Hat GFS2 (Red Hat Global File System 2) per Red Hat Enterprise Linux 5.

Introduzione

Benvenuti alla documentazione per l'Amministrazione e Configurazione del Global File System. Questo manuale contiene le informazioni relative alla configurazione e alla gestione di Red Hat GFS2 (Red Hat Global File System 2). Red Hat GFS2 può essere eseguito su di un nodo singolo o come parte di una configurazione del cluester in Red Hat Cluster Suite con RHEL 5.3 o versioni più recenti. Per informazioni relative al Red Hat Cluster Suite consultare la Panoramica su Red Hat Cluster Suite e la Configurazione e Gestione di un Red Hat Cluster.
Le versioni HTML e PDF di tutti i manuali ufficiali di Red Hat Enterprise Linux e delle Note di rilascio, sono disponibili online su http://www.redhat.com/docs/.

1. A chi è rivolto

Questo libro è rivolto principalmente agli amministratori dei sistemi Linux con una conoscenza delle seguenti attività:
  • Procedure di amministrazione dei sistemi Linux, incluso la configurazione del kernel
  • Installazione e configurazione delle reti per lo storage condiviso, come ad esempio le Fibre Channel SAN

3. Commenti

Se individuate degli errori o se pensate di poter contribuire al miglioramento di questa guida, contattateci subito. Inviate un report in Bugzilla (http://bugzilla.redhat.com/bugzilla/) sul componente rh-cs.
Be sure to mention the manual's identifier:
rh-gfs2(EN)-5 (2009-01-05T15:15)
By mentioning this manual's identifier, we know exactly which version of the guide you have.
Se avete dei suggerimenti per migliorare la documentazione, cercate di essere il più specifici possibile. Se avete trovato un errore, vi preghiamo di includere il numero della sezione, e alcune righe di testo, in modo da agevolare le ricerca dell'errore stesso.

Capitolo 1. Panoramica sul GFS2

Il file system GFS2 di Red Hat è un file system nativo che interfaccia direttamente con il file system del kernel di Linux (VFS layer). Un file system GFS2 può essere implementato in un sistema standalone, oppure come parte di una configurazione del cluster. Quando implementato come file system del cluster, GFS2 implementa metadata distribuiti e journal multipli.
A GFS2 file system can be created on an LVM logical volume. A logical volume is an aggregation of underlying block devices that appears as a single logical device. For information on the LVM volume manager, see the LVM Administrator's Guide.
GFS2 si basa su una architettura a 64-bit la quale può in teoria ospitare un file system di 8 EB. Tuttavia la dimensione massima supportata corrente di un file system GFS2 è 25 TB. Se il vostro sistema richiede file system GFS2 maggiori di 25 TB, è consigliato contattare un rappresentante di Red Hat.
Quando determinate la dimensione del vostro file system è consigliato considerare le vostre necessità per un processo di ripristino. L'esecuzione del comando fsck su di un file system molto grande, richiederà molto tempo e consumerà una quantità molto grande di memoria. Altresì, nell'evento di un errore del disco o del sottosistema-disco, il tempo di ripristino sarà limitato dalla velocità del vostro media di backup.
Quando configurati in un Red Hat Cluster Suite, i nodi di Red Hat GFS2 possono essere configurati e gestiti con i tool di configurazione e gestione di Red Hat Cluster Suite. Red Hat GFS2 permette una condivisione dei dati tra i nodi GFS2 in un cluster di Red Hat, con una vista singola ed uniforme dello spazio del nome del file system attraverso i nodi GFS2. Ciò permette ai processi presenti sui diversi nodi di condividere i file GFS2, in modo simile alla condivisione dei file su di un file system locale con nessuna differenza da parte dei processi presenti sullo stesso nodo. Per informazioni su Red Hat Cluster Suite consultare la Configurazione e gestione di un Red Hat Cluster.
LVM logical volumes in a Red Hat Cluster suite are managed with CLVM, which is a cluster-wide implementation of LVM, enabled by the CLVM daemon, clvmd running in a Red Hat Cluster Suite cluster. The daemon makes it possible to use LVM2 to manage logical volumes across a cluster, allowing all nodes in the cluster to share the logical volumes. to any directory on your system. For information on the LVM volume manager, see the LVM Administrator's Guide.
Modulo kernel gfs2.ko implementa il file system GFS2, ed è caricato sui nodi del cluster GFS2.
Questo capitolo contiene alcune informazioni di base abbreviate come background, per aiutarvi a comprendere meglio il GFS2. Sono presenti le seguenti sezioni:

1.1. Prima d'impostare il GFS2

Prima di poter installare ed impostare GFS2, è necessario essere a conoscenza delle seguenti caratteristiche dei vostri file system GFS2:
Nodi GFS2
Determina quali nodi presenti nel Red Hat Cluster Suite monteranno i file system GFS2.
Numero di file system
Determina il numero iniziale di file system GFS2 da creare. (È possibile aggiungere successivamente un numero superiore di file system.)
Nome del file system
Determina un nome unico per ogni file system. Il nome deve essere unico per tutti i filesystem lock_dlm attraverso il cluester, e per tutti i filesystem (lock_dlm e lock_nolock) su ogni nodo locale. Ogni nome del file system deve essere sottoforma di una variabile del parametro. Per esempio, questo manuale utilizza i nomi del file system mydata1 e mydata2 in alcuni esempi.
Journal
Determine the number of journals for your GFS2 file systems. One journal is required for each node that mounts a GFS2 file system. GFS2 allows you to add journals dynamically at a later point as additional servers mount a filesystem. For information on adding journals to a GFS2 file system, see Sezione 3.6, «Come aggiungere i journal ad un file system».
Nodi del server GNBD
Se state utilizzando GNBD, determinate il numero necessario di nodi del server GNBD. Prendete nota dell'hostname e dell'indirizzo IP di ogni nodo del server GNBD, per l'impostazione successiva dei client GNBD. Per maggiori informazioni su come utilizzare GNBD con GFS2, consultare il documento Come utilizzare GNBD con il Global File System.
Dispositivi di storage e partizioni
Determina i dispositivi di storage e le partizioni da usare per la creazione di logical volume (via CLVM) nei file system.

Nota

Con GFS2 è possibile avere problemi di prestazione quando numerose operazioni di creazione e rimozione sono eseguite contemporaneamente da più di un nodo nella stessa directory. Se ciò causa problemi di prestazione del sistema, e quando possibile, è consigliato localizzare la rimozione e la creazione di file da parte di un nodo per le directory specifiche al nodo in questione.

1.2. Differenze tra GFS e GFS2

Questa sezione elenca i miglioramenti e le modifiche offerte da GFS2 rispetto a GFS.
Migrating from GFS to GFS2 requires that you convert your GFS file systems to GFS2 with the gfs2_convert utility. For information on the gfs2_convert utility, see Appendice A, Conversione di un file system da GFS a GFS2.

1.2.1. Nomi del comando di GFS2

In general, the functionality of GFS2 is identical to GFS. The names of the file system commands, however, specify GFS2 instead of GFS. Tabella 1.1, «Comandi GFS2 e GFS» shows the equivalent GFS and GFS2 commands.

Tabella 1.1. Comandi GFS2 e GFS

Comando GFS Comando GFS2 Descrizione
mount mount Esegue un mount del file system. Il sistema è in grado di determinare se il file system è di tipo GFS o GFS2. Per informazioni sulle opzioni di montaggio di GFS2 consultate la pagina man di gfs2_mount(8).
umount umount Come smontare un file system.
fsck
gfs_fsck
fsck
fsck.gfs2
Controlla e ripara un file system non montato.
gfs_grow gfs2_grow Espande un file system montato.
gfs_jadd gfs2_jadd Aggiunge un journal ad un file system montato
gfs_mkfs
mkfs -t gfs
mkfs.gfs2
mkfs -t gfs2
Crea un file system su di un dispositivo di storage.
gfs_quota gfs2_quota Gestisce i quota su di un file system montato.
gfs_tool gfs2_tool Configura, regola, o raccoglie informazioni relative ad un file system.
gfs_edit gfs2_edit Mostra, stampa o modifica le strutture interne del file system. Il comando gfs2_edit può essere usato sia per i file system GFS che per i file system GFS2.
Per un elenco completo delle opzioni supportate per i comandi del file system GFS2, consultare le pagine man dei comandi in questione.

1.2.2. Differenze aggiuntive tra GFS e GFS2

This section summarizes the additional differences in GFS and GFS2 administration that are not described in Sezione 1.2.1, «Nomi del comando di GFS2».

Context-Dependent Path Names

GFS2 file systems do not provide support for context-dependent path names, which allow you to create symbolic links that point to variable destination files or directories. For this functionality in GFS2, you can use the bind option of the mount command. For information on managing pathnames in GFS2, see Sezione 3.11, «Bind Mounts e Context-Dependent Path Names».

Modulo gfs2.ko

Il modulo del kernel che implementa il file system GFS è gfs.ko. Il modulo del kernel che implementa il file system GFS2 è gfs2.ko.

Come abilitare il Quota Enforcement in GFS2

In GFS2 file systems, quota enforcement is disabled by default and must be explicitly enabled. To enable and disable quotas for GFS2 file systems, you use the quota=on|off|account option for the mount command. For information on enabling and disabling quota enforcement, see Sezione 3.4.4, «Abilitazione/Disabilitazione Quota Enforcement».

Data Journaling

GFS2 file systems support the use of the chattr command to set and clear the j flag on a file or directory. Setting the +j flag on a file enables data journaling on that file. Setting the +j flag on a directory means "inherit jdata", which indicates that all files and directories subsequently created in that directory are journaled. Using the chattr command is the preferred way to enable and disable data journaling on a file.

Come aggiungere i journal dinamicamente

In GFS2 file systems, journals are plain (though hidden) files instead of embedded metadata. This means that journals can be dynamically added as additional servers mount a filesystem. For information on adding journals to a GFS2 file system, see Sezione 3.6, «Come aggiungere i journal ad un file system».

parametro atime_quantum rimosso

Il file system GFS2 non supporta il parametro regolabile atime_quantum, il quale può essere utilizzato dal file system GFS per specificare la cadenza degli aggiornamenti atime. GFS2 supporta le opzioni di montaggio relatime e noatime. L'opzione di montaggio relatime è consigliata per avere un comportamento simile all'impostazione del parametro atime_quantum in GFS.

data= opzione del comando mount

Quando si esegue il montaggio del file system GFS2, è possibile specificare l'opzione data=ordered o data=writeback del comando mount. Una volta impostato data=ordered, i dati dell'utente modificati da una transazione verranno scaricati sul disco prima di confermare la transazione sul disco stesso. Tale operazione dovrebbe impedire una visualizzazione da parte dell'utente, dei blocchi non inizializzati all'interno di un file dopo il verificarsi di un crash. Se data=writeback è stato impostato i dati verranno scritti in qualsiasi momento sul disco, dopo che lo stesso è stato già utilizzato. Tale operazione non garantisce una consistenza simile a quella garantita dalla modalità ordered, ma dovrebbe essere più veloce sotto alcuni carichi di lavoro. La modalità predefinita è ordered.

Il comando gfs2_tool

Il comando gfs2_tool supporta un set diverso di opzioni per GFS2 rispetto al comando gfs_tool per GFS:
  • Il comando gfs2_tool supporta un parametro journals il quale stampa le informazioni relative al journal attualmente configurato, incluso il numero di journal contenuti da un file system.
  • Il comando gfs2_tool non supporta il flag counters, usato dal comando gfs_tool per visualizzare le statistiche di GFS.
  • The gfs2_tool command does not support the inherit_jdata flag. To flag a directory as "inherit jdata", you can set the jdata flag on the directory or you can use the chattr command to set the +j flag on the directory. Using the chattr command is the preferred way to enable and disable data journaling on a file.

Il comando gfs2_edit

Il comando gfs2_edit supporta un set diverso di opzioni per GFS2 rispetto al comando gfs_dit per GFS.

1.2.3. Milgioramenti delle prestazioni di GFS2

Sono presenti numerose funzionalità nei file system GFS2 le quali non differiscono nell'interfaccia utente rispetto ai file system GFS, e garantiscono una migliore prestazione del file system.
Un file system GFS2 fornisce una migliore prestazione del file system nei termini di seguito riportati:
  • Migliore prestazione sotto condizioni di utilizzo intenso in una directory singola.
  • Operazioni I/O sincrone più veloci
  • Letture dati in cache più veloci (senza locking overhead)
  • I/O diretto più veloce con file preassegnati (con una dimensione I/O ragionevolmente grande, come ad esempio 4M di blocchi)
  • Operazioni I/O più veloci in generale
  • Esecuzione più veloce del comando df, dovuto a chiamate statfs più veloci.
  • La modalità atime è stata migliorata in modo da ridurre il numero di operazioni I/O di scrittura generati da atime quando confrontato con GFS.
Il file system GFS2 fornisce un supporto più ampio e dettagliato nelle seguenti modalità.
  • GFS2 è parte del kernel upstream (integrato in 2.6.19).
  • GFS2 supporta le seguenti caratteristiche:
    • gli attributi estesi di SELinux.
    • le impostazioni degli attributi lsattr() e chattr() tramite le chiamate standard ioctl().
    • timestamp in nanosecondi
Un file system GFS2 migliora l'efficienza interna del file system.
  • GFS2 utilizza una quantità di memoria minore del kernel
  • GFS2 non necessita di alcun numero di generazione dei metadata.
    L'assegnazione dei metadata GFS2 non necessita di alcun processo di lettura. Le copie delle sezioni dei metadata nei journal multipli, vengono gestite attraverso la revoca delle sezioni dal journal prima del rilascio del blocco.
  • GFS2 include un log manager molto più semplice il quale non è a conoscenza degli inode non collegati o delle modifiche dei quota.
  • I comandi gfs2_grow e gfs2_jadd utilizzano il locking per evitare l'esecuzione simultanea di istanze multiple.
  • Il codice ACL è stato semplificato per chiamate creat() e mkdir().
  • Gli inode non collegati, le modifiche dei quota e le modifiche statfs vengono ripristinati senza montare nuovamente il journal.

Capitolo 2. Per iniziare

Questo capitolo descrive le procedure per una impostazione iniziale di GFS2 e contiene le seguenti sezioni:

2.1. Prerequisiti

Before setting up Red Hat GFS2, make sure that you have noted the key characteristics of the GFS2 nodes (refer to Sezione 1.1, «Prima d'impostare il GFS2»). Also, make sure that the clocks on the GFS2 nodes are synchronized. It is recommended that you use the Network Time Protocol (NTP) software provided with your Red Hat Enterprise Linux distribution.

Nota

Gli orologi del sistema presenti all'interno dei nodi del GFS2 devono essere impostati con qualche minuto di sfasamento tra loro, in modo da evitare un aggiornamento time-stamp dell'inode non necesario. Tali aggiornamenti non necessari possono influire negativamente sulle prestazioni del cluster

2.2. Compiti iniziali per l'impostazione

L'impostazione GFS2 iniziale consiste nelle seguenti fasi:
  1. Impostazione dei logical volume.
  2. Creazione di un file system GFS2.
  3. Montaggio dei file system.
Seguite queste fasi per una impostazione iniziale di GFS2.
  1. Utilizzando LVM, creare un logical volume per ogni file system GFS2 di Red Hat.

    Nota

    È possibile utilizzare gli script init.d inclusi in Red Hat Cluster Suite per attivare e disattivare automaticamente i logical volume. Per maggiori informazioni sugli script init.d, consultate la Configurazione e Gestione di un Red Hat Cluster
  2. Create GFS2 file systems on logical volumes created in Step 1. Choose a unique name for each file system. For more information about creating a GFS2 file system, refer to Sezione 3.1, «Creazione di un file system».
    È possibile utilizzare uno dei seguenti formati per la creazione di un file system GFS2 clusterizzato:
    mkfs.gfs2 -p lock_dlm -t ClusterName:FSName -j NumberJournals BlockDevice
    mkfs -t gfs2 -p lock_dlm -t LockTableName -j NumberJournals BlockDevice
    È possibile utilizzare uno dei seguenti formati per la creazione di un file system GFS2 locale:
    mkfs.gfs2 -p lock_nolock -j NumberJournals BlockDevice
    mkfs -t gfs2 -p lock_nolock -j NumberJournals BlockDevice
    For more information on creating a GFS2 file system, see Sezione 3.1, «Creazione di un file system».
  3. At each node, mount the GFS2 file systems. For more information about mounting a GFS2 file system, see Sezione 3.2, «Montaggio di un file system».
    Utilizzo del comando:
    mount BlockDevice MountPoint
    mount -o acl BlockDevice MountPoint
    L'opzione -o acl mount permette la manipolazione dei file ACL. Se un file system è stato montato senza l'opzione di mount -o acl, gli utenti saranno in grado di visualizzare gli ACL (con getfacl), ma non saranno in grado di impostarli (con setfacl).

    Nota

    È possibile utilizzare gli script init.d inclusi con Red Hat Cluster Suite per montare e smontare automaticamente i file system GFS2. Per maggiori informazioni sugli script init.d, consultare la Configurazione e Gestione di un Red Hat Cluster.

Capitolo 3. Gestione del GFS2

Questo capitolo descrive i compiti ed i comandi per la gestione di GFS2 e comprende le seguenti sezioni:

3.1. Creazione di un file system

Creazione di un file system GFS2 con il comando mkfs.gfs2. È possibile utilizzare mkfs specificando l'opzione -t gfs2. Così facendo verrà creato un file system sul volume LVM attivato. Le seguenti informazioni sono necessarie per eseguire il comando mkfs.gfs2:
  • Nome modulo/protocollo di blocco (il protocollo di blocco per un cluster è lock_dlm)
  • Nome del cluster (quando in esecuzione come parte di una configurazione del cluster)
  • Numero di journal (un journal necessario per ogni nodo che monterà il file system)
Durante la creazione di un file system GFS è possibile utilizzare direttamente mkfs.gfs2, oppure il comando mkfs con il parametro -t specificando un filesystem di tipo gfs2 seguito dalle opzioni del file system gfs2.

Utilizzo

Durante la creazione di un filesystem GFS2 clusterizzato è possibile utilizzare uno dei seguenti formati:
mkfs.gfs2 -p LockProtoName -t LockTableName -j NumberJournals BlockDevice
mkfs -t gfs2 -p LockProtoName -t LockTableName -j NumberJournals BlockDevice
Durante la creazione di un file system GFS2 locale sarà possibile usare uno dei seguenti formati:
mkfs.gfs2 -p LockProtoName -j NumberJournals BlockDevice
mkfs -t gfs2 -p LockProtoName -j NumberJournals BlockDevice

Avvertimento

Assicuratevi di essere a conoscenza su come utilizzare i parametri LockProtoName e LockTableName. Un utilizzo non appropriato dei parametri LockProtoName e LockTableName potrebbe causare la corruzione del file system o di lock space.
LockProtoName
Specifica il nome del protocollo di blocco da usare. Il suddetto protocollo per un cluster è lock_dlm.
LockTableName
Questo parametro viene specificato per il file system GFS2 in una configurazione del cluster. Esso presenta due sezioni separate da due punti (senza spazio) nel seguente modo: ClusterName:FSName
  • ClusterName, il nome del cluster di Red Hat per il quale è stato creato il file system GFS2.
  • FSName, il nome del file system, può contenere da 1 a 16 caratteri ed il nome deve essere unico per tutti i file system lock_dlm presenti nel cluster, e per tutti i filesystem (lock_dlm e lock_nolock) su ogni nodo locale.
Number
Specifies the number of journals to be created by the mkfs.gfs2 command. One journal is required for each node that mounts the file system. For GFS2 file systems, more journals can be added later without growing the filesystem, as described in Sezione 3.6, «Come aggiungere i journal ad un file system».
BlockDevice
Specifica un physical o logical volume.

Esempi

In questo esempio, lock_dlm è il protocollo di blocco usato dal file system poichè esso è un file system clusterizzato. Il nome del cluster è alpha, ed il nome del file system è mydata1. Il file system contiene otto journal e viene creato su /dev/vg01/lvol0.
mkfs.gfs2 -p lock_dlm -t alpha:mydata1 -j 8 /dev/vg01/lvol0
mkfs -t gfs2 -p lock_dlm -t alpha:mydata1 -j 8 /dev/vg01/lvol0
In questo esempio viene creato un secondo file system lock_dlm, il quale può essere usato nel cluster alpha. Il nome del file system è mydata2. Il file system contiene otto journal e viene creato su /dev/vg01/lvol1.
mkfs.gfs2 -p lock_dlm -t alpha:mydata2 -j 8 /dev/vg01/lvol1
mkfs -t gfs2 -p lock_dlm -t alpha:mydata2 -j 8 /dev/vg01/lvol1

Opzioni complete

Tabella 3.1, «Opzioni del comando: mkfs.gfs2» describes the mkfs.gfs2 command options (flags and parameters).

Tabella 3.1. Opzioni del comando: mkfs.gfs2

Flag Parametro Descrizione
-c Megabytes Sets the initial size of each journal's quota change file to Megabytes.
-D Abilita l'output di debugging.
-h Aiuto. Mostra le opzioni disponibili.
-J MegaBytes Specifica la dimensione del journal in megabytes. La dimensione predefinita del journal è 128 megabytes. La dimensione minima è 8 megabytes. Journal più grandi migliorano le prestazioni anche se utilizzano una memoria maggiore rispetto ai journal più piccoli.
-j Number Specifica il numero di journal da creare con il comando mkfs.gfs2. Sarà necessario un journal per ogni nodo che monta il file system. Se questa opzione non viene specificata, verrà creato un solo journal. Per i file system GFS2, è possibile aggiungere un numero maggiore di journal senza espandere il file system.
-O Impedisce al comando mkfs.gfs2 di chiedere la conferma prima della scrittura sul file system.
-p LockProtoName
Specifica il nome del protocollo di blocco da usare. I protocolli di blocco riconosciuti includono:
lock_dlm — Il modulo di blocco standard necessario per un file system clusterizzato.
lock_nolock — Usato quando GFS2 si comporta come un file system locale (un solo nodo).
-q Quiet. Non mostrare niente.
-r MegaBytes Specifica la dimensione delle risorse dei gruppi in megabytes. La dimensione minima della risorsa del gruppo è 32 MB. La dimensione massima è di 2048 MB. Una dimensione della risorsa del gruppo molto grande potrebbe aumentare le prestazioni su file system molto grandi. Se non specificato, mkfs.gfs2 sceglie la dimensione in base alla dimensione del file system: una dimensione media dei file system contiene circa 256MB di risorsa dei gruppi, file system più grandi avranno delle RG più grandi per migliori prestazioni.
-t LockTableName
Un identificatore unico il quale specifica il campo della tabella di blocco durante l'utilizzo del protocollo lock_dlm; il protocollo lock_nolock non utilizza questo parametro.
Questo parametro presenta due campi separati da due punti (senza alcuno spazio): ClusterName:FSName.
ClusterName è il nome del Red Hat cluster per il quale è stato creato il file system GFS2; solo gli appartenenti a questo cluster possono utilizzare questo file system. Il nome del cluster viene impostato nel file /etc/cluster/cluster.conf tramite Cluster Configuration Tool, e mostrato sul Cluster Status Tool nella GUI di gestione del cluster di Red Hat Cluster Suite.
FSName, il nome del file system, può contenere da 1 a 16 caratteri, ed il nome deve essere unico tra tutti i file system presenti nel cluster.
-u MegaBytes Specifies the initial size of each journal's unlinked tag file.
-V Mostra le informazioni sulla versione del comando

3.2. Montaggio di un file system

Before you can mount a GFS2 file system, the file system must exist (refer to Sezione 3.1, «Creazione di un file system»), the volume where the file system exists must be activated, and the supporting clustering and locking systems must be started (refer to Configuring and Managing a Red Hat Cluster). After those requirements have been met, you can mount the GFS2 file system as you would any Linux file system.
Per manipolare i file ACL è necessario montare il file system con l'opzione di montaggio -o acl. Se un file system è stato montato senza l'opzione -o acl, gli utenti saranno in grado di visualizzare le ACL (con getfacl), senza però poterle impostare (con setfacl).

Utilizzo

Mounting Without ACL Manipulation
mount BlockDevice MountPoint
Mounting With ACL Manipulation
mount -o acl BlockDevice MountPoint
-o acl
Opzione specifica al GFS2 che permettere la manipolazione dei file ACL.
BlockDevice
Specifica il dispositivo a blocchi dove risiede il file system GFS2.
MountPoint
Specifica la directory dove il file system GFS2 deve essere montato.

Esempio

In questo esempio il file system GFS2 presente su /dev/vg01/lvol0 viene montato sulla directory /mygfs2.
mount /dev/vg01/lvol0 /mygfs2

Utilizzo completo

mount BlockDevice MountPoint -o option
The -o option argument consists of GFS2-specific options (refer to Tabella 3.2, «Opzioni di mount specifiche al GFS2») or acceptable standard Linux mount -o options, or a combination of both. Multiple option parameters are separated by a comma and no spaces.

Nota

Il comando mount è un comando Linux. In aggiunta all'utilizzo delle opzioni specifiche al GFS2 descritte in questa sezione, è possibile utilizzare altre opzioni standard del comando mount (per esempio, -r). Per informazioni su altre opzioni del comando mount di Linux, consultare la pagina man di mount.
Tabella 3.2, «Opzioni di mount specifiche al GFS2» describes the available GFS2-specific -o option values that can be passed to GFS2 at mount time.

Tabella 3.2. Opzioni di mount specifiche al GFS2

Opzione Descrizione
acl Permette la manipolazione dei file ACL. Se un file system è stato montato senza l'opzione di montaggio acl, gli utenti saranno in grado di visualizzare le ACL (con getfacl), senza però poterle impostare (con setfacl).
data=[ordered|writeback] Una volta impostato data=ordered, i dati dell'utente modificati da una transazione, verranno scaricati sul disco prima di confermare la transazione sul disco stesso. Tale operazione dovrebbe impedire una visualizzazione da parte dell'utente, dei blocchi non inizializzati all'interno di un file dopo il verificarsi di un crash. Se invece è stato impostato data=writeback, i dati verranno scritti in qualsiasi momento sul disco, dopo che lo stesso è stato sporcato. Tale operazione non garantisce una consistenza simile a quella garantita dalla modalità ordered, ma dovrebbe essere più veloce sotto alcuni carichi di lavoro. La modalità predefinita è ordered.
ignore_local_fs
Attenzione: Questa opzione non dovrebbe essere usata quando i file system GFS2 risultano essere condivisi.
Forza GFS2 a trattare il file system come se fosse un file system multihost. Per default utilizzando lock_nolock si abilitano automaticamente localcaching e localflocks.
localcaching
Attenzione: Questa opzione non dovrebbe essere usata quando i file system GFS2 risultano essere condivisi.
Indica a GFS2 che è in esecuzione come file system locale. GFS2 può a sua volta abilitare le capacità di ottimizzazione selezionate, che non risultano disponibili durante l'esecuzione in modalità cluster. Il flag localcaching viene abilitato automaticamente da lock_nolock.
localflocks
Attenzione: Questa opzione non dovrebbe essere utilizzata quando i file system GFS2 sono condivisi.
Indica a GFS2 di far eseguire flock e fcntl al livello VFS (virtual file system). Il flag localflocks viene automaticamente abilitato da lock_nolock.
lockproto=LockModuleName Permette all'utente di specificare il protocollo di blocco da usare con il file system. Se LockModuleName non risulta essere specificato, il nome del protocollo di blocco viene letto dal file system superblock.
locktable=LockTableName Permette all'utente di specificare la tabella di blocco da usare con il file system.
quota=[off/account/on] Abilita o disabilita i quota per un file system. L'impostazione dei quota in modo da essere in uno stato account, causa una gestioen corretta delle statistiche di utilizzo per UID/GID da parte dei file system; i valori limiti e di avvertimento vengono ignorati. Il valore predefinito è off.
upgrade Aggiorna il formato on-disk del file system in modo da poterlo utilizzare da versioni più recenti di GFS2.

3.3. Come smontare un file system

Il file system GFS2 può essere smontato allo stesso modo di un qualsiasi file system di Linux — utilizzando il comando umount.

Nota

Il comando umount è un comando del sistema Linux. Le informazioni su questo comando sono disponibili nelle pagine man del comando umount di Linux.

Utilizzo

umount MountPoint
MountPoint
Specifica la directory dove il file system GFS2 deve essere montato.

3.4. Gestione quota del GFS2

I quota del File-system sono utilizzati per limitare la quantità di spazio del file system utilizzato da un utente o gruppo. Un utente o gruppo non possiedono alcun limite quota fino a quando non ne viene impostato uno. GFS2 controlla lo spazio utilizzato da ogni utente o gruppo, anche quando non è implementato alcun limite. Il GFS2 aggiorna le informazioni dei quota in modo tale da non aver bisogno di una ricostruzione dell'utilizzo del quota dopo il crash del sistema.
To prevent a performance slowdown, a GFS2 node synchronizes updates to the quota file only periodically. The "fuzzy" quota accounting can allow users or groups to slightly exceed the set limit. To minimize this, GFS2 dynamically reduces the synchronization period as a "hard" quota limit is approached.
GFS2 utilizza il suo comando gfs2_quotaper gestire i quota. Altre funzioni quota di Linux non possono essere usate con il GFS2.

3.4.1. Impostazione dei quota

Sono disponibili due impostazioni quota per ogni user ID (UID) o group ID (GID): un hard limit ed un warn limit.
Un hard limit rappresenta la quantità di spazio utilizzabile. Il file system non permetterà all'utente o gruppo di utilizzare una quantità maggiore di spazio del disco. Se hard limit è uguale a zero nessun limite è stato impostato.
Un warn limit rappresenta un valore più basso rispetto all'hard limit. Il file system notificherà all'utente o gruppo il raggiungimento del warn limit, informandoli sullo spazio da essi utilizzato. Se impostate un valore di warn limit pari a zero, non verrà implementato alcun limite.
I limiti vengono impostati utilizzando il comando gfs2_quota. Il comando può essere eseguito su di un nodo singolo dove GFS2 è montato.
By default, quota enforcement is not set on GFS2 file systems. To enable quota accounting, use the quota= of the mount command when mounting the GFS2 file system, as described in Sezione 3.4.4, «Abilitazione/Disabilitazione Quota Enforcement».

Utilizzo

Setting Quotas, Hard Limit
gfs2_quota limit -u User -l Size -f MountPoint
gfs2_quota limit -g Group -l Size -f MountPoint
Setting Quotas, Warn Limit
gfs2_quota warn -u User -l Size -f MountPoint
gfs2_quota warn -g Group -l Size -f MountPoint
User
Un user ID da limitare o avvertire. Esso può essere un nome utente del password file o il numero UID.
Group
Un group ID da limitare o avvertire. Esso può essere un nome del gruppo del group file o il numero GID.
Size
Specifica il nuovo valore da limitare o avvertire . Per default il valore espresso in unità di megabytes. I flag -k, -s e -b aggiuntivi modificano il valore rispettivamente in kilobyte, settori e blocchi del file system.
MountPoint
Specifica il file system GFS2 al quale vengono applicate le azioni.

Esempi

In questo esempio viene impostato un hard limit per l'utente Bert di 1024 megabytes (1 gigabyte) sul file system /mygfs2.
gfs2_quota limit -u Bert -l 1024 -f /mygfs2
In questo esempio viene impostato un warn limit per il group ID 21 di 50 kilobytes sul file system /mygfs2.
gfs2_quota warn -g 21 -l 50 -k -f /mygfs2

3.4.2. Visualizzazione utilizzo e limiti dei quota

È possibile visualizzare i limiti quota insieme all'uso corrente per un utente o gruppo specifico, attraverso il comando gfs2_quota get. L'intero contesto di quota file può essere visualizzato utilizzando il comando gfs2_quota list, in tal caso tutti gli ID con un valore diverso da zero di hard limit e warn limit vengono elencati.

Utilizzo

Displaying Quota Limits for a User
gfs2_quota get -u User -f MountPoint
Displaying Quota Limits for a Group
gfs2_quota get -g Group -f MountPoint
Displaying Entire Quota File
gfs2_quota list -f MountPoint
User
Un user ID per visualizzare le informazioni relative ad un utente specifico. Può essere sia un nome utente del password file o il numero UID.
Group
Un group ID per visualizzare le informazioni relative ad un gruppo specifico. Può essere sia un nome del gruppo presente nel group file o il numero GID.
MountPoint
Specifica il file system GFS2 al quale vengono applicate le azioni.

Output del comando

Le informazioni relative al quota del GFS2 del comando gfs2_quota vengono visualizzate nel modo seguente:
user User: limit:LimitSize warn:WarnSize value:Value

group Group: limit:LimitSize warn:WarnSize value:Value

I valori LimitSize, WarnSize, e Value sono per default unità in megabytes. Aggiungendo -k, -s, o -b sulla linea di comando le unità verranno modificate rispettivamente in kilobyte, settori o blocchi di file system.
User
Un nome utente o ID ai quali vengono associati i dati.
Group
Un nome del gruppo o ID ai quali vengono associati i dati.
LimitSize
L'hard limit impostato per l'utente o il gruppo. Se nessun limite è stato impostato questo valore è zero.
Value
La quantità di spazio del disco usato dall'utente o gruppo.

Commenti

Durante la visualizzazione delle informazioni dei quota, il comando gfs2_quota non risolve gli UID e GID in nomi se l'opzione -n è stata aggiunta al comando stesso.
Space allocated to GFS2's hidden files can be left out of displayed values for the root UID and GID by adding the -d option to the command line. This is useful when trying to match the numbers from gfs2_quota with the results of a du command.

Esempi

Questo esempio riporta le informazioni del quota per tutti gli utenti ed i gruppi con un limite, o se gli stessi utilizzano lo spazio del disco sul file system /mygfs2.
gfs2_quota list -f /mygfs2
In questo esempio vengono riportate le informazioni in settori relativi al quota, per il gruppo users sul file system /mygfs2.
gfs2_quota get -g users -f /mygfs2 -s

3.4.3. Sincronizzazione dei quota

GFS2 conserva tutte le informazioni relative al quota nel proprio file interno presente sul disco. Un nodo GFS2 non aggiorna il file quota durante ogni processo di scrittura del file system; esso al contrario, aggiorna il file quota ogni 60 secondi. Tale processo è necessario per evitare contrasti tra i nodi durante la scrittura sul file quota, con un relativo rallentamento delle prestazioni.
Prima del raggiungimento dei imiti quota da parte di un utente o gruppo, GFS2 riduce dinamicamente l'intervallo tra un aggiornamento del file quota e l'altro, in modo da evitare il superamento del limite. L'intervallo di tempo medio tra i vari processi di sincronizzazione è regolabile, quota_quantum, e può essere modificato utilizzando il comando gfs2_tool. Per default il periodo è 60 secondi. Altresì, il parametro quota_quantum deve essere impostato su ogni nodo e ogni qualvolta viene montato il file system. (Le modifiche del parametro quota_quantum non verranno mantenute dopo i processi umount.)
È possibile utilizzare il comando gfs2_quota sync per sincronizzare le informazioni relative al quota da un nodo al file quota sul disco, tra gli aggiornamenti automatici eseguiti dal GFS2.

Utilizzo

Synchronizing Quota Information
gfs2_quota sync -f MountPoint
MountPoint
Specifica il file system GFS2 al quale vengono applicate le azioni.
Tuning the Time Between Synchronizations
gfs2_tool settune MountPoint quota_quantum Seconds
MountPoint
Specifica il file system GFS2 al quale vengono applicate le azioni.
Seconds
Specifica il nuovo periodo tra le normali sincronizzazioni del file quota del GFS2. I valori più piccoli possono rallentare le prestazioni.

Esempi

In questo esempio vengono sincronizzate le informazioni del nodo eseguito sul file system /mygfs2.
gfs2_quota sync -f /mygfs2
In questo esempio viene modificato il periodo predefinito tra aggiornamenti regolari del file quota in una ora (3600 secondi) per il file system /mygfs2, su di un nodo singolo.
gfs2_tool settune /mygfs2 quota_quantum 3600

3.4.4. Abilitazione/Disabilitazione Quota Enforcement

Nei file system GFS2, il quota enforcement è disabilitato per default. Per abilitare il quota enforcement per un file system, montare il file system specificando l'opzione quota=on.

Utilizzo

mount -o quota=on BlockDevice MountPoint
Per montare un file system con un quota enforcement disabilitato, montare il file system specificando l'opzione quota=off. Questa risulta essere l'impostazioni predefinita.
mount -o quota=off BlockDevice MountPoint
-o quota={on|off}
Specifica l'abilitazione o disabilitazione del quota enforcement quando il file system è montato.
BlockDevice
Specifica il dispositivo a blocchi dove risiede il file system GFS2.
MountPoint
Specifica la directory dove il file system GFS2 deve essere montato.

Esempi

In questo esempio il file system GFS2 presente sul /dev/vg01/lvol0 è montato sulla directory /mygfs2 con quota enforcement abilitato.
mount -o quota=on /dev/vg01/lvol0 /mygfs2

3.4.5. Attivazione Quota Accounting

È possibile controllare l'utilizzo del disco ed il quota accounting per ogni utente e gruppo, senza implementare valori limiti e di avvertimento. Per fare questo montare il file system specificando l'opzione quota=account.

Utilizzo

mount -o quota=account BlockDevice MountPoint
-o quota=account
Specifica che le statistiche dell'utente e del gruppo sono gestite dal file system, anche se i limiti di quota non sono implementati.
BlockDevice
Specifica il dispositivo a blocchi dove risiede il file system GFS2.
MountPoint
Specifica la directory dove il file system GFS2 deve essere montato.

Esempio

In questo esempio il file system GFS2 su /dev/vg01/lvol0 è montato sulla directory /mygfs2 con quota accounting abilitato.
mount -o quota=account /dev/vg01/lvol0 /mygfs2

3.5. Come espandere un file system

Il comando gfs2_grow viene usato per espandere un file system GFS2 dopo aver ingrandito il dispositivo sul quale risiede il file system. Con l'esecuzione di un comando gfs2_grow su di un file system GFS2 esistente, verrà utilizzato tutto lo spazio rimasto tra la parte finale del file system, e la parte finale del dispositivo con una nuova estensione del file system GFS2 inizializzata. Una volta completata tale operazione, verrà aggiornato l'indice delle risorse per il file system. Tutti i nodi presenti nel cluster potranno usare lo spazio di storage appena aggiunto.
Il comando gfs2_grow deve essere eseguito su di un file system montato, e su di un unico nodo del cluster. Tutti i nodi restanti noteranno l'avvenuta espansione ed automaticamente inizieranno ad usare il nuovo spazio.

Utilizzo

gfs2_grow MountPoint
MountPoint
Specifica il file system GFS2 al quale vengono applicate le azioni.

Commenti

Prima di eseguire il comando gfs2_grow:
  • Eseguite il backup dei dati più importanti sul file system.
  • Determinate il volume da espandere usato dal file system tramite il comando df MountPoint.
  • Expand the underlying cluster volume with LVM. For information on administering LVM volumes, see the LVM Administrator's Guide
Dopo aver eseguito il comando gfs2_grow, eseguite df per controllare che il nuovo spazio sia disponibile nel file system.

Esempi

In questo esempio viene riportata l'espansione del file system presente sulla directory /mygfs2fs.
[root@dash-01 ~]# gfs2_grow /mygfs2fs
FS: Mount Point: /mygfs2fs
FS: Device:      /dev/mapper/gfs2testvg-gfs2testlv
FS: Size:        524288 (0x80000)
FS: RG size:     65533 (0xfffd)
DEV: Size:       655360 (0xa0000)
The file system grew by 512MB.
gfs2_grow complete.

Utilizzo completo

gfs2_grow [Options] {MountPoint | Device} [MountPoint | Device]

MountPoint
Specifica la directory sulla quale è stato montato il file system GFS2.
Device
Specifica il nodo del dispositivo del file system.
Tabella 3.3, «Opzioni specifiche a GFS2 disponibili durante l'espansione di un file system» describes the GFS2-specific options that can be used while expanding a GFS2 file system.

Tabella 3.3. Opzioni specifiche a GFS2 disponibili durante l'espansione di un file system

Opzione Descrizione
-h Help. Visualizza un breve messaggio relativo all'utilizzo
-q Quiet. Diminuisce il livello di verbosità
-r MegaBytes Specifica la dimensione della nuova risorsa del gruppo. La dimensione predefinita è 256MB.
-T Test. Esegue tutti i calcoli, ma non esegue la scrittura dei dati sul disco e non espande il file system.
-V Mostra le informazioni sulla versione del comando

3.6. Come aggiungere i journal ad un file system

Il comando gfs2_jadd viene usato per aggiungere i journal ad un file system GFS2. È possibile aggiungere journal ad un file system GFS2 in modo dinamico in qualsiasi momento, senza espandere il logical volume. Il comando gfs2_jadd deve essere eseguito su di un file system montato, e solo su di un nodo nel cluster. Tutti i nodi restanti noteranno l'avvenuta espansione.
Prima di aggiungere i journal ad un file system GFS, è possibile utilizzare l'opzione journals di gfs2_tool, per sapere il numero di journal contenuti nel file system GFS2. I seguenti esempi riportano il numero e la dimensione dei journal nel file system montato su /mnt/gfs2.
[root@roth-01 ../cluster/gfs2]# gfs2_tool journals /mnt/gfs2
journal2 - 128MB
journal1 - 128MB
journal0 - 128MB
3 journal(s) found.

Utilizzo

gfs2_jadd -j Number MountPoint
Number
Specifica il numero di nuovi journal da aggiungere.
MountPoint
Specifica la directory sulla quale è stato montato il file system GFS2.

Esempi

In questo esempio, viene aggiunto un journal al file system sulla directory /mygfs2.
gfs2_jadd -j1 /mygfs2
In questo esempio, vengono aggiunti due journal al file system sulla directory /mygfs2.
gfs2_jadd -j2 /mygfs2

Utilizzo completo

gfs2_jadd [Options] {MountPoint | Device} [MountPoint | Device]
MountPoint
Specifica la directory sulla quale è stato montato il file system GFS2.
Device
Specifica il nodo del dispositivo del file system.
Tabella 3.4, «Opzioni specifiche al GFS2 disponibili per l'aggiunta dei journal» describes the GFS2-specific options that can be used when adding journals to a GFS2 file system.

Tabella 3.4. Opzioni specifiche al GFS2 disponibili per l'aggiunta dei journal

Flag Parametro Descrizione
-h Help. Visualizza un breve messaggio sull'utilizzo.
-J MegaBytes Specifica la dimensione dei nuovi journal in megabytes. La dimensione predefinita del journal è 128 megabyte. La dimensione minima è 32 megabyte. Per aggiungere journal con dimensioni diverse sul file system, eseguire il comando gfs2_jadd per ogni journal. La dimensione specificata durante la creazione del file system, viene arrotondata per difetto rendendola così multipla della dimensione del segmento del journal.
-j Number Specifica il numero di nuovi journal da aggiungere tramite il comando gfs2_jadd. Il valore predefinito è 1.
-q Quiet. Diminuisce il livello di verbosità
-V Mostra le informazioni sulla versione del comando

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

3.7.2. Come abilitare e disabilitare il data journaling con il comando gfs2_tool

Il seguente comando abilita il data journaling sul file GFS2 /mnt/gfs2/gfs2file
[root@roth-01 ~]# gfs2_tool setflag jdata /mnt/gfs2/gfs2file 
È possibile utilizzare il comando lsattr per verificare l'impostazione del flag jdata.
[root@roth-01 ~]# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2file
Se avete impostato il flag jdata per una directory, tutti i file e le directory successivamente create nella directory in questione, verranno salvati all'interno del journal.
I seguenti comandi creano una nuova sottodirectory chiamata gfs2_dir all'interno della directory /mnt/gfs2, impostano il flag jdata per la directory, e verificano se il flag è stato impostato correttamente. Successivamente i comandi creeranno il file gfs2file nella directory, e verificheranno l'impostazione corretta del flag per il file in questione.
[root@roth-01 ~]# mkdir /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# gfs2_tool setflag jdata /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
Per rimuovere il flag jdata da un file o directory, è possibile utilizzare il comando gfs2_tool clearflag jdata come nell'esempio di seguito riportato.
[root@roth-01 ~]# gfs2_tool clearflag jdata /mnt/gfs2/gfs2file 
[root@roth-01 ~]# lsattr /mnt/gfs2
------------- /mnt/gfs2/gfs2file

3.8. Configurazione degli aggiornamenti atime

Ogni inode del file e della directory può avere tre tipi di timestamp:
  • ctime — Ultimo cambiamento dello stato di un inode
  • mtime — Ultima modifica dei dati di un file (directory)
  • atime — L'ultimo accesso ai dati di un file (o directory)
Se gli aggiornamenti atime sono stati abilitati, come per impostazione predefinita sul GFS2 ed altri file system di Linux, ogni qualvolta il file viene letto, l'inode corrispondente deve essere aggiornato.
Poichè un numero limitato di applicazioni utilizzano le informazioni fornite da atime, i suddetti aggiornamenti possono richiedere una quantità non necessaria di processi di scrittura e di attività di file locking. Tale traffico può influenzare negativamente le prestazioni, e per questo motivo è consigliato disabilitare o ridurre la frequezza degli aggiornamenti atime.
Per questo motivo sono disponibili due metodi attraverso i quali è possibile ridurre gli effetti dovuti agli aggiornamenti atime:
  • Montaggio con relatime (atime relativo), il quale aggiorna atime se l'aggiornamento atime precedente è più vecchio rispetto all'aggiornamento mtime o ctime.
  • Montaggio con noatime il quale disabilita gli aggiornamenti atime sul file system in questione.

3.8.1. Montaggio con relatime

L'opzione di montaggio di Linux relatime (atime relativo) può essere specificata quando il file system è stato montato. Ciò specifica che atime viene aggiornato se l'aggiornamento atime precedente è più vecchio rispetto all'aggiornamento mtime o ctime.

Utilizzo

mount  BlockDevice MountPoint -o relatime
BlockDevice
Specifica il dispositivo a blocchi dove risiede il file system GFS2.
MountPoint
Specifica la directory dove il file system GFS2 deve essere montato.

Esempio

In questo esempio, il file system GFS2 risiede su /dev/vg01/lvol0 ed è montato sulla directory /mygfs2. Gli aggiornamenti atime si verificano solo se l'aggiornamento atime precedente, è più vecchio rispetto all'aggiornamento mtime o ctime.
mount /dev/vg01/lvol0 /mygfs2 -o relatime

3.8.2. Montaggio con noatime

L'opzione di montaggio di Linux noatime può essere specificata se il file system è stato montato, questa opzione disabilita gli aggiornamenti atime sul file system in questione.

Utilizzo

mount BlockDevice MountPoint -o noatime
BlockDevice
Specifica il dispositivo a blocchi dove risiede il file system GFS2.
MountPoint
Specifica la directory dove il file system GFS2 deve essere montato.

Esempio

In questo esempio, il file system GFS2 risiede su /dev/vg01/lvol0 e viene montato sulla directory /mygfs2 con aggiornamenti atime disabilitati.
mount /dev/vg01/lvol0 /mygfs2 -o noatime

3.9. Sospensione dell'attività su di un file system

È possibile sospendere la scrittura su di un file system utilizzando il comando gfs2_tool freeze. Tale sospensione permette l'utilizzo di istantanee del dispositivo basato sull'hardware, per catturare il file system in uno stato consistente. Il comando gfs2_tool unfreeze termina lo stato di sospensione.

Utilizzo

Start Suspension
gfs2_tool freeze MountPoint
End Suspension
gfs2_tool unfreeze MountPoint
MountPoint
Specifica il file system.

Esempi

In questo esempio vengono sospesi i processi di scrittura sul file system /mygfs2.
gfs2_tool freeze /mygfs2
In questo esempio viene terminata la sospensione dei processi di scrittura sul file system /mygfs2.
gfs2_tool unfreeze /mygfs2

3.10. Come riparare un file system

Se si verifica il fallimento dei nodi ed il file system è stato montato, il journaling del file system permette un processo di ripristino molto rapido. Tuttavia, se un dispositivo di storage perde alimentazione o è fisicamente scollegato, in questi casi si potrebbe verificare una corruzione del file system. (Il Journaling non può essere usato per eseguire il ripristino da errori che riguardano il sottosistema di storage.) Se si verifica questo tipo di corruzione, è possibile ripristinare il normale funzionamento del GFS2 utilizzando il comando fsck.gfs2.

Avvertimento

Il comando fsck.gfs2 deve essere eseguito solo su di un file system non montato da tutti i nodi.

Nota

Se avete precedentemente utilizzato il comando gfs_fsck sui file system GFS, vi informiamo che il comando fsck.gfs2 differisce da alcune versioni precedenti di gfs_fsck nel modo di seguito riportato:
  • Non è possibile impostare la modalità interattiva con Ctrl+C. Premendo Ctrl+C cancellerete il comando fsck.gfs2. Non premete Ctrl+C se non desiderate cancellare il comando.
  • È possibile aumentare il livello di verbosità utilizando il flag -v. Aggiungendo un secondo flag -v aumenterete ulteriormente tale livello.
  • È possibile diminuire il livello di verbosità utilizando il flag -q. Aggiungendo un secondo flag -q diminuirete ulteriormente tale livello.
  • L'opzione -n apre un file system in modalità di sola lettura, e risponderà automaticamente no ad ogni richiesta. L'opzione fornisce un modo attraverso il quale si cercherà di utilizzare il comando per rilevare la presenza di errori, senza però permettere al comando fsck.gfs2 di essere implementato.
Consultate la pagina man di gfs2.fsck per informazioni aggiuntive su altre opzioni del comando.

Utilizzo

fsck.gfs2 -y BlockDevice
-y
Con il flag -y tutte le domande verranno risposte con un yes. Con -y, il comando fsck.gfs2 non vi richiederà alcuna risposta prima di eseguire le modifiche.
BlockDevice
Specifica il dispositivo a blocchi dove risiede il file system GFS2.

Esempio

In questo esempio il file system GFS2 che risiede sul dispositivo a blocchi /dev/testvol/testlv viene riparato. Tutte le richieste di riparazione fatte vengono risposte automaticamente con yes.
[root@dash-01 ~]# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete

3.11. Bind Mounts e Context-Dependent Path Names

I file system GFS2 non forniscono alcun supporto per i Context-Dependent Path Name (CDPN), i quali permettono all'utente di creare link simbolici che indicano file o directory a destinazione variabili. Per questa funzionalità in GFS2, è possibile utilizzare l'opzione bind del comando mount.
L'opzione bind del comando mount permette di rimontare parte della gerarchia del file su di una posizione diversa, pur restando disponibile nella posizione originale. Di seguito viene riportato il formato del comando:
mount --bind olddir newdir
Dopo aver eseguito questo comando i contenuti della directory olddir saranno disponibili in due posizioni: olddir e newdir. È possibile utilizzare questa opzione per rendere disponibile un file singolo in due posizioni.
Per esempio, dopo aver eseguito i seguenti comandi i contenuti di /root/tmp risulteranno identici ai contenuti della directory /var/log precedentemente montata.
[root@menscryfa ~]# cd ~root
[root@menscryfa ~]# mkdir ./tmp
[root@menscryfa ~]# mount --bind /var/log /tmp
Alternativamente potrete utilizzare una entry all'interno del file /etc/fstab in modo da avere gli stessi risultati al momento dell'esecuzione del mount. La suddetta entry di /etc/fstab permetterà ai contenuti di /root/tmp di essere identici ai contenuti della directory /var/log.
/var/log                /root/tmp               none    bind            0 0
Dopo aver montato il file system è possibile utilizzare il comando mount per controllare il montaggio del file system, come riportato nel seguente esempio.
[root@menscryfa ~]# mount | grep /tmp
/var/log on /root/tmp type none (rw,bind)
Con un file system in grado di supportare il Context-Dependent Path Nam, potrete definire la directory /bin come un Context-Dependent Path Name risolvibile in uno dei seguenti percorsi, a seconda dell'architettura del sistema.
/usr/i386-bin
/usr/x86_64-bin
/usr/ppc64-bin
È possibile ottenere la stessa funzionalità creando una directory /bin vuota. Successivamente utilizzando uno script o una entry nel file /etc/fstab, è possibile montare ogni directory individuale dell'architettura sulla directory /bin, con un comando mount -bind. Per esempio, è possibile usare il seguente comando all'interno di uno script.
mount --bind /usr/i386-bin /bin
Alternativamente potrete utilizzare la seguente entry all'interno del file /etc/fstab.
/usr/1386-bin             /bin               none    bind            0 0
Un bind mount può fornire una maggiore flessibilità rispetto ad un Context-Dependent Path Name, poichè l'utente sarà in grado di usare questa caratteristica per montare directory diverse in base al criterio da lui definito (come ad esempio il valore di %fill per il file system). I Context-Dependent Path Names risultano molto più limitati nel contenuto. Da notare tuttavia che sarà necessario scrivere il proprio script per eseguire il mount in base al valore di %fill.

Avvertimento

Se montate un file system utilizzando l'opzione bind ed il file system originale è stato precedentemente montato in modalità rw, il nuovo file system sarà anch'esso montato in modalità rw, anche se utilizzate il flag ro; il flag ro verrà ignorato senza generare alcun messaggio. In questo caso, il nuovo file system potrebbe essere contrassegnato in modo non corretto come ro nella directory /proc/mounts.

Appendice A. Conversione di un file system da GFS a GFS2

Usare il comando gfs2_convert per convertire un file system GFS in un file system GFS2.
  1. Smontate il file system GFS da tutti i nodi presenti nel cluster.
  2. Eseguite il comando gfs_fsck sul file system GFS, in modo da assicurarvi che il file system non sia corrotto.
  3. Rimontate ed eseguite un backup del vostro file system esistente.
  4. Smontate il file system ed eseguite gfs2_convert gfsfilesystem. Il sistema mostrerà le domande di conferma insieme ai messaggi d'avviso prima delle conversione di gfsfilesystem in GFS2.
Il seguente esempio converte un file system GFS sul dispositivo a blocchi /dev/testvg/testlv in un file system GFS2.
[root@dash-01 ~]# gfs2_convert /dev/testvg/testlv
gfs2_convert version 2 (built Sep 25 2007 12:41:29)
Copyright (C) Red Hat, Inc.  2004-2006  All rights reserved.

This program will convert a gfs1 filesystem to a gfs2 filesystem.
WARNING: This can't be undone.  It is strongly advised that you:

   1. Back up your entire filesystem first.
   2. Run gfs_fsck first to ensure filesystem integrity.
   3. Make sure the filesystem is NOT mounted from any node.
   4. Make sure you have the latest software versions.
Convert /dev/testvg/testlv from GFS1 to GFS2? (y/n)y
Converting resource groups.
Converting inodes.
6 inodes converted.
Fixing file and directory information.
1 directories, 2 dirents fixed.
Converting journals.
Converting journal space to rg space.
Building system structures.
Removing obsolete gfs1 structures.
Committing changes to disk.
/dev/gfs2testvg/gfs2testlv: filesystem converted successfully to gfs2.
[root@dash-01 ~]#

Appendice B. Cronologia della revisione

Diario delle Revisioni
Revisione 3-10.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
Revisione 3-102012-07-18Anthony Towns
Rebuild for Publican 3.0
Revisione 1.0-0Thu Jan 29 2009

Indice analitico

A

adding journals to a file system, Come aggiungere i journal ad un file system
atime, configuring updates, Configurazione degli aggiornamenti atime
mounting with noatime , Montaggio con noatime
mounting with relatime , Montaggio con relatime
audience, A chi è rivolto

C

configuration, before, Prima d'impostare il GFS2
configuration, initial, Per iniziare
prerequisite tasks, Prerequisiti

D

data journaling, Data Journaling

G

GFS2
atime, configuring updates, Configurazione degli aggiornamenti atime
mounting with noatime , Montaggio con noatime
mounting with relatime , Montaggio con relatime
managing, Gestione del GFS2
quota management, Gestione quota del GFS2
displaying quota limits, Visualizzazione utilizzo e limiti dei quota
enabling quota accounting, Attivazione Quota Accounting
enabling/disabling quota enforcement, Abilitazione/Disabilitazione Quota Enforcement
setting quotas, Impostazione dei quota
synchronizing quotas, Sincronizzazione dei quota
GFS2 file system maximum size, Panoramica sul GFS2
GFS2-specific options for adding journals table, Utilizzo completo
GFS2-specific options for expanding file systems table, Utilizzo completo
growing a file system, Come espandere un file system

I

initial tasks
setup, initial, Compiti iniziali per l'impostazione
introduction, Introduzione
audience, A chi è rivolto

M

making a file system, Creazione di un file system
managing GFS2, Gestione del GFS2
maximum size, GFS2 file system, Panoramica sul GFS2
mkfs.gfs2 command options table, Opzioni complete
mount table, Utilizzo completo
mounting a file system, Montaggio di un file system

O

overview, Panoramica sul GFS2
configuration, before, Prima d'impostare il GFS2

P

path names, context-dependent (CDPNs), Bind Mounts e Context-Dependent Path Names
preface (vedi introduction)
prerequisite tasks
configuration, initial, Prerequisiti

Q

quota management, Gestione quota del GFS2
displaying quota limits, Visualizzazione utilizzo e limiti dei quota
enabling quota accounting, Attivazione Quota Accounting
enabling/disabling quota enforcement, Abilitazione/Disabilitazione Quota Enforcement
setting quotas, Impostazione dei quota
synchronizing quotas, Sincronizzazione dei quota

R

repairing a file system, Come riparare un file system

S

setup, initial
initial tasks, Compiti iniziali per l'impostazione
suspending activity on a file system, Sospensione dell'attività su di un file system

T

tables
GFS2-specific options for adding journals, Utilizzo completo
GFS2-specific options for expanding file systems, Utilizzo completo
mkfs.gfs2 command options, Opzioni complete
mount options, Utilizzo completo

U

unmounting a file system, Come smontare un file system

Nota Legale

Copyright © 2009 Red Hat Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.