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
2. Documentazione correlata
Per maggiori informazioni su come utilizzare Red Hat Enterprise Linux, consultare le seguenti risorse:
- Red Hat Enterprise Linux Installation Guide — Fornisce le informazioni relative all'installazione di Red Hat Enterprise Linux.
- Red Hat Enterprise Linux Deployment Guide — Fornisce le informazioni relative all'implementazione, configurazione e amministrazione di Red Hat Enterprise Linux 5.
Per maggiori informazioni su Red Hat Cluster Suite, consultare le seguenti risorse:
- Panoramica su Red Hat Cluster Suite — Fornisce una panoramica più dettagliata della Red Hat Cluster Suite.
- Configurazione e Gestione di un Red Hat Cluster — Fornisce le informazioni relative all'installazione, configurazione e gestione dei componenti del Red Hat Cluster.
- LVM Administrator's Guide: Configuration and Administration — Provides a description of the Logical Volume Manager (LVM), including information on running LVM in a clustered environment.
- Global File System: Configurazione e Amministrazione — Fornisce le informazioni relative al processo di installazione, configurazione e gestione del Red Hat GFS (Red Hat Global File System).
- Utilizzo del Device-Mapper Multipath — Fornisce le informazioni su come utilizzare il Device-Mapper Multipath di Red Hat Enterprise Linux.
- Come utilizzare GNBD con il Global File System — Fornisce una panoramica su come utilizzare un Global Network Block Device (GNBD) con Red Hat GFS.
- Amministrazione di Linux Virtual Server — Fornisce le informazioni sulla configurazione dei servizi e sistemi high-performance, con il Linux Virtual Server (LVS).
- Note di rilascio del Red Hat Cluster Suite — Fornisce le informazioni sulla release corrente del Red Hat Cluster Suite.
La documenatazione di Red Hat Cluster Suite ed altre documentazioni di Red Hat sono disposibili nelle versioni HTML, PDF, e RPM sul CD di documentazione di Red Hat Enterprise Linux, e online su http://www.redhat.com/docs/.
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
elock_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 systemmydata1
emydata2
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.
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. | ||||
|
| 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 | ||||
|
| 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 parametrojournals
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 flagcounters
, usato dal comandogfs_tool
per visualizzare le statistiche di GFS. - The
gfs2_tool
command does not support theinherit_jdata
flag. To flag a directory as "inherit jdata", you can set thejdata
flag on the directory or you can use thechattr
command to set the+j
flag on the directory. Using thechattr
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 chiamatestatfs
più veloci. - La modalità
atime
è stata migliorata in modo da ridurre il numero di operazioni I/O di scrittura generati daatime
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
() echattr
() tramite le chiamate standardioctl
(). - 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
egfs2_jadd
utilizzano il locking per evitare l'esecuzione simultanea di istanze multiple. - Il codice ACL è stato semplificato per chiamate
creat
() emkdir
(). - 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:
- Impostazione dei logical volume.
- Creazione di un file system GFS2.
- Montaggio dei file system.
Seguite queste fasi per una impostazione iniziale di GFS2.
- Utilizzando LVM, creare un logical volume per ogni file system GFS2 di Red Hat.
Nota
È possibile utilizzare gli scriptinit.d
inclusi in Red Hat Cluster Suite per attivare e disattivare automaticamente i logical volume. Per maggiori informazioni sugli scriptinit.d
, consultate la Configurazione e Gestione di un Red Hat Cluster - 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
-jNumberJournals BlockDevice
mkfs -t gfs2 -p lock_dlm -t
LockTableName
-jNumberJournals 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». - 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
aclmount
permette la manipolazione dei file ACL. Se un file system è stato montato senza l'opzione di mount
, gli utenti saranno in grado di visualizzare gli ACL (con-o
aclgetfacl
), ma non saranno in grado di impostarli (consetfacl
).Nota
È possibile utilizzare gli scriptinit.d
inclusi con Red Hat Cluster Suite per montare e smontare automaticamente i file system GFS2. Per maggiori informazioni sugli scriptinit.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 -pLockProtoName
-tLockTableName
-jNumberJournals BlockDevice
mkfs -t gfs2 -pLockProtoName
-tLockTableName
-jNumberJournals BlockDevice
Durante la creazione di un file system GFS2 locale sarà possibile usare uno dei seguenti formati:
mkfs.gfs2 -pLockProtoName
-jNumberJournals BlockDevice
mkfs -t gfs2 -pLockProtoName
-jNumberJournals 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 systemlock_dlm
presenti nel cluster, e per tutti i filesystem (lock_dlm
elock_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).
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 |
| |||||||
-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 |
| |||||||
-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
mountBlockDevice MountPoint
-ooption
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.
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 . | ||
| 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 . | ||
| 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 . | ||
| 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_quota
per 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 -uUser
-lSize
-fMountPoint
gfs2_quota limit -gGroup
-lSize
-fMountPoint
Setting Quotas, Warn Limit
gfs2_quota warn -uUser
-lSize
-fMountPoint
gfs2_quota warn -gGroup
-lSize
-fMountPoint
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 -uUser
-fMountPoint
Displaying Quota Limits for a Group
gfs2_quota get -gGroup
-fMountPoint
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:
userUser
: limit:LimitSize
warn:WarnSize
value:Value
groupGroup
: 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 settuneMountPoint
quota_quantumSeconds
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.
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.
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
ochattr -j
sul file o directory - Impostazione o rimozione di
jdata
sulla directory o sul file tramite il comandogfs2_tool setflag
ogfs2_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 inodemtime
— 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 aggiornaatime
se l'aggiornamentoatime
precedente è più vecchio rispetto all'aggiornamentomtime
octime
. - Montaggio con
noatime
il quale disabilita gli aggiornamentiatime
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à automaticamenteno
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 comandofsck.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 unyes
. Con-y
, il comandofsck.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.
- Smontate il file system GFS da tutti i nodi presenti nel cluster.
- Eseguite il comando
gfs_fsck
sul file system GFS, in modo da assicurarvi che il file system non sia corrotto. - Rimontate ed eseguite un backup del vostro file system esistente.
- Smontate il file system ed eseguite
gfs2_convert
. Il sistema mostrerà le domande di conferma insieme ai messaggi d'avviso prima delle conversione digfsfilesystem
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.400 | 2013-10-31 | ||
| |||
Revisione 3-10 | 2012-07-18 | ||
| |||
Revisione 1.0-0 | Thu 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
B
- bind mounts, Bind Mounts e Context-Dependent Path Names
C
- configuration, before, Prima d'impostare il GFS2
- configuration, initial, Per iniziare
- prerequisite tasks, Prerequisiti
D
- data journaling, Data Journaling
F
- feedback, Commenti
- file system
- adding journals, 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
- bind mounts, Bind Mounts e Context-Dependent Path Names
- context-dependent path names (CDPNs), Bind Mounts e Context-Dependent Path Names
- data journaling, Data Journaling
- growing, Come espandere un file system
- making, Creazione di un file system
- mounting, Montaggio di un file system
- 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
- repairing, Come riparare un file system
- suspending activity, Sospensione dell'attività su di un file system
- unmounting, Come smontare un file system
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.