Folgende Dateisystemfehler treten unter Solaris 10 auf.
ZFS ist ein POSIX-konformes Dateisystem, was auch in den meisten Fällen zutrifft. Es existieren jedoch zwei Randbedingungen, bei denen ZFS POSIX-Konformitätstests nicht besteht:
Aktualisieren von Kapazitätsstatistiken von ZFS-Dateisystemen
Ändern vorhandener Daten mit einem zu 100 Prozent belegten Dateisystem
Zugehörige CRs:
6362314
6362156
6361650
6343113
6343039
Die Installation eines ZFS-Patches auf einem Solaris 10 6/06-System verursacht willkürliche Warnmeldungen, die vom Befehl patchadd herrühren, da die ZFS-Packages auf einem solchen System zum ersten Mal installiert werden. Folgende Fehlermeldung wird angezeigt:
The following requested patches have packages not installed on the system: Package SUNWzfskr from directory SUNWzfskr in patch 122641-03 is not installed on the system. Changes for package SUNWzfskr will not be applied to the system. |
Abhilfemaßnahme:
Ignorieren Sie die vom Befehl patchadd stammenden Warnmeldungen.
Das Dienstprogramm ufsrestore gibt Fehlermeldungen aus, wenn UFS-Archive mit POSIX-basierten Zugriffslisten auf einem ZFS-Dateisystem wiederhergestellt werden. Die Dateien werden zwar ordnungsgemäß wiederhergstellt, die Zugriffsinformationen werden jedoch ignoriert.
Während des Ausführens von ufsrestore wird die folgende Fehlermeldung ausgegeben:
setacl failed: Invalid argument |
Abhilfemaßnahme:
UFS-Dateien mit Zugriffslisten sollten mit den folgenden Befehlen, die Zugriffslisteninformationen berücksichtigen, in ZFS-Dateisysteme übertragen werden:
cp
mv
tar
cpio
rcp
POSIX-basierte Zugriffslisten werden von diesen Befehlen in NFSv4-basierte Zugriffslisten umgesetzt.
Bei Verwendung des Befehls fdisk -E zum Modifizieren einer Festplatte, die von einem ZFS-Speicherpool genutzt wird, wird das Pool unbrauchbar und kann einen E/A-Fehler bzw. eine Systempanik verursachen.
Abhilfemaßnahme:
Der Befehl fdisk darf nicht zum Modifizieren von Festplatten, die von einem ZFS-Speicherpool genutzt werden, verwendet werden. Wenn Sie Zugriff auf eine Festplatte, die von einem ZFS-Speicherpool genutzt wird, benötigen, sollten Sie dafür das Dienstprogramm format verwenden. Als allgemeine Faustregel gilt, dass Festplatten, die von Dateisystemen genutzt werden, nicht modifiziert werden dürfen.
ASun UltraTM 20-Workstations bzw. Sun FireTM X2100-Server können sich beim Systemneustart aufhängen, wenn Festplatten auf diesen Systemen ein ZFS-Speicherpool enthalten.
Dieses Problem kann bei den folgenden BIOS-Versionen auftreten:
Sun Ultra 20-Workstations mit BIOS-Versionen vor 2.2.3
Sun Fire X2100-Server mit BIOS-Versionen vor 1.1.1
Abhilfemaßnahme:
Trennen Sie die von ZFS genutzten Festplatten vor dem Systemneustart solange vom System, bis darauf die minimale BIOS-Version mit ZFS-Unterstützung installiert wurde.
Installieren Sie von der Ergänzungs-CD des Release 1.4 die für die ZFS-Unterstützung minimal erforderliche BIOS-Version.
Die unterstützten BIOS-Versionen sind:
Sun Ultra 20-Workstation: BIOS-Version 2.2.3
Sun Fire X2100-Server: BIOS-Version 1.1.1
Sie können das Abbild für die Ergänzungs-CD auch von den folgenden URLs herunterladen:
Nachfolgend sind die Probleme mit Veritas NetBackup und Sun StorEdgeTM Enterprise Backup Software (EMC und Legato NetWorker®) aufgeführt.
Veritas NetBackup kann zum Erstellen von Sicherungskopien von ZFS-Dateien verwendet werden und wird in dieser Konfiguration unterstützt. Gegenwärtig unterstützt diese Software jedoch nicht das Erstellen von Sicherungskopien bzw. Wiederherstellen von NFSv4-basierten Zugriffslisteninformationen von ZFS-Dateien. Normalerweise werden von Berechtigungsbits und anderen Dateiattributen korrekte Sicherungskopien erstellt, und diese werden auch ordnungsgemäß wiederhergestellt .
Beim Anlegen von Sicherungskopien von ZFS-Dateien bzw. Wiederherstellen dieser Dateien werden die NFSv4-basierten Zugriffslisteninformationen dieser ZFS-Dateien ohne Anzeige entsprechender Meldungen übergangen. Es wird keine Fehlermeldung angezeigt, die darauf hinweist, dass die Zugriffslisteninformationen von ZFS-Dateien nicht mit kopiert werden.
An der Unterstützung für ZFS/NFSv4-basierte Zugriffslisten wird gegenwärtig gearbeitet, und diese Funktionalität wird voraussichtlich im nächsten Release von Veritas NetBackup verfügbar sein.
Abhilfemaßnahme 1:
Ab Solaris-Release 10 06/06 behandeln die Befehle tar und cpio ZFS-Dateien mit NFSv4-basierten Zugriffslisten korrekt.
Verwenden Sie zum Kopieren einer ZFS-Datei in eine Datei den Befehl tar mit der Option -p bzw. den Befehl cpiomit der Option -P. Erstellen Sie dann mithilfe von Veritas NetBackup vom tar- bzw. cpio-Archiv eine Sicherungskopie.
Abhilfemaßnahme 2:
Als Alternative zur Verwendung von Veritas NetBackup können Sie zum Erstellen von Sicherungskopien von ZFS-Dateien auch die ZFS-Befehle send und receive nutzen. Diese Befehle behandeln alle Attribute von ZFS-Dateien ordnungsgemäß.
Sun StorEdge Enterprise Backup kann gegenwärtig nicht zum Erstellen von Sicherungskopien von ZFS-Dateien und Wiederherstellen dieser Dateien eingesetzt werden.
Wenn Sie versuchen, von ZFS-Dateien Sicherungskopien anzulegen bzw. diese Dateien wiederherzustellen, wird die folgende Fehlermeldung angezeigt:
save: Unable to read ACL information for '/path': Operation not applicable |
ZFS/NFSv4-Zugriffslisten werden voraussichtlich im nächsten Sun StorEdge EBS 7.3 Service Update 1 unterstützt.
Abhilfemaßnahme:
Hängen Sie das ZFS-Dateisystem durch Verwendung von NFSv4 auf einem anderen System ein.
Das Erstellen von Sicherungskopien bzw. Wiederherstellen von ZFS-Dateien kann jetzt von dem unter NFSv4-eingehängten Verzeichnis aus erfolgen.
Wenn Sie das Package SUNWzfsg aus dem Solaris-Release 10 6/06 auf einem System installieren, auf dem eine Solaris-Version vor Release 10 6/06 ohne das Patch embedded_su läuft, sind die ZFS-Administrationsassistenten nicht vollständig funktionsfähig.
Bei Ausführung eines ZFS-Administrationsassistenten auf Systemen ohne das Patch embedded_su wird nur die ZFS-Konfiguration angezeigt. Folgende Fehlermeldung wird angezeigt:
/usr/lib/embedded_su: not found |
Abhilfemaßnahme:
Installieren Sie auf dem System, auf dem eine Solaris-Version vor 10 6/06 läuft, das Patch embedded_su patch (119574-02).
Auf virtuellen RAID-Z-Datenträgern melden die folgenden Befehle zu hohe Werte für ?space used? (belegter Speicherplatz)und ?space available? (verfügbarer Speicherplatz):
du
df
zfs list
Die angezeigten Speicherplatzdaten enthalten den zur Speicherung von Paritätsdaten erforderlichen Speicherplatz.
Triit auf einem Host eine Systempanik auf, wenn eine E/A-Operation des Dateisystems mit einem über den Solaris iSCSI Software Initiator angeschlossenen Zielgerät abläuft, kann es sein, dass die E/A-Operation den Datenpuffer zum Zielgerät nicht mehr leeren bzw. synchronisieren kann. Dadurch kann das Dateisystem beschädigt werden. Es wird keine Fehlermeldung angezeigt.
Abhilfemaßnahme:
Nutzen Sie ein Journaling-Dateisystem wie z. B. UFS. Ab Solaris 10 ist die UFS-Protokollierung standardmäßig aktiviert. Weitere Informationen zu UFS finden Sie im Abschnitt What’s New in File Systems in the Solaris 10 Release? in System Administration Guide: Devices and File Systems.
Beim Erstellen eines ZFS-Snapshots während einer laufenden scrub- oder resilver-Datenoperation wird die scrub- bzw. resilver Operation noch einmal neu gestartet. Wenn Snapshots häufig erstellt werden, kann es sein, dass diese scrub- bzw. resilver-Operationen niemals beendet werden.
Abhilfemaßnahme:
Snapshots sollten bei laufenden scrub- bzw. resilver -Operationen nicht erstellt werden.
Nach dem Upgrade eines NFSv4-Servers von 6/05 auf Solaris Express 7/05 oder neuere Versionen (einschließl. aller Solaris 10-Updates), können in Programmen EACCES-Fehler auftreten. Weiterhin werden Verzeichnisse möglicherweise fälschlicherweise als leer angezeigt.
Um diese Fehler zu vermeiden, hängen Sie die Client-Dateisysteme aus und wieder ein. Schlägt das Aushängen fehl, müssen Sie das Aushängen des Dateisystems möglicherweise durch Verwendung von umount -f erzwingen. Alternativ können Sie den Client auch neu starten.
Funktionen von NFSv4-Zugriffssteuerungslisten (ACL) funktionieren möglicherweise fehlerhaft, wenn Clients und Server im Netzwerk mit unterschiedlichen vorherigen Versionen von Solaris 10 installiert sind. Die betroffenen ACL-Funktionen und Befehlszeilendienstprogramme, die diese Funktionen verwenden, sind folgende:
acl()
facl()
getfacl
setfacl
Weitere Informationen über diese Funktionen und Dienstprogramme finden Sie in deren jeweiligen Man Pages.
Beispielsweise können in einem Netzwerk mit der folgenden Konfiguration möglicherweise Fehler beobachtet werden:
Ein Client, auf dem Solaris 10-Betasoftware ausgeführt wird
Ein Server, auf dem Solaris 10-Software ausgeführt wird
Die folgende Tabelle illustriert die Ergebnisse der ACL-Funktionen in Client/Server-Konfigurationen mit unterschiedlichen Solaris 10-Versionen.
Vorgang |
Client S10 BS |
Server S10 BS |
Ergebnis |
---|---|---|---|
get ACL |
S10 Beta |
S10 BS |
erzeugte ACL* |
get ACL |
S10 BS |
S10 Beta |
funktioniert einwandfrei |
set ACL |
S10 Beta |
S10 BS |
funktioniert einwandfrei |
set ACL |
S10 BS |
S10 Beta |
Fehler: EOPNOTSUP |
Abhilfemaßnahme: Damit die NFSv4-ACL-Funktionen ordnungsgemäß funktionieren, führen Sie auf Server und Client eine vollständige Installation von Solaris 10-BS durch.
In der aktuellen Solaris 10-Version ist die Solaris-Implementierung von NFSv4-ACLs jetzt mit den Spezifikationen von RFC 3530 konform. Es treten jedoch Fehler bei NFSv4-Clients auf, die die Beta 2- oder Beta1-Versionen von Solaris 10 verwenden. Diese Clients können auf den NFSv4-Servern, die die aktuelle Version von Solaris 10 verwenden, keine Dateien erstellen. Folgende Fehlermeldung wird angezeigt:
NFS getacl failed for Server_Name: error 9 (RPC: Program/version mismatch) |
Abhilfemaßnahme: Keine.
Auf Festplatten mit einer bestimmten Plattengeometrie, die größer als 8 GB sind, können unter Umständen keine Dateisysteme mit dem Befehl mkfs angelegt werden. Die abgeleitete Zylindergruppe ist zu groß für das 1-KB-Fragment. Die zusätzlichen Metadaten passen daher nicht mehr in einen Block.
Folgende Fehlermeldung wird angezeigt:
Bei 15625 Sektoren pro Zylinder beträgt die Mindestzahl an Zylindern pro Gruppe 16. Dafür muss die Fragmentgröße von 1024 in 4096 geändert werden. Führen Sie mkfs mit den korrekten Parametern erneut aus. |
Abhilfemaßnahme: Verwenden Sie stattdessen den Befehl newfs. Alternativ dazu können Sie auch mkfs mit einer höheren Fragmentgröße (z. B. 4096) verwenden.
Unter den folgenden Umständen können beim Versuch, mit dem Befehl newfs ein UFS-Dateisystem zu erstellen, Probleme auftreten:
Es handelt sich um ein kleines Slice (weniger als etwa 4 MB).
Die Festplatte ist größer als 8 GB.
Grund für den Fehler sind die Größenanforderungen des Dateisystems für Metadaten. Die folgende Warnmeldung wird angezeigt:
Warnung: inode-Blöcke/Zylindergruppe (295) >= Datenblöcke (294) in letzter Zylindergruppe. Das bedeutet, dass 4712 Sektor(en) nicht zugeordnet werden können. /dev/rdsk/c0t0d0s6: 0 Sektoren in 0 Zylindern von 48 Spuren, 128 Sektoren 0.0MB in 0 Zylindergruppen (13 c/g, 39.00MB/g, 18624 i/g) Superblock Backups (für fsck -F ufs -o b=#) bei: # |
Abhilfemaßnahme: Führen Sie als Superuser eine der folgenden Abhilfemaßnahmen durch:
Abhilfemaßnahme 1: Geben Sie die Anzahl der Spuren an, wenn Sie den Befehl newfs verwenden. Führen Sie die folgenden Schritte durch:
Ermitteln Sie mit dem Befehl format die Anzahl der Spuren. Beispiel:
# 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): |
In diesem Beispiel lautet die Anzahl der Spuren 19.
Weisen Sie diese Anzahl von Spuren dem Dateisystem zu, das Sie mit newfs erstellen. Beispiel:
# newfs -v -t 19 /dev/dsk/c0t0d0s6 newfs: Neues Dateisystem /dev/rdsk/c0t0d0s6 erstellen: (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: falscher Wert für nsect: -1 muss zwischen 1 und 32768 liegen mkfs: nsect wird auf Standardwert 32 zurückgesetzt. Warnung: 152 Sektor(en) im letzten Zylinder nicht zugeordnet /dev/rdsk/c0t0d0s6: 4712 Sektoren in 8 Zylindern von 19 Spuren, 32 Sektoren 2.3MB in 1 Zylindergruppen (16 c/g, 4.75MB/g, 2304 i/g) Superblock Backups (für fsck -F ufs -o b=#) bei: 32, # |
Abhilfemaßnahme 2: Geben Sie zusammen mit dem Befehl newfs die Anzahl von Bytes pro Inode (nbpi) an, um die Inode-Dichte im Dateisystem zu verringern. Beispiel:
# newfs -i 4096 /dev/dsk/c0t0d0s6 newfs: Neues Dateisystem /dev/rdsk/c0t0d0s6 erstellen: (y/n)? y Warnung: 1432 Sektor(en) im letzten Zylinder nicht zugeordnet /dev/rdsk/c0t0d0s6: 4712 Sektoren in 1 Zylindern von 48 Spuren, 128 Sektoren 2.3MB in 1 Zylindergruppen (16 c/g, 48.00MB/g, 11648 i/g) Superblock Backups (für fsck -F ufs -o b=#) bei: 32, # |
NFSv4-Clients, deren Dateisystem fast voll belegt ist, verarbeiten die vom Server zurückgemeldeten Fehlercodes nicht korrekt. Der Client empfängt zwar den korrekten Fehlercode NFS4ERR_NOSPC vom Server, meldet jedoch nicht den Fehlercode ENOSPC an die Anwendung. Folglich erhält die Anwendung über die normalen Systemfunktionen wie write(), close() oder fsync() keine Kenntnis von dem Fehlerzustand. Versucht die Anwendung nun weiterhin, Daten zu schreiben oder zu verändern, so kann dies zum Verlust oder zur Beschädigung von Daten führen.
Die folgende Fehlermeldung wird in /var/adm/messages aufgezeichnet:
nfs: [ID 174370 kern.notice] NFS write error on host hostname : No space left on device. nfs: [ID 942943 kern.notice] File: userid=uid, groupid= gid nfs: [ID 983240 kern.notice] User: userid=uid, groupid= gid nfs: [ID 702911 kern.notice] (file handle: 86007000 2000000 a000000 6000000 32362e48 a000000 2000000 5c8fa257) |
Abhilfemaßnahme: Arbeiten Sie nicht mit Clientsystemen, deren Dateisystem fast vollständig belegt ist.
Das System kann auf einer Partition, die 1 TB groß oder größer ist, keinen Speicherabzug erzeugen. Wenn sich solch ein Gerät in einem System befindet, tritt möglicherweise nach einem Systemstart nach einer vorausgegangenen Systempanik Folgendes auf:
Das System speichert den Speicherabzug nicht.
Es erscheint folgende Meldung:
0% done: 0 pages dumped, compression ratio 0.00, dump failed: error 6 |
Abhilfemaßnahme: Konfigurieren Sie die Größe Ihres Speicherabzuggeräts auf unter 1 TB.
Wenn Sie den Befehl smosservice zum Hinzufügen von BS-Diensten zu einem UFS-Dateisystem verwenden, wird eine Meldung angezeigt, dass nicht genügend Festplattenspeicher zur Verfügung steht. Dieser Fehler tritt spezifisch bei UFS-Dateisystemen auf, die sich auf Festplatten mit EFI-Bezeichnung befinden.
Abhilfemaßnahme: Das Problem lässt sich wie folgt umgehen:
Verwenden Sie die SMI VTOC-Festplattenbezeichnung.
Erstellen sie das Dateisystem neu.
Führen Sie den Befehl smosservice erneut aus.