In Solaris 10 sono stati riscontrati i seguenti problemi relativi ai file system.
Usando il comando zpool add è possibile aggiungere inavvertitamente dispositivi identici che possono produrre un danneggiamento dei dati. Non viene visualizzato nessun messaggio di errore.
Soluzione. Se viene creato un pool di memorizzazione ZFS con dispositivi identici, rimuoverlo e ricreare il pool di memorizzazione.
Se una zona non globale viene configurata inizialmente con un file system ZFS da attivare con il sottocomando add fs, specificando l'opzione mountpoint=legacy, l'installazione della zona non riesce. Viene visualizzato il seguente messaggio di errore.
ERROR: File o directory non trovati: impossibile attivare </zones/path/root/usr/local> in una zona non globale per l'installazione: impossibile accedere al dispositivo del blocco di origine o alla directory </path/local> |
Soluzione. Aggiungere l'accesso al file system ZFS dopo l'installazione della zona non globale.
Un'operazione zpool scrub o resilver su dati di grandi dimensioni può produrre un blocco del sistema o un errore irreversibile. Non viene visualizzato nessun messaggio di errore.
Soluzione. Se il sistema si blocca o produce un errore irreversibile, procedere come segue:
Riavviare il sistema.
Proseguire l'operazione resilver o scrub.
Non aggiungere ulteriore carico al sistema fino al termine dell'operazione resilver o scrub.
ZFS è progettato come file system conforme allo standard POSIX ed è effettivamente conforme nella maggior parte delle situazioni. Sono tuttavia presenti due condizioni limite in cui ZFS non soddisfa i test di conformità POSIX:
Aggiornamento delle statistiche di capacità del file system ZFS.
Modifica dei dati esistenti in presenza di un file system pieno al 100%.
CR collegati:
6362314
6362156
6361650
6343113
6343039
In seguito all'aggiunta delle patch di ZFS a un sistema Solaris 10 11/06, il comando patchadd produce messaggi di avviso impropri, in quanto i pacchetti di ZFS vengono aggiunti al sistema per la prima volta. Viene visualizzato il seguente messaggio di errore:
Le seguenti patch richieste contengono pacchetti non installati sul sistema: Il pacchetto SUNWzfskr della directory SUNWzfskr della patch 122641-03 non è installato sul sistema. Le modifiche per il pacchetto SUNWzfskr non verranno applicate al sistema. |
Soluzione.
Ignorare i messaggi impropri del comando patchadd.
Se si utilizza il comando fdisk -E per modificare un disco utilizzato da un pool di memorizzazione ZFS, il pool diventa inutilizzabile e possono prodursi errori di I/O o errori irreversibili.
Soluzione.
Non utilizzare il comando fdisk per modificare un disco utilizzato da un pool di memorizzazione ZFS. Per accedere a un disco utilizzato da un pool di memorizzazione ZFS, utilizzare il comando format. In generale, i dischi che contengono file system in uso non dovrebbero essere modificati.
Qui di seguito sono descritti i problemi relativi ai prodotti Veritas NetBackup e Brightstor ARCserve Backup.
Veritas NetBackup può essere utilizzato ed è supportato per il backup dei file ZFS. Tuttavia, il prodotto attualmente non supporta il backup o il ripristino degli ACL NFSv4 dai file ZFS. Viene effettuato il backup e il ripristino corretto delle impostazioni delle autorizzazioni tradizionali e degli altri attributi dei file.
Se un utente cerca di eseguire il backup o il ripristino dei file ZFS, le informazioni relative agli ACL NFSv4 vengono rimosse dai file ZFS senza alcuna indicazione per l'utente. Nessun messaggio di errore segnala che le informazioni degli ACL sono state rimosse dai file ZFS.
Il supporto per gli ACL ZFS/NFSv4 è in corso di sviluppo e dovrebbe essere disponibile nella prossima versione di Veritas NetBackup release.
Soluzione 1.
In Solaris 10 11/06, i comandi tar e cpio sono in grado di gestire correttamente i file ZFS con ACL NFSv4.
Utilizzare il comando tar con l'opzione -p oppure il comando cpio con l'opzione -P per scrivere i file ZFS in un file. Quindi, usare Veritas NetBackup per il backup dell'archivio tar o cpio.
Soluzione 2.
In alternativa all'utilizzo di Veritas NetBackup, usare i comandi ZFS send e receive per eseguire il backup dei file ZFS. Questi comandi sono in grado di gestire correttamente gli attributi dei file ZFS.
L'agente client di BrightStor ARCserve Backup (BAB) per UNIX (Solaris) può essere utilizzato per eseguire il backup e il ripristino dei file ZFS.
Tuttavia, gli ACL NFSv4 di ZFS non vengono preservati durante il backup. Le normali autorizzazioni e gli attributi di UNIX vengono preservati.
Soluzione. Per preservare i file ZFS con gli ACL NFSv4, utilizzare il comando tar con l'opzione -p oppure il comando cpio con l'opzione -P per scrivere i file ZFS in un file. Quindi, usare BrightStor ARCserve Backup per il backup dell'archivio tar o cpio.
Se si aggiunge il pacchetto SUNWzfsg di Solaris 10 11/06 a un sistema che esegue una versione anteriore di Solaris 10 e non dispone della patch per embedded_su, le procedure guidate dell'Amministrazione di ZFS non sono completamente funzionali.
Se si cerca di eseguire l'applicazione Amministrazione di ZFS su un sistema sprovvisto della patch embedded_su, è possibile solo visualizzare la configurazione di ZFS. Viene visualizzato il seguente messaggio di errore:
/usr/lib/embedded_su: non trovato |
Soluzione.
Aggiungere la patch embedded_su (119574-02) al sistema che esegue la versione anteriore a Solaris 10 6/06.
Se si verifica un errore irreversibile mentre è in corso un'attività di I/O verso una destinazione collegata con l'iniziatore software iSCSI di Solaris, è possibile che l'operazione di I/O non venga annullata o sincronizzata sul dispositivo di destinazione. Questa condizione può provocare un danneggiamento del file system. Non viene visualizzato nessun messaggio di errore.
Soluzione.
Utilizzare un journaling file system come UFS. A partire da Solaris 10, il logging UFS è abilitato nell'impostazione predefinita. Per maggiori informazioni su UFS, vedere la sezione What’s New in File Systems in the Solaris 10 Release? del System Administration Guide: Devices and File Systems.
Se si crea uno snapshot ZFS mentre è in corso un'operazione scrub o resilver, l'operazione scrub o resilver riparte dall'inizio. Se gli snapshot vengono eseguiti frequentemente, è possibile che l'operazione scrub o resilver non venga mai completata.
Soluzione.
Non eseguire snapshot mentre è in corso un'operazione scrub o resilver.
Quando si aggiorna un server NFSv4 dalla versione 6/05 a Solaris Express 7/04 o a una versione successiva (inclusi tutti gli aggiornamenti di Solaris 10), i programmi possono generare errori EACCES. Inoltre, alcune directory appaiono erroneamente vuote.
Per prevenire questi errori, disattivare e riattivare i file system del client. Se la disattivazione non dovesse riuscire, provare a forzarla con il comando umount -f. In alternativa, riavviare il client.
Le funzioni dell'elenco di controllo di accesso (ACL) NFSv4 non funzionano correttamente se i client e i server della rete sono installati con versioni precedenti e diverse di Solaris 10. Il problema riguarda le funzioni degli ACL e i programmi della riga di comando sotto elencati:
acl()
facl()
getfacl
setfacl
Per maggiori informazioni su queste funzioni e programmi, vedere le rispettive pagine man.
Ad esempio, si possono verificare errori in una rete che presenta la seguente configurazione:
Un client che esegue Solaris 10 in versione Beta
Un server che esegue Solaris 10
La tabella seguente illustra i risultati delle funzioni degli ACL in configurazioni client-server che utilizzano versioni diverse di Solaris 10.
Operazione |
Sistema operativo S10 del client |
Sistema operativo S10 del server |
Risultato |
---|---|---|---|
get ACL |
S10 Beta |
S10 |
ACL modificato * |
get ACL |
S10 |
S10 Beta |
funzionamento corretto |
set ACL |
S10 Beta |
S10 |
funzionamento corretto |
set ACL |
S10 |
S10 Beta |
Error: EOPNOTSUP |
Soluzione. Perché le funzionalità degli ACL NFSv4 operino correttamente, eseguire un'installazione completa di Solaris 10 sia sul server che sul client.
Nell'attuale versione di Solaris 10, l'implementazione Solaris degli elenchi di controllo di accesso (ACL) NFSv4 è ora conforme alle specifiche RFC 3530. Tuttavia, si verificano errori con i client NFSv4 che utilizzano le versioni Beta 2 o Beta 1 di Solaris 10. Questi client non possono creare file sui server NFSv4 che utilizzano l'attuale versione di Solaris 10. Viene visualizzato il seguente messaggio di errore:
NFS getacl failed for nome_server: error 9 (RPC: Program/version mismatch) |
Soluzione. Nessuna.
Il comando mkfs può non essere in grado di creare un file system sui dischi che possiedono una determinata geometria e le cui dimensioni superano gli 8 Gbyte. La dimensione del gruppo di cilindri derivato è troppo grande per il frammento da 1 Kbyte. Questa dimensione del gruppo di cilindri comporta l'impossibilità di inserire in un blocco i metadati in eccesso.
Viene visualizzato il seguente messaggio di errore:
Con 15625 settori per cilindro, il numero minimo di cilindri per gruppo è 16. Ciò richiede che la dimensione del frammento venga modificata da 1024 a 4096. Rieseguire mkfs con parametri differenti. |
Soluzione. Usare il comando newfs. In alternativa, impostare una dimensione superiore per il frammento, ad esempio 4096, quando si utilizza il comando mkfs.
La creazione di un file system UFS con il comando newfs può non riuscire quando si verificano le seguenti condizioni:
La dimensione della slice è piccola, approssimativamente meno di 4 Mbyte.
La dimensione del disco supera gli 8 Gbyte.
L'errore è prodotto dalla dimensione dei metadati richiesti per il file system. Viene visualizzato il seguente messaggio di avviso:
Attenzione: blocchi inode/gruppo cilindri (295)>= blocchi dati (294) nell'ultimo gruppo di cilindri. 4712 settori non sono stati allocati. /dev/rdsk/c0t0d0s6: 0 settori in 0 cilindri di 48 tracce, 128 settori 0.0MB in 0 gruppi cilindri (13 c/g, 39.00MB/g, 18624 i/g) backup dei superblocchi (per fsck -F ufs -o b=#) in: # |
Soluzione. Come superutente, eseguire una delle seguenti soluzioni:
Soluzione 1. Specificare il numero di tracce nel comando newfs. Procedere come segue.
Usare il comando format per individuare il numero di tracce da assegnare. Ad esempio:
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248> /pci@1f,4000/scsi@3/sd@0,0 Specify disk (enter its number): |
Nell'esempio, il numero di tracce è 19.
Assegnare il numero al file system creato con il comando newfs. Ad esempio:
# newfs -v -t 19 /dev/dsk/c0t0d0s6 newfs: construct a new file system /dev/rdsk/c0t0d0s6: (y/n)? y mkfs -F ufs /dev/rdsk/c0t0d0s6 4712 -1 19 8192 1024 16 10 167 2048 t 0 -1 8 128 n mkfs: bad value for nsect: -1 must be between 1 and 32768 mkfs: nsect reset to default 32 Attenzione: 152 settori nell'ultimo cilindro non sono stati allocati. /dev/rdsk/c0t0d0s6: 4712 settori in 8 cilindri di 19 tracce, 32 settori 2.3MB in 1 gruppi cilindri (16 c/g, 4.75MB/g, 2304 i/g) backup dei superblocchi (per fsck -F ufs -o b=#) in: 32, # |
Soluzione 2. Specificare il numero di byte per inode (nbpi) nel comando newfs per ridurre la densità degli inode nel file system. Ad esempio:
# newfs -i 4096 /dev/dsk/c0t0d0s6 newfs: construct a new file system /dev/rdsk/c0t0d0s6: (y/n)? y Attenzione: 1432 settori nell'ultimo cilindro non sono stati allocati. /dev/rdsk/c0t0d0s6: 4712 settori in 1 cilindri di 48 tracce, 128 settori 2.3MB in 1 gruppi cilindri (16 c/g, 48.00MB/g, 11648 i/g) backup dei superblocchi (per fsck -F ufs -o b=#) in: 32, # |
Il sistema non riesce a generare un crash dump nelle partizioni di dimensioni pari o superiori a 1 Tbyte. Se il sistema utilizza un dispositivo di questo tipo, in seguito a un errore irreversibile e al successivo riavvio del sistema si può verificare quanto segue:
Il sistema non salva il crash dump.
Viene visualizzato il messaggio seguente:
0% done: 0 pages dumped, compression ratio 0.00, dump failed: error 6 |
Soluzione. Configurare la dimensione del dispositivo di dump del sistema su un valore inferiore a 1 Tbyte.
Se si utilizza il comando smosservice per aggiungere servizi del sistema operativo a un file system UFS, compare un messaggio indicante che lo spazio disponibile sul disco è insufficiente. Questo errore riguarda in modo specifico i file system UFS sui dischi con etichetta EFI.
Soluzione. Usare la seguente procedura.
Applicare l'etichetta del disco VTOC SMI.
Ricreare il file system.
Rieseguire il comando smosservice.