In Solaris 10 sono stati riscontrati i seguenti problemi relativi ai file system.
Non porre mai offline il disco primario in una configurazione radice ZFS in mirroring. Il sistema non può avviarsi da un disco offline in una configurazione di pool radice in mirroring
Soluzione. Per scollegare un disco radice in mirroring per la sostituzione o per porlo offline, avviare il sistema da un altro disco in mirroring del pool. Scegliere uno dei metodi seguenti:
Portare nuovamente online il disco primario del pool radice ZFS in mirroring. Ad esempio:
# zpool online rpool c0t1d0s0 |
Se il disco primario è malfunzionante o deve essere sostituito, avviare il sistema da un altro disco del pool.
Se si utilizza il comando lucreate per creare un file system radice ZFS e la versione locale è impostata su una lingua diversa dall'inglese, la creazione del volume di dump ZFS non riesce. Viene visualizzato il seguente messaggio di errore:
ERROR: Unable to determine dump device for boot environment <{c1t1d0s0}>. ERROR: Unable to create all required file systems for boot environment <zfsUp6>. ERROR: Cannot make file systems for boot environment <zfsUp6>. |
Soluzione. Scegliere una delle seguenti procedure:
Includere l'impostazione della versione locale nel comando lucreate. Ad esempio:
# LC_ALL=C lucreate -n zfsUp6 -p rpool |
Se si riceve un messaggio di errore nella creazione del dispositivo di dump durante un'operazione con lucreate in una versione locale non inglese, è possibile creare il volume di dump ZFS manualmente. Ad esempio:
# zfs create -V 2G -b 128k rpool/dump |
Quando si utilizza Solaris Live Upgrade per convertire un file system radice da UFS a ZFS, il comando bootlst non viene copiato nella posizione corretta. Questo errore impedisce il corretto funzionamento di boot -L. Viene visualizzato il seguente messaggio di errore:
Evaluating: boot -L The file just loaded does not appear to be executable. Boot device: /pci@1f,0/pci@1/scsi@8/disk@1,0:a File and args: Can't mount root Error in Fcode execution !!! Evaluating: boot The file just loaded does not appear to be executable. |
Soluzione. Copiare il comando bootlst da /platform/`uname -m`/bootlst a /pool radice/platform/`uname -m`/bootlst. Ad esempio, se il pool radice è rpool, digitare il seguente comando:
# cp -p /platform/`uname -m`/bootlst /rpool/platform/`uname -m`/bootlst |
Il comando bootadm non è in grado di creare una voce del menu di GRUB formattata in modo corretto quando si avvia il sistema in modalità a 32 bit con i seguenti comandi:
reboot kernel/unix
reboot -- -r
Di conseguenza, il sistema si avvia nella modalità a 64 bit. Il file menu.lst errato può avere il seguente aspetto:
findroot rootfs0 kernel /platform/i86pc/kernel/unix module /platform/i86pc/boot_archive |
Nell'esempio precedente, la riga del kernel non contiene l'informazione di multiboot ed è quindi errata. Non viene visualizzato nessun messaggio di errore.
Soluzione. Modificare manualmente il file /boot/grub/menu.lst e aggiungervi le seguenti informazioni:
title Solaris 10 10/08 findroot rootfs0 kernel /platform/i86pc/multiboot kernel/unix module /platform/i86pc/boot_archive |
Dopo aver apportato queste modifiche, il sistema si avvia nella modalità a 32 bit.
Le modifiche apportate a menu.lst permangono anche dopo un riavvio.
In alternativa, è possibile modificare il menu di GRUB all'avvio, aggiungendo l'argomento di avvio kernel/unix come indicato nell'esempio seguente:
grub edit> kernel /platform/i86pc/multiboot kernel/unix |
Le modifiche apportate in questo modo al menu di GRUB non sono preservate nei successivi riavvii.
Per maggiori informazioni, vedere Modifying Boot Behavior on x86 Based Systems in System Administration Guide: Basic Administration.
Quando si collega un dispositivo a un pool radice per creare un pool radice in mirroring, zpool attach può creare un pool radice errato se si aggiunge al pool un disco intero. I pool radice ZFS devono essere creati da slice del disco e non da dischi interi. Se si cerca di avviare il sistema dal disco intero che è stato aggiunto al pool radice in mirroring, il sistema non si avvia.
Soluzione. Procedere come segue:
Scollegare il disco dal pool. Ad esempio
# zpool detach rpool c0t2d0 |
Impostare un etichetta VTOC (SMI) per il disco. Ad esempio:
# format -e . . . Select disk c0t2d0 format> label [0] SMI Label [1] EFI Label Specify Label type[0]:0 Ready to label disk, continue? yes format> quit |
Aggiungere una slice del disco al pool per creare il pool radice in mirroring. Ad esempio:
# zpool attach rpool c0t2d0s0 |
Vedere anche Il comando zpool attach non copia le informazioni di bootblock (6668666).
Sulla piattaforma SPARC, è necessario creare un file menu.lst nel set di dati del pool radice. Non viene visualizzato nessun messaggio di errore.
Soluzione. Creare manualmente il file menu.lst. Ad esempio, se sono presenti due ambienti di boot ZFS, zfs1008BE e zfs10082BE, nel pool radice ZFS, rpool, digitare i seguenti comandi:
# mkdir -p /rpool/boot # cd /rpool/boot # vi menu.lst |
Aggiungere le seguenti voci al file menu.lst:
title zfs1008BE bootfs rpool/ROOT/zfs1008BE title zfs10082BE bootfs rpool/ROOT/zfs10082BE |
Se si utilizza il comando zpool attach per aggiungere un disco a un pool radice ZFS, l'informazione bootblock non viene copiata nel disco aggiunto. Questo problema non interessa i pool radice ZFS in mirroring creati nel corso di un'installazione iniziale. Il sistema non si avvia dal disco alternativo del pool radice in mirroring.
Soluzione. Scegliere una delle seguenti procedure:
Su un sistema SPARC, identificare il dispositivo del disco alternativo e installarvi le informazioni di avvio. Ad esempio:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0 |
Su un sistema x86, identificare il dispositivo del disco alternativo e installarvi le informazioni di avvio. Ad esempio:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0 |
Si possono verificare timeout ata durante l'avvio sui sistemi Intel multiprocessore. Questi timeout si verificano quando il dispositivo radice si trova su un disco con il controller HBA associato al precedente driver ata. I timeout conducono a un blocco momentaneo, permanente o a un errore irreversibile durante la procedura di avvio con messaggi simili al seguente:
scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset bus, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: early timeout, target=0 lun=0 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: abort request, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: abort device, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset target, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset bus, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: early timeout, target=0 lun=0 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): |
Soluzione. Scegliere una delle seguenti procedure:
Per evitare un degrado delle prestazioni, utilizzare temporaneamente la soluzione 3 o la soluzione 4 fino a quando non sia possibile adottare la soluzione 5.
Soluzione 1. Abilitare AHCI nel BIOS se disponibile sul sistema. L'abilitazione di questa impostazione richiede una reinstallazione del sistema operativo Solaris.
Soluzione 2. Installare Solaris su un disco il cui controller non utilizza il driver ata.
Soluzione 3: Disabilitare le funzioni MP nella configurazione del BIOS in modo da attivare un solo processore.
Soluzione 4. Disabilitare le funzioni MP in Solaris in modo da attivare un solo processore. Procedere come segue dal menu di GRUB:
Digitare e per modificare la voce di Solaris selezionata.
Andare alla riga che inizia con kernel.
Digitare e per passare alla modalità di modifica di GRUB.
Aggiungere -kd a questa riga.
Premere Invio per accettare la modifica.
Digitare b per avviare la voce di Solaris selezionata.
Al prompt kbmd, digitare il comando seguente:
use_mp/W 0 :c |
Se si sta avviando il sistema, passare al punto 10, diversamente installare Solaris 10 10/08.
Al termine dell'installazione, riavviare il sistema. Ripetere i punti da 1 a 7.
Per rendere permanente questa modifica per tutte le procedure di avvio, procedere come segue:
Al termine dell'avvio diventare superutente.
Aprire il file /etc/system.
Aggiungere la riga seguente:
set use_mp = 0 |
Soluzione 5. Disabilitare l'aggiornamento del microcodice. Digitare il comando seguente:
# mv /platform/i86pc/ucode /platform/i86pc/ucode.disabled |
L'aggiornamento del microcodice può essere eseguito manualmente dopo l'avvio:
# ucodeadm -u /platform/i86pc/ucode.disabled/intel-ucode.txt |
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: No such file or directory: cannot mount </zones/path/root/usr/local> in non-global zone to install: the source block device or directory </path/local> cannot be accessed |
Soluzione. Aggiungere l'accesso al file system ZFS dopo l'installazione della zona non globale.
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
6742203
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 elencati i problemi dei prodotti Brightstor ARCserve Backup.
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 10/08 a un sistema che esegue una versione anteriore a Solaris 10 6/06 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: not found |
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 System Administration Guide: Devices and File Systems .
Quando si aggiorna un server NFSv4 dalla versione 6/05 a Solaris Express 7/05 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 |
Errore: 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:
With 15625 sectors per cylinder, minimum cylinders per group is 16. This requires the fragment size to be changed from 1024 to 4096. Please re-run mkfs with corrected parameters. |
Soluzione. Usare il comando newfs. In alternativa, impostare una dimensione superiore per il frammento, ad esempio 4096, quando si utilizza il comando mkfs.
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.