Les bogues de systèmes de fichiers suivants s'appliquent à la version Solaris\~10.
ZFS est conçu pour être un système de fichiers compatible POSIX et il l'est dans la plupart des cas. Il existe cependant deux exceptions où ZFS ne satisfait pas les tests de compatibilité POSIX :
Mise à jour des statistiques de capacité du système de fichiers ZFS.
Modification des données existantes dans un système de fichiers saturé.
CR connexes :
6362314
6362156
6361650
6343113
6343039
L'ajout de patches ZFS à un système Solaris 10 6/06 renvoie des messages d'avertissement parasites à la commande patchadd car les packages ZFS sont ajoutés pour la première fois au système. Le message d'erreur suivant apparaît :
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. |
Solution :
Ignorez les messages parasites à la commande patchadd.
L'utilitaire ufsrestore génère des erreurs si une archive UFS avec des ACL POSIX est restaurée dans un système de fichiers ZFS. Les fichiers sont restaurés correctement mais les données ACL sont ignorées.
Pendant l'opération ufsrestore, le message d'erreur suivant est généré :
setacl failed: Invalid argument |
Solution :
Utilisez l'une des commandes ACL suivantes pour transférer des fichiers UFS avec ACL vers un système de fichiers ZFS :
cp
mv
tar
cpio
rcp
Les ACL POSIX sont converties en ACL de type NFSv4 équivalentes.
Si vous utilisez la commande fdisk -E pour modifier un dique utilisé par un pool de stockage ZFS, le pool devient inutilisable et peut entraîner une erreur d'E/S ou un dysfonctionnement du système.
Solution :
N'utilisez pas la commande fdisk pour modifier un disque utilisé par un pool de stockage ZFS. Pour accéder à un disque utilisé par un pool de stockage, utilisez plutôt l'utilitaire format. Les disques utilisés par des systèmes de fichiers ne doivent généralement pas être modifiés.
La réinitialisation d'une station de travail Sun UltraTM 20 ou d'un serveur Sun FireTM X2100 peut être interrompue si des disques sont connectés à ces systèmes pour contenir un pool de stockage ZFS.
Les versions BIOS pouvant rencontrer ce problème sont les suivantes :
Stations de travail Sun Ultra 20 avec version BIOS inférieure à 2.2.3
Serveurs Sun Fire X2100 avec version BIOS inférieure à 1.1.1
Solution :
Déconnectez les disques utilisés par ZFS avant de réinitialiser le système jusqu'à ce que le niveau de BIOS minimum prenant en charge ZFS sur ces systèmes puisse être installé.
Via le CD d'accompagnement version 1.4, installez la version BIOS prise en charge minimum prenant ZFS en charge.
Les versions BIOS prises en charge sont les suivantes :
BIOS version 2.2.3 pour stations de travail Sun Ultra 20.
BIOS version 1.1.1 pour serveurs Sun Fire X2100.
Vous pouvez également télécharger l'image du CD d'accompagnement pour la version 1.4 aux adresses suivantes :
Ultra 20 : http://www.sun.com/desktop/workstation/ultra20/downloads.html
Sun Fire X2100 : http://www.sun.com/servers/entry/x2100/downloads.jsp
Vous trouverez ci-après les problèmes liés aux produits Veritas NetBackup et Sun StorEdgeTM Enterprise Backup Software (EMC et Legato NetWorker®).
Veritas NetBackup peut être utilisé pour sauvegarder des fichiers ZFS et cette configuration est prise en charge. Ce produit ne prend cependant pas actuellement en charge la sauvegarde ou la restauration des données ACL de type NFSv4 des fichiers ZFS. Les bits d'autorisations classiques et d'autres attributs de fichier sont correctement sauvegardés et restaurés.
Si un utilisateur tente de sauvegarder ou de restaurer des fichiers ZFS, les données ACL de type NFSv4 des fichiers ZFS sont perdues. Aucun message d'erreur indiquant que les données ACL des fichiers ZFS sont perdues n'est affiché.
La prise en charge des ACL ZFS/NFSv4 est en cours de développement et est prévue dans la prochaine version de Veritas NetBackup.
Solution 1 :
Dans la version Solaris 10 06/06, les commandes tar et cpio gèrent correctement les fichiers ZFS avec ACL de type NFSv4.
Utilisez la commande tar avec l'option -p ou la commande cpio avec l'option -P pour écrire les fichiers ZFS dans un fichier. Utilisez alors Veritas NetBackup pour sauvegarder l'archive tar ou cpio.
Solution 2 :
Outre Veritas NetBackup, vous pouvez également utiliser les commandes send et receive de ZFS pour sauvegarder des fichiers ZFS. Ces commandes gèrent correctement tous les attributs des fichiers ZFS.
Le produit Sun StorEdge Enterprise Backup Software ne peut actuellement pas être utilisé pour sauvegarder ou restaurer des fichiers ZFS.
Si un utilisateur tente de sauvegarder ou de restaurer des fichiers ZFS, le message d'erreur suivant est affiché :
save: Unable to read ACL information for '/path': Operation not applicable |
La prise en charge des ACL ZFS/NFSv4 est prévue dans la prochaine version de Sun StorEdge EBS 7.3, Service Update 1.
Solution :
Montez le système de fichiers ZFS à l'aide de NFSv4 ou d'un autre système.
Sauvegardez ou restaurez les fichiers ZFS à partir du répertoire monté via NFSv4.
Si vous ajoutez le package SUNWzfsg à partir d'une version Solaris 10 6/06 à un système exécutant une version antérieure et sur laquelle le patch embedded_su n'est pas installé, les assistants de l'application ZFS Administration ne fonctionnent pas correctement.
Si vous tentez d'exécuter l'application ZFS Administration sur un système sur lequel le patch embedded_su n'est pas installé, vous ne pourrez pas consulter la configuration de votre ZFS. Le message d'erreur suivant apparaît :
/usr/lib/embedded_su: not found |
Solution :
Ajoutez le patch embedded_su (119574-02) au système exécutant une version antérieure à Solaris 10 6/06.
Pour un périphérique virtuel RAID-Z, les commandes suivantes renvoient des données de taille d'espace utilisé et d'espace disponible erronées :
du
df
zfs list
Les données d'espace renvoyées incluent l'espace utilisé pour stocker les données de parité.
Si un hôte panique avec l'E/S d'un système de fichiers sur une cible qui est connectée à l'aide de l'initiateur Solaris iSCSI, l'E/S risque de ne pas pouvoir vider ou synchroniser sur le périphérique cible. Cette incapacité à vider ou à synchroniser peut entraîner une corruption du système de fichiers. Aucun message d'erreur ne s'affiche.
Solution :
Utilisez un système de fichier journalisé comme UFS. Dans Solaris 10, la journalisation UFS est activée par défaut. Pour plus d'informations sur UFS, reportez-vous à What’s New in File Systems in the Solaris 10 Release? du System Administration Guide: Devices and File Systems.
Si un instantané ZFS est créé alors qu'une opération scrub ou resilver de données est en cours, l'opération scrub or resilver doit être totalement recommencée. Si des instantanés sont pris fréquemment, l'opération scrub ou resilver risque de ne jamais se terminer.
Solution :
Ne prenez pas d'instantanés lorsqu'une opération scrub ou resilver est en cours.
Après la mise à niveau d'un serveur NFSv4 de 6/05 à Solaris Express 7/05 ou version ultérieure (y compris toutes les versions Solaris 10), vos programmes peuvent rencontrer des erreurs EACCES. En outre, des répertoires sont anormalement vides.
Pour ces erreurs, démontez et remontez les systèmes de fichiers clients. Si le démontage échoue, il peut être nécessaire de démonter le système de fichiers concerné à l'aide de la commande umount -f. Vous pouvez également réinitialiser le client.
Les fonctions de la liste de contrôle d'accès NFSv4 (ACL, Access Control List) peuvent ne pas fonctionner correctement si des versions antérieures de Solaris\~10 sont installées sur les clients et les serveurs du réseau. Les fonctions ACL concernées et les utilitaires de ligne de commande qui ont recours à ces fonctions sont :
acl() ;
facl() ;
getfacl ;
setfacl.
Pour plus d'informations concernant ces fonctions et ces utilitaires, reportez-vous à leurs pages man respectives.
Des erreurs peuvent par exemple être observées sur un réseau avec la configuration suivante :
un client fonctionnant avec le logiciel Solaris\~10 bêta ;
un serveur fonctionnant avec le logiciel Solaris\~10.
Le tableau suivant indique les résultats des fonctions ACL dans des configurations client-serveur avec différentes versions de Solaris\~10.
Opération |
Système d'exploitation client S10 |
Système d'exploitation serveur S10 |
Résultat |
---|---|---|---|
obtenir ACL |
S10 bêta |
Système d'exploitation S10 |
ACL * fabriquée |
obtenir ACL |
Système d'exploitation S10 |
S10 bêta |
fonctionne correctement |
définir ACL |
S10 bêta |
Système d'exploitation S10 |
fonctionne correctement |
définir ACL |
Système d'exploitation S10 |
S10 bêta |
Erreur : EOPNOTSUP |
Solution : pour que la fonctionnalité ACL NFSv4 fonctionne correctement, effectuez une installation complète du Solaris 10 sur le serveur et le client.
Dans la version Solaris\~10 actuelle, l'implémentation de l'ACL NFSv4 est désormais conforme aux spécifications RFC 3530. Cependant, des erreurs se produisent pour les clients NFSv4 qui fonctionnent avec les versions Solaris\~10 bêta 2 ou bêta 1. Ces clients ne peuvent pas créer de fichiers sur les serveurs NFSv4 qui fonctionnent avec la version Solaris\~10 actuelle. Le message d'erreur suivant apparaît :
NFS getacl failed for server_name: error 9 (RPC: Program/version mismatch) |
Solution : Aucune.
La commande mkfs risque de ne pas réussir à créer un système de fichiers sur les disques présentant une certaine géométrie et une capacité supérieure à 8 Go. La capacité du groupe de cylindres dérivé est trop importante pour le fragment de 1 ko. La grande capacité du groupe de cylindres implique un volume de métadonnées qu'un bloc ne suffit pas à contenir.
Le message d'erreur suivant apparaît :
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. |
Solution : Utilisez plutôt la commande newfs. Vous pouvez également attribuer une plus grande taille de fragment, telle que 4096, lorsque vous utilisez la commande mkfs.
La création d'un système de fichiers UFS à l'aide de la commande newfs risque de ne pas aboutir dans les situations suivantes :
La tranche est de petite taille (moins de 4 Mo environ).
Le disque présente une capacité supérieure à 8 Go.
Cette erreur est due aux importants besoins du système de fichiers en termes de capacité de stockage des métadonnées. Le message d'avertissement suivant apparaît :
Warning: inode blocks/cyl group (295) >= data blocks (294) in last cylinder group. This implies 4712 sector(s) cannot be allocated. /dev/rdsk/c0t0d0s6: 0 sectors in 0 cylinders of 48 tracks, 128 sectors 0.0MB in 0 cyl groups (13 c/g, 39.00MB/g, 18624 i/g) super-block backups (for fsck -F ufs -o b=#) at: # |
Solution : En tant que superutilisateur, adoptez l'une des solutions suivantes :
Solution 1 : Spécifiez le nombre de pistes lors de l'utilisation de la commande newfs. Procédez comme indiqué ci-dessous.
Utilisez la commande format pour connaître le nombre de pistes à attribuer. Par exemple :
# 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): |
Dans cet exemple, le nombre de pistes est de 19.
Attribuez ce nombre au système de fichiers créé à l'aide de la commande newfs. Par exemple :
# 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 Warning: 152 sector(s) in last cylinder unallocated /dev/rdsk/c0t0d0s6: 4712 sectors in 8 cylinders of 19 tracks, 32 sectors 2.3MB in 1 cyl groups (16 c/g, 4.75MB/g, 2304 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, # |
Solution 2 : Spécifiez le nombre d'octets par inode (nbpi) dans la commande newfs pour réduire la densité en inodes du système de fichiers. Par exemple :
# newfs -i 4096 /dev/dsk/c0t0d0s6 newfs: construct a new file system /dev/rdsk/c0t0d0s6: (y/n)? y Warning: 1432 sector(s) in last cylinder unallocated /dev/rdsk/c0t0d0s6: 4712 sectors in 1 cylinders of 48 tracks, 128 sectors 2.3MB in 1 cyl groups (16 c/g, 48.00MB/g, 11648 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, # |
Un client NFSv4 dont le système de fichiers est presque saturé gère mal les codes d'erreur renvoyés par le serveur. Le client reçoit le code d'erreur correct (NFS4ERR_NOSPC) du serveur. Pourtant, le client ne transmet pas le code d'erreur (ENOSPC) à l'application. L'application ne reçoit pas les notifications d'erreurs par le biais des fonctionnalités normales du système (write(), close() ou fsync(), par exemple). Par conséquent, les tentatives continues de l'application d'écrire ou de modifier des données risquent d'entraîner des pertes ou altérations de données.
Le message d'erreur suivant est enregistré dans /var/adm/messages :
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) |
Solution : Ne travaillez pas sur les systèmes clients dont les systèmes de fichiers sont presque saturés.
Le système ne peut pas générer le vidage de la mémoire sur une partition dont la taille est supérieure ou égale à 1 To. Si un périphérique de cette taille se trouve sur un système, la réinitialisation du système à la suite d'une panique peut entraîner ce qui suit :
le système n'enregistre pas le vidage de la mémoire ;
Le message suivant s'affiche :
0% done: 0 pages dumped, compression ratio 0.00, dump failed: error 6 |
Solution : configurez la taille du périphérique de vidage de votre système de sorte qu'elle soit inférieure à 1 To.
Si vous utilisez la commande smosservice pour ajouter des services du système d'exploitation à un système de fichiers UFS, un message indiquant que l'espace disque disponible est insuffisant s'affiche. Cette erreur est propre aux systèmes de fichiers UFS sur des disques portant l'étiquette EFI.
Solution : recourez à la solution suivante :
Appliquez l'étiquette de disque SMI VTOC.
Recréez le système de fichiers.
Réexécutez la commande smosservice.