Guide d'administration Oracle Solaris ZFS

Nouveautés de ZFS

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)

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.

Nouveau processus du système de fichiers ZFS

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).

Modifications apportées à la commande zpool list

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.

Récupération de pool 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.

Améliorations des périphériques de journal ZFS

Oracle Solaris 10 9/10 : les améliorations suivantes ont été apportées aux périphériques de journal :

Configuration RAIDZ à triple parité (raidz3)

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.

Conservation des instantanés ZFS

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.

Améliorations du remplacement des périphériques 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 :

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.

Prise en charge de l'installation de ZFS et Flash

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).

Quotas d'utilisateurs et de groupes ZFS

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.

Héritage direct ACL ZFS pour l'autorisation d'exécution

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.

Améliorations apportées aux propriétés ZFS

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.

Récupération de périphérique de journal ZFS

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 :

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.

L'utilisation des périphériques de cache dans votre pool de stockage ZFS

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.

Migration de zone dans un environnement ZFS

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.

Prise en charge de l'installation et de l'initialisation de ZFS

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.

Rétablissement d'un jeu de données sans démontage

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.

Améliorations apportées à la commande zfs send

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 :

Pour plus d'informations, reportez-vous à la section Envoi et réception de flux d'instantanés ZFS complexes.

Quotas et réservations ZFS pour les données de système de fichiers uniquement

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.

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.

Propriétés de pool de stockage 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 :

Améliorations apportées à l'historique des commandes ZFS (zpool history)

Version Solaris 10 10/08 : la commande zpool history a été améliorée afin de fournir les nouvelles fonctions suivantes :

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.

Mise à niveau des systèmes de fichiers ZFS (zfs upgrade)

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.

Remarque –

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.


Administration déléguée de ZFS

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).

Configuration de périphériques de journal ZFS distincts

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 :

Création de jeux de données ZFS intermédiaires

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).

Amélioration de l'enfichage à chaud ZFS

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.

Pour de plus amples informations, reportez-vous à la page de manuel zpool(1M).

Renommage récursif d'instantanés ZFS (zfs rename -r)

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

La compression gzip est disponible pour ZFS

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-NN 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.

Stockage de plusieurs copies de données utilisateur 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 :


Remarque –

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.

Amélioration de la sortie de la commande zpool status

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.

Améliorations de ZFS et Solaris iSCSI

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.

Historique de commande ZFS (zpool history)

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.

Améliorations de propriétés ZFS

Propriété ZFS xattr

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.

Propriété ZFS canmount

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.

Propriétés ZFS définies par l'utilisateur

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.

Définition des propriétés lors de la création de systèmes de fichiers ZFS

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

Affichage de la totalité des informations de systèmes de fichiers ZFS

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

Nouvelle option zfs receive -F

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.

Instantanés ZFS récursifs

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.

Configuration RAID-Z à double parité (raidz2)

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).

Disques hot spare pour périphériques de pool de stockage ZFS

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).

Remplacement d'un système de fichiers ZFS par un clone ZFS (zfs promote)

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).

Mise à niveau des pools de stockage ZFS (zpool upgrade)

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.

Les commandes de sauvegarde et de restauration ZFS sont renommées.

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.

Récupération de pools de stockage détruits

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.

Intégration de ZFS au gestionnaire de pannes

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.

Commande zpool clear

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).

Format NFSv4 ACL compact

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).

Outil de contrôle de système de fichiers (fsstat)

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).

Gestion Web ZFS

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 :

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

Remarque –

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).