Ce chapitre présente le système de fichiers ZFS Oracle Solaris, ses fonctions et ses avantages. Il aborde également la terminologie de base utilisée dans le reste de ce document.
Il contient les sections suivantes :
Cette section décrit les nouvelles fonctions du système de fichier ZFS.
Scission d'un pool de stockage ZFS mis en miroir (zpool split)
L'utilisation des périphériques de cache dans votre pool de stockage ZFS
Prise en charge de l'installation et de l'initialisation de ZFS
Quotas et réservations ZFS pour les données de système de fichiers uniquement
Améliorations apportées à l'historique des commandes ZFS (zpool history)
Affichage de la totalité des informations de systèmes de fichiers ZFS
Disques hot spare pour périphériques de pool de stockage ZFS
Remplacement d'un système de fichiers ZFS par un clone ZFS (zfs promote)
Les commandes de sauvegarde et de restauration ZFS sont renommées.
Oracle Solaris 10 9/10 : dans cette version de Solaris, vous pouvez utiliser la commande zpool split pour scinder un pool de stockage mis en miroir, ce qui déconnecte un ou plusieurs disques dans le pool mis en miroir d'origine pour créer un autre pool identique.
Pour plus d'informations, reportez-vous à la section Création d'un pool par scission d'un pool de stockage ZFS mis en miroir.
Oracle Solaris 10 9/10 : dans cette version de Solaris, chaque pool de stockage ZFS est associé à un processus zpool-poolname. Les threads de ce processus correspondent à des threads de traitement d'E/S du pool permettant de gérer des tâches d'E/S associées au pool comme la compression et les sommes de contrôle. Le but de ce processus est d'indiquer l'utilisation de la CPU de chaque pool de stockage. Pour plus d'informations sur ces processus, reportez-vous aux commandes ps et prstat. Ces processus sont uniquement disponibles dans la zone globale. Pour de plus amples informations, reportez-vous à la section SDC(7).
Oracle Solaris 10 9/10 : dans cette version de Solaris, la sortie de la commande zpool list a été modifiée pour obtenir des informations plus précises concernant l'allocation d'espace. Exemple :
# zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 136G 55.2G 80.8G 40% ONLINE - |
Les champs USED et AVAIL précédents ont été remplacés par les champs ALLOC et FREE.
Le champ ALLOC permet d'identifier la quantité d'espace physique allouée à tous les jeux de données et aux métadonnées internes. Le champ FREE permet d'identifier la quantité d'espace inutilisé dans le pool.
Pour plus d'informations, reportez-vous à la section Affichage des informations des pools de stockage ZFS.
Oracle Solaris 10 9/10 : un pool de stockage peut être endommagé si les périphériques sous-jacents sont indisponibles, si une panne de courant survient ou si un nombre de périphériques plus important que les périphériques pris en charge échoue dans une configuration ZFS redondante. Cette version présente de nouvelles fonctionnalités de commande permettant de récupérer votre pool de stockage endommagé. Cependant, l'utilisation de ces fonctions de récupération signifie que les dernières transactions restantes survenues lors de l'interruption de service du pool peuvent être perdues.
Les deux commandes zpool clear et zpool import prennent en charge l'option -F pour récupérer éventuellement un pool endommagé. En outre, l'exécution de la commande zpool status, zpool clear ou zpool import signale automatiquement un pool endommagé et ces commandes expliquent comment récupérer le pool.
Pour plus d'informations, reportez-vous à la section Réparation de dommages présents dans l'ensemble du pool de stockage ZFS.
Oracle Solaris 10 9/10 : les améliorations suivantes ont été apportées aux périphériques de journal :
Propriété logbias – Cette propriété peut être utilisée pour fournir un conseil au système de fichiers ZFS concernant la gestion des demandes synchrones d'un jeu de données spécifique. Si la propriété logbias est définie sur latency, ZFS utilise des périphériques de journal distincts dans le pool pour gérer les demandes à faible latence. Si la propriété logbias est définie sur throughput, le système de fichiers ZFS n'utilise pas de périphériques de journal distincts dans le pool. Au lieu de cela, le système de fichiers ZFS optimise les opérations synchrones pour traiter globalement le pool et utiliser efficacement les ressources. La valeur par défaut est latency. Nous vous recommandons d'utiliser la valeur par défaut pour la plupart des configurations. La valeur logbias=throughput peut éventuellement améliorer les performances d'enregistrement des fichiers de la base de données.
Suppression d'un périphérique de journal : vous pouvez maintenant supprimer un périphérique de journal à partir d'un pool de stockage ZFS à l'aide de la commande zpool remove. Vous pouvez supprimer un périphérique de journal unique en spécifiant le nom de ce dernier. Vous pouvez supprimer un périphérique de journal mis en miroir en spécifiant le miroir de niveau supérieur du journal. Lorsqu'un périphérique de journal distinct est supprimé du système, les enregistrements de transaction ZIL sont enregistrés dans le pool principal.
Les périphériques virtuels de niveau supérieur redondants sont maintenant identifiés par un identificateur numérique. Par exemple, dans un pool de stockage mis en miroir composé de deux disques, le périphérique virtuel de niveau supérieur porte le nom mirror-0.
Pour plus d'informations, reportez-vous à l'Exemple 4–3.
Oracle Solaris 10 9/10 : dans cette version de Solaris, une configuration RAID-Z redondante peut maintenant disposer d'une parité simple, double, ou triple. En d'autres termes, le système peut supporter une, deux ou trois pannes de périphérique sans perte de données. Le mot-clé raidz3 permet de spécifier une configuration RAID-Z à parité triple. Pour plus d'informations, reportez-vous à la section Création d'un pool de stockage RAID-Z.
Oracle Solaris 10 9/10: si vous implémentez plusieurs stratégies d'instantanés automatiques et que les instantanés les plus anciens sont détruits par inadvertance par la commande zfs receive car ils n'existent plus du côté de l'envoi, vous pouvez utiliser la fonction de conservation des instantanés dans cette version de Solaris.
La conservation d'un instantané empêche sa destruction. En outre, cette fonction permet de supprimer un instantané contenant des clones en attendant la suppression du dernier clone à l'aide de la commande zfs destroy -d.
Vous pouvez conserver un instantané ou un jeu d'instantanés. Par exemple, la syntaxe suivante insère une balise de conservation keep sur citerne/home/cindys/snap@1.
# zfs hold keep tank/home/cindys@snap1 |
Pour plus d'informations, reportez-vous à la section Conservation des clichés ZFS.
Oracle Solaris 10 9/10 : dans cette version de Solaris, un événement système ou sysevent est fourni lorsqu'un périphérique sous-jacent est étendu. Le système de fichiers ZFS a été amélioré pour reconnaître des événements et ajuste le pool en fonction de la nouvelle taille du LUN (Logical Unit Number) étendu, selon la définition de la propriété autoexpand. Vous pouvez utiliser la propriété autoexpand du pool pour activer ou désactiver l'extension automatique du pool lorsqu'un événement d'extension LUN dynamique est reçu.
Ces fonctions permettent d'étendre un LUN et le pool correspondant peut accéder à l'espace étendu sans avoir à exporter et importer le pool ou réinitialiser le système.
Par exemple, l'extension automatique du LUN est activée sur le pool tank.
# zpool set autoexpand=on tank |
Vous pouvez également créer le pool sans activer la propriété autoexpand.
# zpool create -o autoexpand=on tank c1t13d0 |
La propriété autoexpand est désactivée par défaut. Vous pouvez décider d'étendre ou non le LUN.
Vous pouvez également étendre un LUN grâce à la commande zpool online -e. Exemple :
# zpool online -e tank c1t6d0 |
Vous pouvez également réinitialiser la propriété autoexpand après avoir connecté ou mis à disposition le LUN en utilisant la fonctionnalité zpool replace. Par exemple, le pool suivant est créé avec un disque de 8 Go (c0t0d0). Le disque de 8 Go est remplacé par un disque de 16 Go (c1t13d0). Toutefois, la taille du pool ne sera pas étendue jusqu'à l'activation de la propriété autoexpand.
# zpool create pool c0t0d0 # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 8.44G 76.5K 8.44G 0% ONLINE - # zpool replace pool c0t0d0 c1t13d0 # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 8.44G 91.5K 8.44G 0% ONLINE - # zpool set autoexpand=on pool # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 91.5K 16.8G 0% ONLINE - |
Dans l'exemple ci-dessus, vous pouvez également étendre le LUN sans activer la propriété autoexpand. Pour ce faire, vous devez utiliser la commande zpool online - e, même si le périphérique est déjà en ligne. Exemple :
# zpool create tank c0t0d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 8.44G 76.5K 8.44G 0% ONLINE - # zpool replace tank c0t0d0 c1t13d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 8.44G 91.5K 8.44G 0% ONLINE - # zpool online -e tank c1t13d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 16.8G 90K 16.8G 0% ONLINE - |
Cette version comprend les améliorations suivantes concernant le remplacement de périphérique :
Dans les versions précédentes, le système de fichiers ZFS ne pouvait pas remplacer un disque existant par un autre disque ou connecter un disque, si la taille du disque de remplacement était légèrement différente. Dans cette version, vous pouvez remplacer un disque existant par un autre disque ou connecter un nouveau disque qui dispose théoriquement de la même taille, à condition que le pool ne soit pas déjà plein.
Dans cette version, vous ne devez pas réinitialiser le système ou exporter/importer un pool pour étendre un LUN. Comme décrit ci-dessus, vous pouvez activer la propriété autoexpand ou utiliser la commande zpool online - e pour étendre le LUN à sa taille maximale.
Pour obtenir des informations sur le remplacement de périphériques, reportez-vous à la section Remplacement de périphériques dans un pool de stockage.
Version Solaris 10 10/09 : dans cette version de Solaris, vous pouvez définir un profil JumpStart pour identifier une archive Flash d'un pool racine ZFS. Pour plus d'informations, reportez-vous à la section Installation d'un système de fichiers racine ZFS (installation d'archive Oracle Solaris Flash).
Version Solaris 10 10/09 : dans les versions précédentes de Solaris, vous pouviez appliquer des quotas et des réservations aux systèmes de fichiers ZFS pour gérer et réserver de l'espace disque.
Dans cette version de Solaris, vous pouvez définir un quota sur la quantité d'espace disque utilisée par les fichiers appartenant à un utilisateur ou à un groupe spécifique. Vous pouvez envisager la définition de quotas d'utilisateurs et de groupes dans un environnement contenant un grand nombre d'utilisateurs ou de groupes.
Vous pouvez définir un quota d'utilisateurs en utilisant la propriété zfs userquota. Pour définir le quota d'un groupe, utilisez la propriété zfs groupquota. Exemple :
# zfs set userquota@user1=5G tank/data # zfs set groupquota@staff=10G tank/staff/admins |
Vous pouvez afficher le paramètre de quota actuel d'un utilisateur ou d'un groupe comme suit :
# zfs get userquota@user1 tank/data NAME PROPERTY VALUE SOURCE tank/data userquota@user1 5G local # zfs get groupquota@staff tank/staff/admins NAME PROPERTY VALUE SOURCE tank/staff/admins groupquota@staff 10G local |
Affichez des informations générales sur les quotas comme suit :
# zfs userspace tank/data TYPE NAME USED QUOTA POSIX User root 3K none POSIX User user1 0 5G |
# zfs groupspace tank/staff/admins TYPE NAME USED QUOTA POSIX Group root 3K none POSIX Group staff 0 10G |
Vous pouvez afficher l'utilisation de l'espace disque d'un utilisateur en affichant la propriété userused@user. Vous pouvez afficher l'utilisation de l'espace disque d'un groupe avec la propriété groupused@group. Exemple :
# zfs get userused@user1 tank/staff NAME PROPERTY VALUE SOURCE tank/staff userused@user1 213M local # zfs get groupused@staff tank/staff NAME PROPERTY VALUE SOURCE tank/staff groupused@staff 213M local |
Pour plus d'informations sur la définition des quotas d'utilisateurs, consultez la section Définition des quotas et réservations ZFS.
Version Solaris 10 10/09 : dans les versions précédentes de Solaris, vous pouviez appliquer l'héritage ACL afin que tous les fichiers soient créés avec l'autorisation 0664 ou 0666. Dans cette version, si vous souhaitez éventuellement ajouter le bit d'exécution lors de la création du fichier à l'ACL héritée, vous pouvez définir le mode aclinherit pour qu'il transmette l'autorisation d'exécution à l'ACL héritée.
Si aclinherit=passthrough-x est activée sur un jeu de données ZFS, vous pouvez inclure une autorisation d'exécution sur un fichier de sortie qui est générée par les outils de compilation cc ou gcc. Si l'ACL héritée ne comprend pas les autorisations d'exécution, la sortie exécutable du compilateur ne sera pas exécutable jusqu'à ce que vous utilisiez la commande chmod pour modifier les autorisations du fichier.
Pour plus d'informations, reportez-vous à l'Exemple 8–12.
Versions Solaris 10 10/09 et Oracle Solaris 10 9/10 : les améliorations apportées aux systèmes de fichiers ZFS sont incluses dans ces versions.
Améliorations des propriétés de flux d'instantané ZFS - Vous pouvez définir une propriété reçue différente de la définition de la propriété locale. Par exemple, vous pouvez recevoir un flux avec la propriété de compression désactivée, mais vous souhaitez que cette propriété soit activée dans le système de fichiers destinataire. Cela signifie que la valeur de compression du flux reçue est définie sur off et que la valeur de compression locale est définie sur on. Étant donné que la valeur locale remplace la valeur reçue, vous ne devez pas définir les paramètres du côté de l'envoi pour qu'ils remplacent la valeur du côté de la réception. La commande zfs get affiche la valeur effective de la propriété de compression sous la colonne VALUE.
Les nouvelles options et propriétés des commandes ZFS prenant en charge les valeurs des propriétés locales et des propriétés d'envoi sont les suivantes :
Utilisez la commande zfs inherit -S pour rétablir la valeurs de propriété locale reçue, le cas échéant. Si une propriété ne reçoit aucune valeur, le comportement de la commande zfs inherit -S est le même que la commande zfs inherit sans l'option -S. Si la propriété ne reçoit aucune valeur, la commande zfs inherit masque la valeur reçue par la valeur héritée jusqu'à ce que l'émission d'une commande zfs inherit -S rétablisse la valeur reçue.
Vous pouvez utiliser la commande zfs get -o pour prendre en compte la nouvelle colonne RECEIVED ajoutée. Vous pouvez également utiliser la commande zfs get -o all pour ajouter toutes les colonnes, y compris la colonne RECEIVED.
Vous pouvez utiliser l'option zfs send -p pour ajouter des propriétés dans le flux d'envoi sans l'option -R.
En outre, vous pouvez utiliser l'option zfs send -e pour utiliser le dernier élément du nom de l'instantané envoyé pour déterminer le nom du nouvel instantané. L'exemple suivant envoie l'instantané poola/bee/cee@1 au système de fichiers poold/eee et utilise uniquement le dernier élément (cee@1) du nom de l'instantané pour créer le système de fichiers et l'instantané reçus.
# zfs list -rt all poola NAME USED AVAIL REFER MOUNTPOINT poola 134K 134G 23K /poola poola/bee 44K 134G 23K /poola/bee poola/bee/cee 21K 134G 21K /poola/bee/cee poola/bee/cee@1 0 - 21K - # zfs send -R poola/bee/cee@1 | zfs receive -e poold/eee # zfs list -rt all poold NAME USED AVAIL REFER MOUNTPOINT poold 134K 134G 23K /poold poold/eee 44K 134G 23K /poold/eee poold/eee/cee 21K 134G 21K /poold/eee/cee poold/eee/cee@1 0 - 21K - |
Définition des propriétés de système de fichiers ZFS lors de la création du pool : vous pouvez définir les propriétés d'un système de fichiers ZFS lors de la création du pool de stockage. Dans l'exemple suivant, la compression est activée sur le système de fichiers ZFS qui est créé lors de la création du pool:
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0 |
Définition des propriétés de cache sur un système de fichiers ZFS : deux nouvelles propriétés de système de fichiers ZFS vous permettent de déterminer quels sont les éléments mis en mémoire cache dans le cache principal (ARC) ou le cache secondaire (L2ARC). Les propriétés du cache sont définies comme suit :
Primarycache : contrôle les éléments qui sont mis en cache dans le cache principal.
Secondarycache : contrôle les éléments qui sont mis en cache dans le cache secondaire.
Les valeurs possibles de ces deux propriétés sont all, none et metadata. Si elles sont définies sur all, les données d'utilisateur et les métadonnées sont mises en cache. Si elle est définie sur none, ni les données d'utilisateur ni les métadonnées ne sont mises en cache. Si elles sont définies sur metadata, seules les métadonnées sont mises en cache. La valeur par défaut est all.
Vous pouvez définir ces propriétés sur un système de fichiers existant ou lors de la création d'un système de fichiers. Exemple :
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab |
Lorsque ces propriétés sont définies sur des systèmes de fichiers existants, seule la nouvelle E/S est mise en cache en fonction de la valeur de ces propriétés.
Certains environnements de bases de données pourraient bénéficier de la non-mise en cache des données d'utilisateur. Vous devrez déterminer si la définition des propriétés du cache est appropriée pour votre environnement.
Affichage des propriétés de comptabilisation d'espace : de nouvelles propriétés de système de fichiers en lecture seule vous aident à identifier l'utilisation de l'espace disque pour les clones, les systèmes de fichiers et les volumes, mais pas les instantanés. Les propriétés sont les suivantes :
usedbychildren : affiche l'espace disque occupé par les niveaux enfant de ce jeu de données. Ce dernier peut être libéré si tous les niveaux enfants du jeu de données sont détruits. L'abréviation de la propriété est usedchild.
usedbydataset : affiche l'espace disque occupé par le jeu de données, lors de la première destruction d'un instantané ou de la suppression d'une propriété refreservation. Cet espace peut être libéré si le jeu de données est détruit. L'abréviation de la propriété est usedds.
usedbyrefreservation : affiche l'espace disque occupé par le jeu refreservation de ce jeu de données. Cet espace peut être libéré si le jeu refreservation est supprimé. L'abréviation de la propriété est usedrefreserv.
Usedbysnapshots : affiche l'espace disque occupé par les instantanés de ce jeu de données. Cet espace peut être libéré si l'ensemble des instantanés de ce jeu de données est détruit. Notez qu'il ne s'agit pas de la somme des propriétés used des instantanés, car l'espace disque peut être partagé par plusieurs instantanés. L'abréviation de la propriété est usedsnap.
Ces nouvelles propriétés divisent la valeur de la propriété used dans les divers éléments qui utilisent de l'espace disque. En particulier, la valeur de la propriété used est divisée comme suit :
used property = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots |
Vous pouvez visualiser ces propriétés à l'aide de la commande zfs list -o space. Exemple :
$ zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD rpool 25.4G 7.79G 0 64K 0 7.79G rpool/ROOT 25.4G 6.29G 0 18K 0 6.29G rpool/ROOT/snv_98 25.4G 6.29G 0 6.29G 0 0 rpool/dump 25.4G 1.00G 0 1.00G 0 0 rpool/export 25.4G 38K 0 20K 0 18K rpool/export/home 25.4G 18K 0 18K 0 0 rpool/swap 25.8G 512M 0 111M 401M 0 |
La commande précédente est équivalente à la commande zfs list - o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild -t filesystem,volume.
Liste d'instantanés– La propriété de pool listsnapshots vérifie si les informations sur les instantanés sont affichées par la commande zfs list. La valeur par défaut est on, ce qui signifie que les informations sur les instantanés sont affichées par défaut.
Si votre système contient un nombre important d'instantanés ZFS et que vous souhaitez désactiver l'affichage des informations concernant les instantanés dans la commande zfs list, désactivez la propriété listsnapshots comme suit :
# zpool get listsnapshots pool NAME PROPERTY VALUE SOURCE pool listsnapshots on default # zpool set listsnaps=off pool |
Si vous désactivez la propriété listsnapshots, vous pouvez utiliser la commande zfs list -t snapshots pour afficher les informations sur l'instantané. Exemple :
# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT pool/home@today 16K - 22K - pool/home/user1@today 0 - 18K - pool/home/user2@today 0 - 18K - pool/home/user3@today 0 - 18K - |
Version Solaris 10 10/09 : dans cette version, ZFS identifie les défaillances de journal d'intention dans la sortie de la commande zpool status. Le composant FMA (Fault Management Architecture) signale également ces erreurs. ZFS et FMA décrivent comment récupérer les données en cas de défaillance du journal d'intention.
Par exemple, si le système s'arrête soudainement avant que les opérations d'écriture synchrone ne soient affectées à un pool disposant d'un périphérique de journal distinct, un message tel que le suivant s'affiche :
# zpool status -x pool: pool state: FAULTED status: One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run 'zpool online', or ignore the intent log records by running 'zpool clear'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open |
Vous pouvez résoudre la panne du périphérique de journal de l'une des façons suivantes :
Remplacez ou récupérez le périphérique de journal. Dans cet exemple, le périphérique de journal est c0t5d0.
Mettez le périphérique de journal en ligne.
# zpool online pool c0t5d0 |
Réinitialisez la condition d'erreur de périphérique de journal défaillante.
# zpool clear pool |
Pour effectuer une récupération suite à cette erreur sans remplacer le périphérique de journal défaillant, vous pouvez effacer l'erreur à l'aide de la commande zpool clear. Dans ce scénario, le pool fonctionnera en mode dégradé et les enregistrements de journal seront enregistrés dans le pool principal jusqu'à ce que le périphérique de journal distinct soit remplacé.
Envisagez d'utiliser des périphériques de journal mis en miroir afin d'éviter un scénario de défaillance de périphérique de journal.
Version Solaris 10 10/09 : dans cette version de Solaris, vous pouvez créer un pool et spécifier les périphériques de cache, utilisés pour mettre en cache les données du pool de stockage.
Les périphériques de cache fournissent une couche de mise en cache supplémentaire entre la mémoire principale et le disque. L'utilisation de périphériques de cache constitue la meilleure amélioration de performances pour les charges de travail de lecture aléatoire constituées principalement de contenu statique.
Vous pouvez spécifier un ou plusieurs périphériques de cache à la création du pool. Exemple :
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 cache c0t0d0 ONLINE 0 0 0 errors: No known data errors |
Une fois les périphériques de cache ajoutés, ils se remplissent progressivement de contenu provenant de la mémoire principale. En fonction de la taille du périphérique de cache, le remplissage peut prendre plus d'une heure. La capacité et les lectures sont contrôlables à l'aide de la commande zpool iostat comme indiqué ci-dessous :
# zpool iostat -v pool 5 |
Une fois le pool créé, vous pouvez y ajouter des périphériques de cache ou les en supprimer.
Pour plus d'informations, reportez-vous à la section Création d'un pool de stockage ZFS avec des périphériques de cache et à l'Exemple 4–4.
Version Solaris 10 5/09 : cette version étend la prise en charge des zones de migration dans un environnement ZFS avec Oracle Solaris Live Upgrade. Pour plus d'informations, reportez-vous à la section Utilisation d'Oracle Solaris Live Upgrade pour migrer ou mettre à jour un système avec zones (version Solaris 5 10/09 ou supérieure).
Vous trouverez la liste des problèmes connus relatifs à cette version dans les notes de version de Solaris 10 5/09.
Version Solaris 10 10/08 : cette version permet d'installer et d'initialiser un système de fichiers racine ZFS. Vous pouvez utiliser l'option d'installation initiale ou la fonction JumpStart pour installer un système de fichiers racine ZFS. Vous pouvez également utiliser la fonction Oracle Solaris Live Upgrade pour migrer d'un système de fichiers racine UFS vers un système de fichiers racine ZFS. La prise en charge ZFS des périphériques de swap et de vidage est également disponible. Pour plus d'informations, reportez-vous au Chapitre 5Installation et initialisation d'un système de fichiers racine Oracle Solaris ZFS.
Pour obtenir une liste des problèmes connus avec cette version, consultez le site Web à l'adresse suivante :
http://hub.opensolaris.org/bin/view/Community+Group+zfs/boot
Reportez-vous également aux notes de version de Solaris 10 10/08.
Solaris 10 10/08 : cette version permet d'annuler (roll back) un jeu de données sans devoir au préalable le démonter. L'option zfs rollback -f n'est ainsi plus nécessaire pour forcer l'opération de démontage. L'option -f n'est plus prise en charge et est ignorée si elle est spécifiée.
Version Solaris 10 10/08 : les améliorations suivantes ont été apportées à la commande zfs send dans cette version. Grâce à cette commande, vous pouvez désormais effectuer les tâches suivantes :
Envoi de tous les flux incrémentiels d'un instantané vers un instantané cumulatif. Exemple :
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K - pool/fs@snapB 17K - 20K - pool/fs@snapC 17K - 20.5K - pool/fs@snapD 0 - 21K - # zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@combo |
Cette syntaxe comprend tous les instantanés incrémentiels de fs@snapA à fs@snapD, qui sont envoyés vers fs@combo.
Envoi d'un flux incrémentiel à partir de l'instantané d'origine pour créer un clone. L'instantané d'origine doit déjà exister sur le côté récepteur afin d'accepter le flux incrémentiel. Exemple :
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I . . # zfs receive -F pool/clone < /snaps/fsclonesnap-I |
Envoi d'un flux de réplication de tous les systèmes de fichiers descendants, jusqu'aux instantanés nommés. Une fois reçus, les propriétés, instantanés, systèmes de fichiers descendants et clones sont conservés. Exemple :
# zfs send -R pool/fs@snap > snaps/fs-R |
Pour une illustration détaillée, reportez-vous à l'Exemple 7–1.
Envoi d'un flux de réplication incrémentiel. Exemple :
# zfs send -R -[iI] @snapA pool/fs@snapD |
Pour une illustration détaillée, reportez-vous à l'Exemple 7–1.
Pour plus d'informations, reportez-vous à la section Envoi et réception de flux d'instantanés ZFS complexes.
Version Solaris 10 10/08 : outre les fonctionnalités de quotas et de réservation ZFS, cette version fournit des quotas et réservations de jeux de données excluant les données descendantes, telles que les instantanés et les clones, lors de la comptabilisation de l'utilisation de l'espace disque.
La propriété refquota permet d'appliquer une limite fixe à la quantité d'espace disque pouvant être consommée par le jeu de données. Cette limite fixe n'inclut pas l'espace disque utilisé par les descendants, tels que les instantanés et les clones.
La propriété refreservation définit la quantité minimale d'espace disque accordée à un jeu de données (descendants exclus).
Par exemple, en définissant la limite de la propriété refquota de studentA sur 10 Go, vous spécifiez une limite fixe d'espace disque référencé de 10 Go. Pour une plus grande flexibilité, vous pouvez définir un quota de 20 Go qui vous permet de gérer les instantanés de studentA.
# zfs set refquota=10g tank/studentA # zfs set quota=20g tank/studentA |
Pour plus d'informations, reportez-vous à la section Définition des quotas et réservations ZFS.
Version Solaris 10 10/08 : les propriétés de pool de stockage ZFS ont été introduites dans une version antérieure. Cette version contient deux propriétés : cachefile et failmode.
La section suivante décrit les propriétés du nouveau pool de stockage de cette version :
Propriété cachefile - Cette propriété vérifie l'emplacement du cache des informations de configuration du pool. Tous les pools du cache sont importés automatiquement au démarrage du système. Toutefois, dans les environnements d'installation et de clustering, il peut s'avérer nécessaire de placer ces informations en cache à un autre endroit afin d'éviter l'importation automatique des pools.
Vous pouvez définir cette propriété afin de mettre la configuration de pool en cache à un autre emplacement. Il reste alors possible d'importer ultérieurement ce dernier à l'aide de la commande zpool import -c. Cette propriété n'est pas utilisée dans la plupart des configurations ZFS.
La propriété cachefile n'est pas persistante et n'est pas stockée sur le disque. Elle remplace la propriété temporary qui, dans les versions précédentes de Solaris, indiquait que les informations de pool ne devaient pas être mises en cache.
Propriété failmode : cette propriété détermine l'action à effectuer en cas d'échec catastrophique de pool causé par la perte de connectivité d'un périphérique ou la panne de tous les périphériques du pool. Vous pouvez définir la propriété failmode sur l'une des valeurs suivantes : wait, continue ou panic. La valeur par défaut est wait : vous devez reconnecter le périphérique ou remplacer le périphérique défaillant, puis effacer l'erreur à l'aide de la commande zpool clear.
La propriété failmode est définie comme les autres propriétés ZFS définissables, avant ou après la création du pool. Exemple :
# zpool set failmode=continue tank # zpool get failmode tank NAME PROPERTY VALUE SOURCE tank failmode continue local |
# zpool create -o failmode=continue users mirror c0t1d0 c1t1d0 |
Pour une description des propriétés de pool, reportez-vous au Tableau 4–1.
Version Solaris 10 10/08 : la commande zpool history a été améliorée afin de fournir les nouvelles fonctions suivantes :
Les informations des événements du système de fichiers ZFS s'affichent. Exemple :
# zpool history History for 'rpool': 2010-06-23.09:30:12 zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=/tmp/root/etc/zfs/zpool.cache rpool c1t0d0s0 2010-06-23.09:30:13 zfs set canmount=noauto rpool 2010-06-23.09:30:13 zfs set mountpoint=/rpool rpool 2010-06-23.09:30:13 zfs create -o mountpoint=legacy rpool/ROOT 2010-06-23.09:30:14 zfs create -b 8192 -V 2048m rpool/swap 2010-06-23.09:30:14 zfs create -b 131072 -V 1024m rpool/dump 2010-06-23.09:30:15 zfs create -o canmount=noauto rpool/ROOT/zfsBE 2010-06-23.09:30:16 zpool set bootfs=rpool/ROOT/zfsBE rpool 2010-06-23.09:30:16 zfs set mountpoint=/ rpool/ROOT/zfsBE 2010-06-23.09:30:16 zfs set canmount=on rpool 2010-06-23.09:30:16 zfs create -o mountpoint=/export rpool/export 2010-06-23.09:30:17 zfs create rpool/export/home |
L'option -l permet d'afficher un format détaillé comprenant le nom d'utilisateur, le nom de l'hôte et la zone dans laquelle l'opération a été effectuée. Exemple :
# zpool history -l rpool History for 'tank': 2010-06-24.13:07:58 zpool create tank mirror c2t2d0 c2t5d0 [user root on neo:global] 2010-06-24.13:08:23 zpool scrub tank [user root on neo:global] 2010-06-24.13:38:42 zpool clear tank [user root on neo:global] 2010-06-29.11:44:18 zfs create tank/home [user root on neo:global] 2010-06-29.13:28:51 zpool clear tank c2t5d0 [user root on neo:global] 2010-06-30.14:07:40 zpool add tank spare c2t1d0 [user root on neo:global |
L'option -i peut être utilisée pour afficher les informations des événements internes à des fins de diagnostic. Exemple :
# zpool history -i tank History for 'tank': 2010-06-24.13:07:58 zpool create tank mirror c2t2d0 c2t5d0 2010-06-24.13:08:23 [internal pool scrub txg:6] func=1 mintxg=0 maxtxg=6 2010-06-24.13:08:23 [internal pool create txg:6] pool spa 22; zfs spa 22; zpl 4; uts neo 5.10 Generic_142909-13 sun4u 2010-06-24.13:08:23 [internal pool scrub done txg:6] complete=1 2010-06-24.13:08:23 zpool scrub tank 2010-06-24.13:38:42 zpool clear tank 2010-06-24.13:38:42 [internal pool scrub txg:69] func=1 mintxg=3 maxtxg=8 2010-06-24.13:38:42 [internal pool scrub done txg:69] complete=1 2010-06-29.11:44:18 [internal create txg:14241] dataset = 34 2010-06-29.11:44:18 zfs create tank/home 2010-06-29.13:28:51 zpool clear tank c2t5d0 2010-06-30.14:07:40 zpool add tank spare c2t1d0 |
Pour plus d'informations sur l'utilisation de la commande zpool history, reportez-vous à la section Résolution de problèmes avec le système de fichiers ZFS.
Version Solaris 10 10/08 : la commande zfs upgrade a été ajoutée à cette version pour pouvoir apporter des améliorations futures aux systèmes de fichiers ZFS existants. Les pools de stockage disposent d'une fonctionnalité de mise à niveau similaire permettant d'apporter des améliorations aux pools de stockage existants.
Exemple :
# zfs upgrade This system is currently running ZFS filesystem version 3. All filesystems are formatted with the current version. |
Les systèmes de fichiers mis à niveau et tout flux créé à partir de ces systèmes de fichiers mis à niveau à l'aide de la commande zfs send ne sont pas accessibles sur des systèmes exécutant des versions antérieures du logiciel.
Solaris 10 10/08 : dans cette version, vous pouvez accorder des autorisations détaillées aux utilisateurs ne disposant d'aucun privilège en vue d'effectuer des tâches d'administration ZFS.
Les commandes zfs allow et zfs unallow permettent d'accorder ou de retirer les autorisations.
Vous pouvez modifier l'administration déléguée avec la propriété delegation du pool. Exemple :
# zpool get delegation users NAME PROPERTY VALUE SOURCE users delegation on default # zpool set delegation=off users # zpool get delegation users NAME PROPERTY VALUE SOURCE users delegation off local |
Par défaut, la propriété delegation est activée.
Pour plus d'informations, reportez-vous au Chapitre 9Administration déléguée de ZFS et à la page de manuel zfs(1M).
Version Solaris 10 10/08 : le journal d'intention ZFS (ZIL) permet de répondre aux exigences de la norme POSIX dans le cadre de transactions synchronisées. Par exemple, les transactions de base de données doivent souvent se trouver sur des périphériques de stockage stables lorsqu'elles sont obtenues à partir d'un appel système. NFS et d'autres applications peuvent également assurer la stabilité des données à l'aide de fsync(). Par défaut, le ZIL est attribué à partir de blocs dans le pool de stockage principal. Dans cette version de Solaris, vous pouvez décider si vous souhaitez que les blocs ZIL continuent à être alloués à partir du pool de stockage principal ou à partir d'un autre périphérique de journal. Les performances peuvent parfois être améliorées en vous servant de périphériques de journal d'intention distincts dans votre pool de stockage ZFS, notamment d'une NVRAM ou d'un disque dédié.
Les périphériques de journal du ZIL ne sont pas liés aux fichiers journaux de base de données.
Vous pouvez installer un périphérique de journalisation ZFS au moment de la création du pool de stockage ou après sa création. Pour obtenir des exemples de configuration de périphériques de journal, reportez-vous aux sections Création d'un pool de stockage ZFS avec des périphériques de journal et Ajout de périphériques à un pool de stockage.
connexion d'un périphérique de journal à un périphérique journal existant afin de créer un périphérique mis en miroir. Cette opération est similaire à la connexion d'un périphérique à un pool de stockage qui n'est pas mis en miroir.
Considérez les points suivants pour déterminer si la configuration d'un périphérique de journalisation ZFS convient à votre environnement :
Toute amélioration des performances observée suite à l'implémentation d'un périphérique de journalisation distinct dépend du type de périphérique, de la configuration matérielle du pool et de la charge de travail de l'application. Pour des informations préliminaires sur les performances, consultez le blog suivant :
Les périphériques de journal peuvent être mis en miroir et leur réplication peut être annulée, mais RAID-Z n'est pas pris en charge pour les périphériques de journal.
Si un périphérique de journal distinct n'est pas mis en miroir et que le périphérique contenant le journal échoue, le stockage des blocs de journal retourne sur le pool de stockage.
Les périphériques de journal peuvent être ajoutés, remplacés, connectés, déconnectés, importés et exportés en tant que partie du pool de stockage. À partir de la version Solaris 10 9/10, les périphériques de journal peuvent être supprimés.
La taille minimale d'un périphérique de journal correspond à la taille minimale de chaque périphérique d'un pool, à savoir 64 Mo. La quantité de données en jeu pouvant être stockée sur un périphérique de journalisation est relativement petite. Les blocs de journal sont libérés lorsque la transaction du journal (appel système) est validée.
La taille maximale d'un périphérique de journalisation doit être approximativement égale à la moitié de la taille de la mémoire physique car il s'agit de la quantité maximale de données en jeu potentielles pouvant être stockée. Si un système dispose par exemple de 16 Go de mémoire physique, considérez une taille maximale de périphérique de journal de 8 Go.
Version Solaris 10 10/08 : vous pouvez appliquer l'option -p aux commandes zfs create, zfs clone et zfs rename afin de créer rapidement un jeu de données intermédiaire s'il n'existe pas encore.
Dans l'exemple suivant, les jeux de données ZFS (users/area51) sont créés dans le pool de stockage datab.
# zfs list NAME USED AVAIL REFER MOUNTPOINT datab 106K 16.5G 18K /datab # zfs create -p -o compression=on datab/users/area51 |
Si le jeu de données intermédiaire existe déjà pendant l'opération de création, celle-ci est réussie.
Les propriétés spécifiées s'appliquent au jeu de données cible, mais pas au jeu de données intermédiaire. Exemple :
# zfs get mountpoint,compression datab/users/area51 NAME PROPERTY VALUE SOURCE datab/users/area51 mountpoint /datab/users/area51 default datab/users/area51 compression on local |
Le jeu de données intermédiaire est créé avec le point de montage par défaut. Toute propriété supplémentaire est désactivée pour ce jeu de données. Exemple :
# zfs get mountpoint,compression datab/users NAME PROPERTY VALUE SOURCE datab/users mountpoint /datab/users default datab/users compression off default |
Pour de plus amples informations, reportez-vous à la page de manuel zfs(1M).
Solaris 10 10/08 : dans cette version, le système de fichiers ZFS répond plus efficacement aux périphériques qui sont supprimés et peut désormais identifier automatiquement les périphériques insérés.
Vous pouvez remplacer un périphérique existant par un périphérique équivalent sans utiliser la commande zpool replace.
La propriété autoreplace contrôle le remplacement automatique de périphériques. Si le remplacement du périphérique est désactivé, l'administrateur doit l'initier à l'aide de la commande zpool replace. Si l'option est définie sur on, tout nouveau périphérique se trouvant au même emplacement physique qu'un périphérique qui appartenait auparavant au pool est automatiquement formaté et remplacé. Par défaut, le remplacement est désactivé.
L'état de pool de stockage REMOVED est fourni en cas de retrait physique du périphérique ou d'un disque hot spare alors que le système est en cours d'exécution. Si un disque hot spare est disponible, il remplace le périphérique retiré.
Si un périphérique est retiré, puis réinséré, il est mis en ligne. Si un disque hot spare est activé lors de la réinsertion du périphérique, le disque hot spare est retiré une fois l'opération en ligne terminée.
La détection automatique du retrait ou de l'insertion de périphériques dépend du matériel utilisé. Il est possible qu'elle ne soit pas prise en charge sur certaines plates-formes. Par exemple, les périphériques USB sont configurés automatiquement après insertion. Il peut être toutefois nécessaire d'utiliser la commande cfgadm -c configure pour configurer un lecteur SATA.
Les disques hot spare sont consultés régulièrement afin de vérifier qu'ils sont en ligne et disponibles.
Pour de plus amples informations, reportez-vous à la page de manuel zpool(1M).
Version Solaris 10 10/08 : vous pouvez renommer de manière récursive tous les instantanés ZFS descendants à l'aide de la commande zfs rename -r. Exemple :
Dans un premier temps, un instantané d'un jeu de systèmes de fichiers ZFS est créé.
# zfs snapshot -r users/home@today # zfs list NAME USED AVAIL REFER MOUNTPOINT users 216K 16.5G 20K /users users/home 76K 16.5G 22K /users/home users/home@today 0 - 22K - users/home/markm 18K 16.5G 18K /users/home/markm users/home/markm@today 0 - 18K - users/home/marks 18K 16.5G 18K /users/home/marks users/home/marks@today 0 - 18K - users/home/neil 18K 16.5G 18K /users/home/neil users/home/neil@today 0 - 18K - |
Ensuite, les instantanés sont renommés le jour suivant.
# zfs rename -r users/home@today @yesterday # zfs list NAME USED AVAIL REFER MOUNTPOINT users 216K 16.5G 20K /users users/home 76K 16.5G 22K /users/home users/home@yesterday 0 - 22K - users/home/markm 18K 16.5G 18K /users/home/markm users/home/markm@yesterday 0 - 18K - users/home/marks 18K 16.5G 18K /users/home/marks users/home/marks@yesterday 0 - 18K - users/home/neil 18K 16.5G 18K /users/home/neil users/home/neil@yesterday 0 - 18K - |
Un instantané est le seul type de jeu de données pouvant être renommé de façon récursive.
Pour plus d'informations sur les instantanés, reportez-vous à la section Présentation des instantanés ZFS et à l'entrée de blog décrivant la création d'instantanés restaurés :
http://blogs.sun.com/mmusante/entry/rolling_snapshots_made_easy
Version Solaris 10 10/08 : dans cette version de Solaris, vous pouvez définir la compression gzip sur des systèmes de fichiers ZFS en plus de la compression lzjb. Vous pouvez spécifier la compression gzip ou gzip-N où N correspond à un chiffre entre 1 et 9. Exemple :
# zfs create -o compression=gzip users/home/snapshots # zfs get compression users/home/snapshots NAME PROPERTY VALUE SOURCE users/home/snapshots compression gzip local # zfs create -o compression=gzip-9 users/home/oldfiles # zfs get compression users/home/oldfiles NAME PROPERTY VALUE SOURCE users/home/oldfiles compression gzip-9 local |
Pour plus d'informations sur la configuration des propriétés ZFS, reportez-vous à la section Définition des propriétés ZFS.
Version Solaris 10 10/08 : à des fins de fiabilité, les métadonnées d'un système de fichiers ZFS sont automatiquement stockées plusieurs fois sur différents disques, si possible. Cette fonction est connue sous le terme anglais de ditto blocks.
Cette version vous permet également de stocker plusieurs copies des données utilisateur par système de fichiers à l'aide de la commande zfs set copies. Exemple :
# zfs set copies=2 users/home # zfs get copies users/home NAME PROPERTY VALUE SOURCE users/home copies 2 local |
Les valeurs disponibles sont 1, 2 et 3. La valeur par défaut est 1. Ces copies constituent un ajout à toute redondance de niveau pool, par exemple dans une configuration en miroir ou RAID-Z.
Stocker plusieurs copies des données utilisateur ZFS présente les avantages suivants :
Cela améliore la rétention des données en autorisant leur récupération à partir d'erreurs de lecture de blocs irrécupérables, comme par exemple des défaillances de support (plus connues sous le nom de bit rot) pour l'ensemble des configurations ZFS.
Cela garantit la sécurité des données, même lorsqu'un seul disque est disponible.
Cela permet de choisir les stratégies de protection des données par système de fichiers et de dépasser les capacités du pool de stockage.
Selon l'allocation des blocs "ditto" dans le pool de stockage, plusieurs copies peuvent être placées sur un seul disque. La saturation ultérieure d'un disque peut engendrer l'indisponibilité de tous les blocs "ditto".
Vous pouvez envisager l'utilisation des blocs "ditto" lorsque vous créez accidentellement un pool non redondant et lorsque vous avez besoin de définir des stratégies de conservation de données.
Pour une description détaillée de l'impact du stockage de plusieurs copies sur un système comprenant un pool d'un seul disque ou un pool de plusieurs disques, sur la protection globale des données, consultez le blog suivant :
http://blogs.sun.com/relling/entry/zfs_copies_and_data_protection
Pour plus d'informations sur la configuration des propriétés ZFS, reportez-vous à la section Définition des propriétés ZFS.
Version Solaris 10 8/07 : la commande zpool status -v permet d'afficher la liste des fichiers comportant des erreurs persistantes. Auparavant, il était nécessaire d'utiliser la commande find -inum pour identifier les noms de fichiers à partir de la liste des inodes affichés.
Pour obtenir des informations supplémentaires sur l'affichage d'une liste de fichiers comportant des erreurs persistantes, consultez la section Réparation d'un fichier ou répertoire corrompu.
Version Solaris 10 8/07 : dans cette version de Solaris, vous pouvez créer un volume ZFS en tant que périphérique cible Solaris iSCSI en configurant la propriété shareiscsi sur le volume ZFS. Cette méthode permet de configurer rapidement et facilement une cible Solaris iSCSI. Exemple :
# zfs create -V 2g tank/volumes/v2 # zfs set shareiscsi=on tank/volumes/v2 # iscsitadm list target Target: tank/volumes/v2 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0 |
Une fois la cible iSCSI créée, vous pouvez configurer l'initiateur iSCSI. Pour obtenir des informations sur la configuration d'un initiateur Solaris iSCSI, consultez le Chapitre 14, Configuring Oracle Solaris iSCSI Targets and Initiators (Tasks) du System Administration Guide: Devices and File Systems.
Pour obtenir des informations supplémentaires sur la gestion d'un volume ZFS en tant que cible iSCSI, consultez la section Utilisation d'un volume ZFS en tant que cible iSCSI Solaris.
Version Solaris 10 8/07 : dans cette version de Solaris, ZFS consigne automatiquement les commandes zfs et zpool qui modifient les informations concernant l'état du pool. Exemple :
# zpool history History for 'newpool': 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1 History for 'tank': 2007-04-25.11:46:28 zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0 |
Cette fonction vous permet, ainsi qu'au personnel de support Oracle, d'identifier les commandes ZFS réelles exécutées pour résoudre un scénario d'erreur.
Vous pouvez identifier un pool de stockage spécifique grâce à la commande zpool history. Exemple :
# zpool history newpool History for 'newpool': 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1 |
Dans cette version de Solaris, la commande zpool history n'enregistre pas l'ID utilisateur, le nom d'hôte ni le nom de la zone. Cependant, ces informations ne sont enregistrées qu'à partir de la version 10 10/08 de Solaris. Pour plus d'informations, reportez-vous à la section Améliorations apportées à l'historique des commandes ZFS (zpool history).
Pour obtenir des informations supplémentaires sur la résolution de problèmes relatifs à ZFS, consultez la sectionRésolution de problèmes avec le système de fichiers ZFS.
Version Solaris 10 8/07 : vous pouvez utiliser la propriété xattr pour désactiver ou activer les attributs avancés d'un système de fichiers ZFS spécifique. La valeur par défaut est on. Pour obtenir une description des propriétés ZFS, reportez-vous à la section Présentation des propriétés ZFS.
Version Solaris 10 8/07 : la nouvelle propriété canmount permet de spécifier s'il est possible de monter un jeu de données à l'aide de la commande zfs mount. Pour plus d'informations, reportez-vous à la section Propriété canmount.
Version Solaris 10 8/07 : outre les propriétés natives standard qui permettent d'exporter des statistiques internes ou de contrôler le comportement du système de fichiers ZFS, ZFS propose des propriétés définies par l'utilisateur. Les propriétés définies par l'utilisateur n'ont aucune incidence sur le comportement du système ZFS. En revanche, elles permettent d'annoter les jeux de données avec des informations adaptées à votre environnement.
Pour obtenir des informations supplémentaires, consultez la section Propriétés ZFS définies par l'utilisateur.
Version Solaris 10 8/07 : dans cette version de Solaris, vous pouvez définir les propriétés d'un système de fichiers lors de sa création, pas seulement après sa création.
Les exemples suivants montrent la syntaxe équivalente :
# zfs create tank/home # zfs set mountpoint=/export/zfs tank/home # zfs set sharenfs=on tank/home # zfs set compression=on tank/home |
# zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home |
Version Solaris 10 8/07 : dans cette version de Solaris, vous pouvez utiliser diverses formes de la commande zfs get pour afficher des informations sur l'ensemble des jeux de données si vous n'en spécifiez pas un en particulier ou si vous spécifiez all. Dans les versions précédentes, la commande zfs get ne permettait pas de récupérer la totalité des informations relatives au jeu de données.
Exemple :
# zfs get -s local all tank/home atime off local tank/home/bonwick atime off local tank/home/marks quota 50G local |
Version Solaris 10 8/07 : dans cette version de Solaris, vous pouvez utiliser la nouvelle option -F avec la commande zfs receive pour forcer une restauration du système de fichiers à l'instantané le plus récent avant d'effectuer la réception. Il peut être utile de faire appel à cette option en cas de modification du système de fichiers entre le moment où la restauration se produit et le moment où la réception commence.
Pour plus d'informations, reportez-vous à la section Réception d'un instantané ZFS.
Version Solaris 10 11/06 : lorsque vous créez un instantané de système de fichiers à l'aide de la commande zfs snapshot, spécifiez l'option -r si vous souhaitez créer des instantanés de façon récursive pour l'ensemble des systèmes de fichiers descendants. En outre, vous pouvez utiliser l'option -r pour détruire récursivement tous les instantanés descendants lors de la destruction d'un instantané.
Une seule opération, dite atomique, permet de créer rapidement des instantanés ZFS récursifs. Ceux-ci sont tous créés simultanément ou ne sont pas créés du tout. Grâce à ce type d'opération, une certaine cohérence des données d'instantané est assurée, y compris pour les systèmes de fichiers descendants.
Pour obtenir des informations supplémentaires, consultez la section Création et destruction d'instantanés ZFS.
Version Solaris 10 11/06 : une configuration RAID-Z redondante peut désormais présenter une parité simple ou double. En d'autres termes, le système peut subir respectivement une ou deux pannes de périphérique sans perte de données. Le mot-clé raidz2 permet de spécifier une configuration RAID-Z à deux parités. Pour spécifier une configuration RAID-Z à une parité, vous avez le choix entre les mots-clés raidz et raidz1.
Pour plus d'informations, consultez la section Création d'un pool de stockage RAID-Z ou la page de manuel zpool(1M).
Version Solaris 10 11/06 la fonction de disque hot spare ZFS permet d'identifier les disques pouvant être utilisés pour remplacer un périphérique défaillant dans un ou plusieurs pools de stockage. Le périphérique hot spare peut immédiatement remplacer tout périphérique actif du pool qui tombe en panne. Vous pouvez également effectuer ce remplacement manuellement.
Pour plus d'informations, reportez-vous à la section Désignation des disques hot spare dans le pool de stockage et à la page de manuel zpool(1M).
Version Solaris 10 11/06 : la commande zfs promote permet de remplacer un système de fichiers ZFS existant par un clone de celui-ci. Cette fonctionnalité permet de tester la nouvelle version d'un système de fichiers, puis de la définir comme système de fichiers actif.
Pour plus d'informations, reportez-vous à la section Remplacement d'un système de fichiers ZFS par un clone ZFS et à la page de manuel zfs(1M).
Version Solaris 10 6/06 : vous pouvez mettre à niveau vos pools de stockage à l'aide de la commande zpool upgrade et tirer ainsi profit des fonctions les plus récentes. De plus, la commande zpool status indique dorénavant si la version actuelle des pools ZFS est plus ancienne.
Pour plus d'informations, reportez-vous à la section Mise à niveau de pools de stockage ZFS et à la page de manuel zpool(1M).
Si vous souhaitez utiliser la console d'administration ZFS dans un système comprenant un pool provenant d'une version précédente de Solaris, veillez préalablement à mettre les pools à niveau. La commande zpool status permet de déterminer si une mise à niveau des pools est requise. Pour obtenir des informations sur la console d'administration ZFS, reportez-vous à la rubrique Gestion Web ZFS.
Version Solaris 10 6/06 : dans cette version de Solaris, les commandes zfs backup et zfs restore ont été renommées zfs send et zfs receive afin de mieux décrire leur fonction. Ces commandes envoient et reçoivent des représentations de flux de données ZFS.
Pour plus d'informations sur ces commandes, reportez-vous à la section Envoi et réception de données ZFS.
Version Solaris 10 6/06 : cette version inclut la commande zpool import -D, qui permet la récupération de pools précédemment détruits à l'aide de la commande zpool destroy.
Pour obtenir des informations supplémentaires, reportez-vous à la section Récupération de pools de stockage ZFS détruits.
Version Solaris 10 6/06 : cette version intègre un moteur de diagnostic ZFS capable de diagnostiquer et de signaler les pannes des périphériques et des pools. Les erreurs liées aux sommes de contrôle, aux E/S et aux périphériques font également l'objet d'un rapport lorsqu'elles sont liées à la défaillance d'un pool ou d'un périphérique.
Le moteur de diagnostic n'effectue pas d'analyses prédictives d'erreurs liées aux sommes de contrôle ou aux E/S et n'inclut aucune action proactive basée sur l'analyse de pannes.
Si une panne survient sur un système de fichiers ZFS, un message semblable au message suivant s'affiche :
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device. |
Il est recommandé de suivre les instructions spécifiques de la commande zpool status, afin d'identifier et de résoudre rapidement la panne.
Pour obtenir un exemple de récupération suite à un problème de ZFS signalé, consultez la section Réparation d'un périphérique manquant.
Version Solaris 10 6/06 : cette version inclut la commande zpool clear, qui permet d'effacer les décomptes d'erreurs associés à un périphérique ou un pool. Auparavant, les décomptes d'erreurs étaient effacés lors de la mise en ligne du périphérique d'un pool avec la commande zpool online. Pour plus d'informations, reportez-vous à la section Effacement des erreurs de périphérique de pool de stockage et à la page de manuel zpool(1M).
Solaris 10 6/06: dans cette version, vous pouvez définir et afficher les ACL NFSv4 sous deux formats : détaillé et compact. La commande chmod permet de définir l'un des formats ACL. Vous pouvez utiliser la commande ls - V pour afficher les ACL au format compact. Vous pouvez utiliser la commande ls -v pour afficher les ACL au format détaillé.
Pour plus d'informations, reportez-vous à la section Configuration et affichage d'ACL dans des fichiers ZFS en format compact, à la page de manuel chmod(1) et à la page de manuel ls(1).
Version Solaris 10 6/06 : un nouvel outil de contrôle de système de fichiers, fsstat, crée des rapports relatifs aux opérations de système de fichiers. Les activités peuvent être consignées par point de montage ou par type de système de fichiers. L'exemple suivant illustre les activités générales de système de fichiers ZFS :
$ fsstat zfs new name name attr attr lookup rddir read read write write file remov chng get set ops ops ops bytes ops bytes 7.82M 5.92M 2.76M 1.02G 3.32M 5.60G 87.0M 363M 1.86T 20.9M 251G zfs |
Pour de plus amples informations, reportez-vous à la page de manuel fsstat(1M).
Solaris 10 6/06 : la console d'administration ZFS est un outil de gestion ZFS basé sur le Web permettant d'effectuer les tâches administratives suivantes :
créer un nouveau pool de stockage ;
augmenter la capacité d'un pool existant ;
déplacer (exporter) un pool de stockage vers un autre système ;
importer un pool de stockage précédemment exporté afin qu'il soit disponible dans un autre système ;
visualiser des informations sur les pools de stockage ;
créer un système de fichiers ;
créer un volume ;
créer un instantané d'un système de fichiers ou d'un volume ;
restaurer un système de fichiers à l'aide d'un instantané précédent.
Vous pouvez accéder à la console d'administration ZFS par le biais d'un navigateur Web sécurisé en vous connectant à l'URL suivant :
https://system-name:6789/zfs |
Si vous avez saisi l'URL correct mais ne parvenez pas à atteindre la console d'administration ZFS, il est possible que le serveur ne soit pas démarré. Pour démarrer le serveur, exécutez la commande suivante :
# /usr/sbin/smcwebserver start |
Pour exécutez le serveur automatiquement à l'initialisation du système, tapez la commande suivante :
# /usr/sbin/smcwebserver enable |
Les systèmes de fichiers et les pools de stockage ZFS ne peuvent pas être gérés à l'aide de la console de gestion Solaris (smc, Solaris Management Console).
Le système de fichiers ZFS présente des fonctions et des avantages uniques au monde. Ce système de fichiers révolutionnaire modifie radicalement les méthodes d'administration des systèmes de fichiers. Le système de fichiers ZFS est un système robuste, évolutif et facile à administrer.
ZFS utilise le concept de pools de stockage pour la gestion du stockage physique. Auparavant, l'élaboration des systèmes de fichiers reposait sur un périphérique physique unique. Afin de traiter plusieurs périphériques et d'assurer la redondance de données, le concept de gestionnaire de volume a été introduit pour fournir la représentation d'un périphérique. Ainsi, il n'est plus nécessaire de modifier les systèmes de fichiers pour bénéficier de plusieurs périphériques. Cette conception ajoutait un niveau de complexité supplémentaire et empêchait finalement les avancées de certains systèmes de fichiers, car le système de fichiers ne pouvait pas contrôler le placement physique des données dans les volumes virtualisés.
Le système de fichiers ZFS élimine la gestion du volume. Plutôt que de vous obliger à créer des volumes virtualisés, ZFS regroupe les périphériques dans un pool de stockage. Le pool de stockage décrit les caractéristiques physiques du stockage (disposition de périphérique, redondance de données, etc.) et agit en tant qu'espace de stockage de données arbitraires à partir duquel il est possible de créer des systèmes de fichiers. Désormais, les systèmes de fichiers ne sont plus limités à des périphériques individuels. Ainsi, ils peuvent partager l'espace disque avec l'ensemble des systèmes de fichiers du pool. Il n'est plus nécessaire de prédéterminer la taille des systèmes de fichiers, car celle-ci augmente automatiquement au sein de l'espace disque alloué au pool de stockage. En cas d'ajout d'espace de stockage, tous les systèmes de fichiers du pool peuvent immédiatement utiliser l'espace disque supplémentaire, sans requérir des tâches supplémentaires. Le pool de stockage fonctionne de la même manière qu'un système de mémoire virtuelle sous plusieurs aspects : lors de l'ajout d'un module DIMM à un système, le système d'exploitation ne force pas l'exécution de commandes pour configurer la mémoire et pour l'assigner aux processus. Tous les processus du système utilisent automatiquement la mémoire supplémentaire.
ZFS étant un système de fichiers transactionnel, l'état du système de fichiers reste toujours cohérent sur le disque. Les systèmes de fichiers classiques écrasent les données en place. Ainsi, en cas de réduction de la puissance du système, par exemple, entre le moment où un bloc de données est alloué et celui où il est lié à un répertoire, le système de fichiers reste incohérent. Auparavant, la commande fsck permettait de résoudre ce problème. Cette commande permettait de vérifier l'état du système de fichiers et de tenter de réparer les incohérences détectées au cours du processus. Les incohérences dans les systèmes de fichiers pouvaient poser de sérieux problèmes aux administrateurs. La commande fsck ne garantissait pas la résolution de tous les problèmes. Plus récemment, les systèmes de fichiers ont introduit le concept de journalisation. Le processus de journalisation enregistre les actions dans un journal séparé, lequel peut ensuite être lu en toute sécurité en cas de panne du système. Ce processus requiert un temps système inutile car les données doivent être écrites deux fois. En outre, il entraîne souvent d'autres problèmes, par exemple l'impossibilité de relire correctement le journal.
Avec un système de fichiers transactionnel, la gestion de données s'effectue avec une sémantique de copie lors de l'écriture. Les données ne sont jamais écrasées et toute séquence d'opération est entièrement validée ou entièrement ignorée. La corruption du système de fichier en raison d'une coupure de courant ou d'un arrêt du système est impossible. Même s'il se peut que les éléments les plus récents écrits sur les données soient perdus, le système de fichiers reste cohérent. De plus, les données synchrones (écrites avec l'indicateur O_DSYNC) sont toujours écrites avant le renvoi. Ainsi, toute perte est impossible.
Avec ZFS, toutes les données et métadonnées sont vérifiées selon un algorithme de somme de contrôle sélectionné par l'utilisateur. Les systèmes de fichiers classiques fournissant le contrôle de sommes l'effectuaient par bloc, en raison de la couche de gestion de volumes et de la conception classique de système de fichiers. Le terme classique signifie que certaines pannes, comme l'écriture d'un bloc complet dans un emplacement incorrect, peuvent entraîner des incohérences dans les données, sans pour autant entraîner d'erreur dans les sommes de contrôle. Les sommes de contrôle ZFS sont stockées de façon à détecter ces pannes et à effectuer une récupération de manière appropriée. Toutes les opérations de contrôle de somme et de récupération des données sont effectuées sur la couche du système de fichiers et sont transparentes aux applications.
De plus, ZFS fournit des données d'autorétablissement. ZFS assure la prise en charge de pools de stockage avec différents niveaux de redondance de données. Lorsqu'un bloc de données endommagé est détecté, ZFS récupère les données correctes à partir d'une autre copie redondante et répare les données endommagées en les remplaçant par celles de la copie.
L'évolutivité de ZFS représente l'un des éléments clés de sa conception. La taille du système de fichiers lui-même est de 128 bits et vous pouvez utiliser jusqu'à 256 quadrillions de zettaoctets de stockage. L'ensemble des métadonnées est alloué de façon dynamique. Il est donc inutile de pré-allouer des inodes ou de limiter l'évolutivité du système de fichiers lors de sa création. Tous les algorithmes ont été écrits selon cette exigence d'évolutivité. Les répertoires peuvent contenir jusqu'à 248 (256 trillions) d'entrées et le nombre de systèmes de fichiers ou de fichiers contenus dans un système de fichiers est illimité.
Un instantané est une copie en lecture seule d'un système de fichiers ou d'un volume. La création d'instantanés est rapide et facile. Ils n'utilisent initialement aucun espace disque supplémentaire dans le pool.
À mesure que le jeu de données actif est modifié, l'espace disque occupé par l'instantané augmente tandis que l'instantané continue de référencer les anciennes données. Par conséquent, l'instantané évite que les données soit libérées à nouveau dans le pool.
Point le plus important, ZFS fournit un modèle administration qui a été énormément simplifié. Grâce à une disposition hiérarchique des systèmes de fichiers, à l'héritage des propriétés et à la gestion automatique des points de montage et de la sémantique de partage NFS, ZFS facilite la création et la gestion de systèmes de fichiers sans requérir de nombreuses commandes, ni la modification de fichiers de configuration. Vous pouvez définir des quotas ou des réservations, activer ou désactiver la compression ou encore gérer les point de montage pour plusieurs systèmes de fichiers avec une seule commande. Vous pouvez vérifier ou remplacer les périphériques sans devoir apprendre un jeu de commandes de gestion de volumes spécifique. Vous pouvez envoyer et recevoir des flux d'instantanés du système de fichiers.
ZFS assure la gestion des systèmes de fichiers par le biais d'une hiérarchie qui facilite la gestion des propriétés telles que les quotas, les réservations, la compression et les points de montage. Dans ce modèle, les systèmes de fichiers constituent le point de contrôle central. Les systèmes de fichiers eux-mêmes étant très peu coûteux (autant que la création d'un nouveau répertoire), il est recommandé de créer un système de fichiers pour chaque utilisateur, projet, espace de travail, etc. Cette conception permet de définir des points de gestion détaillés.
Cette section décrit la terminologie de base utilisée dans ce document :
Environnement d'initialisation créé par la commande lucreate et éventuellement mis à jour par la commande luupgrade. Cependant, il ne s'agit pas de l'environnement d'initialisation principal ou actif. L'environnement d'initialisation secondaire peut devenir l'environnement d'initialisation principal en exécutant la commande luactivate.
Hachage de 256 bits des données dans un bloc de système de données. La fonctionnalité de contrôle de somme regroupe entre autres, le contrôle de somme simple et rapide fletcher4 (paramètre par défaut), ainsi que les puissantes fonctions de hachage cryptographique telles que SHA256.
Système de fichiers dont le contenu initial est identique à celui d'un instantané.
Pour plus d'informations sur les clones, reportez-vous à la section Présentation des clones ZFS.
Nom générique pour les composants ZFS suivants : clones, systèmes de fichiers, instantanés et volumes.
Chaque jeu de données est identifié par un nom unique dans l'espace de noms ZFS. Les jeux de données sont identifiés à l'aide du format suivant :
pool/chemin[ @instantané]
Identifie le nom d'un pool de stockage contenant le jeu de données.
Nom de chemin délimité par slash pour le composant de jeu de données
Composant optionnel identifiant l'instantané d'un jeu de données.
Pour plus d'informations sur les jeux de données, reportez-vous au Chapitre 6Gestion des systèmes de fichiers Oracle Solaris ZFS.
Jeu de données ZFS de type filesystem monté au sein de l'espace de noms système standard et se comportant comme les autres systèmes de fichiers.
Pour plus d'informations sur les systèmes de fichiers, reportez-vous au Chapitre 6Gestion des systèmes de fichiers Oracle Solaris ZFS.
Périphérique virtuel stockant des copies identiques de données sur un ou plusieurs disques. Lorsqu'un disque d'un miroir est défaillant, tout autre disque du miroir est en mesure de fournir les mêmes données.
Groupe logique de périphériques décrivant la disposition et les caractéristiques physiques du stockage disponible. L'espace disque pour les jeux de données est alloué à partir d'un pool.
Pour plus d'informations sur les pools de stockage, reportez-vous au Chapitre 4Gestion des pools de stockage Oracle Solaris ZFS.
Environnement d'initialisation utilisé par la commande lucreate pour créer un environnement d'initialisation alternatif. Par défaut, l'environnement d'initialisation principal correspond à l'environnement d'initialisation actuel. Ce paramètre par défaut peut être modifié à l'aide de l'option lucreate - s.
Périphérique virtuel stockant les données et la parité sur plusieurs disques. Pour plus d'informations sur RAID-Z, reportez-vous à la section Configuration de pool de stockage RAID-Z.
Processus de copie de données d'un périphérique à un autre, connu sous le nom de resynchronisation. Par exemple, si un périphérique de miroir est remplacé ou mis hors ligne, les données du périphérique de miroir le plus actuel sont copiées dans le périphérique de miroir nouvellement restauré. Dans les produits de gestion de volumes classiques, ce processus est appelé resynchronisation de miroir.
Pour plus d'informations sur la réargenture ZFS, reportez-vous à la section Affichage de l'état de réargenture.
Copie ponctuelle en lecture seule d'un système de fichiers ou d'un volume.
Pour plus d'informations sur les instantanés, reportez-vous à la section Présentation des instantanés ZFS.
Périphérique logique dans un pool. il peut s'agir d'un périphérique physique, d'un fichier ou d'une collection de périphériques.
Pour plus d'informations sur les périphériques virtuels, reportez-vous à la section Affichage des informations d'un périphérique virtuel de pool de stockage.
Jeu de données représentant un périphérique en mode bloc. Vous pouvez par exemple créer un volume ZFS en tant que périphérique de swap.
Pour plus d'informations sur les volumes ZFS, reportez-vous à la section Volumes ZFS.
L'attribution de noms de chaque composant ZFS, tels que les jeux de données et les pools, doit respecter les règles suivantes :
Chaque composant ne peut contenir que des caractères alphanumériques en plus des quatre caractères spéciaux suivants :
Soulignement (_)
Trait d'union (-)
Deux points (:)
Point (.)
Les noms de pools doivent commencer par une lettre, à l'exception des restrictions suivantes :
La séquence de début c[0-9] n'est pas autorisée.
Le nom log est réservé.
Vous ne pouvez pas utiliser un nom commençant par mirror, raidz , raidz1, raidz2, raidz3 ou spare car ces noms sont réservés.
Les noms de pools ne doivent pas contenir le signe de pourcentage (%).
Les noms de jeux de données doivent commencer par un caractère alphanumérique.
Les noms de jeux de données ne doivent pas contenir le signe de pourcentage (%).
De plus, les composants vides ne sont pas autorisés.