\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{ven. janv. 16 22:13:36 CET 2015}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={zpool},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Configure des pools de stockage ZFS},
CreationDate={D:20150116221336},
ModDate={D:20150116221336},
Keywords={FileSystems;raid;storages}
}}
\begin{document}
 
\begin{center}
{\Huge zpool }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Configure des pools de stockage ZFS}
 
\vspace{10mm}
 
\vspace{1cm}{\huge Description }
 
\
 
\hspace{1mm}  Un pool de stockage est une collection de périphériques qui fournissent un stockage physique et une réplication de données pour les datasets ZFS. Tous les datasets dans un pool de stockage partagent le même espace.
\vspace{5mm} \\
 
 
\hspace{1mm}  Un périphérique virtuel (vdev) décrit un simple périphérique ou une collection de périphériques organisés en accord avec certaines caractéristiques de performances et panne. Les périphériques virtuels suivants sont supportés:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} disk]{Un périphérique block, typiquement localisé sous /dev/dsk. ZFS peut utiliser individuellement des slices ou des partitions, mais le mode d'opération recommandé est d'utiliser des disques entiers. Un dique peut être spécifié par un chemin complet, ou il peut être un nom cour ( la partie relative à /dev/dsk). Un disque entier peut être spécifié en omettant le slice ou la partition. par exemple, "c0t0d0" est équivalent à "/dev/dsk/c0t0d0s2". En donnant un disque entier, ZFS lablel automatiquement le disque, si nécessaire.}
\item[\hspace{1mm} file]{Un fichier régulier. L'utilisation de disques régulier est fortement découragé. Il est conçu principalement à des fins expérimentaux.}
\item[\hspace{1mm} mirror]{Un mirroir de 2 ou plusieurs disques. Les données sont répliquées de manière identique dans tous les composant d'un mirroir. Un mirroir avec N disques et taille X peut maintenir X octets et peut résister à N-1 panne de périphériques avant que l'intégrité des données soient compromise.}
\item[\hspace{1mm} raidz]{}
\item[\hspace{1mm} raidz1]{}
\item[\hspace{1mm} raidz2]{}
\item[\hspace{1mm} raidz3]{Une variation du RAID-5 qui permet une meilleur distribution de la parité et élimine les trous d'écriture des RAID-5 (dans lequel les données et la parité deviennent inconsistants avec une coupure de courant). Les données et la parité sont placés dans tous les disques dans un groupe raidz.}
\item[\hspace{1mm} ]{Un groupe raidz peut avoir une parité simple, double ou triple, signifiant que le groupe raidz peut survivre à 1, 2, ou 3 erreurs, respectivement, sans perte de données. raidz est un alias de raidz1.}
\item[\hspace{1mm} ]{Un group raidz avec N disques de taille X avec P disques de parité peut maintenir approximativement (N-P)*X octets et peut résister à P pannes de périphériques avec que l'intégrité des données soit compromise. Le nombre minimum de périphériques dans un group raidz est un de plus que le nombre de disque de parité. Le nombre recommandé est entre 3 et 9 pour améliorer les performances.}
\item[\hspace{1mm} spare]{Un pseudo vdev spécial qui conserve la trace de disques de rechange à chaud pour un pool.}
\item[\hspace{1mm} log]{Un périphérique de log séparé. Si plus d'un périphérique de log sont spécifiés, les écritures sont load-balancés entre les disques. Les périphériques de log peuvent être en mirroir. Cependant, les vdev raidz ne sont pas supportés.}
\item[\hspace{1mm} cache]{Un périphérique utilisé comme cache de données. Un périphérique cache ne peut pas être configuré comme mirroir ou groupe raidz.}
\end{description}
 
\hspace{1mm}  Les périphériques virtuels ne peuvent pas être imbriqués, donc un périphérique mirroir ou raidz ne peut contenir que les fichiers et des disques. Les mirroirs de mirroirs ou d'autres combinaisons ne sont pas permises.
\vspace{5mm} \\
 
 
\hspace{1mm}  Un pool peut avoir n'importe quel nombre de périphériques virtuels en haut de la configuration ( "root vdevs" ). Les données sont dynamiquement distribués dans tous les périphériques de haut niveau pour load-balancer dans les périphériques. Comme avec les nouveaux périphériques virtuels, ZFS place automatiquement les données dans les nouveaux périphériques disponibles.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les périphériques virtuels sont spécifié une à la fois dans la ligne de commande, séparés par des espaces blancs. Les mots clé "mirror" et "raidz" sont utilisé pour distinguer où un groupe se termine et où un autre commence.
\vspace{5mm} \\
 
 
\hspace{1mm} Par exemple, pour créer 2 vdev root, chaque en mirroir de 2 disques: \\
\hspace{1mm} \textbf{zpool create mypool mirror c0t0d0 c0t1d0 mirror c1t0d0 c1t1d0} \\
 
\vspace{1cm}{\huge Erreur disque et récupération }
 
\
 
\hspace{1mm}  ZFS supporte plusieurs mécanismes pour gérer les erreurs disques et la corruption de données. Toutes les métadonnées et les données sont hashé, et ZFS répare automatiquement les mauvaises données depuis une bonne copie quand une corruption est détectée.
\vspace{5mm} \\
 
 
\hspace{1mm}  Pour pouvoir utiliser ces fonctionnalités, un pool doit utiliser une certaine forme de redondance, en utilisant soit des groupes mirroir ou raidz. Bien que ZFS supporte les configuration non-redondantes, où chaque vdev root est simplement un disque ou un fichier, c'est fortement découragé.
\vspace{5mm} \\
 
 
\hspace{1mm}  Le status de santé d'un pool est décris par un de ces 3 états: online, degraded, faulted. Un pool online a tous ses périphériques fonctionnant normalement. Un pool dégradé est un pool dans lequel un ou plusieurs périphériques sont en échec, mais les données continuent d'être disponibles grâce à la configuration de la redondance. Un pool faulted est un pool qui a une corruption de méta-données, un ou plusieurs périphériques en erreur, et des réplicas insuffisant pour continuer à fonctionner.
\vspace{5mm} \\
 
 
\hspace{1mm}  La santé du vdev top-level, tel un mirror ou un raidz, est potentiellement impacté par l'état de ses vdev associés, ou ses périphériques. Un vdev top-level ou un composant périphérique est dans un de ces états:
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge DEGRADED }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Un ou plusieurs vdev top-level sont en état dégradés à cause d'un ou plusieurs composants périphérique offline. Des réplicas suffisants existent pour continuer à fonctionner.}
\item[\hspace{1mm} -]{Un ou plusieurs composants périphérique et est en état dégradé ou faulted, mais des réplicas suffisants existent pour continuer à fonctionner. Les conditions sous-jacentes sont les suivantes:}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -]{Le nombre d'erreurs de checksums excède le niveau acceptable et le périphérique est dégradé en indication que quelque chose ne va pas. ZFS continue d'utiliser le périphérique si nécessaire.}
\item[\hspace{6mm} -]{Le nombre d'erreur E/S excède le niveau acceptable. Le périphérique ne pourrait pas être marqué en faulted parce qu'il y'a suffisamment de réplicas pour continuer à fonctionner.}
\end{description}
 
\vspace{1cm}{\huge FAULTED }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Un ou plusieurs vdev top-level sont à l'état faulted à cause d'un ou plusieurs composants périphérique offline. Les réplicas existant sont insuffisant pour continuer à fonctionner.}
\item[\hspace{1mm} -]{Un ou plusieurs composant périphérique sont à l'état faulted, et des réplicas existant sont insuffisant pour continuer à fonctionner. Les conditions sous-jacentes sont les suivantes:}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -]{Le périphérique peut être ouvert, mais son contenu ne matche par les valeurs attendues}
\item[\hspace{6mm} -]{Le nombre d'erreur d'E/S excède un niveau acceptable et le périphérique est faulted pour empêcher son utilisation.}
\end{description}
 
\vspace{1cm}{\huge OFFLINE }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Le périphérique a été explicitement mis offline par la commande zpool offline}
\end{description}
 
\vspace{1cm}{\huge ONLINE }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Le périphérique est online et fonctionnel}
\end{description}
 
\vspace{1cm}{\huge REMOVED }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Le périphérique a été physiquement supprimé alors que le système fonctionnait. La détection de la suppression de disque est dépendant du hardware et peut ne pas être supporté par toutes les plateformes.}
\end{description}
 
\vspace{1cm}{\huge UNAVAIL }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Le périphérique ne peut pas être ouvert. Si un pool est importé quand un périphérique est indisponible, le périphérique sera identifié par un identifiant unique au lieu de son chemin vu que le chemin n'est jamais correct.}
\end{description}
 
\hspace{1mm}  Si un périphérique est supprimé puis ré-attaché plus tard dans le système, ZFS tente de placer le périphérique automatiquement en online. La détection de périphérique attaché est dépendant du hardware et peut ne pas être supporté par toutes les plateformes.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Hot Spares }
 
\
 
\hspace{1mm}  ZFS permet aux périphériques d'être associés avec des pools en hot spare avec la commande zpool add et supprimés avec la commande zpool remove. Une fois un spare initialisé, un nouveau vdev spae est créé dans la configuration qui va rester jusqu'à ce que le périphérique original soit remplacé. À ce point, le hot spare deviendra disponible si un autre périphérique échoue.
\vspace{5mm} \\
 
 
\hspace{1mm}  Si un pool a un spare partagé qui est actuellement utilisé, le pool ne peut pas être exporté vu que d'autre pools peuvent utiliser ce spare partagé.
\vspace{5mm} \\
 
 
\hspace{1mm}  Tout spare en progression de remplacement peut être annulé en détachant le hot spare. Si le périphérique faulted est détaché, le hot spare assume sa place dans la configuration, et est supprimé de la liste de spare pour tous les pools actifs.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les spares ne peuvent pas replacer les périphériques logs
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Intent Log }
 
\
 
\hspace{1mm}  ZFS Intent Log (ZIL) satisfait les pré-requis POSIX pour les transactions synchrones. Actuellement, les bases de données nécessitent que leur transactions soient sur des périphériques de stockage stables en retournant depuis un appel système. NFS et d'autres applications peuvent également utilis fsync() pour s'assurer de la stabilité des données. Par défaut, le intent log est alloué dans les blocks du pool principal. Cependant, il peut être possible d'obtenir de meilleurs performances en utilisant des périphériques séparés pou les logs tel que NVRAM ou un disque dédié.
\vspace{5mm} \\
 
 
\hspace{1mm} Par exemple: \\
\hspace{1mm} \textbf{zpool create pool c0d0 c1d0 log c2d0} \\
 
\hspace{1mm}  Plusieurs périphériques de log peuvent également être spécifiés, et ils peuvent être mirrorés. Les périphériques de log peuvent être ajoutés, remplacés, attachés, détachés, et importés/exportés comme partie d'un grand pool. Les logs mirrorés peuvent être supprimés en spécifiant le mirror top-level pour les logs.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Cache Devices }
 
\
 
\hspace{1mm}  Des périphériques peuvent être ajoutés à un pool de stockage comme périphérique de cache. Ces périphériques fournissent une couche additionnelle de cache entre la mémoire principale et le disque. Pour des opérations de lecture intensive, utiliser des périphériques cache fournis les meilleurs performances.
\vspace{5mm} \\
 
 
\hspace{1mm} Pour créer un pool avec des périphériques cache, spécifier un vdev cache avec des périphériques. par exemple: \\
\hspace{1mm} \textbf{zpool create pool c0d0 c1d0 cache c2d0 c3d0} \\
 
\hspace{1mm}  Les périphériques cache ne peuvent pas être mirrorés dans une configuration raidz. Si une erreur de lecture est rencontrée dans un périphérique cache, cette lecture est refaite dans le pool originale, qui peut faire partie d'une configuration mirror ou raidz. Le contenu des périphériques cache est considéré volatile.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Processus }
 
\
 
\hspace{1mm}  Chaque pool importé a un processus associé, nommé zpool-<poolname>, les threads dans ce processus sont les threads de traitement E/S du pool, qui manipulent la compression, checsums, et d'autre tâches pour toutes les opération d'E/S associées avec le pool. Ce processus existe pour fournir un visibilité dans l'utilisation CPU. L'existence de ce processus est une interface instable.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Propriétés }
 
\
 
\hspace{1mm}  Chaque pool a de nombreuses propriétés. Certaines propriétés sont des statistiques lecture-seule alors que d'autre sont configurables. Les propriétés lecture-seules sont:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} alloc]{Quantité d'espace de stockage dans le pool qui a été physiquement alloué.}
\item[\hspace{1mm} capacity]{\% de l'espace du pool utilisé.}
\item[\hspace{1mm} deduplication]{Ration de déduplication spécifié pour un pool, exprimé comme multiplicateur. ex: 1.76 indique que 1.76 unité de donnée sont stockés mais seulement 1 unité de l'espace disque est consommé.}
\item[\hspace{1mm} free]{Nombre de blocks dans le pool qui ne sont pas alloués.}
\item[\hspace{1mm} guid]{Identifiant unique pour le pool}
\item[\hspace{1mm} healt]{Santé actuel du pool.}
\item[\hspace{1mm} size]{Taille totale du pool de stockage}
\end{description}
 
\hspace{1mm}  Ces propriétés d'utilisation de l'espace reportent l'espace physique actuellement disponible dans le pool. l'espace physique peut être différent de la taille totale d'espace que tout datasets peut utiliser actuellement. La quantité d'espace utilisé dans une configuration raidz dépend de ses caractéristiques. En plus, ZFS réserve de l'espace en interne que la commande zfs prend en compte, mais pas la commande zpool. Pour les pools non-pleins d'une taille raisonnable, ces effets devraient être invisibles. pour les petits pools, ou les pools qui sont presques pleins, ces écart peuvent devenir plus perceptibles.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les propriétés suivantes peuvent être définis à la création:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} ashift]{Exposant de taille de secteur du pool, en puissance de 2. Les opérations I/O seront alignés à cette taille. Additionnellement La taille d'écriture disque minimum sera définis à la taille spécifiée, ce qui représente un compromis espace/performance. Le cas typique pour définir cette propriété est quand les performances sont importante et que les disques utilisent des secteurs 4KiB mais reportent des secteurs de 512 octets à l'OS pour des raisons de compatibilité; dans ce cas, définis ashift=12 ( 1<<12 == 4096 ). Vu que les grands disques ont des secteurs 4K depuis 2011, ZFS utilise ashift=12 par défaut pour tous les disques supérieurs à 512Go. Pour des raisons de performances, la taille de secteur devrait être égal ou supérieur à la taille de secteur.}
\end{description}
 
\hspace{1mm}  Les propriétés suivantes peuvent être définis à la création et à l'import:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} altroot]{Répertoire root alternatif. Si définis, ce répertoire est ajouté à tout point de montage dans le pool. Cela peut être utilisé en examinant un pool inconnu où les points de montage ne peuvent pas être validés, ou dans un environnement de boot alternatif, où les chemins typiques ne sont pas valides. altroot n'est pas une propriété persistante. Elle est valide seulement quand le système est up.}
\end{description}
 
\hspace{1mm}  Les propriétés suivantes peuvent être définis à la création, à l'import et avec la command zpool set:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} autoexpand=on | off]{Contrôle l'expansion automatique du pool quand le LUN sous-jacent grandis. À on, le pool sera redimmensionné en accord avec la taille du périphérique étendu. Si le périphérique fait partie d'un mirror ou un raidz, tous les périphériques dans le groupe doivent être étendus avant que le nouvel espace soit disponible dans le pool. (défaut: off).}
\item[\hspace{1mm} autoreplace=on | off]{Contrôle le remplacement automatique du périphérique. À off, le remplacement de disque doit être initialisé par l'administrateur en utilisant zpool replace. à on, tout nouveau périphérique trouvé dans le même emplacement physique que l'ancien disque appartenant au pool est remplacé et formaté automatiquement. (défaut: off)}
\item[\hspace{1mm} bootfs=pool/dataset]{Identifie le dataset bootable par défaut pour le pool root. Cette propriété est prévue pour être définie principalement par les programmes d'installation et de mise à jours.}
\item[\hspace{1mm} cachefile=path | none]{Contrôle l'emplacement où la configuration du pool est cachée. Découvrir tous les pools au démarrage du système nécessite une copie cachée des données de configuration stockée dans le système de fichier racine. Tous les pools dans ce cache sont automatiquement importés au boot du système. Certains environnements, tels que l'installation et le clustering, nécessitent de cacher cette information dans un emplacement différent et ces pools ne sont pas automatiquement importés. Définir cette propriété met en cache la configuration du pool dans un emplacement différent et peut être importé ultérieurement avec zpool import -c. Définir la valeur spécial none créé un pool temporaire qui n'est jamais cacé, et la valeur spéciale "" utilise l'emplacement par défaut. Pluiseurs pools peuvent partager le même fichier de cache, mais le kernel détruis et recrée ce fichier quand les pools sont ajoutés ou recréés. quand le dernier poor utilisant cachefile est exporté ou supprimé, ce fichier est supprimé.}
\item[\hspace{1mm} delegation=on | off]{Contrôle si un utilisateur non-privilégié à accès basé sur les permissions de dataset définis dans le dataset.}
\item[\hspace{1mm} failmode=wait | continue | panic]{Contrôle le comportement du système dans l'éventualité d'une erreur catastrophique du pool. Cette condition est typiquement un résultat d'un perte de connectivité aux disques sous-jacents, ou une erreur de tous les disques dans le pool. Le comportement est déterminé comme suit:}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} wait]{Bloque les accès E/S au pool jusqu'à ce que la connectivité au disque soit récupéré et que les erreurs aient été validés. Un pool reste en wait jusqu'à ce que le problème du périphérique soit résolu. C'est le mode par défaut.}
\item[\hspace{6mm} continue]{Retourne EIO à toute nouvelle demande d'écriture mais permet de lire tous périphérique en cour de fonctionnement.}
\item[\hspace{6mm} panic]{Affiche un message à la console et génère un crash dump système.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} listsnaps=on | off]{Contrôle si les informations sur les snapshots associés avec ce pool sont affichés quand zfs list est lancé sans l'option -t. ( défaut: off ).}
\item[\hspace{1mm} version=version]{Version courante du pool. Peut être augmenté, mais pas diminué. La méthode préférée pour mettre à jours les pools est avec la commande zpool upgrade. Cette propriété peut être tout nombre entre 1 et la version courante reportée par zpool ugrade -v.}
\end{description}
 
\vspace{1cm}{\huge Sous-commandes }
 
\
 
\hspace{1mm}  Toutes les sous-commandes qui modifient l'état sont loggés de manière persistante dans le pool dans leur forme original.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool add \texttt{[}-fn\texttt{]} \texttt{[}-o property=value\texttt{]} pool vdev ...]{Ajoute les périphériques virtuel spécifiés dans le pool donné.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -f]{Force l'utilisation de vdev, même s'il apparaît en utilisation ou spécifie un conflit au niveau de la réplication.}
\item[\hspace{6mm}  -n]{Affiche la configuration qui serai utilisée sans ajouter le vdev.}
\item[\hspace{6mm} -o property=value]{Définis les propriétés du pool donné (ashift). N'ajoute pas de disque qui est actuellement configuré comme périphérique quorum à un zpool. Une fois un disque dans le pool, ce disque peut être configuré comme périphérique quorum}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool attach \texttt{[}-f\texttt{]} \texttt{[}-o property=value\texttt{]} pool device new\_device]{Attache un nouveau périphérique à un zpool existant. Le périphérique existant ne peut pas faire partie d'une configuration raidz. Si device ne fait pas partie actuellement d'une configuration mirror, device se transforme automatiquement en mirror 2-way de device et new\_device. Si device fait partie d'un mirror 2-way, attache new\_device et créé un mirror 3-way, et ainsi de suite.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -f]{Force l'utilisation de new\_device, même s'il apparaît en cours d'utilisation.}
\item[\hspace{6mm} -o property=value]{Définie les propriété du pool donné (ashift).}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool clear \texttt{[}-F \texttt{[}-n\texttt{]}\texttt{]} pool \texttt{[}device\texttt{]} ...]{Efface les erreurs disques dans un pool. Si aucun argument n'est spécifié, toutes les erreurs périphériques seront effacés. Si un ou plusieurs périphériques sont spécifiés, n'efface les erreurs que de ces périphériques.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -F]{Initie le mode récupération pour un pool inouvrable. Tente d'annuler les dernières transactions dans le pool pour le retourner à un état normal. Tous les pools endommagé ne peuvent pas être récupérés avec cette option.}
\item[\hspace{6mm}  -n]{Utilisé en combinaison avec -F. Vérifie si les transactions annulées renderaient le pool ouvrable, mais n'annule rien.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool create \texttt{[}-fn\texttt{]} \texttt{[}-o property=value\texttt{]} ... \texttt{[}-O file-system-property=value\texttt{]} ... \texttt{[}-m mountpoint\texttt{]} \texttt{[}-R root\texttt{]} pool vdev ...]{Créé un pool contenant les périphériques virtuels spécifié dans la ligne de commande. Le nom du pool doit commencer avec une lettre, et peut contenir des caractères alphanumériques, "\_", "-" et ".". Les noms de pool mirror, raidz, spare et log sont réservés, comme les noms commençant par c[0-9]. La commande vérifie que chaque périphérique est accessible et non utilisés.}
\item[\hspace{1mm} ]{La commande vérifie également que la stratégie de réplication pour le pool est consistante. Une tentative de combiner des stockage redondant et non-redondants dans un seul pool, ou de mixer des disques et des fichier, cause une erreur sauf si -f est spécifié. L'utilisation de disques de taille différentes dans un simple raidz ou mirror est aussi marqué en erreur sauf si -f est spécifié.}
\item[\hspace{1mm} ]{Le point de montage par défaut est /<pool>. Le point de montage ne doit pas exister ou doit être vide.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -f]{Force l'utilisation des vdev, même s'ils apparaissent utilisé ou en conflit de niveau de réplication.}
\item[\hspace{6mm}  -n]{Affiche la configuration qui serait utilisée sans créer le pool.}
\item[\hspace{6mm} -o property=value \texttt{[}-o property=value\texttt{]} ...]{Définis une propriété du pool}
\item[\hspace{6mm} -O file-system-property=value]{}
\item[\hspace{6mm} \texttt{[}-O file-system-property=value\texttt{]} ...]{Définis des propriétés de système de fichier dans le système de fichier root du pool.}
\item[\hspace{6mm} -R root]{Équivalent à "-o cachefile=none,altroot=root"}
\item[\hspace{6mm} -m mountpoint]{Définis le point de montage pour de dataset root. Le point de montage doit être un chemin absolu, legacy, ou none.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool destroy \texttt{[}-f\texttt{]} pool]{Détruit le pool donné, libérant les périphériques pour d'autres utilisations. Cette commande tente de démonter tout dataset actif avant de détruire le pool.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -f]{Force un dataset actif contenu dans le pool à être démonté.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool detach pool device]{Détache device d'un mirroir. Cette opération est refusé s'il n'y a pas d'autre replica valide.}
\item[\hspace{1mm} zpool export \texttt{[}-f\texttt{]} pool ...]{Exporte les pools donnés du système. Tous les périphériques sont marqués comme exporté, mais sont considérés en utilisation par d'autre sous-systèmes. Les périphériques peuvent être déplacés entre les systèmes et importés tant que le nombre de périphériques suffisant sont disponible.}
\item[\hspace{1mm} ]{Avant d'exporter le pool, tous les datasets dans le pool sont démontés. Un pool ne peut pas être exporté s'il a un spare partagé qui est actuellement utilisé. Pour que les pools soient portables, vous devez donner à zpool des disques entiers, pas seulement les slices, pour que zfs puisse labeliser les disques avec des labels EFI portables.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -f]{Force à démonter les datasets.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool get "all" | property\texttt{[},...\texttt{]} pool ...]{Récupère la liste donnée de propriété pour les pools spécifiés. Ces propriétés sont affichés avec les champs suivant:}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} name]{Nom du pool}
\item[\hspace{6mm} property]{nom de la propriété}
\item[\hspace{6mm} value]{valeur de la propriété}
\item[\hspace{6mm} source]{Source de la propriété.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool history \texttt{[}-il\texttt{]} \texttt{[}pool\texttt{]} ...]{Affiche l'historique des commandes des pools spécifiés.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -i]{Affiche les évènement ZFS loggé en interne en plus des évènements initiés par l'utilisateur.}
\item[\hspace{6mm} -l]{Affiche les logs au format long}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool import \texttt{[}-d dir | -c cachefile\texttt{]} \texttt{[}-D\texttt{]}]{Liste les pool disponible à l'import. Si l'option -d n'est pas spécifié, cette commande recherche les périphériques dans /dev/dsk. Si le périphérique apparaît comme faisant partie d'un pool exporté, cette commande affiche des informations sur le pool. Les pools détruits, les pools qui ont été précédemment détruis avec zpool destroy, ne sont pas listés sauf si -D est spécifié.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -c cachefile]{Lit la configuration depuis le cachefile donné qui a été créé avec la propriété cachefile.}
\item[\hspace{6mm} -d dir]{Recherche les périphériques ou fichiers dans dir. Peut être spécifié plusieurs fois.}
\item[\hspace{6mm} -D]{Liste les pools détruis uniquement.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool import \texttt{[}-o mntopts\texttt{]} \texttt{[} -o property=value\texttt{]} ... \texttt{[}-d dir | -c cachefile\texttt{]} \texttt{[}-D\texttt{]} \texttt{[}-f\texttt{]} \texttt{[}-R root\texttt{]} \texttt{[}-F \texttt{[}-n\texttt{]}\texttt{]} -a]{Importe tous les pools trouvés dans les répertoirs de recherche. Identiquement à la commande précédante, excepté que tous les pools avec un nombre suffisant de périphériques sont importés. Les pools détruis, les pools qui ont été précédemment détruis par zpool destroy, ne sont pas importés sauf si -D est spécifié.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -o mntopts]{Liste séparée par des ',' d'options de montages à utiliser en montant les datasets dans le pool.}
\item[\hspace{6mm} -o property=value]{Définis les propriétés spécifiées dans le pool importé.}
\item[\hspace{6mm} -c cachefile]{Lit la configuration depuis le cachefile donné qui a été créé avec la propriété cachefile.}
\item[\hspace{6mm} -d dir]{Recherche les périphériques ou les fichiers dans dir. Peut être spécifié plusieurs fois. Incompatible avec -c}
\item[\hspace{6mm} -D]{Importe les pools détruis uniquement. -f est requis}
\item[\hspace{6mm} -f]{Force l'import, même si le pool apparaît potentiellement actif.}
\item[\hspace{6mm} -F]{Mode récupération pour un pool non-importable. Tente de retourner le pool à un état importable en annulant les dernière transactions}
\item[\hspace{6mm} -a]{Recherche et importe tous les pools trouvés}
\item[\hspace{6mm} -R root]{Définis la propriété cachefile à none, et altroot à root.}
\item[\hspace{6mm}  -n]{Utilisé avec -F. Détermine si un pool non-importable peut être importable, mais ne tente pas la récupération.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool import \texttt{[}-o mntopts\texttt{]} \texttt{[} -o property=value\texttt{]} ... \texttt{[}-d dir | -c cachefile\texttt{]} \texttt{[}-D\texttt{]} \texttt{[}-f\texttt{]} \texttt{[}-R root\texttt{]} \texttt{[}-F \texttt{[}-n\texttt{]}\texttt{]} pool | id \texttt{[}newpool\texttt{]}]{Import un pool spécifique. Un pool peut être identifié par son nom ou l'identifiant numérique. Si newpool est spécifié, le pool est importé en utilisant le nom newpool. Sinon, il est importé avec le même nom que son nom exporté.}
\item[\hspace{1mm} ]{Si un périphérique est supprimé de son système sans utiliser zpool export avant, le périphérique apparaît comme potentiellement actif. Il ne peut pas être déterminé si c'était un export échoué, ou si le périphérique est vraiment en utilisation dans un autre hôte. Pour importer un pool dans cet état, l'option -f est requise.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -o mntopts]{Liste séparée par des ',' d'options de montages à utiliser en montant les datasets dans le pool}
\item[\hspace{6mm} -o property=value]{Définis les propriétés spécifiées dans le pool importé.}
\item[\hspace{6mm} -c cachefile]{Lit la configuration depuis le cachefile donné qui a été créé avec la propriété cachefile.}
\item[\hspace{6mm} -d dir]{Recherche les périphériques ou les fichiers dans dir. Peut être spécifié plusieurs fois. Incompatible avec -c}
\item[\hspace{6mm} -D]{Importe les pools détruis uniquement. -f est requis}
\item[\hspace{6mm} -f]{Force l'import, même si le pool apparaît potentiellement actif.}
\item[\hspace{6mm} -F]{Mode récupération pour un pool non-importable. Tente de retourner le pool à un état importable en annulant les dernière transactions}
\item[\hspace{6mm} -a]{Recherche et importe tous les pools trouvés}
\item[\hspace{6mm} -R root]{Définis la propriété cachefile à none, et altroot à root.}
\item[\hspace{6mm}  -n]{Utilisé avec -F. Détermine si un pool non-importable peut être importable, mais ne tente pas la récupération.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool iostat \texttt{[}-T u | d\texttt{]} \texttt{[}-v\texttt{]} \texttt{[}pool\texttt{]} ... \texttt{[}interval\texttt{[}count\texttt{]}\texttt{]}]{Affiche des statistiques d'E/S pour les pool donnés. En donnant un interval, rafraîchis toutes les interval secondes. Si aucun pool n'est spécifié, affiche pour tous les pools dans le système. Si count est spécifié, la commande se termine après count reports.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -T u | d]{Affiche un horodatage.}
\item[\hspace{6mm} -v]{Statistiques plus complètes.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool list \texttt{[}-H\texttt{]} \texttt{[}-o props\texttt{[},...\texttt{]}\texttt{]} \texttt{[}pool\texttt{]} ...]{Liste les pools donnés avec un status de santé et d'utilisation de l'espace. Sans argument, tous les pool dans le système sont listés.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -H]{Mode scripté. N'affiche pas les headers, et sépare les champs pas une tabulation.}
\item[\hspace{6mm} -o props]{Liste séparée par des ',' de propriétés à afficher. (name, size, allocated, free, capacity, health, altroot).}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool offline \texttt{[}-t\texttt{]} pool device ...]{Place les disques spécifié offline. Cette commande n'est pas applicable pour les caches et spares.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -t]{Temporaire. Au reboot, le disque sera replacé à son état précédent.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool online \texttt{[}-e\texttt{]} pool device...]{Place un disque online. Cette commande n'est pas applicable pour les caches et spares.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm}  -e]{ Étend le périphérique pour utiliser tous l'espace disque disponible. Si le disque fait partie d'un mirror ou d'un raidz, tous les périphériques doivent être étendus avec que l'espace soit disponible dans le pool.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool remove pool device ...]{Supprime un périphérique du pool. Cette commande supporte seulement la suppression des hot spare, cache, et log.}
\item[\hspace{1mm} zpool replace \texttt{[}-f\texttt{]} pool old\_device \texttt{[}new\_device\texttt{]}]{Remplace old\_device avec new\_device. C'est équivalent à attacher new\_device, et détacher old\_device. La taille de new\_device doit être supérieur ou égal à la taille minimum de tous les périphériques dans un mirror ou raidz.}
\item[\hspace{1mm} ]{new\_device est requis si le pool n'est pas redondant. Si new\_device n'est pas spécifié, son défaut est old\_device. Cette forme de remplacement est utile après qu'un disque existant ait crashé et a été physiquement remplacé. Dans ce cas, le nouveau disque peut avoir le même /dev/dsk que l'ancien périphérique, même s'il a une taille différente.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -f]{Force l'utilisation de new\_device, même s'il apparaît en utilisation.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool scrub \texttt{[}-s\texttt{]} pool ...]{Commence un scrub. Le scrub examine toutes les données dans les pools spécifiés pour vérifier qu'ils checksums correctement. Pour les périphériques répliqués, ZFS répare automatiquement tout dommage découvert durant le scrub. zpool status reporte la progression du scrub et affiche des informations sur son avancement.}
\item[\hspace{1mm} ]{Le scrubbing et le resilvering sont des opérations très similaires. La différence est que le resilvering examine seulement les données que ZFS sait être hors date (par exemple, en attachant un nouveau disque à un mirroir ou en replaçant un périphérique existantè), alors que le scrubbing examine toutes les données pour découvrir des erreurs dûs à des erreurs matériels ou disque.}
\item[\hspace{1mm} ]{Vu que le scrubbing et le resilvering sont des opération d'E/S intensifs, ZFS permet seulement un à la fois. Si un scrub est déjà en progression, zpool scrub se termine et recommence un nouveau scrub. Si un resilver est un progression, ZFS ne permet pas de démarrer un scrub.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -s]{Stop le scrubbing}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool set property=value pool]{Définis une propriété au pool spécifié.}
\item[\hspace{1mm} zpool split \texttt{[}-R altroot\texttt{]} \texttt{[}-n\texttt{]} \texttt{[}-o mntopts\texttt{]} \texttt{[}-o property=value\texttt{]} pool newpool \texttt{[}device ...\texttt{]}]{Coupe un disque de chaque vdev top-level mirroré en un pool et crée un nouveau pool avec les disques splittés. Le pool original doit être fait d'un ou plusieurs mirroirs et ne doit pas être dans un processus de resilvering. Cette commande choisi le dernier périphérique dans chaque vdev mirror sauf spécification dans la ligne de commande.}
\item[\hspace{1mm} ]{En utilisant un argument device, split inclus les périphériques spécifiés dans un nouveau pool, si des périphériques restent non précisés, assigne le dernier périphérique de chaque mirroir vdev à ce pool, comme il le fait normallement. Si vour n'êtes pas certain de la sortie de spécit, utiliser -n pour s'assure que votre command aura l'effet attendus.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -R altroot]{Import automatiquement le pool nouvellement créé avec le split, en utilisant le paramètre altroot spécifié.}
\item[\hspace{6mm}  -n]{Affiche ce qu'il va faire, mais ne fait rien}
\item[\hspace{6mm} -o property=value]{Définis les propriétés spécifiées dans le pool importé.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool status \texttt{[}-xv\texttt{]} \texttt{[}pool\texttt{]} ...]{Affiche des status détaillés sur l'état de santé des pools donnés. Si aucun pool n'est spécifié, alors le status de chaque pool dans le système est affiché. Si un scrub ou un resilver est en cours, cette commande reporte le pourcentage fait et le temps estimé.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -x]{Affiche seulement le status des pools qui ont des erreurs ou sont indisponible.}
\item[\hspace{6mm} -v]{Affiche plus d'information sur les erreurs.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} zpool upgrade]{Affichue tous les pools formattés en utilisant une version ZFS différente. Les anciennes version peuvent continuer à être utilisée mais certaines fonctionnalité ne seront pas disponible. Ce pools peuvent être upgradé en utilisant zpool upgrade -a. Les pools qui sont formatés avec une version plus récente sont également affichés, bien que ces pool sont inaccessible au système.}
\item[\hspace{1mm} zpool upgrade -v]{Affiche les versions ZFS supportés par le logiciel courant. Les versions ZFS courantes et tous les versions précédentes supportées sont affichées.}
\item[\hspace{1mm} zpool upgrade \texttt{[}-V version\texttt{]} -a | pool ...]{Upgrade à a dernière version. Une fois fait le pool ne sera plus accessible aux système fonctionnant avec des versions plus anciennes.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} -a]{Upgrade tous les pools}
\item[\hspace{6mm} -V version]{Upgrade à la version spéifiée.}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Créer un Pool RAID-Z de 6 disques: \\
\hspace{1mm} \textbf{zpool create tank raidz c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0} \\
\hspace{1mm} Créer un pool avec 2 mirroirs de 2 disques chacuns. \\
\hspace{1mm} \textbf{zpool create tank mirror c0t0d0 c0t1d0 mirror c0t2d0 c0t3d0} \\
\hspace{1mm} Créer un pool en utilisant des slices: \\
\hspace{1mm} \textbf{zpool create tank /dev/dsk/c0t0d0s1 c0t1d0s4} \\
\hspace{1mm} Créer un pool en utilisant des fichiers: \\
\hspace{1mm} \textbf{zpool create tank /path/to/file/a /path/to/file/b} \\
\hspace{1mm} ajouter un mirroir à un pool: \\
\hspace{1mm} \textbf{zpool add tank mirror c1t0d0 c1t1d0} \\
\hspace{1mm} Lister les pools disponibles: \\
\hspace{1mm} \textbf{zpool list} \\
\hspace{1mm} Affiche toutes les propriété d'un pool: \\
\hspace{1mm} \textbf{zpool get all pool} \\
\hspace{1mm} Détruit un pool \\
\hspace{1mm} \textbf{zpool destroy -f tank} \\
\hspace{1mm} Exporte un pool: \\
\hspace{1mm} \textbf{zpool export tank} \\
\hspace{1mm} Importe un pool: \\
\hspace{1mm} \textbf{zpool import} \\
\hspace{1mm} \textbf{zpool import tank} \\
\hspace{1mm} Upgrader les pools à la dernière version: \\
\hspace{1mm} \textbf{zpool upgrade -a} \\
\hspace{1mm} Gérer un spare: \\
\hspace{1mm} \textbf{zpool create tank mirror c0t0d0 c0t1d0 spare c0t2d0} \\
\hspace{1mm} Si un des disques échoue, le pool sera réduit à un état dégradé. le disque défectueux peut être remplacé avec: \\
\hspace{1mm} \textbf{zpool replace tank c0t0d0 c0t3d0} \\
\hspace{1mm} Une fois les donnée resilvered, le spare est automatiquement supprimé et de nouveau disponible. Le spare peut être supprimé de manière permanente avec: \\
\hspace{1mm} \textbf{zpool remove tank c0t2d0} \\
\hspace{1mm} Créer un pool avec les logs séparés: \\
\hspace{1mm} \textbf{zpool create pool mirror c0d0 c1d0 mirror c2d0 c3d0 log mirror c4d0 c5d0} \\
\hspace{1mm} Ajouter des disques cache à un pool: \\
\hspace{1mm} \textbf{zpool add pool cache c2d0 c3d0} \\
\hspace{1mm} Une fois ajoutés, les disques cache se remplissent avec le contenu de la mémoire principale. En fonction de la taille des disques, cela peut prendre des heures pour les remplir. La capacité et les lectures peuvent être supervisés avec iostat: \\
\hspace{1mm} \textbf{zpool iostat -v pool 5} \\
\hspace{1mm} Supprimer un périphérique log: \\
\hspace{1mm} \textbf{zpool remove tank mirror-2} \\
\hspace{1mm} récupérer un pool en faulted, récupérer un pool cache: \\
\hspace{1mm} \textbf{zpool clear -F data} \\
\hspace{1mm} sinon utiliser: \\
\hspace{1mm} \textbf{zpool import -F data} \\
 
\vspace{1cm}{\huge Codes de sortie }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} 0]{succès}
\item[\hspace{1mm} 1]{Une erreur s'est produite}
\item[\hspace{1mm} 2]{Options de ligne de commande invalide.}
\end{description}
 
\vspace{1cm}{\huge attributs }
 
\
 
\hspace{1mm} attribute type\_\_\_\_\_\_\_-\_attribute value
 
{\ttfamily
Availability\_\_\_\_\_\_\_\_\_-\_\_\_\_SUNWzfsu\\ Interface Stability \_-Committed\\
}
\vspace{8mm}
\end{flushleft}
\end{document}
