ZFS
Sun Microsystems, Inc. dtient les droits de proprit intellectuelle de la technologie utilise par le produit dcrit dans le prsent document. En particulier, et sans
limitation, ces droits de proprit intellectuelle peuvent inclure des brevets amricains ou dpts de brevets en cours d'homologation aux tats-Unis et dans d'autres
pays.
Droits du gouvernement amricain logiciel commercial. Les utilisateurs gouvernementaux sont soumis au contrat de licence standard de Sun Microsystems, Inc. et
aux dispositions du Federal Acquisition Regulation (FAR, rglements des marchs publics fdraux) et de leurs supplments.
Cette distribution peut contenir des lments dvelopps par des tiers.
Des parties du produit peuvent tre drives de systmes Berkeley-BSD, sous licence de l'Universit de Californie. UNIX est une marque dpose aux tats-Unis et
dans d'autres pays, sous licence exclusive de X/Open Company, Ltd.
Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java (tasse de caf), docs.sun.com, Java et Solaris sont des marques de fabrique ou des marques dposes de
Sun Microsystems, Inc. aux tats-Unis et dans d'autres pays. Toutes les marques SPARC sont utilises sous licence et sont des marques de fabrique ou des marques
dposes de SPARC International, Inc. aux tats-Unis et dans d'autres pays. Les produits portant les marques SPARC sont constitus selon une architecture
dveloppe par Sun Microsystems, Inc. Legato NetWorker est une marque commerciale ou une marque dpose de Legato Systems, Inc.
L'interface utilisateur graphique OPEN LOOK et SunTM a t dveloppe par Sun Microsystems, Inc. pour ses utilisateurs et dtenteurs de licence. Sun reconnat le
travail prcurseur de Xerox en matire de recherche et de dveloppement du concept d'interfaces utilisateur visuelles ou graphiques pour le secteur de l'informatique.
Sun dtient une licence Xerox non exclusive sur l'interface utilisateur graphique Xerox. Cette licence englobe galement les dtenteurs de licences Sun qui
implmentent linterface utilisateur graphique OPEN LOOK et qui, en outre, se conforment aux accords de licence crits de Sun.
Les produits cits dans la prsente publication et les informations qu'elle contient sont soumis la lgislation amricaine relative au contrle sur les exportations et, le
cas chant, aux lois sur les importations ou exportations dans d'autres pays. Il est strictement interdit d'employer ce produit conjointement des missiles ou armes
biologiques, chimiques, nuclaires ou de marine nuclaire, directement ou indirectement. Il est strictement interdit d'effectuer des exportations et rexportations
vers des pays soumis l'embargo amricain ou vers des entits identifies sur les listes noires des exportations amricaines, notamment les individus non autoriss et
les listes nationales dsignes.
LA DOCUMENTATION EST FOURNIE "EN L'TAT" ET TOUTES AUTRES CONDITIONS, REPRSENTATIONS ET GARANTIES EXPRESSES OU TACITES,
Y COMPRIS TOUTE GARANTIE IMPLICITE RELATIVE LA COMMERCIALISATION, L'ADQUATION UN USAGE PARTICULIER OU LA
NON-VIOLATION DE DROIT, SONT FORMELLEMENT EXCLUES. CETTE EXCLUSION DE GARANTIE NE S'APPLIQUERAIT PAS DANS LA MESURE O
ELLE SERAIT TENUE JURIDIQUEMENT NULLE ET NON AVENUE.
081117@21288
Prface ...................................................................................................................................................11
10
11
10
Prface
Le Guide d'administration Solaris ZFS fournit des informations sur la configuration et la gestion
des systmes de fichiers ZFS de SolarisTM.
Ce guide contient des informations sur les systmes SPARC et x86.
Remarque Cette version de Solaris prend en charge les systmes utilisant les architectures de
processeur SPARC et x86 : UltraSPARC, SPARC64, AMD64, Pentium et Xeon EM64T. Les
systmes pris en charge sont rpertoris dans laliste de compatibilit matrielle de
Solarisdisponible l'adresse http://www.sun.com/bigadmin/hcl Ce document prsente les
diffrences d'implmentation en fonction des divers types de plates-formes.
Dans ce document, les termes x86 ci-dessous ont les significations suivantes :
x64 dsigne des informations 64 bits spcifiques relatives aux systmes AMD64 ou
EM64T.
x86 32 bits dsigne des informations 32 bits spcifiques relatives aux systmes x86.
Pour connatre les systmes pris en charge, reportez-vous la liste de compatibilit matrielle de
Solaris 10.
Utilisateurs de ce manuel
Ce guide est destin toute personne souhaitant configurer et grer des systmes de fichiers ZFS
Solaris. Il est prfrable d'tre pralablement expriment en matire d'utilisation du systme
d'exploitation Solaris ou autre version UNIX.
11
Prface
Organisation de ce document
Le tableau suivant dcrit les chapitres de ce document.
Chapitre
Description
Chapitre1, Systme de fichiers Prsente ZFS, ses fonctionnalits et ses avantages. Il aborde galement des
ZFS (prsentation)
concepts de base, ainsi que la terminologie.
Chapitre2, Guide de
dmarrage de ZFS
Dcrit les instruction pas pas d'une configuration ZFS simple, avec pools et
systmes de fichiers simples. Ce chapitre indique galement le matriel et
logiciels requis pour la cration de systmes de fichiers ZFS.
Chapitre4, Installation et
initialisation d'un systme de
fichiers racine ZFS
Dcrit l'utilisation des listes de contrle d'accs (ACL, Access Control List)
pour la protection des fichiers ZFS en fournissant davantage de droits
granulaires que les droits standard UNIX.
Chapitre9, Administration
dlgue de ZFS
Chapitre10, Sections avances Dcrit l'utilisation de volumes ZFS, l'utilisation de ZFS dans un systme
de ZFS
Solaris comprenant des zones, ainsi que les pools racine de remplacement.
Chapitre11, Rsolution de
problmes et rcupration de
donnes ZFS
12
Prface
Documentation connexe
Vous trouverez des informations gnrales propos de l'administration de systmes Solaris
dans les documents suivants :
documentation ; (http://www.sun.com/documentation/)
support ; (http://www.sun.com/support/)
formation. (http://www.sun.com/training/)
Conventions typographiques
Le tableau ci-dessous dcrit les conventions typographiques utilises dans ce manuel.
TABLEAU P1
Conventions typographiques
Type de caractres
Signification
Exemple
AaBbCc123
AaBbCc123
aabbcc123
nom_machine% su
Mot de passe :
13
Prface
TABLEAU P1
Conventions typographiques
(Suite)
Type de caractres
Signification
Exemple
AaBbCc123
Reportez-vous au chapitre 6 du
Guide de l'utilisateur.
Un cache est une copie des lments
stocks localement.
N'enregistrez pas le fichier.
Remarque : En ligne, certains
lments mis en valeur s'affichent en
gras.
14
Invites de shell
Shell
Invite
C shell
nom_machine%
nom_machine#
C H A P I T R E
Ce chapitre prsente le systme de fichiers ZFS, ses fonctions et ses avantages. Il aborde
galement la terminologie de base utilise dans le reste de ce document.
Il contient les sections suivantes :
Nouveauts de ZFS
Cette section dcrit les nouvelles fonctions du systme de fichier ZFS.
Nouveauts de ZFS
16
Nouveauts de ZFS
Envoi de tous les flux incrmentiels 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
Tous les instantans incrmentiels de fs@snapA fs@snapD sont envoys vers fs@combo.
Envoi d'un flux incrmentiel partir de l'instantan d'origine pour crer un clone.
L'instantan d'origine doit dj exister sur le ct rcepteur afin d'accepter le flux
incrmentiel. 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 rplication de tous les systmes de fichiers descendants, jusqu'aux
instantans nomms. Une fois reus, les proprits, instantans, systmes de fichiers
descendants et clones sont conservs. Exemple :
zfs send -R pool/fs@snap > snaps/fs-R
17
Nouveauts de ZFS
Par exemple, en dfinissant la proprit refquota de studentA sur 10 Go, vous spcifiez une
limite fixe de 10 Go d'espace rfrenc. Pour une plus grande flexibilit, vous pouvez dfinir un
quota de 20 Go qui vous permet de grer les instantans de studentA.
# zfs set refquota=10g tank/studentA
# zfs set quota=20g tank/studentA
Pour plus d'informations, reportez-vous la section Quotas et rservations ZFS la page 170.
Nouveauts de ZFS
Proprit failmode Version Solaris 10 10/08 : dans cette version, la proprit failmode
permet de dterminer l'action effectuer en cas d'chec catastrophique de pool caus par la
perte de connectivit d'un priphrique ou la panne de tous les priphriques du pool. Vous
pouvez dfinir la proprit failmode sur l'une des valeurs suivantes : wait, continue ou
panic. La valeur par dfaut est wait : vous devez reconnecter le priphrique ou remplacer
le priphrique dfaillant, puis effacer l'erreur l'aide de la commande zpool clear.
La proprit failmode est dfinie comme les autres proprits ZFS dfinissables, avant ou
aprs la cration 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 proprits de pool ZFS, reportez-vous au Tableau 51.
Les informations sur les vnements des systmes de fichiers ZFS s'affichent. Exemple :
# zpool history users
History for users:
2008-07-10.09:43:05 zpool create users mirror c1t1d0 c1t2d0
2008-07-10.09:43:48 zfs create users/home
19
Nouveauts de ZFS
Option -i pour l'affichage des informations relatives aux vnements internes utilisables
pour tablir des diagnostics. Exemple :
# zpool history -i users
History for users:
2008-07-10.09:43:05 zpool create users mirror c1t1d0 c1t2d0
2008-07-10.09:43:13 [internal create txg:6] dataset = 21
2008-07-10.09:43:13 zfs create users/marks
2008-07-10.09:43:48 [internal create txg:12] dataset = 27
2008-07-10.09:43:48 zfs create users/home
2008-07-10.09:43:55 [internal create txg:14] dataset = 33
2008-07-10.09:43:56 zfs create users/home/markm
2008-07-10.09:44:02 [internal create txg:16] dataset = 39
2008-07-10.09:44:02 zfs create users/home/marks
2008-07-10.09:44:19 [internal snapshot txg:21] dataset = 42
2008-07-10.09:44:19 [internal snapshot txg:21] dataset = 44
2008-07-10.09:44:19 [internal snapshot txg:21] dataset = 46
2008-07-10.09:44:19 zfs snapshot -r users/home@yesterday
Nouveauts de ZFS
Exemple :
# zfs upgrade
This system is currently running ZFS filesystem version 3.
All filesystems are formatted with the current version.
Remarque Les systmes de fichiers mis niveau et tout flux cr partir de ces systmes de
fichiers mis niveau l'aide de la commande zfs send ne sont pas accessibles sur des systmes
excutant des versions antrieures du logiciel.
21
Nouveauts de ZFS
partir de blocs dans le pool de stockage principal. Cependant, les performances peuvent parfois
tre amliores en vous servant de priphriques de journalisation d'intention distincts dans
votre pool de stockage ZFS, notamment d'une NVRAM ou d'un disque ddi.
Les priphriques de journalisation du ZIL ne sont pas lis aux fichiers journaux de base de
donnes.
Vous pouvez configurer un priphrique de journalisation ZFS la cration du pool de stockage
ou un moment ultrieur. Pour obtenir des exemples de configuration de priphriques de
journalisation, reportez-vous la section Cration d'un pool de stockage ZFS avec des
priphriques de journalisation la page 99 et la section Ajout de priphriques un pool
de stockage la page 106.
connexion d'un priphrique de journal un priphrique journal existant afin de crer un
priphrique mis en miroir. Cette opration est similaire la connexion d'un priphrique un
pool de stockage qui n'est pas mis en miroir.
Considrez les points suivants pour dterminer si la configuration d'un priphrique de
journalisation ZFS convient votre environnement :
22
Les priphriques de journalisation peuvent tre mis en miroir et leur rplication peut tre
annule, mais RAIDZ n'est pas pris en charge pour les priphriques de journalisation.
Nouveauts de ZFS
Si le jeu de donnes intermdiaire existe pendant l'opration de cration, celle-ci est russie.
Les proprits spcifies s'appliquent au jeu de donnes cible, mais pas aux jeux de donnes
intermdiaires. Exemple :
# zfs get mountpoint,compression
NAME
PROPERTY
datab/users/area51 mountpoint
datab/users/area51 compression
datab/users/area51
VALUE
SOURCE
/datab/users/area51 default
on
local
Le jeu de donnes intermdiaire est cr avec le point de montage par dfaut. Toute proprit
supplmentaire est dsactive pour ce jeu de donnes. Exemple :
# zfs get mountpoint,compression datab/users
NAME
PROPERTY
VALUE
SOURCE
datab/users mountpoint /datab/users default
datab/users compression off
default
23
Nouveauts de ZFS
L'tat de pool de stockage REMOVED est fourni lors du retrait du priphrique ou d'un disque
hot spare, en cas de retrait physique du priphrique alors que le systme est en cours
d'excution. Si un disque hot spare est disponible, il remplace le priphrique retir.
Si un priphrique est retir, puis insr, il est mis en ligne. Si un disque hot spare est activ
lors de la rinsertion du priphrique, le disque hot spare est retir une fois l'opration en
ligne termine.
Les disques hot spare sont consults rgulirement afin de vrifier qu'ils sont en ligne et
disponibles.
Nouveauts de ZFS
users/home@yesterday
users/home/markm
users/home/markm@yesterday
users/home/marks
users/home/marks@yesterday
users/home/neil
users/home/neil@yesterday
0
18K 16.5G
0
18K 16.5G
0
18K 16.5G
0
-
22K
18K
18K
18K
18K
18K
18K
/users/home/markm
/users/home/marks
/users/home/neil
-
Les instantans sont le seul jeu de donnes qu'il est possible de renommer de faon rcursive.
Pour plus d'informations sur les instantans, reportez-vous la section Prsentation des
instantans ZFS la page 177 et l'entre de blog dcrivant la cration d'instantans restaurs :
http://blogs.sun.com/mmusante/entry/rolling_snapshots_made_easy
Pour plus d'informations sur la configuration des proprits ZFS, reportez-vous la section
Dfinition des proprits ZFS la page 158.
25
Nouveauts de ZFS
SOURCE
local
Les valeurs disponibles sont 1, 2 et 3. La valeur par dfaut 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 donnes utilisateur ZFS prsente les avantages suivants :
Cela amliore la rtention des donnes en autorisant leur rcupration partir d'erreurs de
lecture de blocs irrcuprables, comme par exemple des dfaillances de mdia pour
l'ensemble des configurations ZFS.
Cela garantit la scurit des donnes mme si un seul disque est disponible.
Cela permet de choisir les stratgies de protection des donnes par systme de fichiers et de
dpasser les capacits du pool de stockage.
Selon l'allocation des blocs "ditto" dans le pool de stockage, plusieurs copies peuvent tre
places sur un seul disque. La saturation ultrieure d'un disque peut engendrer l'indisponibilit
de tous les blocs "ditto".
Vous pouvez envisager l'utilisation des blocs "ditto" lorsque vous crez accidentellement un
pool non redondant et lorsque vous avez besoin de dfinir des stratgies de conservation de
donnes.
Pour une description dtaille de l'impact de la configuration de copies sur un systme
comprenant un pool d'un seul disque ou un pool de plusieurs disques, sur la protection globale
des donnes, consultez le blog suivant :
http://blogs.sun.com/relling/entry/zfs_copies_and_data_protection
Pour plus d'informations sur la configuration des proprits ZFS, reportez-vous la section
Dfinition des proprits ZFS la page 158.
Nouveauts de ZFS
Une fois la cible iSCSI cre, configurez l'initiateur iSCSI. Pour obtenir des informations sur la
configuration d'un initiateur Solaris iSCSI, consultez le Chapitre 14, Configuring Solaris iSCSI
Targets and Initiators (Tasks) du System Administration Guide: Devices and File Systems.
Pour obtenir des informations supplmentaires 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
la page 237.
Cette fonction vous permet, ainsi qu'au personnel de support Sun, d'identifier le jeu exact de
commandes ZFS excutes pour rsoudre un scnario d'erreur.
Vous pouvez identifier un pool de stockage spcifique grce la commande zpool history.
Exemple :
# zpool history newpool
History for newpool:
2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0
Chapitre 1 Systme de fichiers ZFS (prsentation)
27
Nouveauts de ZFS
2007-04-25.11:37:46
2007-04-25.11:38:04
2007-04-25.11:38:09
2007-04-25.11:38:15
Le journal est enregistr sur le disque de faon persistante, ce qui signifie qu'il est enregistr
au travers des rinitialisations du systme.
Le journal est implment en tant que tampon d'anneau. La taille minimale est de 128 Ko. La
taille maximale est de 32 Mo.
Pour des pools de taille infrieure, la taille maximum est plafonnes 1 % de la taille du pool,
la taille tant dtermine lors de la cration du pool.
Ne ncessite aucune administration, ce qui signifie qu'il n'est pas ncessaire d'ajuster la taille
du journal ou de modifier son emplacement.
Dans cette version de Solaris, la commande zpool history n'enregistre pas l'ID utilisateur, le
nom d'hte ni le nom de la zone. Pour plus d'informations, reportez-vous la section
Amliorations apportes l'historique des commandes ZFS (zpool history) la page 19.
Pour obtenir des informations supplmentaires sur la rsolution de problmes relatifs ZFS,
consultez la sectionIdentification de problmes dans ZFS la page 251.
Nouveauts de ZFS
n'ont aucune incidence sur le comportement du systme ZFS. En revanche, elles permettent
d'annoter les jeux de donnes avec des informations adaptes votre environnement.
Pour obtenir des informations supplmentaires, consultez la section Proprits ZFS dfinies
par l'utilisateur la page 154.
zfs
zfs
zfs
zfs
create tank/home
set mountpoint=/export/zfs tank/home
set sharenfs=on tank/home
set compression=on tank/home
off
off
50G
local
local
local
29
Nouveauts de ZFS
Nouveauts de ZFS
31
Nouveauts de ZFS
Il est recommand de suivre les instructions spcifiques de la commande zpool status, afin
d'identifier et de rsoudre rapidement la panne.
Pour obtenir un exemple de rcupration partir d'un problme ZFS signal, reportez-vous la
section Rparation d'un priphrique manquant la page 257.
Nouveauts de ZFS
les listes de contrle. La commande chmod permet de dfinir les trois formats ACL. Vous pouvez
utiliser la commande ls -V pour l'affichage des formats ACL compact et positionnel et la
commande ls - v pour l'affichage du format ACL dtaill.
Pour plus d'informations, reportez-vous la section Configuration et affichage d'ACL dans des
fichiers ZFS en format compact la page 216, la page de manuel chmod(1) et la page de
manuel ls(1).
importer un pool de stockage prcdemment export afin qu'il soit disponible dans un autre
systme ;
crer un volume ;
Vous pouvez accder la console d'administration ZFS via un navigateur Web scuris l'URL
suivant :
https://system-name:6789/zfs
Chapitre 1 Systme de fichiers ZFS (prsentation)
33
Description de 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 dmarr. Pour dmarrer le serveur, excutez la
commande suivante :
# /usr/sbin/smcwebserver start
Remarque Les systmes de fichiers et les pools de stockage ZFS ne peuvent pas tre grs l'aide
de la console de gestion Solaris (smc, Solaris Management Console).
Description de ZFS
Le systme de fichiers ZFS prsente des fonctions et des avantages uniques au monde. Ce
systme de fichiers rvolutionnaire modifie radicalement les mthodes d'administration des
systmes de fichiers. ZFS a t conu afin d'tre robuste, volutif et facile grer.
Description de ZFS
l'ajout d'un DIMM mmoire un systme, le systme d'exploitation ne vous force pas
configurer la mmoire et l'assigner des processus, l'aide de commandes spcifiques. Tous
les processus du systme utilisent automatiquement la mmoire supplmentaire.
Smantique transactionnelle
ZFS tant un systme de fichiers transactionnel, l'tat du systme de fichiers reste toujours
cohrent sur le disque. Les systmes de fichiers classiques crasent les donnes en place. Ainsi,
en cas de rduction de la puissance de la machine, par exemple, entre le moment o un bloc de
donnes est allou et celui o il est li un rpertoire, le systme de fichiers reste incohrent.
Auparavant, la commande fsck permettait de rsoudre ce problme. Elle parcourait et vrifiait
l'tat du systme de fichiers et tentait de rparer les incohrences dtectes. Cette situation
reprsentait une grande source de problme pour les administrateurs et la rsolution de tous les
problmes potentiels n'tait pas garantie. Plus rcemment, les systmes de fichiers ont introduit
le concept de journalisation. Le processus de journalisation enregistre les actions dans un
journal spar, lequel peut ensuite tre lu en toute scurit en cas de panne du systme. Ce
processus requiert un temps systme inutile car les donnes sont crites deux fois. En outre, il
entrane souvent d'autres problmes, par exemple l'impossibilit de relire correctement le
journal.
Avec un systme de fichiers transactionnel, la gestion de donnes s'effectue avec une smantique
de copie lors de l'criture. Les donnes ne sont jamais crases et toute squence d'opration est
entirement valide ou entirement ignore. Grce ce mcanisme, la corruption du systme
de fichier en raison d'une coupure de courant ou d'un arrt du systme est impossible. Ainsi,
aucune commande n'est requise pour remplacer fsck. Il est possible que les donnes
rcemment crites soient perdues, mais le systme de fichiers reste toujours cohrent. De plus,
les donnes synchrones (crites avec l'indicateur O_DSYNC) sont toujours crites avant le renvoi.
Ainsi, toute perte est impossible.
35
Description de ZFS
De plus, ZFS fournit des donnes d'autortablissement. ZFS prend en charge les pools de
stockage avec divers niveaux de redondance de donnes, y compris la mise en miroir et une
variante de RAID-5. Lorsqu'un bloc de donnes endommag est dtect, ZFS rcupre les
donnes correctes partir d'une autre copie redondante et rpare les donnes endommages en
les remplaant par celles de la copie.
volutitiv ingale
ZFS a t conu ds le dpart avec l'objectif d'en faire le systme de fichiers le plus volutif ayant
jamais exist. La taille du systme de fichiers lui-mme est de 128 bits et vous pouvez utiliser
jusqu' 256 quadrillion de zettaoctets de stockage. L'ensemble des mtadonnes est allou de
faon dynamique. Il est donc inutile de pr-allouer des inodes ou de limiter l'volutivit du
systme de fichiers lors de sa cration. Tous les algorithmes ont t crits selon cette exigence
d'volutivit. Les rpertoires peuvent contenir jusqu' 248 (256 trillions) d'entres et le nombre
de systmes de fichiers ou de fichiers contenus dans un systme de fichiers est illimit.
Instantans ZFS
Un instantan est une copie en lecture seule d'un systme de fichiers ou d'un volume. La
cration d'instantans est rapide et facile. Ils n'utilisent initialement aucun espace
supplmentaire dans le pool.
mesure que le jeu de donnes actif est modifi, l'espace occup par l'instantan augmente
tandis que l'instantan continue de rfrencer les anciennes donnes. Par consquent,
l'instantan vite que les donnes soit libres nouveau dans le pool.
Administration simplifie
Point le plus important, ZFS fournit un modle administration qui a t normment simplifi.
Grce une disposition hirarchique des systmes de fichiers, l'hritage des proprits et la
gestion automatique des points de montage et de la smantique de partage NFS, ZFS facilite la
cration et la gestion de systmes de fichiers sans requrir de nombreuses commandes, ni la
modification de fichiers de configuration. Vous pouvez dfinir des quotas ou des rservations,
activer ou dsactiver la compression ou encore grer les point de montage pour plusieurs
systmes de fichiers avec une seule commande. Vous pouvez examiner ou rparer les
priphriques sans utiliser un jeu distinct de commandes de gestion de volumes. Vous pouvez
prendre un nombre illimit d'instantans de systmes de fichiers. Vous pouvez sauvegarder et
restaurer des systmes de fichiers individuels.
ZFS assure la gestion des systmes de fichiers par le biais d'une hirarchie qui facilite la gestion
des proprits telles que les quotas, les rservations, la compression et les points de montage.
Dans ce modle, les systmes de fichiers deviennent le point de contrle central. Les systmes de
36
Terminologie ZFS
fichiers eux-mmes tant trs peu coteux (autant qu'un nouveau rpertoire), il est
recommand de crer un systme de fichiers pour chaque utilisateur, projet, espace de travail
etc. Cette conception permet de dfinir des points de gestion dtaills.
Terminologie ZFS
Cette section dcrit la terminologie de base utilise dans ce document :
Environnement d'initialisation alternatif
Somme de contrle
Clone
Jeu de donnes
pool
chemin
Terminologie ZFS
instantan
Systme de fichiers
Miroir
Pool
38
Terminologie ZFS
Rargenture
Instantan
Priphrique virtuel
39
Volume
Chaque composant ne peut contenir que des caractres alphanumriques en plus des quatre
caractres spciaux suivants :
Soulignement (_)
Trait d'union (-)
Deux points (:)
Point (.)
Les noms de pools doivent commencer par une lettre, l'exception des restrictions
suivantes :
Les noms commenant par mirror, raidz ou spare ne sont pas autoriss, car ils sont
rservs.
En outre, les noms de pools ne doivent pas contenir le signe de pourcentage (%).
40
Les noms de jeux de donnes doivent commencer par un caractre alphanumrique. Les
noms de jeux de donnes ne doivent pas contenir le signe de pourcentage (%).
C H A P I T R E
Ce chapitre dcrit les tapes suivre pour dfinir une configuration ZFS simple. Il offre une
vision globale du fonctionnement des commandes ZFS et explique les mthodes de cration de
pools et de systmes de fichiers simples. Cette section ne constitue pas une prsentation
exhaustive. Pour des informations plus dtailles, reportez-vous aux autres chapitres, comme
indiqu.
Il contient les sections suivantes :
Systme SPARCTM ou x86 excutant la version 10 6/06 ou une version plus rcente de Solaris.
La taille minimale du disque est de 128 Ko. L'espace disque minimum requis pour un pool
de stockage est de 64 Mo.
Il est actuellement recommand de disposer d'au moins 768 Mo de mmoire pour installer
un systme Solaris. Cependant, pour assurer des performances correctes de ZFS, il
prfrables de disposer d'au moins un gigaoctet de mmoire.
En cas de cration d'une configuration de disques mise en miroir, il est conseill de disposer
de plusieurs contrleurs.
41
Pour plus d'informations sur les configurations redondantes de pools ZFS, reportez-vous la
section Fonctions de rplication d'un pool de stockage ZFS la page 94.
Le nouveau systme de fichiers ZFS, tank, peut utiliser autant d'espace de disque que ncessaire
et est mont automatiquement sur /tank.
# mkfile 100m /tank/foo
# df -h /tank
Filesystem
size used avail capacity Mounted on
tank
80G 100M
80G
1%
/tank
Au sein d'un pool, vous souhaiterez probablement crer des systmes de fichiers
supplmentaires. Les systmes de fichiers fournissent des points d'administration qui
permettent de grer diffrents jeux de donnes au sein du mme pool.
L'exemple illustre la cration d'un systme de fichiers nomm fs dans le pool de stockage tank.
# zfs create tank/fs
Le nouveau systme de fichiers ZFS, tank/fs, peut utiliser autant d'espace de disque que
ncessaire et est mont automatiquement sur /tank/fs.
# mkfile 100m /tank/fs/foo
# df -h /tank/fs
Filesystem
size
tank/fs
80G
42
43
Crez le pool.
Par exemple, crez un pool mis en miroir nomm tank.
# zpool create tank mirror c1t0d0 c1t1d0
SIZE
80G
USED
137K
AVAIL
80G
CAP HEALTH
0% ONLINE
ALTROOT
-
Pour de plus amples informations sur la vrification de l'tat de pool, reportez-vous la section
Requte d'tat de pool de stockage ZFS la page 123.
au nom du pool. ZFS exploite cette hirarchie en assurant la prise en charge de l'hritage de
proprits. Ainsi, vous pouvez dfinir les proprits communes rapidement et facilement dans
des arborescences reprsentant l'intgralit des systmes de fichiers.
45
Ensuite, les systmes de fichiers sont regroups sous le systme de fichiers home dans le pool
tank.
3
mountpoint=/export/zfs tank/home
sharenfs=on tank/home
compression=on tank/home
compression tank/home
PROPERTY
VALUE
compression
on
SOURCE
local
Une nouvelle fonction permettant de dfinir les proprits de systme de fichiers lors de la
cration du systme de fichier est disponible. Exemple :
# zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home
Pour plus d'informations sur les proprits et l'hritage des proprits, reportez-vous la
section Prsentation des proprits ZFS la page 143.
4
Les paramtres de proprits de ces systmes de fichiers sont hrits de leur parent. Ils sont
donc monts sur /export/zfs/ utilisateur et partags via NFS. Il est inutile de modifier le
fichier /etc/vfstab ou /etc/dfs/dfstab.
46
Pour de plus amples informations sur les systmes de fichiers, reportez-vous la section
Cration d'un systme de fichiers ZFS la page 140.
Pour de plus amples informations sur le montage et le partage de systmes de fichiers,
reportez-vous la section Montage et partage des systmes de fichiers ZFS la page 164.
5
USED
92.0K
24.0K
8K
8K
Notez que l'utilisateur bonwick ne dispose que de 10 Go d'espace alors que l'utilisateur billm
peut utiliser l'intgralit du pool (67 Go).
Pour de plus amples informations sur la visualisation de l'tat du systme de fichiers,
reportez-vous la section Envoi de requtes sur les informations des systmes de fichiers ZFS
la page 156.
Pour de plus amples informations sur l'utilisation et le calcul de l'espace, reportez-vous la
section Comptabilisation de l'espace ZFS la page 50.
47
48
C H A P I T R E
Cette section aborde les diffrences significatives entre ZFS et les systmes de fichiers classiques.
La comprhension de ces diffrences cl permet d'viter les confusions lors de l'utilisation
d'outils classiques en interaction avec ZFS.
Il contient les sections suivantes :
configuration et affichage avec les commandes chmod et ls, et non les commandes setfacl
et getfacl ;
51
smantique d'hritage bien plus riche pour dterminer comment les privilges d'accs sont
appliqus d'un rpertoire un sous-rpertoire, et ainsi de suite.
Pour plus d'informations sur l'utilisation de listes de contrle d'accs (ACL) avec des fichiers
ZFS, reportez-vous au Chapitre8, Utilisation des ACL pour la protection de fichiers ZFS.
52
C H A P I T R E
Vous trouverez la liste des problmes connus relatifs cette version dans les notes de version de
Solaris 10 10/08.
Vous trouverez des informations de dpannage mises jour sur le site suivant :
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
Il est possible d'effectuer une installation initiale lorsque ZFS est slectionn comme systme
de fichiers racine.
53
Vous pouvez utiliser la fonction Solaris Live Upgrade pour migrer d'un systme de fichiers
racine UFS vers un systme de fichiers racine ZFS. Vous pouvez en outre utiliser Solaris Live
Upgrade pour effectuer les tches suivantes :
Une fois qu'un systme SPARC ou x86 est install avec un systme de fichiers racine ZFS ou
migr vers un systme de fichiers racine ZFS, le systme s'initialise automatiquement partir du
systme de fichiers racine ZFS. Pour plus d'informations sur les modifications apportes
l'initialisation, reportez-vous la section Initialisation partir d'un systme de fichiers racine
ZFS la page 83.
Sur un systme SPARC, utilisez la syntaxe suivante lors d'une initialisation partir du
rseau :
ok boot net - text
54
Sur un systme x86, slectionnez l'option d'installation en mode texte lorsque vous y tes
invit.
Vous pouvez utiliser la fonction Solaris Live Upgrade pour migrer d'un systme de fichiers
racine UFS vers un systme de fichiers racine ZFS. Les commandes lucreate et luactivate
ont t amliores afin de prendre en charge les pools et systmes de fichiers ZFS. Les
commandes lustatus et ludelete fonctionnent comme dans les versions prcdentes de
Solaris.
Vous pouvez configurer un pool racine ZFS mis en miroir en slectionnant deux disques au
cours de l'installation. Vous pouvez galement crer un pool racine ZFS mis en miroir en
connectant ou en ajoutant d'autres disques une fois l'installation termine .
Les priphriques de swap et de vidage sont automatiquement crs sur les volumes ZFS
dans le pool racine ZFS.
Les fonctions d'installation suivantes ne sont pas disponibles dans la prsente version :
Le programme de mise niveau standard ne peut pas tre utilis pour mettre niveau votre
systme de fichiers racine UFS avec un systme de fichiers racine ZFS. Si vous disposez d'au
moins une tranche UFS d'initialisation, l'option de mise niveau standard devrait tre
disponible. Si vous disposez de pools ZFS d'initialisation mais d'aucune tranche UFS
d'initialisation, la seule manire d'effectuer une mise niveau consiste utiliser Live
Upgrade la place du programme de mise niveau standard. Si vous disposez la fois d'un
pool ZFS d'initialisation et d'une tranche UFS d'initialisation, l'option de mise niveau
standard devrait tre disponible bien que seule la tranche UFS puisse tre mise niveau.
Considrations d'un pool de stockage ZFS : Vous pouvez crer un pool de stockage ZFS
lorsque vous avez effectu une installation initiale.
Afin de vous servir de Solaris Live Upgrade pour migrer un systme de fichiers racine UFS
vers un systme de fichiers racine ZFS, un pool de stockage ZFS doit avoir t cr avant
d'effectuer l'opration lucreate . Afin de pouvoir tre mis niveau et initialis, le pool de
stockage ZFS doit tre cr avec des tranches plutt qu'avec des disques entiers.
En outre, le pool de stockage ZFS destin tre le pool racine doit satisfaire la configuration
suivante :
55
Lorsqu'un systme est install ou mis niveau avec un systme de fichiers racine ZFS, la
taille de la zone de swap et du priphrique de vidage dpend de la quantit de mmoire
physique. L'espace minimum du pool d'un systme de fichiers racine ZFS d'initialisation
dpend de la quantit de mmoire physique, de l'espace disque disponible et du nombre
d'environnements d'initialisation crer.
Par exemple, un systme disposant de 12 Go d'espace disque risque d'tre trop petit pour
un environnement d'initialisation ZFS car chaque priphrique de swap et de vidage
requiert 2 Go et l'environnement d'initialisation ZFS qui est migr partir de
l'environnement d'initialisation UFS requiert environ 6 Go.
Le pool doit avoir une tiquette SMI. Cette condition doit tre respecte si le pool est cr
avec des tranches de disque.
Le pool doit se trouver sur une ou plusieurs tranches de disque mises en miroir mais pas
dans une configuration RAID-Z ni une configuration non redondante de plusieurs disques.
Si vous tentez d'utiliser une configuration de pool non prise en charge lors d'une migration
effectue par Live Upgrade, un message du type suivant s'affiche :
ERROR: ZFS pool name does not support boot environments
56
Les disques dsigns comme disques d'initialisation dans un pool racine ZFS doivent tre
limits 1 To sur les systmes SPARC tout comme sur les systmes x86.
Attention Tous les pools existants dont l'un des disques aura t slectionn pour le nouveau
Le processus interactif d'installation en mode texte de Solaris est le mme que dans les
prcdentes versions de Solaris, exception faite d'un message vous invitant crer un systme
de fichiers racine UFS ou ZFS. UFS demeure dans cette version le systme de fichiers par dfaut.
Si vous slectionnez un systme de fichiers racine ZFS, un message vous invite crer un pool
de stockage ZFS. L'installation d'un systme de fichiers racine ZFS implique les tapes suivantes
:
1. Slectionnez la mthode d'installation interactive de Solaris puisqu'une installation Flash de
Solaris n'est pas disponible pour crer un systme de fichiers racine ZFS d'initialisation.
Chapitre 4 Installation et initialisation d'un systme de fichiers racine ZFS
57
EXEMPLE 41
(Suite)
Utilisez Solaris Live Upgrade pour migrer vers un systme de fichiers racine ZFS si la version
actuelle, Solaris 10 10/08, est dj installe. Pour plus d'informations sur la migration vers
un systme de fichiers racine ZFS, reportez-vous la section Migration d'un systme de
fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
la page 67.
2. Pour crer un systme de fichiers racine ZFS, slectionnez l'option ZFS. Exemple :
Choose Filesystem Type
Select the filesystem to use for your Solaris installation
[ ] UFS
[X] ZFS
3. Une fois que le logiciel installer est slectionn, un message vous invite slectionner les
disques pour crer le pool de stockage ZFS. Cet cran est similaire celui des versions
prcdentes de Solaris, l'exception du texte suivant :
For ZFS, multiple disks will be configured as mirrors, so the disk you choose,
or the slice within the disk must exceed the Suggested Minimum value.
Vous pouvez slectionner le ou les disques utiliser pour le pool racine ZFS. Si vous
slectionnez deux disques, une configuration de double disque mis en miroir est dfinie
pour le pool racine. Un pool mis en miroir double ou triple disque est optimal. Si vous
disposez de huit disques et les slectionner tous, ces huit disques sont utiliss pour le pool
racine comme miroir gant. Cette configuration n'est pas optimale. Pour crer un pool
racine mis en miroir compos de quatre miroirs double disque, configurez un pool double
disque mis en miroir au cours de l'installation initiale, puis utilisez la commande zpool
attach pour attacher les six autres disques une fois l'installation termine. La configuration
de pool RAID-Z n'est pas prise en charge pour le pool racine. Pour plus d'informations sur la
configuration des pools de stockage ZFS, reportez-vous la section Fonctions de
rplication d'un pool de stockage ZFS la page 94.
4. Une fois que vous avez slectionn un ou plusieurs disques pour le pool de stockage ZFS, un
cran similaire au suivant s'affiche :
Configure ZFS Settings
Specify the name of the pool to be created from the disk(s) you have chosen.
Also specify the name of the dataset to be created within the pool that is
to be used as the root directory for the filesystem.
EXEMPLE 41
(Suite)
Vous pouvez, partir de cet cran, modifier le nom du pool ZFS, le nom du jeu de donnes,
la taille du pool, ainsi que la taille du priphrique de swap et du priphrique de vidage en
dplaant les touches de contrle du curseur sur les entres et en remplaant la valeur de
texte par dfaut par le nouveau texte. Vous pouvez aussi accepter les valeurs par dfaut.
Vous pouvez galement modifier la mthode de cration et de montage du systme de
fichiers /var.
Dans cet exemple, le nom du jeu de donnes racine est remplac par zfs1008.
ZFS Pool Name: rpool
ZFS Root Dataset Name: zfs1008
ZFS Pool Size (in MB): 34731
Size of Swap Area (in MB): 512
Size of Dump Area (in MB): 512
(Pool size must be between 6413 MB and 34731 MB)
Initial
c1t2d0
ZFS
None
59
EXEMPLE 41
(Suite)
Une fois l'installation termine, examinez les informations concernant le pool de stockage et le
systme de fichiers ZFS. Exemple :
# zpool
pool:
state:
scrub:
config:
status
rpool
ONLINE
none requested
NAME
STATE
rpool
ONLINE
c1t2d0s0 ONLINE
errors: No known data errors
# zfs list
NAME
rpool
rpool/ROOT
rpool/ROOT/zfs1008
rpool/dump
rpool/export
rpool/export/home
rpool/swap
USED
5.46G
4.46G
4.46G
512M
38K
18K
512M
AVAIL
27.8G
27.8G
27.8G
27.8G
27.8G
27.8G
28.3G
REFER
94.5K
18K
4.46G
512M
20K
18K
12.2M
MOUNTPOINT
/rpool
legacy
/
/export
/export/home
-
L'exemple de sortie de la commande zfs list identifie les composants du pool racine,
notamment les entres rpool/ROOT, qui ne sont par dfaut pas accessibles.
Si vous avez au dpart cr un pool de stockage ZFS avec un disque, vous pouvez le convertir en
une configuration ZFS mise en miroir une fois l'installation termine l'aide de la commande
zpool attach pour y connecter un disque disponible. Exemple :
# zpool attach rpool c1t2d0s0 c1t3d0s0
# zpool status
pool: rpool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h0m, 5.03% done, 0h13m to go
config:
NAME
rpool
60
STATE
ONLINE
EXEMPLE 41
0
0
0
0
0
0
(Suite)
0
0
0
La rargenture des donnes sur le nouveau disque prend un certain temps mais le pool reste
disponible.
En attendant une solution au problme CR 6668666, vous devez installer les informations
d'initialisation sur les disques supplmentaires que vous connectez, l'aide de la commande
installboot ou de la commande installgrub si vous souhaitez activer l'initialisation sur les
autres disques du miroir. Si vous crez un pool racine ZFS mis en miroir par la mthode
d'installation initiale, cette tape n'est pas ncessaire. Pour plus d'informations sur l'installation
des informations d'initialisation, reportez-vous la section Initialisation partir d'un disque
alternatif d'un pool racine ZFS mis en miroir la page 83.
Pour plus d'informations sur l'ajout ou la connexion de disques, reportez-vous la section
Gestion de priphriques dans un pool de stockage ZFS la page 106.
Pour crer un autre environnement d'initialisation ZFS dans le mme pool de stockage, vous
pouvez utiliser la commande lucreate. Dans l'exemple suivant, un nouvel environnement
d'initialisation nomm zfs10082BE est cr. L'environnement d'initialisation actuel nomm
zfs1008BE (affich dans la sortie de la commande zfs list) n'est pas reconnu dans la sortie de
la commande lustatus tant que le nouvel environnement d'initialisation n'est pas cr.
# lustatus
ERROR: No boot environments are configured on this system
ERROR: cannot determine list of all boot environment names
Pour crer un environnement d'initialisation ZFS dans le mme pool, utilisez une syntaxe du
type suivant :
# lucreate -n zfs10082BE
Analyzing system configuration.
Comparing source boot environment <zfs1008BE> file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment <zfs10082BE>.
Source boot environment is <zfs1008BE>.
Creating boot environment <zfs10082BE>.
Cloning file systems from boot environment <zfs1008BE> to create boot environment <zfs10082BE>.
Creating snapshot for <rpool/ROOT/zfs1008BE> on <rpool/ROOT/zfs1008BE@zfs10082BE>.
Chapitre 4 Installation et initialisation d'un systme de fichiers racine ZFS
61
EXEMPLE 41
(Suite)
La cration d'un environnement d'initialisation ZFS dans le mme pool fait appel aux mmes
fonctions de clonage et d'instantan ZFS afin de crer l'environnement d'initialisation
instantanment. Pour plus d'informations sur l'utilisation de Solaris Live Upgrade pour une
migration racine ZFS, reportez-vous la section Migration d'un systme de fichiers racine UFS
vers un systme de fichiers racine ZFS (Solaris Live Upgrade) la page 67.
Vrifiez ensuite les nouveaux environnements d'initialisation. Exemple :
# lustatus
Boot Environment
Is
Active Active
Name
Complete Now
On Reboot
-------------------------- -------- ------ --------ufs1008BE
yes
no
no
zfs1008BE
yes
yes
yes
zfs10082BE
yes
no
no
# zfs list
NAME
USED AVAIL REFER
rpool
5.65G 27.6G
19K
rpool/ROOT
4.64G 27.6G
18K
rpool/ROOT/zfs10082BE
98.5K 27.6G 4.64G
rpool/ROOT/zfs1008BE
4.64G 27.6G 4.64G
rpool/ROOT/zfs1008BE@zfs10082BE 92.5K
- 4.64G
rpool/dump
515M 27.6G 515M
rpool/swap
513M 28.1G
16K
Can
Delete
-----yes
no
yes
Copy
Status
----------
MOUNTPOINT
/rpool
/rpool/ROOT
/tmp/.alt.luupdall.5312
/
-
EXEMPLE 41
(Suite)
1 zfs1008BE
2 zfs10082BE
Select environment to boot: [ 1 - 2 ]: 2
To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/zfs10082BE
Program terminated
ok boot -Z rpool/ROOT/zfs10082BE
Pour plus d'informations sur l'initialisation d'un systme de fichiers ZFS, reportez-vous la
section Initialisation partir d'un systme de fichiers racine ZFS la page 83.
63
de vidage sont automatiquement dimensionns par le mot cl auto sur la base de la moiti de la
mmoire physique, concurrence de 2 Go, dans une configuration de disques mis en miroir
(mot cl mirror et disques c0t0d0 et c0t1d0). Les caractristiques de l'environnement
d'initialisation sont dfinies avec le mot cl bootenv afin d'installer un nouvel environnement
d'initialisation avec le mot cl installbe ; un environnement (bename) nomm s10u6-xx est
cr.
install_type initial-install
pool newpool auto auto auto mirror c0t0d0s0 c0t1d0s0
bootenv installbe bename s10u6-xx
Le profil suivant effectue une installation initiale avec le mot cl install_type initial-install du
mtacluster SUNWCall dans un nouveau pool de 80 Go appel newpool. Ce pool est cr avec un
volume de swap et un volume de vidage de 2 Go chacun, dans une configuration mise en miroir
comprenant deux priphriques disponibles dont la taille permet de crer un pool de 80 Go. Si
deux priphriques de ce type ne sont pas disponibles, l'installation choue. Les caractristiques
de l'environnement d'initialisation sont dfinies avec le mot cl bootenv afin d'installer un
nouvel environnement d'initialisation avec le mot cl installbe ; un environnement (bename)
nomm s10u6xx est cr.
install_type initial-install
cluster SUNWCall
pool newpool 80g 2g 2g mirror any any
bootenv installbe bename s10u6-xx
Vous pouvez utiliser le profil suivant ou une syntaxe similaire pour conserver les systmes de
fichiers UFS existants sur la tranche 1 et la tranche 3, par exemple.
filesys
filesys
pool
Vous pouvez utiliser le profil suivant ou une syntaxe similaire pour crer la tranche 1 et la
tranche 3 des systmes de fichiers UFS, par exemple.
filesys
filesys
pool
rootdisk.s1 8196
rootdisk.s3 8196
rpool
auto
2G
2G
rootdisk.s0
64
minimale peut tre satisfaite. Si la taille minimale peut tre satisfaite, la taille de
pool optimale est attribue en fonction des contraintes, notamment de la taille des
disques, des tranches conserves, etc.
Par exemple, lorsque vous spcifiez c0t0d0s0, une tranche de taille optimale est
cre si vous spcifiez les mots cls all ou auto. Vous pouvez galement indiquer
une taille spcifique de tranche, de volume de swap ou de volume de vidage.
Le mot cl auto fonctionne de manire similaire au mot cl all lorsqu'il est utilis
avec un pool racine ZFS car les pools ne disposent pas du concept d'espace
inutilis.
bootenv
bename nom-d'environnement-d'initialisation
Identifie le
nom-d'environnement-d'initialisation
installer.
Si l'option bename n'est pas
utilise avec le mot cl pool, un
environnement d'initialisation
par dfaut est cr.
dataset point-de-montage
65
pool
Dfinit le pool racine crer. La syntaxe de mot cl suivante doit tre respecte :
poolname poolsize swapsize dumpsize vdevlist
poolname
poolsize
swapsize
dumpsize
vdevlist
66
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Un pool de stockage ZFS existant ne peut pas tre utilis lors d'une installation JumpStart
pour crer un systme de fichiers racine ZFS d'initialisation. Vous devez crer un pool de
stockage ZFS conformment au type de syntaxe suivant :
pool rpool 20G 4G 4G c0t0d0s0
La ligne complte du mot cl pool est ncessaire car vous ne pouvez pas utiliser un pool
existant. Exemple :
install_type initial_install
cluster SUNWCall
pool rpool 20G 4g 4g any
bootenv installbe bename newBE
Vous devez crer le pool avec des tranches de disque plutt qu'avec des disques entiers,
comme dcrit la section Configuration requise pour l'installation de Solaris et de Solaris
Live Upgrade pour la prise en charge de ZFS la page 55. Par exemple, la syntaxe en gras
n'est pas acceptable :
install_type initial_install
cluster SUNWCall
pool rpool all auto auto mirror c0t0d0 c0t1d0
bootenv installbe bename newBE
Lorsque vous migrez un systme de fichiers racine UFS vers un systme de fichiers racine
ZFS, vous devez dsigner un pool de stockage ZFS existant l'aide de l'option -p.
Si les composants du systme de fichiers racine UFS sont rpartis sur diverses tranches, ils
sont migrs vers le pool racine ZFS.
67
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Vous pouvez migrer un systme avec zones mais les configurations prises en charge sont
limites. Pour plus d'informations, reportez-vous la section Utilisation de Solaris Live
Upgrade pour migrer un systme avec zones la page 75.
Solaris Live Upgrade peut faire appel aux fonctions d'instantan et de clonage ZFS lorsque
vous crez un environnement d'initialisation ZFS dans le mme pool. La cration d'un
environnement d'initialisation est de ce fait plus rapide que dans les versions prcdentes de
Solaris.
Pour plus d'informations sur l'installation de Solaris et les fonctions de Solaris Live Upgrade,
reportez-vous au Guide dinstallation de Solaris 10 : Solaris Live Upgrade et planification de la
mise niveau.
Le processus de base de migration d'un systme de fichiers racine UFS vers un systme de
fichiers racine ZFS (Solaris Live Upgrade) est le suivant :
Installez Solaris 10 10/08 ou, utilisez le programme de mise niveau standard pour mettre
niveau une version prcdente de Solaris 10 sur tout systme SPARC ou x86 pris en charge.
Lorsque vous excutez Solaris 10 10/08, crez le cas chant un pool de stockage ZFS pour
votre systme de fichiers racine ZFS.
Utilisez Solaris Live Upgrade pour migrer votre systme de fichiers racine UFS vers un
systme de fichiers racine ZFS.
Pour plus d'informations sur les exigences de ZFS et de Solaris Live Upgrade, reportez-vous la
section Configuration requise pour l'installation de Solaris et de Solaris Live Upgrade pour la
prise en charge de ZFS la page 55.
68
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
L'option de mise niveau standard de l'IG d'installation de Solaris n'est pas disponible pour
la migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS.
Pour migrer un systme de fichiers UFS, vous devez utiliser Solaris Live Upgrade.
Vous devez crer le pool de stockage ZFS utiliser pour l'initialisation avant de lancer
Solaris Live Upgrade. En outre, en raison des limitations actuelles de l'initialisation, le pool
racine ZFS doit tre cr avec des tranches plutt qu'avec des disques entiers. Exemple :
# zpool create rpool mirror c1t0d0s0 c1t1d0s0
Avant de crer le nouveau pool, assurez-vous que les disques utiliser dans le pool portent
une tiquette SMI (VTOC) au lieu d'une tiquette EFI. Si le disque a t rtiquet avec une
tiquette SMI, vrifiez que le processus d'tiquetage n'a pas modifi le schma du
partitionnement. Dans la plupart des cas, la majeure partie de la capacit du disque doit se
trouver dans les tranches destines au pool racine.
Vous ne pouvez pas utiliser Solaris Live Upgrade pour crer un environnement
d'initialisation UFS partir d'un environnement d'initialisation ZFS. Si vous migrez votre
environnement d'initialisation UFS vers un environnement d'initialisation ZFS tout en
conservant votre environnement d'initialisation UFS, vous pouvez initialiser l'un ou l'autre
des environnements (UFS ou ZFS).
Solaris Live Upgrade cre les jeux de donnes pour l'environnement d'initialisation, ainsi
que les volumes ZFS de la zone de swap et du priphrique de vidage mais ne prend pas en
compte les modifications de proprits de jeux de donnes existants. Pour cette raison, pour
activer une proprit de jeu de donnes dans le nouvel environnement d'initialisation, vous
devez dfinir cette proprit avant l'excution de la commande lucreate. Exemple :
# zfs set compression=on rpool/ROOT
69
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Bien que vous puissiez utiliser Solaris Live Upgrade pour mettre niveau votre systme de
fichiers racine UFS vers un systme de fichiers racine ZFS, vous ne pouvez pas vous servir de
Solaris Live Upgrade pour mettre niveau des systmes de fichiers partags ni des systmes
de fichiers qui ne sont pas des systmes de fichiers racine.
Vous ne pouvez pas utiliser une commande lu pour crer ou migrer un systme de fichiers
racine ZFS.
EXEMPLE 42
70
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Utilisation de Solaris Live Upgrade pour migrer un systme de fichiers racine UFS vers un
systme de fichiers racine ZFS
(Suite)
EXEMPLE 42
Comparing source boot environment <ufs1008BE> file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
The device </dev/dsk/c0t0d0s0> is not a root device for any boot environment; cannot get BE ID.
Creating configuration for boot environment <zfs1008BE>.
Source boot environment is <ufs1008BE>.
Creating boot environment <zfs1008BE>.
Creating file systems on boot environment <zfs1008BE>.
Creating <zfs> file system for </> in zone <global> on <mpool/ROOT/zfs1008BE>.
Populating file systems on boot environment <zfs1008BE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Creating compare databases for boot environment <zfs1008BE>.
Creating compare database for file system </mpool/ROOT>.
Creating compare database for file system </>.
Updating compare databases on boot environment <zfs1008BE>.
Making boot environment <zfs1008BE> bootable.
Creating boot_archive for /.alt.tmp.b-zv.mnt
updating /.alt.tmp.b-zv.mnt/platform/sun4u/boot_archive
Population of boot environment <zfs1008BE> successful.
Creation of boot environment <zfs1008BE> successful.
Une fois l'excution de la commande lucreate termine, utilisez la commande lustatus pour
afficher l'tat de l'environnement d'initialisation. Exemple :
# lustatus
Boot Environment
Name
-------------------------ufs1008BE
zfs1008BE
Is
Complete
-------yes
yes
Active
Now
-----yes
no
Active
On Reboot
--------yes
no
Can
Delete
-----no
yes
Copy
Status
----------
MOUNTPOINT
/mpool
/mpool/ROOT
/tmp/.alt.luupdall.1551
71
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Utilisation de Solaris Live Upgrade pour migrer un systme de fichiers racine UFS vers un
systme de fichiers racine ZFS
(Suite)
EXEMPLE 42
mpool/dump
mpool/swap
513M 28.1G
513M 28.1G
16K 16K -
72
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Utilisation de Solaris Live Upgrade pour migrer un systme de fichiers racine UFS vers un
systme de fichiers racine ZFS
(Suite)
EXEMPLE 42
Is
Complete
-------yes
yes
Active
Now
-----no
yes
Active
On Reboot
--------no
yes
Can
Delete
-----yes
no
Copy
Status
----------
Si vous repassez l'environnement d'initialisation UFS, vous devez rimporter tous les pools de
stockage ZFS crs au cours de l'initialisation de l'environnement d'initialisation ZFS car ils ne
sont pas disponibles automatiquement dans l'environnement d'initialisation UFS. Un messages
du type suivant s'affiche lorsque vous repassez l'environnement d'initialisation UFS.
# luactivate ufs1008BE
WARNING: The following files have changed on both the current boot
environment <zfs1008BE> zone <global> and the boot environment to be
activated <ufs1008BE>:
/etc/zfs/zpool.cache
INFORMATION: The files listed above are in conflict between the current
boot environment <zfs1008BE> zone <global> and the boot environment to be
activated <ufs1008BE>. These files will not be automatically synchronized
from the current boot environment <zfs1008BE> when boot environment
<ufs1008BE> is activated.
Lorsque l'environnement d'initialisation UFS est obsolte, vous pouvez le supprimer l'aide de
la commande ludelete.
EXEMPLE 43 Utilisation de Solaris Live Upgrade pour crer un environnement d'initialisation ZFS partir
d'un environnement d'initialisation ZFS
73
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
EXEMPLE 43 Utilisation de Solaris Live Upgrade pour crer un environnement d'initialisation ZFS partir
d'un environnement d'initialisation ZFS
(Suite)
# lucreate -n zfs10082BE
Analyzing system configuration.
Comparing source boot environment <zfs1008BE> file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment <zfs10082BE>.
Source boot environment is <zfs1008BE>.
Creating boot environment <zfs10082BE>.
Cloning file systems from boot environment <zfs1008BE> to create boot environment <zfs10082BE>.
Creating snapshot for <mpool/ROOT/zfs1008BE> on <mpool/ROOT/zfs1008BE6@zfs10082BE>.
Creating clone for <mpool/ROOT/zfs1008BE@zfs10082BE> on <mpool/ROOT/zfs10082BE>.
Setting canmount=noauto for </> in zone <global> on <mpool/ROOT/zfs10082BE>.
Population of boot environment <zfs10082BE> successful.
Creation of boot environment <zfs10082BE> successful.
EXEMPLE 44
Vous pouvez mettre niveau votre environnement d'initialisation ZFS l'aide de packages ou
de patchs supplmentaires.
Le processus de base est le suivant :
# lustatus
Boot Environment
Is
Active Active
Can
Copy
Name
Complete Now
On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ---------zfs1008BE
yes
no
no
yes
zfs10082BE
yes
yes
yes
no
# luupgrade -p -n zfs1008BE -s /net/system/export/s1008/Solaris_10/Product SUNWchxge
Validating the contents of the media </net/system/export/s1008//Solaris_10/Product>.
Mounting the BE <zfs1008BE>.
Adding packages to the BE <zfs1008BE>.
Processing package instance <SUNWchxge> from </net/system/export/s1008/Solaris_10/Product>
74
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
EXEMPLE 44
(Suite)
75
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Comment migrer un systme de fichiers racine UFS avec racines de zone sur UFS vers un
systme de fichiers racine ZFS la page 76
Comment configurer un systme de fichiers racine ZFS avec racines de zone sur ZFS
la page 78
Comment mettre niveau ou corriger un systme de fichiers racine ZFS avec racines de
zone sur ZFS la page 79
Rsolution des problmes de point de montage ZFS responsables de l'chec de
l'initialisation la page 88
Suivez les procdures recommandes pour configurer des zones sur un systme avec systme de
fichiers racine ZFS pour vrifier que vous pouvez utiliser Live Upgrade sur ce systme.
Mettez le systme niveau la version Solaris 10 10/08 si la version Solaris 10 excute est
antrieure.
Pour plus d'informations sur la mise niveau d'un systme excutant Solaris 10, reportez-vous
au Guide dinstallation de Solaris 10 : Solaris Live Upgrade et planification de la mise niveau.
Cette commande cre des jeux de donnes dans le pool racine pour le nouvel environnement
d'initialisation et copie l'environnement d'initialisation actuel (zones incluses) vers ces jeux de
donnes.
5
76
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Le systme excute maintenant un systme de fichiers racine ZFS mais les racines de zone sur
UFS se trouvent toujours sur le systme de fichiers racine UFS. Les tapes suivantes sont
ncessaires pour finaliser la migration des zones UFS vers une configuration ZFS prise en
charge.
6
Redmarrez le systme.
# init 6
d. Redmarrez le systme.
# init 6
Cette tape vrifie que l'environnement d'initialisation ZFS et les zones ont t initialiss.
8
MOUNTPOINT
/.alt.tmp.b-VP.mnt/
/.alt.tmp.b-VP.mnt//zones
/.alt.tmp.b-VP.mnt/zones/zonerootA
77
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
b. Rinitialisez les points de montage pour l'environnement d'initialisation ZFS et ses jeux de
donnes.
Exemple :
# zfs inherit -r mountpoint rpool/ROOT/s10u6
# zfs set mountpoint=/ rpool/ROOT/s10u6
c. Redmarrez le systme.
Lorsque vous avez la possibilit d'initialiser un environnement d'initialisation spcifique,
soit par le biais du menu GRUB, soit l'invite OpenBoot Prom, slectionnez
l'environnement d'initialisation dont les points de montage viennent d'tre corrigs.
Installez le systme avec une racine ZFS en utilisant soit la mthode interactive d'installation
initiale, soit la mthode d'installation Solaris JumpStart.
Pour plus d'informations sur l'installation d'un systme de fichiers racine ZFS en utilisant la
mthode d'installation initiale ou la mthode Solaris JumpStart, reportez-vous Installation
d'un systme de fichiers racine ZFS (installation initiale) la page 57 ou Installation d'un
systme de fichiers racine ZFS (installation JumpStart) la page 63.
Le nom du jeu de donnes de zones peut tre tout nom de jeu de donnes lgal. Dans les tapes
suivantes, le nom du jeu de donnes est zones.
La dfinition de la valeur noauto pour la proprit canmount permet d'viter que le jeu de
donnes ne soit mont d'une manire autre que par l'action explicite de Solaris Live Upgrade et
le code de dmarrage du systme.
4
78
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Installez la zone.
# zoneadm -z zoneA install
Initialisez la zone.
# zoneadm -z zoneA boot
L'environnement d'initialisation existant, y compris toutes les zones, est clon. De nouveaux
jeux de donnes sont crs pour chaque jeu de donnes de l'environnement d'initialisation
d'origine. Ils sont crs dans le mme pool que le pool racine actuel.
79
Migration d'un systme de fichiers racine UFS vers un systme de fichiers racine ZFS (Solaris Live Upgrade)
Slectionnez l'une des options suivantes pour mettre niveau le systme ou appliquer les
correctifs au nouvel environnement d'initialisation.
Activez le nouvel environnement d'initialisation une fois que ses mises jour ont t effectues.
# luactivate newBE
MOUNTPOINT
/.alt.tmp.b-VP.mnt/
/.alt.tmp.b-VP.mnt//zones
/.alt.tmp.b-VP.mnt/zones/zonerootA
80
c. Redmarrez le systme.
Lorsque vous avez la possibilit d'initialiser un environnement d'initialisation spcifique,
soit par le biais du menu GRUB, soit l'invite OpenBoot Prom, slectionnez
l'environnement d'initialisation dont les points de montage viennent d'tre corrigs.
swaplo blocks
free
16 8257520 8257520
Lors d'une installation initiale ou de l'utilisation de Solaris Live Upgrade partir d'un systme
de fichiers UFS, un priphrique de vidage est cr sur un volume ZFS du pool racine ZFS. La
taille du priphrique de vidage correspond la moiti de la mmoire physique et doit tre
comprise entre 512 Mo et 2 Go. Le priphrique de vidage ne ncessite aucune administration
une fois configur. Exemple :
# dumpadm
Dump content:
Dump device:
Savecore directory:
Savecore enabled:
kernel pages
/dev/zvol/dsk/mpool/dump (dedicated)
/var/crash/t2000
yes
Prenez en compte les points suivants lorsque vous travaillez avec des priphriques de swap et
de vidage ZFS :
Vous devez utiliser des volumes ZFS distincts pour les priphriques de swap et de vidage.
L'utilisation d'un fichier swap sur un systme de fichiers ZFS n'est actuellement pas prise en
charge.
Pour modifier la zone de swap ou le priphrique de vidage une fois le systme install ou
mis niveau, utilisez les commandes swap et dumpadm de la mme faon que dans les
versions Solaris prcdentes. Pour plus d'informations, reportez-vous au Chapitre 20,
Configuring Additional Swap Space (Tasks) du System Administration Guide: Devices and
File Systems et au Chapitre 17, Managing System Crash Information (Tasks) du System
Administration Guide: Advanced Administration (tous deux en anglais).
81
Vous pouvez ajuster la taille de vos volumes de swap et de vidage au cours d'une installation
initiale. Pour plus d'informations, reportez-vous l'Exemple 41.
Vous pouvez crer des volumes de swap et de vidage, ainsi que leur attribuer une taille, avant
d'utiliser Solaris Live Upgrade. Exemple :
1. Crer le pool de stockage.
# zpool create rpool mirror c0t0d0s0 c0t1d0s0
2. Dfinissez la taille du priphrique de vidage. Configurez la taille du bloc sur 128 Ko.
# zfs create -V 2G -b 128k rpool/dump
Sur un systme SPARC, dfinissez une taille pour la zone de swap. Configurez la taille
du bloc sur 8 Ko.
# zfs create -V 2G -b 8k rpool/swap
Sur un systme x86, dfinissez une taille pour la zone de swap. Configurez la taille du
bloc sur 4 Ko.
# zfs create -V 2G -b 4k rpool/swap
Solaris Live Upgrade ne redimensionne pas des volumes de swap et de vidage existants.
Vous pouvez rtablir la proprit volsize des priphriques de swap et de vidage aprs
l'installation d'un systme. Exemple :
# zfs set volsize=2G rpool/dump
# zfs get volsize rpool/dump
NAME
PROPERTY VALUE
rpool/dump volsize 2G
Vous pouvez ajuster la taille des volumes de swap et de vidage d'un profil JumpStart l'aide
d'une syntaxe de profil du type suivant :
install_type initial_install
cluster SUNWCXall
pool rpool 16g 2g 2g c0t0d0s0
82
SOURCE
-
Dans ce profil, les entres 2g et 2g attribuent 2 Go comme taille de zone de swap et comme
taille de priphrique de vidage.
CR 6704717 Ne mettez pas le disque principal d'une configuration racine ZFS mise en
miroir hors ligne. Si la mise hors ligne ou la dconnexion d'un disque racine mis en miroir
est ncessaire pour le remplacer, effectuez l'initialisation partir d'un autre disque mis en
miroir du pool.
83
CR 6668666 Vous devez installer les informations d'initialisation sur les disques
supplmentaires que vous connectez, l'aide de la commande installboot ou de la
commande installgrub si vous souhaitez activer l'initialisation sur les autres disques du
miroir. Si vous crez un pool racine ZFS mis en miroir par la mthode d'installation initiale,
cette tape n'est pas ncessaire. Par exemple, si c0t1d0s0 est le deuxime disque ajout au
miroir, la commande installboot ou la commande installgrub est excute comme
suit :
Vous pouvez effectuer l'initialisation partir de divers priphriques d'un pool racine ZFS mis
en miroir. Selon la configuration matrielle, la mise jour de la PROM ou du BIOS peut s'avrer
ncessaire pour spcifier un priphrique d'initialisation diffrent.
Vous pouvez par exemple effectuer l'initialisation partir de l'un des deux disques (c1t0d0s0
ou c1t1d0s0) de ce pool.
# zpool
pool:
state:
scrub:
config:
status
rpool
ONLINE
none requested
NAME
rpool
mirror
c1t0d0s0
c1t1d0s0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
Sur un systme x86, slectionnez un disque alternatif dans le pool racine ZFS mis en miroir dans
le menu appropri du BIOS.
84
Lorsqu'un nouvel environnement d'initialisation est cr, le fichier menu.lst est mis jour. En
attendant une solution au problme CR 6696226, vous devez mettre jour le fichier menu.lst
manuellement une fois que vous avez activ l'environnement d'initialisation l'aide de la
commande luactivate.
Sur un systme SPARC, deux nouvelles options d'initialisation sont disponibles :
Vous pouvez utiliser la commande d'initialisation -L pour afficher une liste de jeux de
donnes d'initialisation contenus dans un pool ZFS. Vous pouvez ensuite slectionner un
des jeux de donnes d'initialisation de la liste. Des instructions dtailles permettant
d'initialiser ce jeu de donnes s'affichent. Vous pouvez initialiser le jeu de donnes
slectionn en suivant ces instructions. Cette option n'est disponible que lorsque le
priphrique d'initialisation contient un pool de stockage ZFS.
EXEMPLE 45
Si vous disposez de plusieurs environnements d'initialisation ZFS dans un pool de stockage ZFS
situ sur le priphrique d'initialisation de votre systme, vous pouvez utiliser la commande
luactivate pour spcifier un environnement d'initialisation par dfaut.
85
EXEMPLE 45
(Suite)
Par exemple, les environnements d'initialisation ZFS suivants sont disponibles comme dcrit
par la sortie de lustatus :
# lustatus
Boot Environment
Is
Active Active
Can
Copy
Name
Complete Now
On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ---------zfs1008BE
yes
yes
yes
no
zfs10082BE
yes
no
no
yes
-
Si vous disposez de plusieurs environnements d'initialisation ZFS sur votre systme SPARC,
vous pouvez utiliser la commande boot -L. Exemple :
ok boot -L
Executing last command: boot -L
Boot device: /pci@1f,0/pci@1/scsi@8/disk@1,0:a File and args: -L
1 zfs1008BE
2 zfs10082BE
Select environment to boot: [ 1 - 2 ]: 2
To boot the selected entry, invoke:
boot [<root-device>] -Z mpool/ROOT/zfs10082BE
Program terminated
ok boot -Z mpool/ROOT/zfs10082BE
EXEMPLE 46
Vous pouvez initialiser un systme SPARC partir de l'archive de secours situe dans
/platform/`uname -i`/failsafe, comme suit . Exemple :
ok boot -F failsafe
Pour initialiser une archive de secours partir d'un jeu de donnes d'initialisation ZFS donn,
employez une syntaxe du type suivant :
ok boot -Z mpool/ROOT/zfs1008BE -F failsafe
86
Lorsque vous effectuez l'initialisation partir d'un systme de fichiers ZFS, le priphrique
racine est spcifi par le paramtre d'initialisation -B $ZFS-BOOTFS sur la ligne kernel ou
module de l'entre du menu GRUB. Cette valeur, tout comme tous les paramtres spcifis par
l'option -B, est transmise par GRUB au noyau. Exemple :
findroot (pool_mpool,0,a)
bootfs mpool/ROOT/zfs1008BE
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
EXEMPLE 48
87
Importez le pool.
Exemple :
# zpool import rpool
MOUNTPOINT
/.alt.tmp.b-VP.mnt/
/.alt.tmp.b-VP.mnt//zones
/.alt.tmp.b-VP.mnt/zones/zonerootA
88
Rinitialisez les points de montage pour l'environnement d'initialisation ZFS et ses jeux de
donnes.
Exemple :
# zfs inherit -r mountpoint rpool/ROOT/s10u6
# zfs set mountpoint=/ rpool/ROOT/s10u6
Redmarrez le systme.
Lorsque vous avez la possibilit d'initialiser un environnement d'initialisation spcifique, soit
par le biais du menu GRUB, soit l'invite OpenBoot Prom, slectionnez l'environnement
d'initialisation dont les points de montage viennent d'tre corrigs.
89
90
C H A P I T R E
entier. Dans ce cas, il est inutile de formater spcifiquement le disque. ZFS formate le disque
l'aide d'une tiquette EFI de faon ce qu'il contienne une grande tranche unique. Utilis de
cette faon, le tableau de partition affich par la commande format s'affiche comme suit :
Current partition table (original):
Total disk sectors available: 71670953 + 16384 (reserved sectors)
Part
Tag
0
usr
1 unassigned
2 unassigned
3 unassigned
4 unassigned
5 unassigned
6 unassigned
7 unassigned
8 reserved
Flag
wm
wm
wm
wm
wm
wm
wm
wm
wm
First Sector
34
0
0
0
0
0
0
0
71670954
Size
34.18GB
0
0
0
0
0
0
0
8.00MB
Last Sector
71670953
0
0
0
0
0
0
0
71687337
Pour utiliser des disques entiers, ces disques doivent tre nomms selon la convention Solaris
standard, par exemple /dev/dsk/cXtXdXsX. Certains pilotes tiers suivent une convention de
nom diffrente ou placent les disques un endroit autre que le rpertoire /dev/dsk. Pour
utiliser ces disques, vous devez les tiqueter manuellement et fournir une tranche ZFS.
ZFS applique une tiquette EFI lorsque vous crez un pool de stockage avec des disques entiers.
Vous pouvez spcifier les disques soit en utilisant le chemin complet (/dev/dsk/c1t0d0, par
exemple) ou un nom abrg compos du nom du priphrique dans le rpertoire /dev/dsk
(c1t0d0, par exemple). Les exemples suivants constituent des noms de disques valides :
c1t0d0
/dev/dsk/c1t0d0
c0t0d6s2
/dev/foo/disk
92
Si vous laborez des configurations ZFS sur des LUN partir de baies RAID matrielles,
vous devez comprendre la relation entre les fonctionnalits de redondance ZFS et les
fonctionnalits de redondance proposes par la baie. Certaines configurations peuvent
fournir une redondance et des performances adquates, mais d'autres non.
Vous pouvez construire des priphriques logiques pour ZFS l'aide de volumes prsents
par des gestionnaires de volumes logiciels tels que SolarisTM Volume Manager (SVM) ou
Veritas Volume Manager (VxVM). Ces configurations sont cependant dconseilles. Bien
que ZFS fonctionne correctement sur de tels priphriques, les performances risquent d'tre
mdiocres.
Pour obtenir des informations supplmentaires sur les recommandations de pools de stockage,
consultez le site des pratiques ZFS recommandes :
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Les disques sont identifis par leur chemin et par l'ID de leur priphrique, s'il est disponible.
Cette mthode permet de reconfigurer les priphriques dans un systme sans requrir la mise
jour de tout tat ZFS. Si un disque est dplac du contrleur 1 au contrleur 2, ZFS utilise l'ID
du priphrique pour dterminer si le disque a t dplac et si son accs s'effectue partir du
contrleur 2. L'ID du priphrique est unique pour le microprogramme du disque. Certaines
mises jour de microprogrammes sont susceptibles de modifier l'ID du priphrique, mais il est
peu probable que cela se produise. Si cela se produit, ZFS peut tout de mme accder au
priphrique l'aide de son chemin et mettre jour automatiquement l'ID de priphrique
stock. Si, par inadvertance, vous modifiez le chemin et l'ID du priphrique, exportez et
rimportez le pool pour pouvoir l'utiliser.
ZFS et un autre systme de fichier (UFS, par exemple) partagent un disque unique.
93
pas tre utilise dans un contexte de production. En effet, toute utilisation de fichier repose
sur le systme de fichier sous-jacent pour la cohrence. Si vous crez un pool ZFS partir de
fichiers stocks sur un systme de fichiers UFS, la garantie d'une smantique synchrone et juste
repose entirement sur UFS.
Cependant, les fichiers peuvent s'avrer utiles lorsque vous employez ZFS pour la premire fois
ou en cas de disposition complexe, parce que les priphriques physiques prsents ne sont pas
suffisants. Tous les fichiers doivent tre spcifis avec leur chemin complet et leur taille doit tre
de 64 Mo minimum. Si un fichier est dplac ou renomm, le pool doit tre export et rimport
pour pouvoir tre utilis, car aucun ID de priphrique n'est associ aux fichiers pour permettre
de les localiser.
Conceptuellement, une configuration en miroir plus complexe devrait ressembler ce qui suit :
mirror c1t0d0 c2t0d0 c3t0d0 mirror c4t0d0 c5t0d0 c6t0d0
Pour obtenir des informations sur les pools de stockage mis en miroir, reportez-vous la
section Cration d'un pool de stockage mis en miroir la page 97.
Tous les algorithmes similaires RAID-5 traditionnels (RAID-4. RAID-6, RDP et EVEN-ODD,
par exemple) prsentent un problme connu appel "RAID-5 write hole". Si seule une partie
d'un entrelacement RAID-5 est crite, et qu'une perte d'alimentation se produit avant que tous
les blocs aient t transmis au disque, la parit n'est pas synchronise avec les donnes, et est par
consquent inutile tout jamais ( moins qu'elle ne soit remplace par une criture
d'entrelacement total). Dans RAID-Z, ZFS utilise des entrelacements RAID de largeur variable
pour que toutes les critures correspondent des entrelacements entiers. Cette conception n'est
possible que parce que ZFS intgre le systme de fichiers et la gestion de priphrique de telle
faon que les mtadonnes du systme de fichiers disposent de suffisamment d'informations sur
le modle de redondance de donnes pour grer les entrelacements RAID de largeur variable.
RAID-Z est la premire solution au monde pour le trou d'criture de RAID-5.
Une configuration RAID-Z avec N disques de taille X et des disques de parit P prsente une
contenance d'environ (N-P)*X octets et peut supporter la panne d'un ou de plusieurs
priphriques P avant que l'intgrit des donnes ne soit compromise. Vous devez disposer d'au
moins deux disques pour une configuration RAID-Z parit simple et d'au moins trois disques
pour une configuration RAID-Z double parit. Par exemple, si vous disposez de trois disques
pour une configuration RAID-Z parit simple, les donnes de parit occupent un espace gal
l'un des trois disques. Dans le cas contraire, aucun matriel spcifique n'est requis pour la
cration d'une configuration RAID-Z.
Conceptuellement, une configuration RAID-Z trois disques serait similaire ce qui suit :
raidz c1t0d0 c2t0d0 c3t0d0
Une configuration RAID-Z conceptuelle plus complexe serait similaire ce qui suit :
raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 raidz c8t0d0 c9t0d0 c10t0d0 c11t0d0
c12t0d0 c13t0d0 c14t0d0
Si vous crez une configuration RAID-Z avec un grand nombre de disques, comme dans cet
exemple, il est recommand de scinder une configuration RAID-Z avec 14 disques en deux
groupements de 7 disques. Les configurations RAID-Z disposant de groupements de moins de
10 disques devraient prsenter de meilleures performances.
Pour plus d'informations sur la cration de pools de stockage RAID-Z, consultez la section
Cration de pools de stockage RAID-Z la page 98.
Pour obtenir des informations supplmentaires afin de choisir une configuration en miroir ou
une configuration RAID-Z en fonction de considrations de performances et d'espace,
consultez le blog suivant :
http://blogs.sun.com/roller/page/roch?entry=when_to_and_not_to
Pour obtenir des informations supplmentaires sur les recommandations relatives aux pools de
stockage RAID-Z, consultez le site des pratiques ZFS recommandes :
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Chapitre 5 Gestion des pools de stockage ZFS
95
ZFS assure la prise en charge de diffrents types de priphriques virtuels au sein du mme pool,
mais cette pratique est dconseille. Vous pouvez par exemple crer un pool avec un miroir
bidirectionnel et une configuration RAID-Z trois directions. Cependant, le niveau de
tolrance de pannes est aussi bon que le pire priphrique virtuel (RAID-Z dans ce cas). Il est
conseille d'utiliser des priphriques virtuels de niveau suprieur du type identique et avec le
mme niveau de redondance dans tous les priphriques.
96
De par leur conception, la cration et la destruction de pools est rapide et facile. Cependant, il se
doit de raliser ces oprations avec prudence. Des vrifications sont effectues pour viter une
utilisation de priphriques dj utiliss dans un nouveau pool, mais ZFS n'est pas
systmatiquement en mesure de savoir si un priphrique est dj en cours d'utilisation. La
destruction d'un pool est encore plus facile. Utilisez la commande zpool destroy avec
prcaution. Cette commande simple a des consquences significatives.
Ces disques entiers se trouvent dans le rpertoire /dev/dsk et ont t tiquets de faon
adquate par ZFS afin de contenir une tranche unique de grande taille. Les donnes sont
entrelaces de faon dynamique sur les deux disques.
Le second mot-cl mirror indique qu'un nouveau priphrique virtuel de niveau suprieur est
spcifi. Les donnes sont dynamiquement entrelaces sur les deux miroirs, ce qui les rend
redondantes sur chaque disque.
Pour plus d'informations sur les configurations mises en miroir recommandes, consultez le
site suivant :
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Actuellement, les oprations suivantes sont prises en charge dans une configuration ZFS en
miroir :
Chapitre 5 Gestion des pools de stockage ZFS
97
Ajout d'un autre jeu de disques comme stockage vdev de niveau suprieur supplmentaire
une configuration en miroir existante. Pour plus d'informations, reportez-vous la rubrique
Ajout de priphriques un pool de stockage la page 106.
Sparation d'un ou de plusieurs disques dans une configuration existante, condition que
les priphriques restants procurent la redondance qui convient la configuration. Pour
plus d'informations, reportez-vous la section Connexion et sparation de priphriques
dans un pool de stockage la page 109.
Actuellement, les oprations suivantes ne sont pas prises en charge dans une configuration en
miroir :
Vous ne pouvez pas supprimer totalement un priphrique d'un pool de stockage mis en
miroir. Cette fonction fait l'objet d'une demande d'amlioration.
Vous ne pouvez pas diviser ou fractionner un miroir des fins de sauvegarde. Cette fonction
fait l'objet d'une demande d'amlioration.
Cet exemple montre que les disques peuvent tre spcifis l'aide de leurs chemins complets. Le
priphrique /dev/dsk/c5t0d0 est identique au priphrique c5t0d0.
Il est possible de crer une configuration similaire avec des tranches de disque. Exemple :
# zpool create tank raidz c1t0d0s0 c2t0d0s0 c3t0d0s0 c4t0d0s0 c5t0d0s0
Cependant, vous devez prformater les disques afin de disposer d'une tranche zro de taille
adquate.
Pour crer une configuration RAID-Z double parit, appliquez le mot-cl raidz2 lors de la
cration du pool. Exemple :
98
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
Actuellement, les oprations suivantes sont prises en charge dans une configuration ZFS
RAID-Z :
Ajout d'un autre jeu de disques comme stockage vdev de niveau suprieur supplmentaire
une configuration RAID-Z existante. Pour plus d'informations, reportez-vous la rubrique
Ajout de priphriques un pool de stockage la page 106.
Actuellement, les oprations suivantes ne sont pas prises en charge dans une configuration
RAID-Z :
99
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
L'exemple suivant illustre la cration d'un pool compos d'un priphrique virtuel racine de 4
disques.
# zpool create mypool raidz2 c1d0 c2d0 c3d0 c4d0
Vous pouvez ajouter un autre priphrique virtuel racine ce pool l'aide de la commande
zpool add. Exemple :
# zpool add mypool raidz2 c2d0 c3d0 c4d0 c5d0
Les disques, tranches de disque ou fichiers utiliss dans des pools non redondants fonctionnent
en tant que priphriques virtuels de niveau suprieur. Les pools de stockage contiennent en
rgle gnrale plusieurs priphriques virtuels de niveau suprieur. ZFS entrelace
automatiquement les donnes entre l'ensemble des priphriques virtuels de niveau suprieur
dans un pool.
Les priphriques virtuels et les priphriques physiques contenus dans un pool de stockage
ZFS s'affichent avec la commande zpool status. Exemple :
# zpool
pool:
state:
scrub:
config:
status tank
tank
ONLINE
none requested
NAME
tank
mirror
c0t1d0
c1t1d0
mirror
c0t2d0
c1t2d0
mirror
c0t3d0
c1t3d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
101
Certaines d'entre elles peuvent tre ignores l'aide de l'option -f, mais pas toutes. les
utilisations suivantes ne peuvent pas tre ignores via l'option - f et doivent tre corriges
manuellement :
Systme de fichiers mont
Les vrifications en cours d'utilisation suivantes constituent des avertissements. Pour les
ignorer, appliquez l'option -f afin de crer le pool :
102
Live upgrade
L'option -f permet d'ignorer ces erreurs, mais cette pratique est dconseille. La commande
affiche galement un avertissement relatif la cration d'un pool RAID-Z ou mis en miroir
l'aide de priphriques de tailles diffrentes. Cette configuration est autorise mais, si les
niveaux de redondance sont incohrents, une partie de l'espace du priphrique de plus grande
taille reste inutilise. L'option -f est alors requise pour ignorer l'avertissement.
103
Certaines erreurs sont impossibles dtecter sans cration effective du pool. L'exemple le plus
courant consiste spcifier le mme priphrique deux fois dans la mme configuration. Cette
erreur ne peut pas tre dtecte sans criture des donnes. La commande create -n peut
indiquer que l'opration s'effectue correctement, alors que la cration du pool lors de son
excution effective choue.
Cette commande cre un pool home et le jeu de donnes home avec le point de montage
/export/zfs.
Pour de plus amples informations sur les points de montage, reportez-vous la section
Gestion des points de montage ZFS la page 164.
104
Attention Faites trs attention lorsque vous dtruisez un pool. Assurez-vous de dtruire le pool
souhait et de toujours disposer de copies de vos donnes. En cas de destruction accidentelle
d'un pool, vous pouvez tenter de le rcuprer. Pour obtenir des informations supplmentaires,
reportez-vous la section Rcupration de pools de stockage ZFS dtruits la page 135.
Pour de plus amples informations sur les pools et la maintenance des priphriques,
reportez-vous la section Dtermination de l'tat de maintenance des pools de stockage ZFS
la page 127.
Pour de plus amples informations sur l'importation de pools, reportez-vous la section
Importation de pools de stockage ZFS la page 134.
105
Le format de spcification des priphriques virtuels est le mme que pour la commande zpool
create et obit aux mmes rgles. Une vrification des priphriques est effectue afin de
dterminer s'ils sont en cours d'utilisation et la commande ne peut pas modifier le niveau de
redondance sans l'option -f. La commande prend galement en charge l'option -n, ce qui
permet d'effectuer un test. Exemple :
# zpool add -n zeepool mirror c3t1d0 c3t2d0
would update zeepool to the following configuration:
zeepool
mirror
c1t0d0
c1t1d0
mirror
c2t1d0
c2t2d0
mirror
c3t1d0
c3t2d0
Cette syntaxe de commande ajouterait les priphriques mis en miroir c3t1d0 et c3t2d0 la
configuration existante du fichier zeepool.
106
Pour plus d'informations sur la validation des priphriques virtuels, reportez-vous la section
Dtection des priphriques utiliss la page 102.
EXEMPLE 51
Dans l'exemple suivant, un autre miroir est ajout la configuration ZFS mise en miroir
existante sur un systme Sun Fire x4500.
# zpool
pool:
state:
scrub:
config:
status tank
tank
ONLINE
none requested
NAME
tank
mirror
c0t1d0
c1t1d0
mirror
c0t2d0
c1t2d0
errors:
# zpool
# zpool
pool:
state:
scrub:
config:
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
NAME
tank
mirror
c0t1d0
c1t1d0
mirror
c0t2d0
c1t2d0
mirror
c0t3d0
c1t3d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
107
EXEMPLE 52
De la mme faon, vous pouvez ajouter des disques supplmentaires une configuration
RAID-Z. L'exemple suivant illustre la conversion d'un pool de stockage avec un priphrique
RAIDZ compos de 3 disques en pool de stockage avec deux priphriques RAID-Z compos
de 3 disques.
# zpool
pool:
state:
scrub:
config:
status
rpool
ONLINE
none requested
NAME
rpool
raidz1
c1t2d0
c1t3d0
c1t4d0
errors:
# zpool
# zpool
pool:
state:
scrub:
config:
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
L'exemple suivant illustre l'ajout d'un priphrique de journalisation mis en miroir un pool de
stockage mis en miroir.Pour plus d'informations sur l'utilisation de priphriques de
journalisation dans votre pool de stockage, reportez-vous la section Configuration de
priphriques de journalisation ZFS distincts la page 21.
108
EXEMPLE 53
(Suite)
# zpool
pool:
state:
scrub:
config:
status newpool
newpool
ONLINE
none requested
NAME
newpool
mirror
c1t9d0
c1t10d0
errors:
# zpool
# zpool
pool:
state:
scrub:
config:
STATE
ONLINE
ONLINE
ONLINE
ONLINE
NAME
newpool
mirror
c1t9d0
c1t10d0
logs
mirror
c1t11d0
c1t12d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
109
EXEMPLE 54 Conversion d'un pool de stockage bidirectionnel mis en miroir en un pool de stockage
tridirectionnel mis en miroir
Dans cet exemple, zeepool est un miroir bidirectionnel. Il est transform en un miroir
tridirectionnel via la connexion de c2t1d0, le nouveau priphrique, au priphrique existant,
c1t1d0.
# zpool
pool:
state:
scrub:
config:
errors:
# zpool
# zpool
pool:
state:
scrub:
config:
status
zeepool
ONLINE
none requested
NAME
STATE
READ WRITE CKSUM
zeepool
ONLINE
0
0
0
mirror
ONLINE
0
0
0
c0t1d0 ONLINE
0
0
0
c1t1d0 ONLINE
0
0
0
No known data errors
attach zeepool c1t1d0 c2t1d0
status
zeepool
ONLINE
resilver completed after 0h2m with 0 errors on Thu Aug 28 09:50:11 2008
NAME
zeepool
mirror
c0t1d0
c1t1d0
c2t1d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
Si le priphrique existant fait partie d'un miroir bidirectionnel, la connexion d'un nouveau
priphrique cre un miroir tridirectionnel, et ainsi de suite. Dans tous les cas, la rargenture du
nouveau priphrique commence immdiatement.
EXEMPLE 55
Conversion d'un pool de stockage ZFS non redondant en un pool de stockage ZFS mis en
miroir
En outre, vous pouvez convertir un pool de stockage non redondant en un pool de stockage
redondant l'aide de la commande zpool attach. Exemple :
# zpool create tank c0t1d0
# zpool status
pool: tank
state: ONLINE
scrub: none requested
110
EXEMPLE 55
miroir
Conversion d'un pool de stockage ZFS non redondant en un pool de stockage ZFS mis en
(Suite)
config:
NAME
tank
c0t1d0
errors:
# zpool
# zpool
pool:
state:
scrub:
config:
STATE
ONLINE
ONLINE
STATE
ONLINE
ONLINE
ONLINE
ONLINE
Vous pouvez utiliser la commande zpool detach pour sparer un priphrique d'un pool de
stockage mis en miroir. Exemple :
# zpool detach zeepool c2t1d0
Cependant, cette opration est refuse en l'absence de rplique valide des donnes. Exemple :
# zpool detach newpool c1t2d0
cannot detach c1t2d0: only applicable to mirror and replacing vdevs
111
Vous pouvez utiliser la commande offline pour dconnecter temporairement le stockage. Par
exemple, si vous devez dconnecter physiquement une baie d'un jeu de commutateurs Fibre
Channel et la connecter un autre jeu, vous pouvez mettre les LUN hors ligne dans la baie
utilise dans les pools de stockage ZFS. Une fois la baie reconnecte et oprationnelle sur le
nouveau jeu de commutateurs, vous pouvez mettre les mmes LUN en ligne. La rargenture des
donnes ajoutes aux pools de stockage alors que les LUN taient hors ligne s'effectue sur les
LUN, une fois ceux-ci en ligne.
Ce scnario est possible si les systmes en question ont accs au stockage une fois qu'il est
connect aux nouveaux commutateurs, ventuellement par le biais de contrleurs diffrents, et
si les pools sont dfinis en tant que configurations RAID-Z ou en miroir.
Gardez les points suivants l'esprit lors de la mise hors ligne de priphriques :
Vous ne pouvez pas mettre un priphrique hors ligne au point o il devient dfaillant. Vous
ne pouvez par exemple pas mettre hors ligne deux priphriques d'une configuration
RAID-Z ni ne pouvez mettre hors ligne un priphrique virtuel de niveau suprieur.
# zpool offline tank c1t0d0
cannot offline c1t0d0: no valid replicas
Par dfaut, l'tat hors ligne est persistant. Le priphrique reste hors ligne lors du
redmarrage du systme.
Pour mettre un priphrique hors ligne temporairement, utilisez l'option -t de la
commande zpool offline. Exemple :
# zpool offline -t tank c1t0d0
bringing device c1t0d0 offline
Lorsqu'un priphrique est mis hors ligne, il n'est pas spar du pool de stockage. En cas de
tentative d'utilisation du priphrique hors ligne dans un autre pool, mme en cas de
destruction du pool d'origine, un message similaire au suivant s'affiche :
device is part of exported or potentially active ZFS pool. Please see zpool(1M)
112
Si vous souhaitez utiliser le priphrique hors ligne dans un autre pool de stockage aprs
destruction du pool de stockage d'origine, remettez le priphrique en ligne puis dtruisez le
pool de stockage d'origine.
Une autre mode d'utilisation d'un priphrique provenant d'un autre pool de stockage si
vous souhaitez conserver le pool de stockage d'origine consiste remplacer le priphrique
existant dans le pool de stockage d'origine par un autre priphrique similaire. Pour obtenir
des informations sur le remplacement de priphriques, reportez-vous la section
Remplacement de priphriques dans un pool de stockage la page 114.
Les priphriques mis hors ligne s'affichent dans l'tat OFFLINE en cas de requte de l'tat de
pool. Pour obtenir des informations sur les requtes d'tat de pool, reportez-vous la section
Requte d'tat de pool de stockage ZFS la page 123.
Pour de plus amples informations sur la maintenance des priphriques, reportez-vous la
section Dtermination de l'tat de maintenance des pools de stockage ZFS la page 127.
Lorsqu'un priphrique est mis en ligne, toute donne crite dans le pool est resynchronise sur
le priphrique nouvellement disponible. Notez que vous ne pouvez pas utiliser la mise en ligne
d'un priphrique pour remplacer un disque. Si vous mettez un priphrique hors ligne,
remplacez le lecteur puis tentez de le mettre en ligne, son tat continue indiquer qu'il est
dfaillant.
Si vous tentez de mettre un priphrique dfaillant en ligne, un message similaire au suivant
s'affiche partir de la commande fmd :
# zpool online tank c1t0d0
Bringing device c1t0d0 online
#
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major
EVENT-TIME: Thu Apr 24 03:07:05 MDT 2008
PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo2
SOURCE: zfs-diagnosis, REV: 1.0
EVENT-ID: b8ed8b2b-2c22-4281-bbfa-dd92d3cd924d
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.
113
Pour obtenir des informations sur le remplacement d'un priphrique dfaillant, reportez-vous
la section Rparation d'un priphrique manquant la page 257.
Si un ou plusieurs priphriques sont spcifis, cette commande n'efface que les erreurs
associes aux priphriques spcifis. Exemple :
# zpool clear tank c1t0d0
Pour de plus amples informations sur l'effacement d'erreurs de zpool reportez-vous la section
Suppression des erreurs transitoires la page 260.
Si vous remplacez le priphrique unique d'un pool de stockage non redondant, vous devez
indiquer les deux priphriques. Exemple :
# zpool replace tank c1t1d0 c1t2d0
114
Le cas chant, mettez le disque hors ligne l'aide de la commande zpool offline.
Sur certains systmes, notamment sur Sun Fire x4500, vous devez annuler la configuration d'un
disque avant de le mettre hors ligne. Si vous remplacez simplement un disque par un autre dans
le mme logement de ce systme, vous pouvez excuter la commande zpool replace comme
indiqu prcdemment.
L'Exemple 111 illustre le remplacement d'un disque sur ce systme.
Gardez l'esprit les considrations suivantes lorsque vous remplacez des priphriques dans un
pool de stockage ZFS :
Si vous activez la proprit de pool autoreplace (valeur "on"), tout nouveau priphrique
dtect au mme emplacement physique qu'un priphrique appartenant prcdemment au
pool est automatiquement format et remplac sans recourir la commande zpool
replace. Cette fonction n'est pas disponible sur tous les types de matriel.
115
l'heure actuelle, pour accrotre la taille d'un volume LUN existant appartenant un pool
de stockage, vous devez galement effectuer les tapes d'exportation et d'importation afin
d'afficher la capacit de disque tendue.
Dsignez les priphriques en tant que disques hot spare une fois le pool cr. Exemple :
# zpool create zeepool mirror c1t1d0 c2t1d0 spare c1t2d0 c2t2d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: none requested
config:
NAME
zeepool
mirror
c1t1d0
c2t1d0
spares
c1t2d0
c2t2d0
116
STATE
ONLINE
ONLINE
ONLINE
ONLINE
AVAIL
AVAIL
Dsignez les disques hot spare en les ajoutant un pool aprs la cration de ce dernier.
Exemple :
# zpool add zeepool spare c1t3d0 c2t3d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: none requested
config:
NAME
zeepool
mirror
c1t1d0
c2t1d0
spares
c1t3d0
c2t3d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
AVAIL
AVAIL
Plusieurs pools peuvent partager des priphriques dsigns en tant que disque hot spare.
Exemple :
# zpool create zeepool mirror c1t1d0 c2t1d0 spare c1t2d0 c2t2d0
# zpool create tank raidz c3t1d0 c4t1d0 spare c1t2d0 c2t2d0
Vous pouvez supprimer les disques hot spare d'un pool de stockage l'aide de la commande
zpool remove. Exemple :
# zpool remove zeepool c1t2d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: none requested
config:
NAME
zeepool
mirror
c1t1d0
c2t1d0
spares
c1t3d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
AVAIL
Un disque hot spare ne peut pas tre supprim s'il est en cours d'utilisation par le pool de
stockage.
Lorsque vous utilisez des disques hot spare ZFS, gardez l'esprit les points suivants :
117
Actuellement, la commande zpool remove ne peut tre utilise que pour la suppression de
disques hot spare.
Ajoutez un disque de rechange d'une taille gale ou suprieure celle du disque le plus
volumineux au sein du pool. L'ajout d'un disque de rechange plus petit dans le pool est
autoris. Toutefois, lorsque le plus petit disque de rechange est activ, automatiquement ou
via la commande zpool replace, l'opration choue et une erreur du type suivant s'affiche :
cannot replace disk3 with disk4: device is too small
Un disque hot spare peut tre partag entre plusieurs pools. Toutefois, vous ne pouvez pas
exporter un pool contenant un disque spare partag utilis moins de vous servir de l'option
zpool export -f (force). Ce comportement empche l'ventuelle corruption de donnes
lors de l'exportation d'un pool contenant un disque spare partag utilis alors qu'un autre
pool tente d'utiliser le disque spare partag du pool export. Lorsque vous exportez, l'aide
de l'option -f, un pool contenant un disque spare partag utilis, sachez que l'opration
risque d'entraner une corruption des donnes si un autre pool tente d'activer le disque spare
partag utilis.
118
pool: zeepool
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Thu Aug 28 09:41:49 2008
config:
NAME
zeepool
mirror
c1t2d0
spare
c2t1d0
c2t3d0
spares
c1t3d0
c2t3d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
AVAIL
INUSE
currently in use
Tout priphrique dfaillant est remplac automatiquement si un disque hot spare est
disponible. Exemple :
# zpool
pool:
state:
status:
status -x
zeepool
DEGRADED
One or more devices could not be opened. Sufficient replicas exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using zpool online.
see: http://www.sun.com/msg/ZFS-8000-D3
scrub: resilver completed after 0h12m with 0 errors on Thu Aug 28 09:29:43 2008
config:
NAME
zeepool
mirror
c1t2d0
spare
c2t1d0
c2t3d0
spares
c1t3d0
c2t3d0
STATE
READ WRITE CKSUM
DEGRADED
0
0
0
DEGRADED
0
0
0
ONLINE
0
0
0
DEGRADED
0
0
0
UNAVAIL
0
0
0 cannot open
ONLINE
0
0
0
AVAIL
INUSE
currently in use
ll existe actuellement trois faons de dsactiver les disques hot spare disponibles :
119
Une fois le priphrique dfaillant remplac, utilisez la commande zpool detach pour
retourner le disque hot spare au jeu restant. Exemple :
# zpool detach zeepool c2t3d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: resilver completed with 0 errors on Mon Sep 22 14:23:06 2008
config:
NAME
zeepool
mirror
c1t2d0
c2t1d0
spares
c1t3d0
c2t3d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
AVAIL
AVAIL
120
Les proprits d'un pool de stockage peuvent tre dfinies l'aide de la commande zpool set.
Exemple :
# zpool set autoreplace=on mpool
# zpool get autoreplace mpool
NAME PROPERTY
VALUE
SOURCE
mpool autoreplace on
default
TABLEAU 51
Nom de la proprit
Type
Valeur par
dfaut
altroot
Chane
off
available
Valeur
SO
numrique
Description
autoreplace
Boolen
off
bootfs
Boolen
SO
capacity
Valeur
SO
numrique
delegation
Boolen
on
121
TABLEAU 51
122
Nom de la proprit
Type
Valeur par
dfaut
failmode
Chane
wait
(Suite)
Description
guid
Chane
SO
health
Chane
SO
size
Valeur
SO
numrique
used
Valeur
SO
numrique
version
Valeur
SO
numrique
SIZE
80.0G
1.2T
USED
22.3G
384G
AVAIL
47.7G
816G
CAP HEALTH
28% ONLINE
32% ONLINE
ALTROOT
-
Nom du pool.
SIZE
USED
Quantit d'espace utilise, c'est--dire alloue par tous les jeux de donnes
et mtadonnes internes. Notez que cette quantit d'espace est diffrente de
celle qui est rapporte au niveau des systmes de fichiers.
Pour de plus amples informations sur la dtermination de l'espace de
systmes de fichiers disponible, reportez-vous la section
Comptabilisation de l'espace ZFS la page 50.
AVAILABLE
CAPACITY (CAP)
HEALTH
123
Vous pouvez galement rassembler des statistiques pour un pool donn en spcifiant le nom du
pool. Exemple :
# zpool list tank
NAME
tank
SIZE
80.0G
USED
22.3G
AVAIL
47.7G
CAP HEALTH
28% ONLINE
ALTROOT
-
Les noms de colonnes correspondent aux proprits rpertories la section Liste des
informations relatives aux pools de stockage la page 123.
124
AVAILABLE CAPACITY
READ OPERATIONS
WRITE OPERATIONS
READ BANDWIDTH
WRITE BANDWIDTH
capacity
used avail
operations
read write
bandwidth
read write
125
Comme ces statistiques sont cumulatives depuis le dmarrage, la bande passante peut sembler
basse si l'activit du pool est relativement faible. Vous pouvez effectuer une requte pour une
vue plus prcise de l'utilisation actuelle de la bande passante en spcifiant un intervalle.
Exemple :
# zpool iostat tank 2
capacity
operations
bandwidth
pool
used avail read write read write
---------- ----- ----- ----- ----- ----- ----tank
100G 20.0G 1.2M 102K 1.2M 3.45K
tank
100G 20.0G
134
0 1.34K
0
tank
100G 20.0G
94
342 1.06K 4.1M
Dans cet exemple, la commande affiche les statistiques d'utilisation pour le pool tank
uniquement, toutes les deux secondes, jusqu' ce que vous saisissiez Ctrl-C. Vous pouvez
galement spcifier un paramtre count supplmentaires pour entraner l'interruption de la
commande une fois le nombre spcifi d'itrations effectues. Par exemple, zpool iostat 2 3
imprimerait un rsum toutes les deux secondes pour trois itrations, pendant six secondes. S'il
y a un pool unique, les statistiques s'affichent sur des lignes conscutives. S'il existe plusieurs
pools, une ligne pointille supplmentaire dlimite chaque itration pour fournir une
sparation visuelle.
bandwidth
read write
----- ----0 6.00K
11.2K 148K
11.2K 148K
----- ----0 6.00K
Notez deux points importants lors de l'affichage de statistiques d'E/S par priphrique virtuel :
126
Tout d'abord, l'utilisation d'espace n'est disponible que pour les priphriques virtuels de
niveau suprieur. L'allocation d'espace entre les priphriques virtuels RAID-Z et les miroirs
est spcifique l'implmentation et ne s'exprime pas facilement en tant que chiffre unique.
De plus, il est possible que les chiffres s'additionnent de faon inattendue. En particulier, les
oprations au sein des priphriques RAID-Z et mis en miroir ne sont pas parfaitement
identiques. Cette diffrence se remarque particulirement aprs la cration d'un pool, car
une quantit significative d'E/S est ralise directement sur les disques en tant que partie de
cration de pool qui n'est pas comptabilise au niveau du miroir. Avec le temps, ces chiffres
devraient s'galiser graduellement, mais les priphriques dfaillants, ne rpondant pas ou
mis hors ligne peuvent galement affecter cette symtrie.
Vous pouvez utiliser les mmes options (interval et count) lorsque vous tudiez les statistiques
de priphriques virtuels.
DEGRADED
FAULTED
127
UNAVAILABLE
REMOVED
La maintenance d'un pool est dtermine partir de celle de l'ensemble de ses priphriques
virtuels. Si l'tat de tous les priphriques virtuels est ONLINE, l'tat du pool est galement
ONLINE. Si l'tat d'un des priphriques virtuels est DEGRADED ou UNAVAILABLE, l'tat du pool est
galement DEGRADED. Si l'tat d'un des priphriques virtuels est FAULTED ou OFFLINE, l'tat du
pool est galement FAULTED. Un pool en tat dfaillant est totalement inaccessible. Aucune
donne ne peut tre rcupre tant que les priphriques ncessaires n'ont pas t connects ou
rpars. Un pool en tat dgrad continue de s'excuter, mais vous risquez de ne pas atteindre le
mme niveau de redondance de donnes ou de traitement de donnes que si le pool tait en
ligne.
Il est possible d'examiner des pools spcifiques en spcifiant un nom de pool dans la commande.
Tout pool n'tant pas en tat ONLINE doit tre pass en revue pour vrifier tout problme
potentiel, comme dcrit dans la section suivante.
128
status: One or more devices could not be opened. Sufficient replicas exist
for the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using zpool online.
see: http://www.sun.com/msg/ZFS-8000-2Q
scrub: none requested
config:
NAME
STATE
READ WRITE CKSUM
tank
DEGRADED
0
0
0
mirror
DEGRADED
0
0
0
c1t0d0
FAULTED
0
0
0 cannot open
c1t1d0
ONLINE
0
0
0
errors: No known data errors
Cette sortie affiche une description complte des raisons de l'tat actuel du pool, y compris une
description lisible du problme et un lien vers un article de connaissances contenant de plus
amples informations. Les articles de connaissances donnent les informations les plus rcentes
vous permettant de rsoudre le problme. Les informations dtailles de configuration doivent
vous permettre de dterminer les priphriques endommags et la manire de rparer le pool.
Dans l'exemple ci-dessus, le priphrique dfaillant devrait tre remplac. Une fois le
priphrique remplac, excutez la commande zpool online pour le remettre en ligne.
Exemple :
# zpool online tank c1t0d0
Bringing device c1t0d0 online
# zpool status -x
all pools are healthy
Si un priphrique d'un pool est hors ligne, la sortie de commande identifie le pool qui pose
problme. Exemple :
# zpool
pool:
state:
status:
status -x
tank
DEGRADED
One or more devices has been taken offline by the adminstrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using zpool online or replace the device with
zpool replace.
scrub: none requested
config:
NAME
tank
mirror
c1t0d0
STATE
READ WRITE CKSUM
DEGRADED
0
0
0
DEGRADED
0
0
0
ONLINE
0
0
0
129
c1t1d0 OFFLINE
Les colonnes READ et WRITE indiquent le nombre d'erreurs d'E/S dtectes dans le priphrique,
tandis que la colonne CKSUM indique le nombre d'erreurs de somme de contrle qui se sont
produites sur le priphrique. Il est probable que ces erreurs correspondent une dfaillance
potentielle de priphrique et que des actions correctives soient requises. Si le nombre d'erreurs
est non nul pour un priphrique virtuel de niveau suprieur, il est possible que des parties de
vos donnes soient inaccessibles. Le nombre d'erreurs identifie toute erreur de donnes connue.
Dans l'exemple de sortie ci-dessus, le priphrique mis en ligne ne cause aucune erreur de
donnes.
Pour plus d'informations sur le diagnostic et la rparation de pools et de donnes dfaillants,
reportez-vous au Chapitre11, Rsolution de problmes et rcupration de donnes ZFS.
Si vous retirez les disques manuellement, au lieu d'exporter le pool explicitement, vous pouvez
toujours importer le pool rsultant dans un autre systme. Cependant, vous pourriez perdre les
dernires secondes de transactions de donnes et le pool s'affichera alors comme tant dfaillant
sur la machine d'origine dans la mesure o les priphriques ne sont plus prsents. Par dfaut, la
machine de destination refuse d'importer un pool qui n'a pas t export implicitement. Cette
condition est ncessaire car elle vite les importations accidentelles d'un pool compos de
stockage connect au rseau toujours en cours d'utilisation dans un autre systme.
Une fois la commande excute, le pool tank n'est plus visible sur le systme. La commande
tente de dmonter tout systme de fichiers dmont au sein du pool avant de continuer. Si le
dmontage d'un des systme de fichiers est impossible, vous pouvez le forcer l'aide de l'option
-f. Exemple :
# zpool export tank
cannot unmount /export/home/eschrock: Device busy
# zpool export -f tank
Si les priphriques ne sont pas disponibles lors de l'export, les disques ne peuvent pas tre
spcifis comme tant exports sans dfaut. Si un de ces priphriques est connect
ultrieurement un systme sans aucun des priphriques en mode de fonctionnement, il
s'affiche comme tant "potentiellement actif". Si des volumes ZFS sont utiliss dans le pool, ce
dernier ne peut pas tre export, mme avec l'option -f. Pour exporter un pool contenant un
volume ZFS, vrifiez au pralable que tous les utilisateurs du volume ne sont plus actifs.
Pour de plus amples informations sur les volumes ZFS, reportez-vous la section Volumes
ZFS la page 235.
131
ZFS dtecte tout priphrique dplac ou renomm et ajuste la configuration de faon adquate.
Pour connatre les pools disponibles, excutez la commande zpool import sans option.
Exemple :
# zpool
pool:
id:
state:
action:
config:
import
tank
3778921145927357706
ONLINE
The pool can be imported using its name or numeric identifier.
tank
mirror
c1t0d0
c1t1d0
ONLINE
ONLINE
ONLINE
ONLINE
Dans cet exemple, le pool tank est disponible pour tre import dans le systme cible. Chaque
pool est identifi par un nom et un identifiant numrique unique. Si plusieurs pools importer
portent le mme nom, vous pouvez utiliser leur identificateur numrique afin de les distinguer.
Tout comme la commande zpool status, la commande zpool import se rapporte un article
de connaissances disponible sur le Web avec les informations les plus rcentes sur les
procdures de rparation pour les problmes qui empchent l'importation d'un pool. Dans ce
cas, l'utilisateur peut forcer l'importation du pool. Cependant, l'importation d'un pool en cours
d'utilisation par un autre systme au sein d'un rseau de stockage peut entraner une corruption
des donnes et des erreurs graves si les deux systmes tentent d'crire dans le mme stockage. Si
certains priphriques dans le pool ne sont pas disponibles, mais que la redondance est
suffisante pour obtenir un pool utilisable, le pool s'affiche dans l'tat DEGRADED. Exemple :
# zpool
pool:
id:
state:
status:
action:
import
tank
3778921145927357706
DEGRADED
One or more devices are missing from the system.
The pool can be imported despite missing or damaged devices. The
fault tolerance of the pool may be compromised if imported.
see: http://www.sun.com/msg/ZFS-8000-2Q
config:
tank
mirror
c1t0d0
c1t1d0
132
DEGRADED
DEGRADED
UNAVAIL cannot open
ONLINE
Dans cet exemple, le premier disque est endommag ou manquant, mais il est toujours possible
d'importer le pool car les donnes mises en miroir restent accessibles. Si le nombre de
priphriques dfaillants ou manquant est trop importants, l'importation du pool est
impossible. Exemple :
# zpool
pool:
id:
state:
action:
import
dozer
12090808386336829175
FAULTED
The pool cannot be imported. Attach the missing
devices and try again.
see: http://www.sun.com/msg/ZFS-8000-6X
config:
raidz
FAULTED
c1t0d0
ONLINE
c1t1d0
FAULTED
c1t2d0
ONLINE
c1t3d0
FAULTED
Dans cet exemple, deux disques manquent dans un priphrique virtuel RAID-Z, ce qui signifie
que les donnes redondantes disponibles ne sont pas suffisantes pour reconstruire le pool. Dans
certains cas, les priphriques prsents ne sont pas suffisants pour dterminer la configuration
complte. Dans ce cas, ZFS ne peut pas dterminer les autres priphriques faisaient partie du
pool, mais fournit autant d'informations que possible sur la situation. Exemple :
# zpool import
pool: dozer
id: 12090808386336829175
state: FAULTED
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
devices and try again.
see: http://www.sun.com/msg/ZFS-8000-6X
config:
dozer
FAULTED missing device
raidz
ONLINE
c1t0d0
ONLINE
c1t1d0
ONLINE
c1t2d0
ONLINE
c1t3d0
ONLINE
Additional devices are known to be part of this pool, though their
exact configuration cannot be determined.
133
Si les priphriques se trouvent dans plusieurs rpertoires, vous pouvez utiliser plusieurs
options - d.
Si plusieurs pools disponibles possdent le mme nom, vous pouvez spcifier le pool importer
l'aide de l'identifiant numrique. Exemple :
# zpool
pool:
id:
state:
action:
config:
import
dozer
2704475622193776801
ONLINE
The pool can be imported using its name or numeric identifier.
dozer
134
ONLINE
c1t9d0
pool:
id:
state:
action:
config:
ONLINE
dozer
6223921996155991199
ONLINE
The pool can be imported using its name or numeric identifier.
dozer
ONLINE
c1t8d0
ONLINE
# zpool import dozer
cannot import dozer: more than one matching pool
import by numeric ID instead
# zpool import 6223921996155991199
Si le nom du pool est en conflit avec un nom de pool existant, vous pouvez importer le pool sous
un nom diffrent. Exemple :
# zpool import dozer zeepool
Cette commande importe le pool dozer export sous le nouveau nom zeepool. Si l'exportation
du pool ne s'effectue pas correctement, l'indicateur -f est requis par ZFS pour empcher les
utilisateurs d'importer par erreur un pool en cours d'utilisation dans un autre systme.
Exemple :
# zpool import dozer
cannot import dozer: pool may be in use on another system
use -f to import anyway
# zpool import -f dozer
Les pools peuvent galement tre imports sous une racine de remplacement l'aide de l'option
-R. Pour plus d'informations sur les pools racine de remplacement, reportez-vous la section
Utilisation de pools racine ZFS de remplacement la page 244.
135
config:
tank
mirror
c1t0d0
c1t1d0
ONLINE
ONLINE
ONLINE
ONLINE
Dans la sortie de zpool import, vous pouvez identifier ce pool comme tant le pool dtruit en
raison des informations d'tat suivantes :
state: ONLINE (DESTROYED)
Pour rcuprer le pool dtruit, excutez la commande zpool import - D nouveau avec le pool
rcuprer et l'option -f. Exemple :
# zpool import -Df tank
# zpool status tank
pool: tank
state: ONLINE
scrub: none requested
config:
NAME
tank
mirror
c1t0d0
c1t1d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
Mme si l'un des priphriques du pool dtruit est dfaillant ou indisponible, vous devriez tre
en mesure de rcuprer le pool dtruit. Dans ce cas, importez le pool dfaillant et tentez ensuite
de rparer la dfaillance du priphrique. Exemple :
# zpool destroy dozer
# zpool import -D
pool: dozer
id:
state: DEGRADED (DESTROYED)
status: One or more devices are missing from the system.
action: The pool can be imported despite missing or damaged devices. The
fault tolerance of the pool may be compromised if imported. The
pool was destroyed, but can be imported using the -Df flags.
see: http://www.sun.com/msg/ZFS-8000-2Q
config:
dozer
136
DEGRADED
# zpool
# zpool
pool:
state:
status:
action:
see:
scrub:
config:
raidz
ONLINE
c1t0d0
ONLINE
c1t1d0
ONLINE
c1t2d0
UNAVAIL cannot open
c1t3d0
ONLINE
import -Df dozer
status -x
dozer
DEGRADED
One or more devices could not be opened. Sufficient replicas exist for
the pool to continue functioning in a degraded state.
Attach the missing device and online it using zpool online.
http://www.sun.com/msg/ZFS-8000-D3
resilver completed after 0h0m with 0 errors on Thu Aug 28 10:01:48 2008
NAME
dozer
raidz
c1t0d0
c1t1d0
c1t2d0
c1t3d0
STATE
READ WRITE CKSUM
DEGRADED
0
0
0
ONLINE
0
0
0
ONLINE
0
0
0
ONLINE
0
0
0
UNAVAIL
0
0
0 cannot open
ONLINE
0
0
0
status
test
ONLINE
The pool is formatted using an older on-disk format. The pool can
still be used, but some features are unavailable.
action: Upgrade the pool using zpool upgrade. Once this is done, the
pool will no longer be accessible on older software versions.
137
STATE
ONLINE
ONLINE
Vous pouvez utiliser la syntaxe suivante afin d'identifier des informations supplmentaires sur
une version donne et sur les versions prises en charge.
# zpool upgrade -v
This system is currently running ZFS version 3.
The following versions are supported:
VER
--1
2
3
DESCRIPTION
-------------------------------------------------------Initial ZFS version
Ditto blocks (replicated metadata)
Hot spares and double parity RAID-Z
Vous pouvez ensuite mettre tous vos pools niveau en excutant la commande zpool upgrade.
Exemple :
# zpool upgrade -a
Remarque En cas de mise niveau des pools vers la version la plus rcente, il sera dsormais
impossible d'y accder sur des systmes excutant des versions antrieures de ZFS.
138
C H A P I T R E
Ce chapitre contient des informations dtailles sur la gestion des systmes de fichiers Solaris TM
ZFS. Il aborde notamment les concepts d'organisation hirarchique des systmes de fichiers,
d'hritage des proprits, de gestion automatique des points de montage et d'interaction sur les
partages.
La cration d'un systme de fichiers ZFS s'effectue sur un pool de stockage. La cration et la
destruction des systmes de fichiers peuvent s'effectuer de manire dynamique, sans allocation
ni formatage manuels de l'espace disque sous-jacent. En raison de leur lgret et de leur rle
central dans l'administration du systme ZFS, la cration de ces systmes de fichiers constitue
gnralement une opration extrmement courante.
La gestion des systmes de fichiers ZFS s'effectue l'aide de la commande zfs. La commande
zfs offre un ensemble de sous-commandes permettant d'effectuer des oprations spcifiques
sur les systmes de fichiers. Chacune de ces sous-commandes est dcrite en dtail dans ce
chapitre. Cette commande permet galement de grer les instantans, les volumes et les clones.
Toutefois, ces fonctionnalits sont uniquement traites de manire succincte dans ce chapitre.
Pour plus d'informations sur les instantans et les clones, reportez-vous au Chapitre7,
Utilisation des instantans et des clones ZFS. Pour plus d'informations sur les volumes
muls, reportez-vous la section Volumes ZFS la page 235.
Remarque Dans ce chapitre, le terme jeu de donnes dsigne de manire gnrique un systme
Pour plus d'informations sur les proprits des systmes de fichiers, reportez-vous la section
Prsentation des proprits ZFS la page 143.
La commande zfs destroy choue galement si le systme de fichiers possde des systmes
enfant. Pour dtruire un systme de fichiers et l'ensemble des descendants de ce systme de
fichiers, indiquez l'option -r. Ce type d'opration de destruction rcursive entrane galement
la destruction des instantans ; l'utilisation de cette option requiert donc une attention
particulire.
# zfs destroy tank/ws
cannot destroy tank/ws: filesystem has children
use -r to destroy the following datasets:
tank/ws/billm
tank/ws/bonwick
tank/ws/maybee
# zfs destroy -r tank/ws
Chapitre 6 Gestion des systmes de fichiers ZFS
141
Pour plus d'informations sur les instantans et les clones, reportez-vous au Chapitre7,
Utilisation des instantans et des clones ZFS.
modifier le nom d'un systme de fichiers et son emplacement au sein de la hirarchie ZFS.
Dans cet exemple, le systme de fichiers maybee est dplac de tank/home vers tank/ws.
Lorsque vous modifiez l'emplacement d'un systme de fichiers l'aide de la commande rename,
le nouvel emplacement doit se trouver au sein du mme pool et l'espace disponible doit tre
142
Les proprits se divisent en deux catgories : les proprits natives et les proprits dfinies par
l'utilisateur. Les proprits natives permettent d'exporter des statistiques internes ou de
contrler le comportement des systmes de fichiers ZFS. Certaines de ces proprits peuvent
tre dfinies tandis que d'autres sont en lecture seule. Les proprits dfinies par l'utilisateur
n'ont aucune incidence sur le comportement des systmes de fichiers ZFS. En revanche, elles
permettent d'annoter les jeux de donnes avec des informations adaptes votre
environnement. Pour plus d'informations sur les proprits dfinies par l'utilisateur,
reportez-vous la section Proprits ZFS dfinies par l'utilisateur la page 154.
La plupart des proprits pouvant tre dfinies peuvent galement tre hrites. Les proprits
pouvant tre hrites sont des proprits qui, une fois dfinies sur un systme parent, peuvent
tre appliques l'ensemble des descendants de ce parent.
Toutes ces proprits sont associes une source. Cette source indique la manire dont la
proprit a t obtenue. Les sources de proprits peuvent tre dfinies sur les valeurs
suivantes :
local
default
Le tableau suivant rpertorie les proprits de systme de fichiers ZFS natives en lecture seule et
pouvant tre dfinies. Les proprits natives en lecture seule sont signales comme tel. Les
autres proprits natives rpertories dans le tableau peuvent tre dfinies. Pour plus
d'informations sur les proprits dfinies par l'utilisateur, reportez-vous la section Proprits
ZFS dfinies par l'utilisateur la page 154.
TABLEAU 61
144
Nom de la proprit
Type
Valeur par
dfaut
aclinherit
Chane
secure
aclmode
Chane
groupmask
atime
Boolen
on
Description
TABLEAU 61
Nom de la proprit
Type
available
Valeur
SO
numrique
(Suite)
Description
canmount
Boolen
on
Somme de
contrle
Chane
on
145
TABLEAU 61
Nom de la proprit
Type
Valeur par
dfaut
compression
Chane
off
(Suite)
Description
compressratio
Valeur
SO
numrique
146
copies
Valeur
1
numrique
creation
Chane
SO
devices
Boolen
on
exec
Boolen
on
TABLEAU 61
(Suite)
Nom de la proprit
Type
Valeur par
dfaut
mounted
Boolen
SO
mountpoint
Chane
SO
Description
Chane
SO
quota
Valeur
none
numrique
(ou none)
readonly
Boolen
off
147
TABLEAU 61
Nom de la proprit
Type
recordsize
Valeur
128K
numrique
(Suite)
Description
referenced
Valeur
SO
numrique
refquota
Valeur
none
numrique
(ou none)
none
refreservation Valeur
numrique
(ou none)
148
TABLEAU 61
Nom de la proprit
Type
reservation
Valeur
none
numrique
(ou none)
(Suite)
Description
setuid
Boolen
on
sharenfs
Chane
off
snapdir
Chane
hidden
type
Chane
SO
used
Valeur
SO
numrique
149
TABLEAU 61
(Suite)
Nom de la proprit
Type
volsize
Valeur
SO
numrique
Valeur
8 Kbytes
numrique
volblocksize
Description
Boolen
SO
xattr
Boolen
on
150
available
creation
mounted
origin
compressratio
referenced
type
used
Pour plus d'informations sur cette proprit, reportez-vous la section Proprit used
la page 151.
Pour plus d'informations sur la dtermination de l'espace disque, notamment sur les proprits
used, referenced et available, reportez-vous la section Comptabilisation de l'espace ZFS
la page 50.
Proprit used
Quantit d'espace utilise par le jeu de donnes et l'ensemble de ses descendants. Cette valeur
est compare au quota et la rservation dfinis pour le jeu de donnes. L'espace utilis n'inclut
pas la rservation du jeu de donnes. En revanche, elle prend en compte les rservations dfinies
pour les ventuels jeux de donnes descendants. La quantit d'espace utilise sur le parent par
un jeu de donnes, ainsi que la quantit d'espace libre si le jeu de donnes est dtruit de faon
rcursive, constituent la plus grande partie de son espace utilis et sa rservation.
Lors de la cration d'un instantan, l'espace correspondant est dans un premier temps partag
entre cet instantan et le systme de fichiers ainsi que les instantans existants (le cas chant).
Lorsque le systme de fichiers est modifi, l'espace prcdemment partag devient ddi
l'instantan. Il est alors comptabilis dans l'espace utilis par cet instantan. L'espace utilis par
un instantan reprsente ses donnes uniques. La suppression d'instantans peut galement
augmenter l'espace ddi et utilis par les autres instantans. Pour plus d'informations sur les
instantans et les questions d'espace, reportez-vous la section Comportement d'espace
satur la page 50.
La quantit d'espace utilise, disponible ou indique ne prend pas en compte les modifications
en cours d'excution. Ces modifications sont gnralement prises en compte au bout de
quelques secondes. La modification d'un disque utilisant fsync(3c) ou O_SYNC ne garantit pas
la mise jour immdiate des informations concernant l'utilisation de l'espace.
151
Certaines proprits natives dfinies sont spcifiques un type de jeu de donnes. Dans ce cas,
le jeu de donnes correspondant est mentionn dans la description figurant dans le
Tableau 61. Sauf indication contraire, les proprits s'appliquent tous les types de jeu de
donnes : aux systmes de fichiers, aux volumes, aux clones et aux instantans.
Les proprits pouvant tre dfinies sont rpertories dans cette section et dcrites dans le
Tableau 61.
aclinherit
Pour obtenir une description dtaille de cette proprit, reportez-vous la section Modes
de proprits d'ACL la page 197.
aclmode
Pour obtenir une description dtaille de cette proprit, reportez-vous la section Modes
de proprits d'ACL la page 197.
atime
canmount
Somme de contrle
compression
copies
devices
exec
mountpoint
quota
readonly
recordsize
Pour obtenir une description dtaille de cette proprit, reportez-vous la section
Proprit recordsize la page 153.
refquota
refreservation
reservation
sharenfs
setuid
snapdir
volsize
Pour obtenir une description dtaille de cette proprit, reportez-vous la section
Proprit volsize la page 154.
152
volblocksize
zoned
Proprit canmount
Si cette proprit est dsactive (valeur "off"), le systme de fichiers ne peut pas tre mont
l'aide de la commande zfs mount ni de la commande zfs mount -a. Cette proprit est
comparable la dfinition de la proprit mountpoint sur la valeur none. Toutefois, le jeu de
donnes possde toujours une proprit mountpoint standard susceptible d'tre hrite. Vous
pouvez par exemple dfinir cette proprit sur la valeur "off" et dfinir des proprits hrites
pour les systmes de fichiers descendants. Toutefois, le systme de fichiers proprement parler
n'est jamais mont, ni accessible par les utilisateurs. Dans ce cas, le systme de fichiers parent
sur lequel cette proprit est dsactive sert de conteneur afin de pouvoir dfinir des attributs
sur le conteneur ; toutefois, le conteneur proprement parler n'est jamais accessible.
L'exemple suivant illustre la cration du systme de fichiers userpool avec la proprit
canmount dsactive. Les points de montage des systmes de fichiers utilisateur descendants
sont dfinis sur un emplacement commun, /export/home. Les systmes de fichiers descendants
hritent des proprits dfinies sur le systme de fichiers parent, mais celui-ci n'est jamais
mont.
# zpool create userpool mirror c0t5d0 c1t6d0
# zfs set canmount=off userpool
# zfs set mountpoint=/export/home userpool
# zfs set compression=on userpool
# zfs create userpool/user1
# zfs create userpool/user2
# zfs list -r userpool
NAME
USED AVAIL REFER MOUNTPOINT
userpool
140K 8.24G 24.5K /export/home
userpool/user1 24.5K 8.24G 24.5K /export/home/user1
userpool/user2 24.5K 8.24G 24.5K /export/home/user2
Dfinir la proprit canmount sur noauto indique que le jeu de donnes ne peut tre mont que
de manire explicite, et non pas de manire automatique. Ce paramtre est utilis par le logiciel
de mise niveau de Solaris afin que seuls les jeux de donnes appartenant l'environnement
d'initialisation actif soient monts lors de l'initialisation.
Proprit recordsize
Spcifie une taille de bloc suggre pour les fichiers du systme de fichiers.
Cette proprit s'utilise uniquement pour les charges de travail de base de donnes accdant
des fichiers rsidant dans des enregistrements taille fixe. Le systme ZFS ajuste
automatiquement les tailles en fonction d'algorithmes internes optimiss pour les schmas
d'accs classiques. Pour les bases de donnes gnrant des fichiers volumineux mais accdant
uniquement certains fragments de manire alatoire, ces algorithmes peuvent se rvler
Chapitre 6 Gestion des systmes de fichiers ZFS
153
inadapts. La dfinition de la proprit recordsize sur une valeur suprieure ou gale la taille
d'enregistrement de la base de donnes peut amliorer les performances du systme de manire
significative. Il est vivement dconseill d'utiliser cette proprit pour les systmes de fichiers
usage gnrique. En outre, elle peut affecter les performances du systme. La taille spcifie doit
tre une puissance de deux suprieure ou gale 512 octets et infrieure ou gale 128 Ko. La
modification de la valeur de recordsize affecte uniquement les fichiers crs en aval. Cette
modification n'affecte pas les fichiers existants.
Cette proprit peut galement s'afficher sous la forme du nom de colonne contract recsize.
Proprit volsize
Taille logique du volume. Par dfaut, la cration d'un volume dfinit une rservation de taille
identique. Toute modification apporte la valeur de la proprit volsize se rpercute dans des
proportions identiques au niveau de la rservation. Ce fonctionnement permet d'viter les
comportements inattendus lors de l'utilisation des volumes. L'utilisation de volumes contenant
moins d'espace disponible que la valeur indique risque, suivant le cas, d'entraner des
comportements non valides et des corruptions de donnes. Ces symptmes peuvent galement
survenir lors de la modification et notamment de la rduction de la taille d'un volume en cours
d'utilisation. Faites preuve de prudence lorsque vous ajustez la taille d'un volume.
Mme s'il s'agit d'une opration dconseille, vous avez la possibilit de crer des volumes
fragments. Pour ce faire, spcifiez l'attribut -s dans la commande zfs create -V ou modifiez
la rservation, une fois le volume cr. Le terme volume fragment dsigne un volume dont la
rservation est diffrente de la taille de volume. Les modifications apportes la proprit
volsize des volumes fragments ne sont pas rpercutes au niveau de la rservation.
Pour plus d'informations sur l'utilisation des volumes, reportez-vous la section Volumes
ZFS la page 235.
contenir le caractre ": " (deux points) afin de les distinguer des proprits natives ;
contenir des lettres en minuscules, des chiffres, ainsi que les signes de ponctuation suivants :
':', '+','.', '_' ;
La syntaxe attendue des noms de proprits consiste regrouper les deux composants suivants
(cet espace de noms n'est toutefois pas appliqu par les systmes ZFS) :
154
module:property
Si vous utilisez des proprits dfinies par l'utilisateur dans un contexte de programmation,
spcifiez un nom de domaine DNS invers pour le composant module des noms de proprits,
afin de rduire la probabilit que deux packages dvelopps sparment n'utilisent un nom de
proprit identique des fins diffrentes. Les noms de proprit commenant par "com.sun."
sont rservs l'usage de Sun Microsystems.
Les valeurs des proprits dfinies par l'utilisateur possdent les caractristiques suivantes :
Exemple :
# zfs set dept:users=finance userpool/user1
# zfs set dept:users=general userpool/user2
# zfs set dept:users=itops userpool/user3
Toutes les commandes fonctionnant avec des proprits (par exemple, les commandes zfs
list, zfs get, zfs set, etc.) permettent d'utiliser des proprits natives et des proprits
dfinies par l'utilisateur.
Exemple :
zfs get -r dept:users userpool
NAME
PROPERTY
VALUE
userpool
dept:users all
userpool/user1 dept:users finance
userpool/user2 dept:users general
userpool/user3 dept:users itops
SOURCE
local
local
local
local
Pour supprimer une proprit dfinie par l'utilisateur, utilisez la commande zfs inherit.
Exemple :
# zfs inherit -r dept:users userpool
Si cette proprit n'est dfinie dans aucun jeu de donnes parent, elle est dfinitivement
supprime.
155
USED
476K
18K
296K
277K
0
18K
Cette commande permet d'afficher des jeux de donnes spcifiques. Pour cela, spcifiez le nom
du ou des jeux de donnes afficher sur la ligne de commande. Vous pouvez galement spcifier
l'option -r pour afficher de manire rcursive tous les descendants des jeux de donnes.
Exemple :
# zfs list -r pool/home/marks
NAME
USED AVAIL REFER MOUNTPOINT
pool/home/marks
277K 16.5G 277K /pool/home/marks
pool/home/marks@snap
0
- 277K -
La commande zfs list s'utilise avec des noms de chemin absolus pour les jeux de donnes, les
instantans et les volumes. Exemple :
# zfs list /pool/home/marks
NAME
USED AVAIL REFER MOUNTPOINT
pool/home/marks 277K 16.5G 277K /pool/home/marks
L'exemple suivant illustre la manire d'afficher tank/home/chua et tous ses jeux de donnes
descendants.
156
Pour plus d'informations sur la commande zfs list, reportez-vous la page de manuel
zfs(1M).
MOUNTPOINT
/tank
/tank/home
/tank/home/ahrens
/tank/home/bonwick
/tank/home/chua
legacy
/tank/home/moore
/tank/home/tabriz
L'option -t permet de spcifier le type de jeu de donnes afficher. Les types corrects sont
dcrits dans le tableau suivant.
TABLEAU 62
Type
Description
filesystem
Volume
Volumes
157
TABLEAU 62
Type
Description
Instantan
Instantans
(Suite)
L'option -t permet de spcifier la liste des types de jeux de donnes afficher, spars par une
virgule. L'exemple suivant illustre l'affichage du nom et de la proprit -used de l'ensemble des
systmes de fichiers via l'utilisation simultane des options -t et o :
# zfs list -t filesystem -o name,used
NAME
USED
pool
476K
pool/clone
18K
pool/home
296K
pool/home/marks 277K
pool/test
18K
Vous pouvez galement dfinir les proprits des systmes de fichiers une fois ces derniers
crs. Exemple :
# zfs create -o atime=off tank/home
Les suffixes explicites suivants (rpertoris par ordre croissant) permettent de spcifier des
proprits numriques : BKMGTPEZ. Ces suffixes peuvent tre suivis de la lettre b (signifiant
"byte", octet) l'exception du suffixe B, qui fait dj rfrence cette unit de mesure. Les quatre
formulations de la commande zfs set suivantes correspondent des expressions numriques
quivalentes indiquant que la proprit quota doit tre dfinie sur 50 Go sur le systme de
fichiers tank/home/marks :
#
#
#
#
zfs
zfs
zfs
zfs
set
set
set
set
quota=50G tank/home/marks
quota=50g tank/home/marks
quota=50GB tank/home/marks
quota=50gb tank/home/marks
159
SOURCE
default
default
local
SOURCE
default
default
default
La sous-commande inherit est applique de manire rcursive lorsque l'option -r est spcifie.
Dans l'exemple suivant, la commande entrane l'hritage de la valeur de la proprit
compression pour tank/home ainsi que pour ses ventuels descendants.
# zfs inherit -r compression tank/home
Pour plus d'informations sur la commande zfs, reportez-vous la page de manuel zfs(1M).
VALUE
on
SOURCE
default
Valeur
Description
default
local
temporary
- (none)
Cette proprit est en lecture seule. Sa valeur est gnre par ZFS.
Le mot-cl all permet de rcuprer toutes les proprits de jeu de donnes. Les exemples
suivants illustrent la rcupration de toutes les proprits de jeu de donnes l'aide du mot-cl
all :
# zfs
NAME
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
VALUE
SOURCE
filesystem
Fri Aug 22 14:24 2008 6.41G
26.8G
20.5K
1.00x
yes
none
default
none
default
128K
default
/mpool
default
off
default
on
default
off
default
161
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
mpool
atime
devices
exec
setuid
readonly
zoned
snapdir
aclmode
aclinherit
canmount
shareiscsi
xattr
copies
version
utf8only
normalization
casesensitivity
vscan
nbmand
sharesmb
refquota
refreservation
on
on
on
on
off
off
hidden
groupmask
restricted
on
off
on
1
3
off
none
sensitive
off
off
off
none
none
default
default
default
default
default
default
default
default
default
default
default
default
default
default
default
default
default
default
vscan sont dfinies sur une valeur fixe et ne sont pas prises en charge dans la version Solaris 10.
L'option -s spcifie avec la commande zfs get permet de spcifier, en fonction du type de
source, les proprits afficher. Cette option permet d'indiquer la liste des types de sources
souhaits, spars par une virgule. Seules les proprits associes au type de source spcifi sont
affiches. Les types de source valides sont local, default, inherited, temporary et none.
L'exemple suivant indique toutes les proprits dfinies localement sur pool.
# zfs get -s local all pool
NAME
PROPERTY
pool
compression
VALUE
on
SOURCE
local
Les options dcrites ci-dessus peuvent tre associes l'option -r afin d'afficher de manire
rcursive les proprits spcifies sur les systmes enfant du jeu de donnes. Dans l'exemple
suivant, les proprits temporaires de tous les jeux de donnes dfinis sur tank sont affiches de
manire rcursive :
# zfs get -r -s temporary all tank
NAME
PROPERTY
VALUE
tank/home
atime
off
tank/home/bonwick atime
off
tank/home/marks
atime
off
162
SOURCE
temporary
temporary
temporary
L'une des fonctionnalits rcemment ajoutes permet d'envoyer des requtes l'aide de la
commande zfs get sans spcifier le systme de fichiers cible (la requte porte sur tous les pools
ou sur tous les systmes de fichiers). Exemple :
# zfs get -s local all
tank/home
atime
tank/home/bonwick
atime
tank/home/marks
quota
off
off
50G
local
local
local
Pour plus d'informations sur la commande zfs get, reportez-vous la page de manuel
zfs(1M).
L'option -p indique les valeurs numriques sous leur forme exacte. Par exemple, 1 Mo serait
signal sous la forme 1000000. Cette option peut tre utilise comme suit :
# zfs get -H -o value -p used tank/home
182983742
L'option -r permet de rcuprer de manire rcursive les valeurs demandes pour l'ensemble
des descendants et peut s'utiliser avec toutes les options mentionnes ci-dessus. Dans l'exemple
suivant, les options -r, -o et - H sont spcifies afin de rcuprer le nom du jeu de donnes ainsi
que la valeur de la proprit used pour export/home et ses descendants, tout en excluant les
en-ttes dans la sortie :
# zfs get -H -o name,value -r used export/home
export/home
5.57G
export/home/marks
1.43G
export/home/maybee
2.15G
Chapitre 6 Gestion des systmes de fichiers ZFS
163
164
Si la proprit legacy ou none est remplace par une autre valeur, le systme de fichiers ZFS
est automatiquement mont.
Vous pouvez galement dfinir le point de montage par dfaut du jeu de donnes racine lors de
l'excution de la commande de cration zpool create en spcifiant l'option -m. Pour plus
d'informations sur la cration de pools, reportez-vous la section Cration d'un pool de
stockage ZFS la page 97.
Les jeux de donnes dont la proprit mountpoint n'est pas dfinie sur legacy sont grs par le
systme ZFS. L'exemple suivant illustre la cration d'un jeu de donnes dont le point de
montage est gr automatiquement par le systme ZFS.
# zfs create pool/filesystem
# zfs get mountpoint pool/filesystem
NAME
PROPERTY
VALUE
pool/filesystem mountpoint
/pool/filesystem
# zfs get mounted pool/filesystem
NAME
PROPERTY
VALUE
pool/filesystem mounted
yes
SOURCE
default
SOURCE
-
Vous pouvez galement dfinir la proprit mountpoint de manire explicite, comme dans
l'exemple suivant :
# zfs set mountpoint=/mnt pool/filesystem
# zfs get mountpoint pool/filesystem
NAME
PROPERTY
VALUE
pool/filesystem mountpoint
/mnt
# zfs get mounted pool/filesystem
NAME
PROPERTY
VALUE
pool/filesystem mounted
yes
SOURCE
local
SOURCE
-
165
commandes ZFS mount et umount ne s'appliquent pas ces jeux de donnes. Les exemples
suivants illustrent les commandes de dfinition et de gestion d'un jeu de donnes ZFS hrit :
# zfs set mountpoint=legacy tank/home/eschrock
# mount -F zfs tank/home/eschrock /mnt
Vous devez en outre les monter en crant des entres dans le fichier /etc/vfstab. Sinon, le
service system/filesystem/local entre en mode de maintenance l'initialisation du systme.
Pour monter automatiquement un systme de fichiers hrit, vous devez ajouter une entre au
fichier /etc/vfstab. L'exemple suivant illustre une forme possible de l'entre ajoute au
fichier /etc/vfstab :
#device
#to mount
#
device
to fsck
tank/home/eschrock -
mount
point
/mnt
FS
type
zfs
fsck
pass
mount mount
at boot options
yes
Les entres device to fsck et fsck pass sont dfinies sur -. Cette syntaxe s'explique par
l'absence d'application de la commande fsck aux systmes de fichiers ZFS. Pour plus
d'informations sur l'intgrit des donnes et sur l'absence d'application de la commande fsck
au systme ZFS, reportez-vous la section Smantique transactionnelle la page 35.
/tank
/tank/home
/tank/home/bonwick
/tank/ws
L'option -a permet de monter tous les systmes de fichiers ZFS. Les systmes de fichiers hrits
ne sont pas monts. Exemple :
# zfs mount -a
Par dfaut, le systme ZFS autorise uniquement le montage sur les rpertoires vides. Pour forcer
une opration de montage effectue sur un rpertoire non vide, spcifiez l'option -O. Exemple :
166
La gestion des points de montage hrits doit s'effectuer l'aide des outils hrits. Toute
tentative d'utilisation des outils ZFS gnre une erreur. Exemple :
# zfs mount pool/home/billm
cannot mount pool/home/billm: legacy mountpoint
use mount(1M) to mount this filesystem
# mount -F zfs tank/home/billm
Le montage d'un systme de fichiers requiert l'utilisation d'un ensemble d'options bases sur les
valeurs des proprits associes au jeu de donnes. Le tableau ci-dessous illustre la corrlation
entre les proprits et les options de montage :
Proprit
Options de montage
devices
devices/nodevices
exec
exec/noexec
readonly
ro/rw
setuid
setuid/nosetuid
Dans cet exemple, le systme de fichiers est cens tre dmont. Pour modifier temporairement
une proprit d'un systme de fichiers mont, vous devez utiliser l'option spcifique remount.
Dans l'exemple suivant, la proprit atime est temporairement dfinie sur la valeur off pour un
systme de fichiers mont :
Chapitre 6 Gestion des systmes de fichiers ZFS
167
SOURCE
temporary
Pour plus d'informations sur la commande zfs mount, reportez-vous la page de manuel
zfs(1M).
L'exemple suivant illustre le dmontage d'un systme de fichiers avec l'argument de point de
montage :
# zfs unmount /export/home/tabriz
Si le systme de fichiers est actif ou occup, la commande unmount choue. L'option -f permet
de forcer le dmontage d'un systme de fichiers. Le dmontage forc d'un systme de fichiers
requiert une attention particulire si le contenu de ce systme est en cours d'utilisation. Ce type
d'opration peut entraner des comportements d'application imprvisibles.
# zfs unmount tank/home/eschrock
cannot unmount /export/home/eschrock: Device busy
# zfs unmount -f tank/home/eschrock
Pour garantir la compatibilit ascendante, vous pouvez dmonter les systmes de fichiers ZFS
l'aide de la commande hrite umount. Exemple :
# umount /export/home/bob
Pour plus d'informations sur la commande zfs unmount, reportez-vous la page de manuel
zfs(1M).
168
La proprit est hrite et les systmes de fichiers sont automatiquement partags lorsqu'ils sont
crs (si la proprit hrite n'est pas dfinie sur off). Exemple :
#
#
#
#
zfs
zfs
zfs
zfs
169
L'option - a permet galement de partager tous les systmes de fichiers ZFS du systme.
# zfs share -a
170
Par exemple, si un quota est dfini pour le jeu de donnes tank/home, la quantit d'espace totale
utilise par tank/home et par tous ses descendants ne peut pas excder le quota dfini. De mme,
si une rservation est dfinie pour le jeu de donnes tank/home, cette rservation s'applique
tank/home et tous ses descendants. La quantit d'espace utilise par un jeu de donnes et par
tous ses descendants est indique par la proprit used.
Outre les proprits quota et reservation, les proprits refquota et refreservation vous
permettent de grer l'espace d'un systme de fichiers sans prendre en compte l'espace utilis par
les descendants, notamment les instantans et les clones.
Considrez les points suivants pour dterminer quelles fonctions de quota et de rservation
conviennent le mieux la gestion de vos systmes de fichiers :
Les proprits quota et reservation conviennent la gestion de l'espace utilis par les jeux
de donnes.
SOURCE
local
Les quotas ZFS affectent galement la sortie des commandes zfs list et df. Exemple :
# zfs list
NAME
USED
tank/home
16.5K
tank/home/bonwick
15.0K
tank/home/bonwick/ws 6.50K
# df -h /export/home/bonwick
AVAIL
33.5G
10.0G
10.0G
REFER
8.50K
8.50K
8.50K
MOUNTPOINT
/export/home
/export/home/bonwick
/export/home/bonwick/ws
171
Filesystem
tank/home/bonwick
size
10G
Vous pouvez dfinir une valeur refquota pour un jeu de donnes qui limite la quantit d'espace
qu'il peut utiliser. Cette limite maximale n'inclut pas l'espace utilis par les instantans et les
clones. Exemple :
# zfs set refquota=10g students/studentA
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
profs
106K 33.2G
18K /profs
students
57.7M 33.2G
19K /students
students/studentA 57.5M 9.94G 57.5M /students/studentA
# zfs snapshot students/studentA@today
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
profs
106K 33.2G
18K /profs
students
57.7M 33.2G
19K /students
students/studentA
57.5M 9.94G 57.5M /students/studentA
students/studentA@today
0
- 57.5M -
Par souci de commodit, vous pouvez dfinir un autre quota pour un jeu de donnes afin de
vous aider grer l'espace utilis par les instantans. Exemple :
# zfs set quota=20g students/studentA
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
profs
106K 33.2G
18K /profs
students
57.7M 33.2G
19K /students
students/studentA
57.5M 9.94G 57.5M /students/studentA
students/studentA@today
0
- 57.5M -
Dans ce scnario, studentA peut atteindre la limite maximale de refquota (10 Go) mais peut
supprimer des fichiers pour librer de l'espace mme en prsence d'instantans.
172
Dans l'exemple ci-dessus, le plus petit des deux quotas (10 Go par opposition 20 Go) s'affiche
dans la sortie de zfs list. Pour afficher la valeur des deux quotas, utilisez la commande zfs
get. Exemple :
# zfs get refquota,quota students/studentA
NAME
PROPERTY VALUE
students/studentA refquota 10G
students/studentA quota
20G
SOURCE
local
local
SOURCE
local
Les rservations ZFS peuvent affecter la sortie de la commande zfs list. Exemple :
# zfs list
NAME
tank/home
tank/home/moore
Notez que tank/home utilise 5 Go d'espace bien que la quantit totale d'espace laquelle
tank/home et ses descendants font rfrence est bien infrieure 5 Go. L'espace utilis
correspond l'espace rserv pour tank/home/moore. Les rservations sont prises en compte
dans l'espace utilis des jeux de donnes parent et non dans le quota, la rservation ou les deux.
# zfs set quota=5G pool/filesystem
# zfs set reservation=10G pool/filesystem/user1
cannot set reservation for pool/filesystem/user1: size is greater than
available space
Un jeu de donnes peut utiliser une quantit d'espace suprieure celle indique par sa
rservation. Pour cela, le pool doit contenir une quantit d'espace non rserve suffisante et la
173
quantit d'espace utilise par le jeu de donnes doit tre infrieur au quota dfini pour ce jeu. Un
jeu de donnes ne peut pas utiliser l'espace rserv pour un autre jeu de donnes.
Les rservations ne sont pas cumulatives. En d'autres termes, l'excution d'une nouvelle
commande zfs set pour un jeu de donnes dj associ une rservation n'entrane pas l'ajout
de la nouvelle rservation la rservation existante. La seconde rservation remplace la
premire.
# zfs set reservation=10G tank/home/moore
# zfs set reservation=5G tank/home/moore
# zfs get reservation tank/home/moore
NAME
PROPERTY
VALUE
tank/home/moore reservation 5.00G
SOURCE
local
Vous pouvez dfinir une valeur refreservation afin de garantir l'espace pour un jeu de
donnes qui n'inclut pas l'espace utilis par les instantans ni les clones. La valeur
refreservation est prise en compte dans l'espace utilis des jeux de donnes parent et vient en
dduction des quotas et rservations des jeux de donnes parent. Exemple :
# zfs set refreservation=10g profs/prof1
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
profs
10.0G 23.2G
19K /profs
profs/prof1
10G 33.2G
18K /profs/prof1
Vous pouvez galement dfinir une valeur de rservation pour le mme jeu de donnes afin de
garantir l'espace du jeu de donnes et pas de l'espace des instantans. Exemple :
# zfs set reservation=20g profs/prof1
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
profs
20.0G 13.2G
19K /profs
profs/prof1
10G 33.2G
18K /profs/prof1
Les rservations rgulires sont prises en compte dans l'espace utilis du parent.
Dans l'exemple ci-dessus, le plus petit des deux quotas (10 Go par opposition 20 Go) s'affiche
dans la sortie de zfs list. Pour afficher la valeur des deux quotas, utilisez la commande zfs
get. Exemple :
# zfs get reservation,refreserv profs/prof1
NAME
PROPERTY
VALUE
SOURCE
profs/prof1 reservation
20G
local
profs/prof1 refreservation 10G
local
174
175
176
C H A P I T R E
Ce chapitre fournit des informations sur la cration et la gestion d'instantans et de clones ZFS.
Il contient galement des informations relatives l'enregistrement d'instantans.
Il contient les sections suivantes :
Une seule opration, dite atomique, permet de crer rapidement des instantans rcursifs.
Ceux-ci sont tous crs simultanment ou ne sont pas crs du tout. Grce ce type de
slection instantane, les oprations atomiques assurent ainsi la cohrence des donnes, y
compris pour les systmes de fichiers descendants.
Il n'est pas possible d'accder directement aux instantans de volumes, mais ils peuvent tre
clons, sauvegards, restaurs, etc. Pour plus d'informations sur la sauvegarde d'un instantan
ZFS, reportez-vous la section Envoi et rception de donnes ZFS la page 184.
Le nom de l'instantan doit respecter les conventions d'attribution de noms dcrites dans la
section Exigences d'attribution de noms de composants ZFS la page 40.
Dans l'exemple suivant, un instantan de tank/home/ahrens nomm friday est cr.
# zfs snapshot tank/home/ahrens@friday
Vous pouvez crer des instantans pour tous les systmes de fichiers descendants l'aide de
l'option -r. Exemple :
# zfs snapshot -r tank/home@now
# zfs list -t snapshot
NAME
USED AVAIL
tank/home@now
0
tank/home/ahrens@now
0
tank/home/anne@now
0
tank/home/bob@now
0
tank/home/cindys@now
0
-
REFER
29.5K
2.15M
1.89M
1.89M
2.15M
MOUNTPOINT
-
Les proprits des instantans ne sont pas modifiables. Les proprits des jeux de donnes ne
peuvent pas tre appliques un instantan.
# zfs set compression=on tank/home/ahrens@tuesday
cannot set compression property for tank/home/ahrens@tuesday: snapshot
properties cannot be modified
La destruction d'un jeu de donnes est impossible s'il existe des instantans du jeu de donnes.
Exemple :
# zfs destroy tank/home/ahrens
cannot destroy tank/home/ahrens: filesystem has children
use -r to destroy the following datasets:
tank/home/ahrens@tuesday
tank/home/ahrens@wednesday
tank/home/ahrens@thursday
En outre, afin de pouvoir dtruire l'instantan utilis pour crer les clones, vous devez au
pralable dtruire les clones.
Pour de plus amples informations sur la sous-commande destroy, reportez-vous la section
Destruction d'un systme de fichiers ZFS la page 141.
L'opration de renommage d'instantan n'est pas prise en charge, car le nom du pool cible et
celui du systme de fichiers ne correspondent pas au pool et au systme de fichiers dans lesquels
l'instantan a t cr.
# zfs rename tank/home/cindys@today pool/home/cindys@saturday
cannot rename to pool/home/cindys@today: snapshots must be part of same
dataset
Vous pouvez renommer de manire rcursive les instantans l'aide de la commande zfs
rename - r. Exemple :
# zfs list
NAME
users
users/home
users/home@yesterday
users/home/markm
users/home/markm@yesterday
users/home/marks
USED
270K
76K
0
18K
0
18K
179
users/home/marks@yesterday
0
18K
users/home/neil
18K 16.5G
18K
users/home/neil@yesterday
0
18K
# zfs rename -r users/home@yesterday @2daysago
# zfs list -r users/home
NAME
USED AVAIL REFER
users/home
76K 16.5G
22K
users/home@2daysago
0
22K
users/home/markm
18K 16.5G
18K
users/home/markm@2daysago
0
18K
users/home/marks
18K 16.5G
18K
users/home/marks@2daysago
0
18K
users/home/neil
18K 16.5G
18K
users/home/neil@2daysago
0
18K
/users/home/neil
-
MOUNTPOINT
/users/home
/users/home/markm
/users/home/marks
/users/home/neil
-
Vous pouvez rpertorier les instantans qui ont t crs pour un systme de fichiers particulier
comme suit :
# zfs list -r -t snapshot -o name,creation tank/home
NAME
CREATION
tank/home@now
Wed Aug 27 16:35 2008
tank/home/ahrens@tuesday
Wed Aug 27 16:35 2008
tank/home/ahrens@wednesday Wed Aug 27 16:35 2008
tank/home/ahrens@thursday Wed Aug 27 16:36 2008
tank/home/cindys@now
Wed Aug 27 16:37 2008
180
Dans l'exemple ci-dessus, les instantans wednesday et thursday sont supprims en raison de
la restauration de l'instantan tuesday prcdent.
# zfs list -r -t snapshot -o name,creation tank/home/ahrens
NAME
CREATION
tank/home/ahrens@tuesday Wed Aug 27 16:35 2008
Chapitre 7 Utilisation des instantans et des clones ZFS
181
Les clones se crent uniquement partir d'un instantan. Lors du clonage d'un instantan, une
dpendance implicite se cre entre le clone et l'instantan. Mme en cas de cration d'un clone
un autre emplacement de la hirarchie, l'instantan d'origine ne peut pas tre dtruit tant que le
clone existe. La proprit origin indique cette dpendance et la commande zfs destroy
rpertorie ces dpendances, le cas chant.
Un clone n'hrite pas des proprits du jeu de donnes partir duquel il a t cr. Les
commandes zfs get et zfs set permettent d'afficher et de modifier les proprits d'un jeu de
donnes clon. Pour de plus amples informations sur la configuration des proprits de jeux de
donnes ZFS, reportez-vous la section Dfinition des proprits ZFS la page 158.
Dans la mesure o un clone partage initialement son espace disque avec l'instantan d'origine,
la proprit used est initialement gale zro. mesure que le clone est modifi, il utilise de
plus en plus d'espace. La proprit used de l'instantan d'origine ne tient pas compte de l'espace
disque consomm par le clone.
#
#
#
#
zfs
zfs
zfs
zfs
snapshot projects/newproject@today
clone projects/newproject@today projects/teamA/tempuser
set sharenfs=on projects/teamA/tempuser
set quota=5G projects/teamA/tempuser
183
Dans la sortie de zfs list, vous pouvez voir que la comptabilisation de l'espace du systme de
fichiers productA d'origine a t remplace par le systme de fichiers productAbeta.
Pour terminer le processus de remplacement de clone, renommez les systmes de fichiers.
Exemple :
# zfs rename tank/test/productA tank/test/productAlegacy
# zfs rename tank/test/productAbeta tank/test/productA
# zfs list -r tank/test
NAME
USED AVAIL REFER MOUNTPOINT
tank/test
316K 8.24G 27.5K /tank/test
tank/test/productA
288K 8.24G 288K /tank/test/productA
tank/test/productA@today
0
- 288K tank/test/productAlegacy
0 8.24G 288K /tank/test/productAlegacy
Vous pouvez galement supprimer l'ancien systme de fichiers si vous le souhaitez. Exemple :
# zfs destroy tank/test/productAlegacy
Les solutions de sauvegarde suivantes sont disponibles pour enregistrer les donnes ZFS :
184
Enregistrement d'instantans : utilisez les commandes zfs send et zfs receive pour
envoyer et recevoir un instantan ZFS. Vous pouvez enregistrer les modifications
incrmentielles entre instantans, mais la restauration individuelle de fichiers est
impossible. L'instantan du systme doit tre restaur dans son intgralit. Ces commandes
ne constituent pas une solution de sauvegarde complte pour l'enregistrement de vos
donnes ZFS.
Rplication distante Utilisez les commandes zfs send et zfs receive lorsque vous
souhaitez copier un systme de fichiers d'un systme vers un autre. Ce processus diffre d'un
produit de gestion de volume classique qui pourrait mettre les priphriques en miroir dans
un WAN. Aucune configuration ni aucun matriel spcifique n'est requis. La rplication de
systmes de fichiers ZFS a ceci d'avantageux qu'elle permet de recrer un systme de fichiers
dans un pool de stockage et de spcifier diffrents niveaux de configuration pour le nouveau
pool, comme RAID-Z, mais avec des donnes de systme de fichiers identiques.
Utilitaires d'archivage : enregistrez les donnes ZFS l'aide d'utilitaires d'archivage tels que
tar, cpio et pax, ou des produits de sauvegarde tiers.
Lors de l'envoi d'un flux complet, le systme de fichiers de destination ne doit pas exister.
Vous pouvez envoyer les donnes incrmentielles l'aide de l'option zfs send - i. Exemple :
host1# zfs send -i tank/dana@snap1 tank/dana@snap2 | ssh host2 zfs recv newtank/dana
185
La source de l'instantan1 incrmentiel peut tre spcifie comme tant le dernier composant
du nom de l'instantan. Grce ce raccourci, il suffit de spcifier le nom aprs le signe @ pour
l'instantan1, qui est considr comme provenant du mme systme de fichiers que
l'instantan2. Exemple :
host1# zfs send -i snap1 tank/dana@snap2 > ssh host2 zfs recv newtank/dana
Si vous devez stocker de nombreuses copies, vous avez la possibilit de compresser une
reprsentation de flux d'instantan ZFS l'aide de la commande gzip. Exemple :
# zfs send pool/fs@snap | gzip > backupfile.gz
Les systmes de fichiers sont inaccessibles tant qu'ils sont en cours de rception.
Le systme de fichiers d'origine recevoir ne doit pas exister tant qu'il est en cours de
transfert.
Si le nom du systme de fichiers choisi existe dj, la commande zfs rename permet de
renommer le systme de fichiers.
Exemple :
#
#
#
#
zfs
zfs
zfs
zfs
Vous pouvez utiliser zfs recv en tant qu'alias pour la commande zfs receive.
Si vous apportez des modifications au systme de fichiers de destination et souhaitez effectuer
un autre envoi incrmentiel d'instantan, vous devez au pralable restaurer le systme de
fichiers destinataire.
Par exemple, si vous effectuez les modifications dans le systme de fichiers comme ci-dessous :
186
host2# rm newtank/dana/file.1
Si vous effectuez un envoi incrmentiel de tank/dana@snap3, vous devez tout d'abord restaurer
le systme de fichiers pour recevoir le nouvel instantan incrmentiel. L'option -F permet
d'viter l'tape de restauration. Exemple :
host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 zfs recv -F newtank/dana
Si vous avez fourni accidentellement le nom d'un systme de fichiers qui ne correspond pas
la source incrmentielle la commande zfs receive, la restauration et la rception ne
s'effectuent pas correctement et le message d'erreur suivant s'affiche.
cannot send pool/fs@name: not an earlier snapshot from the same fs
Utilisez l'option zfs send -I pour envoyer tous les flux incrmentiels d'un instantan un
instantan cumul. Vous pouvez galement utiliser cette option pour envoyer un flux
incrmentiel de l'instantan d'origine pour crer un clone. L'instantan d'origine doit dj
exister sur le ct rcepteur afin d'accepter le flux incrmentiel.
Utilisez l'option zfs send -R pour envoyer un flux de rplication de tous les systmes de
fichiers descendants. Une fois reus, les proprits, instantans, systmes de fichiers
descendants et clones sont conservs.
Vous pouvez galement utiliser les deux options pour envoyer un flux de rplication
incrmentiel.
187
Les modifications apportes aux proprits, ainsi que les changements de nom et
destructions d'instantan et de systme de fichiers sont conservs.
Si l'option zfs recv -F n'est pas spcifie lors de la rception du flux de rplication, les
destructions de jeu de donnes sont ignores. La syntaxe de zfs recv -F dans ce cas peut
conserve galement sa signification de rcupration le cas chant.
Tout comme dans les autres cas (autres que zfs send -R) - i ou -I, si l'option -I est
utilise, tous les instantans crs entre instantanA et instantanD sont envoys. Si
l'option -i est utilise, seul l'instantanD (de tous les descendants) est envoy.
Pour recevoir ces nouveaux types de flux zfs send, le systme rcepteur doit excuter une
version du logiciel capable de les envoyer. La version des flux est incrmente.
Vous pouvez cependant accder des flux d'anciennes versions de pool en utilisant une
version plus rcente du logiciel. Vous pouvez par exemple envoyer et recevoir des flux crs
l'aide des nouvelles options partir d'un pool de la version 3. Vous devez par contre
excuter un logiciel rcent pour recevoir un flux envoy avec les nouvelles options.
EXEMPLE 71
MOUNTPOINT
/pool
/pool/fs
-
Vous pouvez galement utiliser la commande zfs send -I pour regrouper un instantan et un
clone d'instantan en un nouveau jeu de donnes. Exemple :
# zfs create pool/fs
# zfs snapshot pool/fs@snap1
# zfs clone pool/fs@snap1 pool/clone
188
EXEMPLE 71
#
#
#
#
#
zfs
zfs
zfs
zfs
zfs
(Suite)
snapshot pool/clone@snapA
send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I
destroy pool/clone@snapA
destroy pool/clone
receive -F pool/clone < /snaps/fsclonesnap-I
Utilisez la commande zfs send -R pour rpliquer un systme de fichiers ZFS et tous ses
systmes de fichiers descendants, jusqu' l'instantan nomm. Une fois reus, les proprits,
instantans, systmes de fichiers descendants et clones sont conservs.
Dans l'exemple suivant, des instantans des systmes de fichiers utilisateur sont crs. Un flux
de rplication de tous les instantans utilisateur est cr. Les systmes de fichiers et instantans
d'origine sont ensuite dtruits et rcuprs.
# zfs snapshot -r users@today
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
users
187K 33.2G
22K /users
users@today
0
22K users/user1
18K 33.2G
18K /users/user1
users/user1@today
0
18K users/user2
18K 33.2G
18K /users/user2
users/user2@today
0
18K users/user3
18K 33.2G
18K /users/user3
users/user3@today
0
18K # zfs send -R users@today > /snaps/users-R
# zfs destroy -r users
# zfs receive -F -d users < /snaps/users-R
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
users
196K 33.2G
22K /users
users@today
0
22K users/user1
18K 33.2G
18K /users/user1
users/user1@today
0
18K users/user2
18K 33.2G
18K /users/user2
users/user2@today
0
18K users/user3
18K 33.2G
18K /users/user3
users/user3@today
0
18K -
Vous pouvez utiliser la commande zfs send -R pour rpliquer le jeu de donnes users et ses
descendants, puis envoyer le flux rpliqu un autre pool, users2.
# zfs create users2 mirror c0t1d0 c1t1d0
# zfs receive -F -d users2 < /snaps/users-R
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
Chapitre 7 Utilisation des instantans et des clones ZFS
189
EXEMPLE 71
users
users@today
users/user1
users/user1@today
users/user2
users/user2@today
users/user3
users/user3@today
users2
users2@today
users2/user1
users2/user1@today
users2/user2
users2/user2@today
users2/user3
users2/user3@today
224K
0
33K
15K
18K
0
18K
0
188K
0
18K
0
18K
0
18K
0
33.2G
33.2G
33.2G
33.2G
16.5G
16.5G
16.5G
16.5G
-
22K
22K
18K
18K
18K
18K
18K
18K
22K
22K
18K
18K
18K
18K
18K
18K
(Suite)
/users
/users/user1
/users/user2
/users/user3
/users2
/users2/user1
/users2/user2
/users2/user3
-
190
C H A P I T R E
Ce chapitre dcrit l'utilisation des listes de contrle d'accs (ACL, Access Control List) pour
protger les fichiers ZFS en accordant plus de droits granulaires que de droits UNIX standard.
Il contient les sections suivantes :
jeu de privilges d'accs bien plus granulaire ; Pour plus d'informations, reportez-vous au
Tableau 82.
configuration et affichage avec les commandes chmod et ls, et non les commandes setfacl
et getfacl ;
191
smantique d'hritage bien plus riche pour dterminer comment les privilges d'accs sont
appliqus d'un rpertoire un sous-rpertoire, et ainsi de suite. Pour plus d'informations,
reportez-vous la section Hritage d'ACL la page 196.
Les deux modles d'ACL assurent un contrle d'accs bien plus fin, et disponible avec les droits
de fichier standard. De faon similaire aux listes de contrle d'accs POSIX-draft, les nouvelles
ACL se composent de plusieurs ACE (Access Control Entry, entres de contrle d'accs).
Les ACL POSIX-draft utilisent une seule entre pour dfinir les droits autoriss et celles qui ne
le sont pas. Le nouveau modle d'ACL dispose de deux types d'ACE qui affectent la vrification
d'accs : ALLOW et DENY. Il est en soi impossible de dduire de toute entre de contrle d'accs
(ACE) dfinissant un groupe de droits si les droits qui n'ont pas t dfinis dans cette ACE sont
ou non autoriss.
La conversion entre les ACL NFSv4 et les ACL POSIX-draft s'effectue comme suit :
Si vous employez un utilitaire compatible avec les ACL (les commandes cp, mv, tar, cpio ou
rcp, par exemple) pour transfrer des fichiers UFS avec des ACL vers un systme de fichiers
ZFS, les ACL POSIX-draft sont converties en ACL NFSv4 quivalentes.
Les ACL NFSv4 sont converties en ACL POSIX-draft. Un message tel que le suivant s'affiche
si une ACL NFSv4 n'est pas convertie en ACL POSIX-draft :
# cp -p filea /var/tmp
cp: failed to set acl entries on /var/tmp/filea
Si vous crez une archive cpio ou tar UFS avec l'option de conservation des ACL (tar -p ou
cpio -P) dans un systme excutant la version actuelle de Solaris, les ACL sont perdues en
cas d'extraction de l'archive sur un systme excutant une version prcdente de Solaris.
Tous les fichiers sont extraits avec les modes de fichier corrects, mais les entres d'ACL sont
ignores.
Vous pouvez utiliser la commande ufsrestore pour restaurer des donnes dans un systme
de fichiers ZFS. Si les donnes d'origine incluent des ACL POSIX-style, elles sont converties
en ACL NFSv4-style.
En cas de tentative de configuration d'une ACL SFSv4 dans un fichier UFS, un message tel
que le suivant s'affiche :
chmod: ERROR: ACL types are different
En cas de tentative de configuration d'une ACL POSIX dans un fichier ZFS, un message tel
que le suivant s'affiche :
# getfacl filea
File system doesnt support aclent_t style ACLs.
See acl(5) for more information on Solaris ACL support.
192
Pour obtenir des informations sur les autres limitations des ACL et des produits de sauvegarde,
reportez-vous la section Enregistrement de donnes ZFS l'aide d'autres produits de
sauvegarde la page 190.
193
group@:write_data/append_data/execute:deny
L'exemple suivant inclut un ID d'entre d'ACL car un utilisateur spcifique (type d'entre d'ACL)
est inclus dans la liste.
0:user:gozer:list_directory/read_data/execute:allow
La dsignation 2 ou ID d'index dans cet exemple identifie l'entre d'ACL dans la plus grande
ACL, qui peut prsenter plusieurs entres pour le propritaire, des UID spcifiques, un groupe
et pour tous. Vous pouvez spcifier l'ID d'index avec la commande chmod pour identifier la
partie de l'ACL que vous souhaitez modifier. Par exemple, vous pouvez identifier l'ID d'index 3
par A3 dans la commande chmod comme ci-dessous :
chmod A3=user:venkman:read_acl:allow filename
Les types d'entres d'ACL (qui sont les reprsentations d'ACL du propritaire, du groupe et
autres) sont dcrits dans le tableau suivant.
TABLEAU 81
Description
owner@
group@
everyone@
user
group
194
TABLEAU 82
Privilge d'accs
Privilge d'accs
compact
Description
add_file
add_subdirectory
append_data
delete
delete_child
excution
list_directory
read_acl
read_attributes
read_data
read_xattr
synchroniser
write_xattr
write_data
write_attributes
write_acl
195
TABLEAU 82
Privilge d'accs
Privilge d'accs
compact
write_owner
(Suite)
Description
Hritage d'ACL
L'hritage d'ACL a pour finalit de permettre un fichier ou rpertoire rcemment cr
d'hriter des ACL qui leurs sont destines, tout en tenant compte des bits de droits existants
dans le rpertoire parent.
Par dfaut, les ACL ne sont pas propages. Si vous configurez une ACL non triviale dans un
rpertoire, aucun rpertoire subsquent n'en hrite. Vous devez spcifier l'hritage d'une ACL
dans un fichier ou un rpertoire.
Les indicateurs d'hritage facultatifs sont dcrits dans le tableau suivant.
TABLEAU 83
196
Indicateur d'hritage
Indicateur d'hritage
compact
file_inherit
dir_inherit
inherit_only
no_propagate
SO
Description
De plus, vous pouvez configurer un hritage d'ACL par dfaut plus ou moins strict sur le
systme de fichiers l'aide de la proprit de systme de fichiers aclinherit. Pour de plus
amples informations, consultez la section suivante.
discard Pour les nouveaux objets, aucune entre d'ACL n'est hrite lors de la cration
d'un fichier ou d'un rpertoire. L'ACL dans le fichier ou le rpertoire est gale au mode de
droit du fichier ou rpertoire.
noallow Pour les nouveaux objets, seules les entres d'ACL hritables dont le type
d'accs est deny sont hrites.
secure restricted Pour les nouveaux objets, les droits write_owner et write_acl
sont supprims lorsqu'une entre d'ACL est hrite.
passthrough Lorsqu'une valeur de proprit est dfinie sur passthrough, les fichiers
sont crs dans un mode dtermin par les ACE hrites. Si aucune ACE pouvant tre
hrite n'affecte le mode, ce mode est alors dfini en fonction du mode demand partir
de l'application.
aclmode Cette proprit modifie le comportement des ACL lorsqu'un fichier est cr ou
chaque fois que le mode d'un fichier ou d'un rpertoire est modifi l'aide de la commande
chmod. Les valeurs possibles sont les suivantes :
discard Toutes les entres d'ACL sont supprimes l'exception des entres
ncessaires la dfinition du mode pour le fichier ou le rpertoire.
passthrough Au cours d'une opration chmod, les ACE autres que owner@, group@ ou
everyone@ ne sont modifies d'aucune manire. Les ACE owner@, group@ ou everyone@
sont dsactives afin de dfinir le mode de fichier comme demand par l'opration
chmod.
197
ZFS traite les entres d'ACL dans l'ordre dans lesquelles elles sont rpertories dans l'ACL,
en partant du haut.
Seules les entres d'ACL disposant d'un " who " correspondant au demandeur d'accs sont
traites.
Une fois le droit allow accord, ce dernier ne peut plus tre refus par la suite par une entre
d'ACL de refus dans le mme jeu de droits d'ACL.
Si vous configurez une ACL non triviale dans un rpertoire, les enfants du rpertoire n'en
hritent pas automatiquement. Si vous configurez une ACL non triviale, et souhaitez qu'elle soit
hrite par les enfants du rpertoire, vous devez utiliser les indicateurs d'hritage d'ACL. Pour
plus d'informations, consultez le Tableau 83 et la section Configuration d'hritage d'ACL
dans des fichiers ZFS en format dtaill la page 206.
Lorsque vous crez un fichier, en fonction de la valeur umask, une ACL triviale par dfaut,
similaire la suivante, est applique :
$ ls -v file.1
-r--r--r-- 1 root
root
206663 May 4 11:52 file.1
0:owner@:write_data/append_data/execute:deny
1:owner@:read_data/write_xattr/write_attributes/write_acl/write_owner
:allow
198
2:group@:write_data/append_data/execute:deny
3:group@:read_data:allow
4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
Notez que chaque catgorie d'utilisateur (owner@, group@, everyone@) de cet exemple dispose
de deux entres d'ACL. Une entre correspond aux droits deny et une autre, aux droits allow.
Voici une description de l'ACL de ce fichier :
0:owner@
1:owner@
2:group@
3:group@
4:everyone@
5:everyone@
Lorsqu'un rpertoire est cr, en fonction de la valeur umask, l'ACL par dfaut du rpertoire est
similaire l'exemple suivant :
$ ls -dv dir.1
drwxr-xr-x 2 root
root
2 Feb 23 10:37 dir.1
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data:deny
3:group@:list_directory/read_data/execute:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
Chapitre 8 Utilisation des ACL pour la protection de fichiers ZFS
199
/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
1:owner@
2:group@
3:group@
4:everyone@
5:everyone@
200
Cette syntaxe insre la nouvelle entre d'ACL l'emplacement d'ID d'index spcifi.
Pour obtenir des informations sur l'utilisation du format d'ACL compact, consultez
Configuration et affichage d'ACL dans des fichiers ZFS en format compact la page 216.
201
EXEMPLE 81
Dans l'exemple suivants, les droits write_data sont accords au groupe group@.
# chmod A2=group@:append_data/execute:deny file.1
# chmod A3=group@:read_data/write_data:allow file.1
# ls -v file.1
-rw-rw-r-- 1 root
root
206663 May 3 16:36 file.1
0:owner@:execute:deny
1:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
2:group@:append_data/execute:deny
3:group@:read_data/write_data:allow
4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
Dans l'exemple suivant, les droits du fichier file.1 sont reconfigurs sur 644.
# chmod 644 file.1
# ls -v file.1
-rw-r--r-- 1 root
root
206663 May 3 16:36 file.1
0:owner@:execute:deny
1:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
2:group@:write_data/append_data/execute:deny
3:group@:read_data:allow
4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
202
EXEMPLE 82
Cette section fournit des exemples de configuration et d'affichage d'ACL non triviales.
Dans l'exemple suivant, les droits read_data/execute sont ajouts l'utilisateur gozer dans le
rpertoire test.dir.
# chmod A+user:gozer:read_data/execute:allow test.dir
# ls -dv test.dir
drwxr-xr-x+ 2 root
root
2 Feb 16 11:12 test.dir
0:user:gozer:list_directory/read_data/execute:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Dans l'exemple suivant, les droits read_data/execute sont retirs l'utilisateur gozer.
# chmod A0- test.dir
# ls -dv test.dir
drwxr-xr-x 2 root
root
2 Feb 16 11:12 test.dir
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data:deny
3:group@:list_directory/read_data/execute:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
EXEMPLE 83
Interactions entre les ACL et les droits dans les fichiers ZFS
Ces exemples d'ACL illustrent l'interaction entre la configuration d'ACL et la modification des
bits de droit du fichier ou du rpertoire.
Dans l'exemple suivant, une ACL triviale existe dans le fichier file.2:
203
EXEMPLE 83
Interactions entre les ACL et les droits dans les fichiers ZFS
(Suite)
# ls -v file.2
-rw-r--r-- 1 root
root
2703 Feb 16 11:16 file.2
0:owner@:execute:deny
1:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
2:group@:write_data/append_data/execute:deny
3:group@:read_data:allow
4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
Dans l'exemple suivant, les droits d'ACL (allow) sont retirs everyone@.
# chmod A5- file.2
# ls -v file.2
-rw-r----- 1 root
root
2703 Feb 16 11:16 file.2
0:owner@:execute:deny
1:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
2:group@:write_data/append_data/execute:deny
3:group@:read_data:allow
4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
Dans cette sortie, les bits de droit du fichier sont rinitialiss de 655 650. Les droits de lecture
de everyone@ ont t supprims des bits de droit du fichier lorsque les droits "allow" des ACL
ont t supprims de everyone@.
Dans l'exemple suivant, l'ACL existante est remplace par des droits read_data/write_data
pour everyone@.
# chmod A=everyone@:read_data/write_data:allow file.3
# ls -v file.3
-rw-rw-rw-+ 1 root
root
1532 Feb 16 11:18 file.3
0:everyone@:read_data/write_data:allow
Dans cette sortie, la syntaxe chmod remplace effectivement l'ACL existante par les droits
read_data/write_data:allow pour les droits de lecture/criture pour le propritaire, le
groupe et everyone@. Dans ce modle, everyone@ spcifie l'accs tout utilisateur ou groupe.
Dans la mesure o aucune entre d'ACL owner@ ou group@ n'existe pour ignorer les droits pour
l'utilisateur ou le groupe, les bits de droit sont dfinis sur 666.
Dans l'exemple suivant, l'ACL existante est remplace par des droits de lecture pour l'utilisateur
gozer.
204
EXEMPLE 83
Interactions entre les ACL et les droits dans les fichiers ZFS
(Suite)
Dans cette sortie, les droits de fichier sont calcules pour tre 000 car aucune entre d'ACL
n'existe pour owner@, group@, ou everyone@, qui reprsentent les composant de droit classiques
d'un fichier. Le propritaire du fichier peut rsoudre ce problme en rinitialisant les droits (et
l'ACL) comme suit :
# chmod 655 file.3
# ls -v file.3
-rw-r-xr-x+ 1 root
root
0 Mar 8 13:24 file.3
0:user:gozer::deny
1:user:gozer:read_data:allow
2:owner@:execute:deny
3:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
4:group@:write_data/append_data:deny
5:group@:read_data/execute:allow
6:everyone@:write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:deny
7:everyone@:read_data/read_xattr/execute/read_attributes/read_acl
/synchronize:allow
EXEMPLE 84
Vous pouvez utiliser la commande chmod pour supprimer toutes les ACL non insignifiantes
d'un fichier ou d'un rpertoire.
Dans l'exemple suivant, deux ACE non insignifiantes existent dans test5.dir.
# ls -dv test5.dir
drwxr-xr-x+ 2 root
root
2 Feb 16 11:23 test5.dir
0:user:gozer:read_data:file_inherit:deny
1:user:lp:read_data:file_inherit:deny
2:owner@::deny
3:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
4:group@:add_file/write_data/add_subdirectory/append_data:deny
5:group@:list_directory/read_data/execute:allow
6:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
205
EXEMPLE 84
(Suite)
7:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Dans l'exemple suivant, les ACL non triviales pour les utilisateurs gozer et lp sont supprimes.
L'ACL restante contient les six valeurs par dfaut de owner@, group@ et everyone@.
# chmod A- test5.dir
# ls -dv test5.dir
drwxr-xr-x 2 root
root
2 Feb 16 11:23 test5.dir
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data:deny
3:group@:list_directory/read_data/execute:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Par dfaut, les ACL ne sont pas propages par le biais d'une structure de rpertoire.
Dans l'exemple suivant, une ACE non insignifiante de read_data/write_data/execute est
applique pour l'utilisateur gozer dans le fichier test.dir.
# chmod A+user:gozer:read_data/write_data/execute:allow test.dir
# ls -dv test.dir
206
EXEMPLE 85
(Suite)
0:user:gozer:list_directory/read_data/add_file/write_data/execute:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Si un sous-rpertoire test.dir est cr, l'ACE pour l'utilisateur gozer n'est pas propage.
L'utilisateur gozer n'aurait accs sub.dir que si les droits de sub.dir lui accordaient un accs
en tant que propritaire de fichier, membre de groupe ou everyone@.
# mkdir test.dir/sub.dir
# ls -dv test.dir/sub.dir
drwxr-xr-x 2 root
root
2 Jun 20 14:37 test.dir/sub.dir
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data:deny
3:group@:list_directory/read_data/execute:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
EXEMPLE 86
Cette srie d'exemples identifie les ACE du fichier et du rpertoire qui sont appliques lorsque
l'indicateur file_inherit est paramtr.
Dans l'exemple suivant, les droits read_data/write_data sont ajouts pour les fichiers dans le
rpertoire test.dir pour l'utilisateur gozer pour qu'il dispose de l'accs tout nouveau fichier.
# chmod A+user:gozer:read_data/write_data:file_inherit:allow test2.dir
# ls -dv test2.dir
drwxr-xr-x+ 2 root
root
2 Jun 20 14:38 test2.dir
0:user:gozer:read_data/write_data:file_inherit:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
207
EXEMPLE 86
(Suite)
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Dans l'exemple suivant, les droits de l'utilisateur gozer sont appliqus au fichier
test2.dir/file.2 rcemment cr. L'hritage d'ACL tant accord
(read_data:file_inherit:allow), l'utilisateur gozer peut lire le contenu de tout nouveau
fichier.
# touch test2.dir/file.2
# ls -v test2.dir/file.2
-rw-r--r--+ 1 root
root
0 Jun 20 14:39 test2.dir/file.2
0:user:gozer:write_data:deny
1:user:gozer:read_data/write_data:allow
2:owner@:execute:deny
3:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
4:group@:write_data/append_data/execute:deny
5:group@:read_data:allow
6:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
Dans la mesure o la proprit aclmode pour ce fichier est paramtre sur le mode par dfaut,
groupmask, l'utilisateur gozer ne dispose pas du droit write_data pour le fichier file.2 car les
droits de groupe du fichier ne le permettent pas.
Notez que le droit inherit_only applique lorsque les indicateurs file_inherit ou
dir_inherit sont dfinis, est utilise pour propager l'ACL dans la structure du rpertoire.
Ainsi, l'utilisateur gozer se voit uniquement accorder ou refuser le droit des droits everyone@,
moins qu'il ne soit le propritaire du fichier ou membre du groupe propritaire du fichier.
Exemple :
# mkdir test2.dir/subdir.2
# ls -dv test2.dir/subdir.2
drwxr-xr-x+ 2 root
root
2 Jun 20 14:40 test2.dir/subdir.2
0:user:gozer:list_directory/read_data/add_file/write_data:file_inherit
/inherit_only:allow
1:owner@::deny
208
EXEMPLE 86
(Suite)
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
La srie d'exemples suivants identifie les ACL du fichier et du rpertoire appliques lorsque les
indicateurs file_inherit et dir_inherit sont paramtrs.
Dans l'exemple suivant, l'utilisateur gozer se voit accorder les droits de lecture, d'criture et
d'excution hrits des fichiers et rpertoires rcemment crs.
# chmod A+user:gozer:read_data/write_data/execute:file_inherit/dir_inherit:allow
test3.dir
# ls -dv test3.dir
drwxr-xr-x+ 2 root
root
2 Jun 20 14:41 test3.dir
0:user:gozer:list_directory/read_data/add_file/write_data/execute
:file_inherit/dir_inherit:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
# touch test3.dir/file.3
# ls -v test3.dir/file.3
-rw-r--r--+ 1 root
root
0 Jun 20 14:42 test3.dir/file.3
0:user:gozer:write_data/execute:deny
1:user:gozer:read_data/write_data/execute:allow
2:owner@:execute:deny
3:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
4:group@:write_data/append_data/execute:deny
5:group@:read_data:allow
6:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
209
EXEMPLE 86
(Suite)
7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
# mkdir test3.dir/subdir.1
# ls -dv test3.dir/subdir.1
drwxr-xr-x+ 2 root
root
2 Jun 20 15:13 test3.dir/subdir.1
0:user:gozer:list_directory/read_data/add_file/write_data/execute
:file_inherit/dir_inherit/inherit_only:allow
1:user:gozer:add_file/write_data:deny
2:user:gozer:list_directory/read_data/add_file/write_data/execute:allow
3:owner@::deny
4:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
5:group@:add_file/write_data/add_subdirectory/append_data:deny
6:group@:list_directory/read_data/execute:allow
7:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
8:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Dans ces exemples, les bits de droit du rpertoire parent pour group@ et everyone@ n'accordent
pas les droits. Par consquent, l'utilisateur gozer se voit refuser ces droits. La proprit par
dfaut aclmode est securerestricted, ce qui signifie que les droits write_data et execute ne
sont pas hrits.
Dans l'exemple suivant, l'utilisateur gozer se voit accorder les droits de lecture, d'criture et
d'excution qui sont hrites pour les fichiers rcemment crs, mais ne sont pas propages vers
tout contenu subsquent du rpertoire.
# chmod A+user:gozer:read_data/write_data/execute:file_inherit/no_propagate:allow
test4.dir
# ls -dv test4.dir
drwxr-xr-x+ 2 root
root
2 Jun 20 14:46 test4.dir
0:user:gozer:list_directory/read_data/add_file/write_data/execute
:file_inherit/no_propagate:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
210
EXEMPLE 86
(Suite)
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
211
EXEMPLE 87
(Suite)
Si la proprit aclmode d'un systme de fichiers est dfinie sur discard, il est alors possible de
supprimer les ACL avec les bits de droit dans un changement de rpertoire. Exemple :
# zfs set aclmode=discard tank/cindy
# chmod A+user:gozer:read_data/write_data/execute:dir_inherit:allow test5.dir
# ls -dv test5.dir
drwxr-xr-x+ 2 root
root
2 Feb 16 11:23 test5.dir
0:user:gozer:list_directory/read_data/add_file/write_data/execute
:dir_inherit:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
# zfs set aclmode=discard tank/cindy
# chmod A+user:gozer:read_data/write_data/execute:dir_inherit:allow test5.dir
212
EXEMPLE 88
(Suite)
# ls -dv test5.dir
drwxr-xr-x+ 2 root
root
2 Jun 20 15:21 test5.dir
0:user:gozer:list_directory/read_data/add_file/write_data/execute
:dir_inherit:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Si vous dcidez ultrieurement de renforcer les bits de droit d'un rpertoire, l'ACL non triviale
est supprime. Exemple :
# chmod 744 test5.dir
# ls -dv test5.dir
drwxr--r-- 2 root
root
2 Jun 20 15:21 test5.dir
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data/execute:deny
3:group@:list_directory/read_data:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/execute/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/read_attributes/read_acl
/synchronize:allow
EXEMPLE 89
Dans l'exemple suivant, deux ACL non triviales avec hritage de fichier sont dfinies. Une ACL
autorise le droit read_data, tandis qu'un autre refuse ce droit. Cet exemple illustre galement
comment spcifier deux ACE dans la mme commande chmod.
# zfs set aclinherit=noallow tank/cindy
# chmod A+user:gozer:read_data:file_inherit:deny,user:lp:read_data:file_inherit:allow
test6.dir
# ls -dv test6.dir
drwxr-xr-x+ 2 root
root
2 Jun 20 15:24 test6.dir
0:user:gozer:read_data:file_inherit:deny
213
EXEMPLE 89
(Suite)
1:user:lp:read_data:file_inherit:allow
2:owner@::deny
3:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
4:group@:add_file/write_data/add_subdirectory/append_data:deny
5:group@:list_directory/read_data/execute:allow
6:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
7:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Comme l'illustre l'exemple suivant, lors de la cration d'un nouveau fichier, l'ACL qui autorise
le droit read_data est supprime.
# touch test6.dir/file.6
# ls -v test6.dir/file.6
-rw-r--r-- 1 root
root
0 Jun 20 15:25 test6.dir/file.6
0:owner@:execute:deny
1:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
2:group@:write_data/append_data/execute:deny
3:group@:read_data:allow
4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
EXEMPLE 810
Un systme de fichiers dont la proprit aclinherit est dfinie sur passthrough hrite de
toutes les entres d'ACL pouvant tre hrites, sans qu'aucune modification ne leur soit
apporte. Lorsque cette proprit est dfinie sur passthrough, les fichiers sont crs avec un
mode de droit dtermin par les ACE pouvant tre hrites. Si aucune ACE pouvant tre hrite
n'affecte le mode de droit, ce mode est alors dfini en fonction du mode demand partir de
l'application.
Les exemples suivants utilisent la syntaxe ACL compacte pour illustrer le processus d'hritage
des bits de droit en dfinissant le mode aclinherit sur la valeur passthrough .
Dans cet exemple, une ACL est dfinie sur test1.dir pour forcer l'hritage. La syntaxe cre une
entre d'ACL owner@, group@ et everyone@ pour les fichiers nouvellement crs. Les
214
EXEMPLE 810
(Suite)
rpertoires nouvellement crs hritent d'une entre d'ACL @owner, group@ et everyone@. En
outre, les rpertoires hritent de six autres ACE qui appliquent les ACE aux rpertoires et
fichiers nouvellement crs.
# zfs set aclinherit=passthrough tank/cindys
# pwd
/tank/cindys
# mkdir test1.dir
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow
test1.dir
# ls -Vd test1.dir
drwxrwx---+ 2 root
root
2 Jul 29 10:56 test1.dir
owner@:rwxpdDaARWcCos:fd----:allow
group@:rwxp----------:fd----:allow
everyone@:--------------:fd----:allow
Dans cet exemple, un fichier nouvellement cr hrite de l'ACL dont les fichiers nouvellement
crs doivent hriter d'aprs ce qui a t spcifi.
# cd test1.dir
# touch file.1
# ls -V file.1
-rwxrwx---+ 1 root
root
0 Jul 29 10:58 file.1
owner@:rwxpdDaARWcCos:------:allow
group@:rwxp----------:------:allow
everyone@:--------------:------:allow
Dans cet exemple, un rpertoire nouvellement cr hrite la fois des ACE contrlant l'accs
ce rpertoire et des ACE appliquer ultrieurement aux enfants de ce rpertoire.
# mkdir subdir.1
# ls -dV subdir.1
drwxrwx---+ 2 root
root
2 Jul 29 10:59 subdir.1
owner@:rwxpdDaARWcCos:fdi---:allow
owner@:rwxpdDaARWcCos:------:allow
group@:rwxp----------:fdi---:allow
group@:rwxp----------:------:allow
everyone@:--------------:fdi---:allow
everyone@:--------------:------:allow
Les entres -di-- et f-i--- permettent d'appliquer l'hritage et ne sont pas prises en compte
lors du contrle d'accs. Dans cet exemple, un fichier est cr avec une ACL insignifiante dans
un autre rpertoire ne contenant pas d'ACE hrites.
215
EXEMPLE 810
(Suite)
# cd /tank/cindys
# mkdir test2.dir
# cd test2.dir
# touch file.2
# ls -V file.2
-rw-r--r-- 1 root
root
0 Jul 29 11:15 file.2
owner@:--x-----------:------:deny
owner@:rw-p---A-W-Co-:------:allow
group@:-wxp----------:------:deny
group@:r-------------:------:allow
everyone@:-wxp---A-W-Co-:------:deny
everyone@:r-----a-R-c--s:------:allow
216
owner@
owner@
group@
group@
Les droits de lecture sur le fichier sont accords au groupe (r= read_data).
everyone@
everyone@
Les droits de lecture sur le fichier et sur ses attributs sont accords toute
personne n'tant ni un utilisateur ni un groupe (r=read_data, a=append_data,
R=read_xattr , c=read_acl et s= synchronize). Le droit d'accs
synchronize n'est actuellement pas implmente.
Le format d'ACL compact dispose des avantages suivants par rapport au format d'ACL dtaill :
Les droits peuvent tre spcifis en tant qu'arguments de position pour la commande chmod.
Les tirets (-), qui n'identifient aucun droit, peuvent tre supprims. Seules les lettres
ncessaires doivent tre spcifies.
Pour obtenir des informations sur l'utilisation du format d'ACL dtaill, consultez
Configuration et affichage d'ACL dans des fichiers ZFS en format dtaill la page 200.
EXEMPLE 811
Dans l'exemple suivant, une ACL triviale existe dans le fichier file.1 :
# ls -V file.1
-rw-r-xr-x 1 root
root
206663 Feb 16 11:00 file.1
owner@:--x-----------:------:deny
owner@:rw-p---A-W-Co-:------:allow
group@:-w-p----------:------:deny
group@:r-x-----------:------:allow
everyone@:-w-p---A-W-Co-:------:deny
everyone@:r-x---a-R-c--s:------:allow
Dans cet exemple, les droits read_data/execute sont ajouts pour l'utilisateur gozer dans le
fichier file.1.
# chmod A+user:gozer:rx:allow file.1
# ls -V file.1
-rw-r-xr-x+ 1 root
root
206663 Feb 16 11:00 file.1
user:gozer:r-x-----------:------:allow
owner@:--x-----------:------:deny
owner@:rw-p---A-W-Co-:------:allow
217
EXEMPLE 811
(Suite)
group@:-w-p----------:------:deny
group@:r-x-----------:------:allow
everyone@:-w-p---A-W-Co-:------:deny
everyone@:r-x---a-R-c--s:------:allow
Une autre mthode d'ajout des mmes droits pour l'utilisateur gozer consiste insrer une ACL
un emplacement spcifique, par exemple 4. Ainsi, les ACL existantes aux emplacements 46
sont dplaces vers le bas. Exemple :
# chmod A4+user:gozer:rx:allow file.1
# ls -V file.1
-rw-r-xr-x+ 1 root
root
206663 Feb 16 11:00 file.1
owner@:--x-----------:------:deny
owner@:rw-p---A-W-Co-:------:allow
group@:-w-p----------:------:deny
group@:r-x-----------:------:allow
user:gozer:r-x-----------:------:allow
everyone@:-w-p---A-W-Co-:------:deny
everyone@:r-x---a-R-c--s:------:allow
Dans l'exemple suivant, l'utilisateur gozer se voit accorder les droits de lecture, d'criture et
d'excution qui sont hrits des fichiers et rpertoires rcemment crs grce l'utilisation de
l'ACL compacte.
# chmod A+user:gozer:rwx:fd:allow dir.2
# ls -dV dir.2
drwxr-xr-x+ 2 root
root
2 Aug 28 13:21 dir.2
user:gozer:rwx-----------:fd----:allow
owner@:--------------:------:deny
owner@:rwxp---A-W-Co-:------:allow
group@:-w-p----------:------:deny
group@:r-x-----------:------:allow
everyone@:-w-p---A-W-Co-:------:deny
everyone@:r-x---a-R-c--s:------:allow
Vous pouvez galement couper et coller les droits et les indicateurs d'hritage partir de la
sortie ls -V en format chmod compact. Par exemple, afin de dupliquer les droits et les
indicateurs d'hritage du fichier dir.2 de l'utilisateur gozer l'utilisateur cindys dans le fichier
dir.2, copiez et collez les droits et les indicateurs d'hritage ( rwx-----------:f-----:allow)
dans la commande chmod. Exemple :
# chmod A+user:cindys:rwx-----------:fd----:allow dir.2
# ls -dV dir.2
drwxr-xr-x+ 2 root
root
2 Aug 28 14:12 dir.2
user:cindys:rwx-----------:fd----:allow
218
EXEMPLE 811
(Suite)
user:gozer:rwx-----------:fd----:allow
owner@:--------------:------:deny
owner@:rwxp---A-W-Co-:------:allow
group@:-w-p----------:------:deny
group@:r-x-----------:------:allow
everyone@:-w-p---A-W-Co-:------:deny
everyone@:r-x---a-R-c--s:------:allow
219
220
C H A P I T R E
Des droits individuels peuvent tre explicitement spcifis, notamment de cration (create),
de destruction (destroy), de montage (mount), d'instantan (snapshot), etc.
Des groupes de droits appels jeux de droits peuvent tre dfinis. Tout utilisateur d'un jeu de
droits est automatiquement affect par les modifications apportes celui-ci dans le cadre
d'une mis jour. Les jeux de droits commencent par la lettre @ et sont limits 64 caractres.
Les caractres suivant le caractre @ dans le nom de jeu ont les mmes restrictions que ceux
des noms de systmes de fichiers ZFS standard.
L'administration dlgue de ZFS offre des fonctions similaires au modle de scurit RBAC. Le
modle de dlgation ZFS offre les avantages suivants pour la gestion des pools de stockage et
systmes de fichiers ZFS :
Les droits sont transfrs avec le pool de stockage ZFS lorsque celui-ci est migr.
Offre un hritage dynamique vous permettant de contrler la propagation des droits dans
les systmes de fichiers.
221
Peut tre configur de manire ce que seul le crateur d'un systme de fichiers puisse
dtruire celui-ci.
Les droits peuvent tre distribus des systmes de fichiers spcifiques. Tout nouveau
systme de fichiers peut automatiquement rcuprer des droits.
Considrez l'utilisation de l'administration dlgue pour la rpartition des tches ZFS. Pour
plus d'informations sur l'utilisation de RBAC pour grer les tches d'administration gnrales
de Solaris, reportez-vous Partie III, Roles, Rights Profiles, and Privileges du System
Administration Guide: Security Services (en anglais).
Vous pouvez accorder des droits individuels un utilisateur, un groupe, voire tous les
utilisateurs.
Vous pouvez accorder des groupes de droits individuels sous forme de jeu de droits un
utilisateur, un groupe, voire tous les utilisateurs.
Vous pouvez accorder des droits localement uniquement au jeu de donnes actuel ou tous
les descendants de celui-ci.
Le tableau suivant dcrit les oprations pouvant tre dlgues et tout droit dpendant devant
raliser ces oprations dlgues.
222
Droit (sous-commande)
Description
Dpendances
allow
Clone
create
destroy
monter
promote
receive
rename
rollback
send
share
Instantan
Vous pouvez en outre dlguer les proprits ZFS suivantes des utilisateurs non root :
aclinherit
aclmode
atime
canmount
casesensitivity
Somme de contrle
compression
copies
223
devices
exec
mountpoint
nbmand
normalization
quota
readonly
recordsize
reservation
setuid
shareiscsi
sharenfs
sharesmb
snapdir
userprop
utf8only
version
volsize
vscan
xattr
zoned
Certaines de ces proprits ne peuvent tre dfinies qu' la cration d'un jeu de donnes. Pour
une description de ces proprits, reportez-vous la section Prsentation des proprits ZFS
la page 143.
La syntaxe de zfs allow suivante (en gras) identifie les utilisateurs auxquels les droits sont
dlgus :
zfs allow [-uge]|user|group|everyone [,...] filesystem | volume
Vous pouvez spcifier plusieurs entres sous forme de liste spare par des virgules. Si aucune
option -uge n'est spcifie, l'argument est interprt en premier comme le mot cl everyone,
puis comme un nom d'utilisateur et enfin, comme un nom de groupe. Pour spcifier un
utilisateur ou un groupe nomm "everyone", utilisez l'option -u ou l'option -g. Pour spcifier
un groupe portant le mme nom qu'un utilisateur, utilisez l'option -g. L'option -c accorde des
droits create-time.
224
La syntaxe de zfs allow suivante (en gras) identifie la mthode de spcification des droits et
jeux de droits :
zfs allow [-s] ... perm|@setname [,...] filesystem | volume
Vous pouvez spcifier plusieurs droits sous forme de liste spare par des virgules. Les noms de
droits sont identiques aux sous-commandes et proprits ZFS. Pour plus d'informations,
reportez-vous la section prcdente.
Les droits peuvent tre regroups en jeux de droits et sont identifis par l'option -s. Les jeux de
droits peuvent tre utiliss par d'autres commandes zfs allow pour le systme de fichiers
spcifi et ses descendants. Les jeux de droits sont valus dynamiquement et de ce fait, toute
modification apporte un jeu est immdiatement mise jour. Les jeux de droits doivent se
conformer aux mmes conventions d'attribution de noms que les systmes de fichiers ZFS,
ceci prs que leurs noms doivent commencer par le caractre arobase (@) et ne pas dpasser 64
caractres.
La syntaxe de zfs allow suivante (en gras) identifie la mthode de dlgation des droits :
zfs allow [-ld] ... ... filesystem | volume
L'option -l indique que le droit est accord au jeu de donnes spcifi mais pas ses
descendants, moins de spcifier galement l'option -d. L'option -d indique que le droit est
accord pour les jeux de donnes descendants mais pas pour l'actuel jeu de donnes, moins de
spcifier galement l'option -l. Si aucun des droits -ld n'est spcifi, les droits sont accords au
systme de fichiers ou au volume, ainsi qu' leurs descendants.
Pour supprimer ces droits, vous devez utiliser une syntaxe du type suivant :
# zfs unallow cindys tank/cindys
# zfs allow tank/cindys
Chapitre 9 Administration dlgue de ZFS
225
Cette commande affiche les droits dfinis ou accords ce jeu de donnes. La sortie contient les
composants suivants :
Jeux de droits
Droits spcifiques ou droits la cration
Jeu de donnes local
Jeux de donnes locaux et descendants
Jeux de donnes descendants uniquement
EXEMPLE 91
La sortie suivante de cet exemple indique que l'utilisateur cindys dispose des droits de cration,
de destruction, de montage et d'instantan dans le systme de fichiers tank/cindys.
# zfs allow tank/cindys
------------------------------------------------------------Local+Descendent permissions on (tank/cindys)
user cindys create,destroy,mount,snapshot
EXEMPLE 92
La sortie de cet exemple indique les droits suivants sur les systmes de fichiers pool/fred et
pool.
Pour le systme de fichiers pool/fred :
226
Les droits la cration sont dfinis pour le jeu de droits @eng et la proprit mountpoint. "
la cration" signifie qu'une fois qu'un jeu de donnes est cr, le jeu de droits @eng et la
proprit mountpoint sont accords.
Le jeu de droits @eng est accord l'utilisateur tom et les droits create, destroy et mount
pour les systmes de fichiers locaux sont accords l'utilisateur joe.
EXEMPLE 92
(Suite)
Le jeu de droits @basic, ainsi que les droits share et rename pour les systmes de fichiers
locaux et descendants sont accords l'utilisateur fred.
Le jeu de droits @basic pour les systmes de fichiers descendants uniquement est accord
l'utilisateur barney et au groupe staff.
Le jeu de droits sur le systme de fichiers local @simple est accord au groupe staff.
Lorsque vous accordez les droits create et mount un utilisateur individuel, vous devez vous
assurer que cet utilisateur dispose de droits sur le point de montage sous-jacent.
Pour accorder par exemple l'utilisateur marks les droits create et mount sur tank, dfinissez
au pralable ces droits :
# chmod A+user:marks:add_subdirectory:fd:allow /tank
Chapitre 9 Administration dlgue de ZFS
227
EXEMPLE 93
(Suite)
Utilisez ensuite la commande zfs allow pour accorder les droits create, destroy et mount.
Exemple :
# zfs allow marks create,destroy,mount tank
L'utilisateur marks peut dornavant crer ses propres systmes de fichiers dans le systme de
fichiers tank. Exemple :
# su marks
marks$ zfs create tank/marks
marks$ ^D
# su lp
$ zfs create tank/lp
cannot create tank/lp: permission denied
EXEMPLE 94
L'exemple suivant illustre la configuration d'un systme de fichiers pour que tout membre du
groupe staff puisse crer et monter des systmes de fichiers dans le systme de fichiers tank,
ainsi que dtruire ses propres systmes de fichiers. Toutefois, les membres du groupe staff ne
sont pas autoriss dtruire les systmes de fichiers des autres utilisateurs.
# zfs allow staff create,mount tank
# zfs allow -c create,destroy tank
# zfs allow tank
------------------------------------------------------------Create time permissions on (tank)
create,destroy
Local+Descendent permissions on (tank)
group staff create,mount
------------------------------------------------------------# su cindys
cindys% zfs create tank/cindys
cindys% exit
# su marks
marks% zfs create tank/marks/data
marks% exit
cindys% zfs destroy tank/marks/data
cannot destroy tank/mark: permission denied
EXEMPLE 95
Assurez-vous d'accorder les droits aux utilisateurs au niveau appropri du systme de fichiers.
Par exemple, les droits create, destroy et mount pour les systmes de fichiers locaux et
228
EXEMPLE 95
(Suite)
Pour accorder l'utilisateur marks ce droit au niveau des descendants, utilisez l'option zfs
allow - d. Exemple :
# zfs unallow -l marks snapshot tank
# zfs allow -d marks snapshot tank
# zfs allow tank
------------------------------------------------------------Descendent permissions on (tank)
user marks snapshot
Local+Descendent permissions on (tank)
user marks create,destroy,mount
------------------------------------------------------------# su marks
$ zfs snapshot tank@snap2
cannot create snapshot sandbox@snap2: permission denied
$ zfs snapshot tank/marks@snappy
L'utilisateur marks ne peut maintenant crer un instantan qu' un niveau infrieur tank.
EXEMPLE 96
Vous pouvez accorder des droits spcifiques des utilisateurs ou des groupes. Par exemple, la
commande zfs allow suivante accorde des droits spcifiques au groupe staff. En outre, les
droits destroy et snapshot sont accords aprs la cration de systmes de fichiers tank.
# zfs allow staff create,mount tank
# zfs allow -c destroy,snapshot tank
Chapitre 9 Administration dlgue de ZFS
229
EXEMPLE 96
(Suite)
tant donn que l'utilisateur marks est membre du groupe staff, il peut crer des systmes de
fichiers dans tank. En outre, l'utilisateur marks peut crer un instantan de tank/marks2 parce
qu'il dispose des droits spcifiques pour le faire. Exemple :
# su marks
$ zfs create tank/marks2
$ zfs allow tank/marks2
------------------------------------------------------------Local permissions on (tank/marks2)
user marks destroy,snapshot
------------------------------------------------------------Create time permissions on (tank)
destroy,snapshot
Local+Descendent permissions on (tank)
group staff create
everyone mount
-------------------------------------------------------------
Il ne peut par contre pas crer d'instantan dans tank/marks parce qu'il ne dispose pas des
droits spcifiques pour le faire. Exemple :
$ zfs snapshot tank/marks2@snap1
$ zfs snapshot tank/marks@snappp
cannot create snapshot tank/marks@snappp: permission denied
Si vous disposez des droits create dans votre rpertoire personnel, vous pouvez crer vos
propres rpertoires d'instantans. Ce scnario s'avre utile lorsque votre systme de fichiers est
mont sur un systme NFS. Exemple :
$ cd /tank/marks2
$ ls
$ cd .zfs
$ ls
snapshot
$ cd snapshot
$ ls -l
total 3
drwxr-xr-x 2 marks
230
staff
EXEMPLE 96
$ pwd
/tank/marks2/.zfs/snapshot
$ mkdir snap2
$ zfs list
NAME
USED
tank
264K
tank/marks
24.5K
tank/marks2
46K
tank/marks2@snap1
21.5K
tank/marks2@snap2
0
$ ls
snap1 snap2
$ rmdir snap2
$ ls
snap1
EXEMPLE 97
AVAIL
33.2G
33.2G
33.2G
-
REFER
33.5K
24.5K
24.5K
24.5K
24.5K
(Suite)
MOUNTPOINT
/tank
/tank/marks
/tank/marks2
-
L'exemple suivant illustre la cration d'un jeu de droits intitul @myset et, accorde ce jeu de
droits ainsi que le droit de renommage au groupe staff pour le systme de fichiers tank.
L'utilisateur cindys, membre du groupe staff, a le droit de crer un systme de fichiers dans
tank. Par contre, l'utilisateur lp ne dispose pas de ce droit de cration de systmes de fichiers
dans tank.
# zfs allow -s @myset create,destroy,mount,snapshot,promote,clone,readonly tank
# zfs allow tank
------------------------------------------------------------Permission sets on (tank)
@myset clone,create,destroy,mount,promote,readonly,snapshot
------------------------------------------------------------# zfs allow staff @myset,rename tank
# zfs allow tank
------------------------------------------------------------Permission sets on (tank)
@myset clone,create,destroy,mount,promote,readonly,snapshot
Local+Descendent permissions on (tank)
group staff @myset,rename
# chmod A+group:staff:add_subdirectory:fd:allow tank
# su cindys
cindys% zfs create tank/data
Cindys% zfs allow tank
------------------------------------------------------------Permission sets on (tank)
@myset clone,create,destroy,mount,promote,readonly,snapshot
Local+Descendent permissions on (tank)
Chapitre 9 Administration dlgue de ZFS
231
EXEMPLE 97
(Suite)
La syntaxe suivante de la commande zfs unallow supprime le droit de raliser des instantans
du systme de fichiers tank/cindys accord l'utilisateur cindys :
# zfs unallow cindys snapshot tank/cindys
# zfs allow tank/cindys
------------------------------------------------------------Local+Descendent permissions on (tank/cindys)
user cindys create,destroy,mount
------------------------------------------------------------cindys% zfs create tank/cindys/data
cindys% zfs snapshot tank/cindys@today
cannot create snapshot tank/cindys@today: permission denied
Autre exemple : l'utilisateur marks dispose des droits suivants dans tank/marks :
# zfs allow tank/marks
------------------------------------------------------------Local+Descendent permissions on (tank/marks)
user marks create,destroy,mount
------------------------------------------------------------232
Dans cet exemple, la syntaxe suivante de la commande zfs unallow supprime tous les droits
accords l'utilisateur marks pour tank/marks:
# zfs unallow marks tank/marks
La syntaxe suivante de la commande zfs unallow supprime un jeu de droits sur le systme de
fichiers tank.
# zfs allow tank
------------------------------------------------------------Permission sets on (tank)
@myset clone,create,destroy,mount,promote,readonly,snapshot
Create time permissions on (tank)
create,destroy,mount
Local+Descendent permissions on (tank)
group staff create,mount
------------------------------------------------------------# zfs unallow -s @myset tank
$ zfs allow tank
------------------------------------------------------------Create time permissions on (tank)
create,destroy,mount
Local+Descendent permissions on (tank)
group staff create,mount
-------------------------------------------------------------
233
234
10
C H A P I T R E
1 0
Ce chapitre dcrit les volumes ZFS, l'utilisation de ZFS dans un systme Solaris avec zones
installes, les pools racine de remplacement ZFS et les profils de droits ZFS.
Il contient les sections suivantes :
Volumes ZFS
Un volume ZFS est un jeu de donnes reprsentant un priphrique en mode bloc qui peut tre
utilis en tant que tel. Les volumes ZFS sont identifis en tant que priphriques dans le
rpertoire /dev/zvol/{dsk,rdsk}/path.
Dans l'exemple suivant, le volume ZFS tank/vol de 5 Go a t cr :
# zfs create -V 5gb tank/vol
Lors de la cration d'un volume, une rservation est automatiquement configure la taille
initiale du volume. La taille de la rservation est maintenue galit avec la taille du volume
pour viter tout comportement inattendu. Si, par exemple, la taille du volume diminue, les
donnes risquent d'tre corrompues. Vous devez faire preuve de prudence lors de la
modification de la taille du volume.
En outre, en cas de cration de l'instantan d'un volume dont la taille change, cela peut entraner
des incohrences dans le systme de fichiers si vous tentez un retour arrire de l'instantan ou
de crer un clone partir de l'instantan.
Pour de plus amples informations concernant les proprits de systmes de fichiers applicables
aux volumes, reportez-vous au Tableau 61.
235
Volumes ZFS
En cas d'utilisation d'un systme Solaris avec zones installes, la cration ou le clonage d'un
volume ZFS dans une zone non globale est impossible. Toute tentative de cration ou de
clonage d'un volume partir d'une zone non globale choue. Pour obtenir des informations
relatives l'utilisation de volumes ZFS dans une zone globale, reportez-vous la section Ajout
de volumes ZFS une zone non globale la page 240.
swaplo blocks
free
16 8257520 8257520
Lors de l'installation d'un systme de fichiers racine ZFS ou d'une migration partir d'un
systme de fichiers UFS, un priphrique de vidage est cr sur un volume ZFS du pool racine
ZFS. La taille du priphrique de vidage est base sur la moiti de la taille de la mmoire
physique. Le priphrique de vidage ne ncessite aucune administration une fois configur.
Exemple :
# dumpadm
Dump content:
Dump device:
Savecore directory:
Savecore enabled:
kernel pages
/dev/zvol/dsk/rpool/dump (dedicated)
/var/crash/t2000
yes
Volumes ZFS
N'effectuez pas de swap vers un fichier dans un systme de fichiers ZFS. La configuration de
fichier swap ZFS n'est pas prise en charge.
Pour plus d'informations sur l'ajustement de la taille des volumes de swap et de vidage,
reportez-vous la section Ajustement de la taille de vos priphriques de swap et de vidage
ZFS la page 82.
Une fois la cible iSCSI cre, configurez l'initiateur iSCSI. Pour de plus amples informations sur
les cibles iSCSI et les initiateurs Solaris, reportez-vous au Chapitre 14, Configuring Solaris
iSCSI Targets and Initiators (Tasks) du System Administration Guide: Devices and File Systems.
Remarque La commande iscsitadm permet la cration et la gestion de cibles iSCSI. Si vous
avez configur la proprit shareiscsi dans un volume ZFS, n'utilisez pas la commande
iscsitadm pour crer le mme priphrique cible. Dans le cas contraire, vous obtiendrez des
informations de cible dupliques pour le mme priphrique.
La gestion d'un volume ZFS en tant que cible iSCSI s'effectue comme pour tout jeu de donnes
ZFS. Cependant, les oprations de renommage, d'exportation et d'importation fonctionnent de
faon diffrente pour les cibles iSCSI.
Lors du renommage d'un volume ZFS, le nom de la cible iSCSI ne change pas. Exemple :
237
L'ensemble des informations de configuration de cible iSCSI est stock dans le jeu de donnes.
Tout comme un systme de fichiers NFS partag, une cible iSCSI importe dans un systme
diffrent est partage adquatement.
Ajout de systmes de fichiers ZFS une zone non globale la page 239
Dlgation de jeux de donnes une zone non globale la page 240
Ajout de volumes ZFS une zone non globale la page 240
Utilisation de pools de stockage ZFS au sein d'une zone la page 241
Gestion de proprits ZFS au sein d'une zone la page 241
Explication de la proprit zoned la page 242
Tenez compte des points suivants lors de l'association de jeux de donnes des zones :
Il est possible d'ajouter un systme de fichiers ZFS ou un clone ZFS une zone non globale
en dlguant ou non le contrle administratif.
Il est possible d'ajouter un volume ZFS en tant que priphrique des zones non globales.
Dans les sections ci-dessous, un jeu de donnes ZFS fait rfrence un systme de fichiers ou
un clone.
L'ajout d'un jeu de donnes permet la zone non globale de partager l'espace avec la zone
globale, mais l'administrateur de zone ne peut pas contrler les proprits ou crer de nouveaux
238
systmes de fichiers dans la hirarchie de systmes de fichiers sous-jacents. Cette opration est
identique l'ajout de tout autre type de systme de fichiers une zone. Effectuez-la lorsque vous
souhaitez simplement partager de l'espace commun.
ZFS autorise galement la dlgation de jeux de donnes une zone non globale, ce qui permet
l'administrateur de zone de contrler parfaitement le jeu de donnes et ses enfants.
L'administrateur de zone peut crer et dtruire les systmes de fichiers ou les clones au sein de
ce jeu de donnes et modifier les proprits des jeux de donnes. L'administrateur de zone ne
peut pas modifier les jeux de donnes non ajouts la zone et ne peut pas dpasser les quotas
maximum dfinis pour les jeux de donnes exports.
Tenez compte des interactions suivantes lorsque vous travaillez avec ZFS dans un systme ZFS
sur lequel des zones Solaris sont installes :
La proprit mountpoint d'un systme de fichiers ZFS ajout une zone non globale doit
tre dfinie sur legacy.
En raison du bogue 6449301, n'ajoutez pas de jeu de donnes ZFS une zone non globale
lorsque celle-ci est configure. Ajoutez plutt un jeu de donnes ZFS une fois la zone
installe.
Cette syntaxe permet d'ajouter le systme de fichiers ZFS tank/zone/zion la zone zion dj
configure, monte /export/shared. La proprit mountpoint du systme de fichiers doit
tre dfinie sur legacy et le systme de fichiers ne peut pas tre dj mont un autre
emplacement. L'administrateur de zone peut crer et dtruire des fichiers au sein du systme de
fichiers. Le systme de fichiers ne peut pas tre remont un emplacement diffrent. En outre,
Chapitre 10 Sections avances de ZFS
239
l'administrateur de zone ne peut pas modifier les proprits dans le systme de fichiers, telles
que atime, readonly, compression etc. L'administrateur de zone globale est charg de la
configuration et du contrle des proprits du systme de fichiers.
Pour plus d'informations sur la commande zonecfg et sur la configuration des types de
ressources l'aide de zonecfg, reportez-vous la Partie II, Zones du Guide dadministration
systme : Gestion des ressources conteneurs Solaris et des zones Solaris.
Contrairement l'ajout d'un systme de fichiers, cette syntaxe entrane la visibilit du systme
de fichiers ZFS tank/zone/zion dans la zone zion dj configure. L'administrateur de zone
peut dfinir les proprits de systme de fichiers et crer des enfants. En outre, il peut prendre
des instantans, crer des clones et contrler la hirarchie complte du systme de fichiers.
Pour de plus amples informations relatives aux actions autorises au sein des zones,
reportez-vous la section Gestion de proprits ZFS au sein d'une zone la page 241.
zonecfg:zion> create
zonecfg:zion> add device
zonecfg:zion:device> set match=/dev/zvol/dsk/tank/vol
zonecfg:zion:device> end
Cette syntaxe exporte le volume tank/vol dans la zone. Notez que l'ajout d'un volume brut
une zone comporte des risques de scurit implicites, mme si le volume ne correspond pas un
priphrique physique. L'administrateur risque notamment de crer des systmes de fichiers
non conformes qui gnreraient des erreurs graves dans le systme en cas de tentative de
montage. Pour de plus amples informations sur l'ajout de priphriques de zones et les risques
de scurits associs, reportez-vous la section Explication de la proprit zoned la page 242.
Pour plus d'informations sur l'ajout de priphriques des zones, reportez-vous la Partie II,
Zones du Guide dadministration systme : Gestion des ressources conteneurs Solaris et des
zones Solaris.
241
En cas d'ajout de tank/data/zion une zone, chaque jeu de donnes dispose des proprits
suivantes.
Jeu de donnes
Visible
Accessible en criture
Proprits immuables
tank
Oui
Non
tank/home
Non
tank/data
Oui
Non
tank/data/matrix
Non
tank/data/zion
Oui
Oui
tank/data/zion/home
Oui
Oui
sharenfs, zoned
Notez que chaque parent de tank/zone/zion est visible en lecture seule, que tous les enfants
sont accessibles en criture et les jeux de donnes qui ne font pas partie de la hirarchie parent
sont invisibles. L'administrateur de zone ne peut pas modifier la proprit sharenfs car les
zones non globales ne peuvent pas faire office de serveurs NFS. Il ne peut pas non plus modifier
la proprit zoned car cela entranerait un risque de scurit, tel que dcrit dans la section
suivante.
Toute autre proprit configurable peut tre modifie, l'exception de la proprit quota et du
jeu de donnes lui-mme. Ce comportement permet l'administrateur de zone globale de
contrler la consommation d'espace de l'ensemble des jeux de donnes utiliss par la zone non
globale.
En outre, l'administrateur de zone globale ne peut pas modifier les proprits sharenfs et
mountpoint aprs l'ajout d'un jeu de donnes une zone non globale.
La proprit zoned est une valeur boolenne automatiquement active lors de la premire
initialisation d'une zone contenant un jeu de donnes ZFS. L'activation manuelle de cette
proprit par un administrateur de zone n'est pas ncessaire. Si la proprit zoned est dfinie, le
montage ou le partage du jeu de donnes dans la zone globale est impossible et le jeu de donnes
est ignor lors de l'excution de la commande zfs share -a ou de la commande zfs mount -a.
Dans l'exemple suivant, tank/zone/zion a t ajout une zone, tandis que tank/zone/global
ne l'a pas t :
# zfs list -o name,zoned,mountpoint -r tank/zone
NAME
ZONED MOUNTPOINT
tank/zone/global
off /tank/zone/global
tank/zone/zion
on /tank/zone/zion
# zfs mount
tank/zone/global
/tank/zone/global
tank/zone/zion
/export/zone/zion/root/tank/zone/zion
Notez la diffrence entre la proprit mountpoint et le rpertoire dans lequel le jeu de donnes
tank/zone/zion est actuellement mont. La proprit mountpoint correspond la proprit
telle qu'elle est stocke dans le disque, pas l'emplacement auquel est mont le jeu de donnes
sur le systme.
Lors de la suppression d'un jeu de donnes d'une zone ou de la destruction d'une zone, la
proprit zoned n'est pas efface automatiquement. Ce comportement est d aux risques de
scurit inhrents associs ces tches. Dans la mesure o un utilisateur qui n'est pas fiable
dispose de l'accs complet au jeu de donnes et ses enfants, la proprit mountpoint risque
d'tre configure sur des valeurs errones, ou des binaires Setuid peuvent exister dans les
systmes de fichiers.
Afin de prvenir les risques de scurit accidentels, l'administrateur global doit effacer
manuellement la proprit zoned pour que le jeu de donnes puisse tre utilis nouveau.
Avant de configurer la proprit zoned sur off, assurez-vous que la proprit mountpoint pour
le jeu de donnes et tous ses enfants est configure sur des valeurs raisonnables et qu'il n'existe
aucun binaire Setuid, ou dsactivez la proprit setuid.
Aprs avoir vrifi qu'aucune vulnrabilit n'existe au niveau de la scurit, il est possible de
dsactiver la proprit zoned l'aide de la commande zfs set ou zfs inherit. Si la proprit
zoned est dsactive alors que le jeu de donnes est en cours d'utilisation au sein d'une zone, le
systme peut se comporter de faon imprvue. Ne modifiez la proprit que si vous tes sr que
le jeu de donnes n'est plus en cours d'utilisation dans une zone non globale.
243
Notez le systme de fichiers morpheus dont le point de montage est la racine de remplacement
du pool, /mnt. Le point de montage stock sur le disque est / et le chemin complet de /mnt n'est
interprt que dans le contexte du pool racine de remplacement. Ce systme de fichiers peut
ensuite tre export ou import sous un pool racine de remplacement arbitraire dans un
systme diffrent.
Dans l'exemple suivant, un pool nomm morpheus est import l'aide de /mnt en tant que
chemin racine de remplacement : Cet exemple part du principe que morpheus a t
prcdemment export.
# zpool import -R /mnt morpheus
# zpool list morpheus
NAME
SIZE
USED AVAIL
CAP HEALTH
morpheus
33.8G 68.0K 33.7G
0% ONLINE
# zfs list morpheus
NAME
USED AVAIL REFER MOUNTPOINT
morpheus
32.5K 33.5G
8K /mnt/morpheus
ALTROOT
/mnt
Gestion de stockage ZFS Permet de crer, dtruire ou manipuler les priphriques au sein
d'un pool de stockage ZFS.
Gestion de systme de fichiers ZFS Permet de crer, dtruire et modifier les systmes de
fichiers ZFS.
245
246
11
C H A P I T R E
1 1
Ce chapitre dcrit les mthodes d'identification et de rsolution des modes de panne de ZFS.
Des informations relatives la prvention des pannes sont galement fournies.
Il contient les sections suivantes :
Notez que les trois types d'erreurs peuvent se produire dans un mme pool. Une procdure de
rparation complte implique de trouver et de corriger une erreur, de passer la suivante et
ainsi de suite.
247
bogues de pilotes entranant des transferts de donnes vers ou partir d'un emplacement
erron ;
Certaines erreurs sont transitoires, par exemple une erreur d'E/S alatoire alors que le
contrleur rencontre des problmes. Dans d'autres cas, les dommages sont permanents, par
exemple lors de la corruption sur disque. En outre, mme si les dommages sont permanents,
cela ne signifie pas que l'erreur est susceptible de se reproduire. Par exemple, si un
administrateur crase une partie d'un disque par accident, aucune panne matrielle ne s'est
produite et il est inutile de remplacer le priphrique. L'identification de la squence d'erreurs
dans un priphrique n'est pas une tche aise. Elle est aborde plus en dtail dans une section
ultrieure.
La corruption de donnes est toujours permanente et ncessite une soin particulier lors de la
rparation. Mme en cas de rparation ou de remplacement des priphriques sous-jacents, les
donnes d'origine sont irrmdiablement perdues. La plupart du temps, ce scnario requiert la
restauration des donnes partir de sauvegardes. Les erreurs de donnes sont enregistres
mesure qu'elles sont dtectes et peuvent tre contrles l'aide de nettoyages de disques de
routine, comme expliqu dans la section suivante. Lorsqu'un bloc corrompu est supprim, le
nettoyage de disque suivant reconnat que la corruption n'est plus prsente et supprime toute
trace de l'erreur dans le systme.
Rparation de donnes
Avec les systmes de fichiers classiques, la mthode d'criture des donnes est affecte par les
pannes inattendues entranant des incohrences de donnes. Un systme de fichiers classique
n'tant pas transactionnel, les blocs non rfrencs, les comptes de liens dfectueux ou autres
structures de donnes incohrentes sont possibles. L'ajout de la journalisation rsout certains de
ces problmes, mais peut entraner des problmes supplmentaires lorsque la restauration du
journal est impossible. Grce ZFS, ces problmes ne se posent pas. Une incohrence des
donnes sur disque ne se produit qu' la suite d'une panne de matrielle (auquel cas le pool
aurait d tre redondant) ou en prsence d'un bogue dans le logiciel ZFS.
L'utilitaire fsck tant conu pour rparer les problmes spcifiques aux systmes de fichiers
individuels, l'criture d'un tel utilitaire pour un systme de fichiers ne prsentant pas de
problme connu est impossible. La preuve pourrait tre apporte l'avenir que certains
problmes de corruption de donnes sont suffisamment frquents et simples pour justifier le
dveloppement d'un tel utilitaire de rparation, mais ces problmes peuvent toujours tre vits
l'aide de pools redondants.
Si le pool n'est pas redondant, le risque qu'une corruption de donnes puisse rendre tout ou
partie de vos donnes inaccessibles est toujours prsent.
Validation de donnes
Outre la rparation de donnes, l'utilitaire fsck valide l'absence de problme relatif aux
donnes sur le disque. Cette tche s'effectue habituellement en dmontant le systme de fichiers
et en excutant l'utilitaire fsck, ventuellement en mettant le systme en mode utilisateur
unique lors du processus. Ce scnario entrane une indisponibilit proportionnelle la taille du
Chapitre 11 Rsolution de problmes et rcupration de donnes ZFS
249
systme de fichiers en cours de vrification. Plutt que de requrir un utilitaire explicite pour
effectuer la vrification ncessaire, ZFS fournit un mcanisme pour effectuer une vrification de
routine des donnes. Cette fonctionnalit, appele nettoyage, est frquemment utilise dans les
systmes de mmoire et autres systmes comme mthode de dtection et de prvention
d'erreurs pour viter qu'elles entranent des pannes matrielles ou logicielles.
status -v tank
tank
ONLINE
scrub completed after 0h13m with 0 errors on Thu Aug 28 09:57:41 2008
NAME
tank
mirror
c1t0d0
c1t1d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
Notez qu'une seule opration de nettoyage actif par pool peut se produire la fois.
L'option -s permet d'interrompre un nettoyage en cours. Exemple :
# zpool scrub -s tank
250
Dans la plupart des cas, une opration de nettoyage pour assurer l'intgrit des donnes doit
tre mene son terme. Vous pouvez cependant interrompre une telle opration si les
performances du systme sont affectes.
Un nettoyage de routine garantit galement des E/S continues pour l'ensemble des disques du
systme. Cet opration a cependant pour effet secondaire d'empcher la gestion de
l'alimentation de placer des disques inactifs en mode basse consommation. Si le systme ralise
en gnral des E/S en permanence, ou si la consommation n'est pas une proccupation, ce
problme peut tre ignor.
Pour de plus amples informations sur l'interprtation de la sortie de zpool status,
reportez-vous la section Requte d'tat de pool de stockage ZFS la page 123.
Les fonctions suivantes permettent d'identifier les problmes au sein de la configuration ZFS :
La commande zpool history permet d'afficher les commandes ZFS prcdentes qui ont
modifi les informations d'tat de pool.
La plupart des solutions de problmes ZFS sont axes autour de la commande zpool status.
Cette commande analyse les diffrentes erreurs systme et identifie les problmes les plus
svres. En outre, elle propose des actions effectuer et un lien vers un article de connaissances
Chapitre 11 Rsolution de problmes et rcupration de donnes ZFS
251
pour de plus amples informations. Notez que cette commande n'identifie qu'un seul problme
dans le pool, mme si plusieurs problmes existent. Par exemple, les erreurs de corruption de
donnes impliquent toujours la panne d'un priphrique. Le remplacement d'un priphrique
dfaillant ne rgle pas les problmes de corruption de donnes.
En outre, un moteur de diagnostic ZFS est fourni pour diagnostiquer et rapporter les
dfaillances de pool ou de priphriques. Les erreurs lies aux sommes de contrle, aux E/S et
aux priphriques font galement l'objet d'un rapport lorsqu'elles sont lies la dfaillance d'un
pool ou d'un priphrique. Les dfaillances ZFS telles que rapportes par fmd s'affichent sur la
console ainsi que les dans le fichier de messages systme. Dans la plupart des cas, le message fmd
vous dirige vers la commande zpool status pour obtenir des instructions supplmentaires de
rcupration.
Le processus de rcupration est comme dcrit ci-aprs :
Le cas chant, la commande zpool history permet d'identifier les commandes ZFS
prcdentes ayant entran le scnario d'erreur. Exemple :
# zpool history
History for tank:
2007-04-25.10:19:42 zpool create tank mirror c0t8d0 c0t9d0 c0t10d0
2007-04-25.10:19:45 zfs create tank/erick
2007-04-25.10:19:55 zfs set checksum=off tank/erick
Notez dans la sortie ci-dessous que les sommes de contrle sont dsactives pour le systme
de fichiers tank/erick. Cette configuration est dconseille.
Identifiez les erreurs l'aide des messages fmd affichs sur la console systme ou dans les
fichiers /var/adm/messages.
252
Sans l'indicateur -x, la commande affiche l'tat complet de tous les pools (ou du pool demand
s'il est spcifi sur la ligne de commande), mme si les pools sont autrement fonctionnels.
Pour de plus amples informations sur les options de ligne de commande de la commande zpool
status, reportez-vous la section Requte d'tat de pool de stockage ZFS la page 123.
status tank
tank
DEGRADED
One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using zpool online or replace the device with
zpool replace.
scrub: none requested
config:
NAME
tank
mirror
c1t0d0
c1t1d0
STATE
READ WRITE CKSUM
DEGRADED
0
0
0
DEGRADED
0
0
0
ONLINE
0
0
0
OFFLINE
0
0
0
253
pool
Nom du pool.
state
status
Description du problme dans le pool. Ce champ est absent si aucun problme n'est
dtect.
action
see
scrub
Identifie l'tat actuel d'une opration de nettoyage. Ce champ peut indiquer la date
et l'heure du dernier nettoyage, un nettoyage en cours ou l'absence de requte de
nettoyage.
errors
Informations de configuration
Le champ config de la sortie zpool status dcrit la configuration des priphriques incluant
le pool, ainsi que leur tat et toute erreur gnre partir des priphriques. L'tat peut tre l'un
des suivants : ONLINE, FAULTED, DEGRADED, UNAVAILABLE ou OFFLINE. Si l'tat n'est pas ONLINE, la
tolrance de pannes du pool a t compromise.
La deuxime section de la sortie de configuration affiche des statistiques d'erreurs. Ces erreurs
se divisent en trois catgories :
READ : des erreurs d'E/S se sont produites lors de l'envoi d'une requte de lecture.
WRITE : des erreurs d'E/S se sont produites lors de l'envoi d'une requte d'criture.
Il est possible d'utiliser ces erreurs pour dterminer si les dommages sont permanents. Des
erreurs d'E/S peu nombreuses peuvent indiquer une interruption de service temporaire. Si elles
sont nombreuses, il est possible que le priphrique prsente un problme permanent. Ces
erreurs ne correspondent pas ncessairement la corruption de donnes telle qu'interprte par
les applications. Si la configuration du priphrique est redondante, les priphriques de disque
peuvent prsenter des erreurs impossibles corriger, mme si aucune erreur ne s'affiche au
254
niveau du priphrique RAID-Z ou du miroir. Si c'est ce scnario qui se produit, ZFS a rcupr
les donnes adquates et a russi rparer les donnes endommages pour les rpliques
existantes.
Pour de plus amples informations sur l'interprtation de ces erreurs pour dterminer une panne
de priphrique, reportez-vous la section Dtermination du type de panne de priphrique
la page 259.
Enfin, les informations auxiliaires supplmentaire sont affiches dans la dernire colonne de la
sortie de zpool status. Ces informations s'tendent dans le champ state et facilitent le
diagnostic de modes de panne. Si l'tat d'un priphrique est FAULTED, ce champ indique si
priphrique est inaccessible ou si les donnes du priphrique sont corrompues. Si le
priphrique est en cours de rargenture, ce champ affiche la progression du processus.
Pour de plus amples informations sur le contrle de la progression de la rargenture,
reportez-vous la section Affichage de l'tat de rargenture la page 265.
tat du nettoyage
La troisime section de la sortie zpool status dcrit l'tat actuel de tout nettoyage explicite.
Ces informations sont distinctes de la dtection d'erreurs dans le systme, mais il est possible de
les utiliser pour dterminer l'exactitude du rapport d'erreurs de corruption de donnes. Si le
dernier nettoyage s'est rcemment termin, toute corruption de donnes existante aura
probablement dj t dtect.
Pour de plus amples informations sur le nettoyage de donnes et l'interprtation de ces
informations, reportez-vous la section Vrification de l'intgrit des donnes ZFS
la page 249.
255
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://www.sun.com/msg/ZFS-8000-8A
scrub: resilver completed with 1 errors on Thu Aug 28 09:58:22 MDT 2008
config:
NAME
tank
mirror
c1t0d0
c1t1d0
STATE
READ WRITE CKSUM
DEGRADED
0
0
1
DEGRADED
0
0
1
ONLINE
0
0
2
UNAVAIL
0
0
0 corrupted data
La commande fmd affiche galement un message similaire dans la console systme et le fichier
/var/adm/messages. La commande fmdump permet galement de raliser le suivi de ces
messages.
Pour de plus amples informations sur l'interprtation d'erreurs de corruption de donnes,
reportez-vous la section Identification du type de corruption de donnes la page 268.
256
257
L'tape suivante consiste excuter la commande zpool status -x pour visualiser des
informations plus dtailles sur le problme du priphrique et sa rsolution. Exemple :
Cette sortie indique que le priphrique manquant c0t1d0 ne fonctionne pas. Si vous
dterminez que le priphrique est dfectueux, remplacez-le.
Excutez ensuite la commande zpool online pour mettre le priphrique remplac en ligne.
Exemple :
# zpool online tank c0t1d0
258
Bit rot Sur la dure, des vnements alatoires, tels que les influences magntiques et les
rayons cosmiques, peuvent entraner une inversion des bits stocks dans le disque dans des
moments imprvisibles. Ces vnements sont relativement rares mais, cependant, assez
courants pour entraner des corruptions de donnes potentielles dans des systmes de
grande taille ou de longue dure. Ces erreurs sont typiquement transitoires.
Erreur d'administrateur Les administrateurs peuvent craser par erreur des parties du
disque avec des donnes errones (la copie de /dev/zero sur des partie du disque, par
exemple) qui entranent la corruption permanente du disque. Ces erreurs sont toujours
transitoires.
Matriel dfectueux ou peu fiable Cette situation englobe tous les problmes lis un
matriel dfectueux. Il peut s'agir d'erreurs d'E/S constantes, de transports dfectueux
entranant des corruptions alatoires ou d'autres dfaillances. Ces erreurs sont typiquement
permanentes.
Priphrique mis hors ligne Si un priphrique est hors ligne, il est considr comme
ayant t mis hors ligne par l'administrateur, parce qu'il tait dfectueux. L'administrateur
qui a mis ce dispositif hors ligne peut dterminer si cette hypothse est exacte.
259
Il est parfois difficile de dterminer la nature exacte de la panne. La premire tape consiste
examiner le dcompte d'erreurs dans la sortie de zpool status comme suit :
# zpool status -v pool
Les erreurs sont divises en erreurs d'E/S et en erreurs de sommes de contrle. Ces deux
catgories peuvent indiquer le type de panne possible. Une opration typique renvoie un trs
petit nombre d'erreurs (quelques-unes sur une longue priode). Si les erreurs sont nombreuses,
un priphrique est probablement en panne ou sur le point de tomber en panne. Cependant, les
problmes gnrs par l'erreur d'administrateur peuvent entraner un grand nombre d'erreurs.
Le journal systme constitue une autre source d'informations. Si le journal prsente un grand
nombre de messages SCSI ou de pilote Fibre Channel, il existe probablement de graves
problmes matriels. L'absence de messages syslog indique que les dommages sont
probablement transitoires.
L'objectif est de rpondre la question suivante :
Est-il possible qu'une autre erreur se produise dans ce priphrique ?
Les erreurs qui ne se produisent qu'une fois sont considres transitoires et n'indiquent pas une
panne potentielle. Les erreurs suffisamment persistantes ou svres pour indiquer une panne
matrielle potentielle sont considres comme tant des "erreurs fatales". Aucun logiciel
automatis actuellement disponible avec ZFS ne permet de dterminer le type d'erreur. Par
consquent, l'administrateur doit procder manuellement. Une fois l'erreur dtermine, vous
pouvez raliser l'action adquate. En cas d'erreurs fatales, effacez les erreurs transitoires ou
remplacez le priphrique. Ces procdures de rparation sont dcrites dans les sections
suivantes.
Mme si les erreurs de priphriques sont considres comme tant transitoires, elles peuvent
tout de mme entraner des erreurs de donnes impossibles corriger au sein du pool. Ces
erreurs requirent des procdures de rparation spciales, mme si le priphrique sous-jacent
est considr comme tant fonctionnel ou rpar. Pour de plus amples informations sur la
rparation d'erreurs de donnes, reportez-vous la section Rparation de donnes
endommages la page 267.
260
Cette syntaxe efface toutes les erreurs associes au priphrique et tout dcompte d'erreurs de
donnes associes au priphrique.
Pour effacer toutes les erreurs associes aux priphriques virtuels du pool et tout dcompte
d'erreurs de donnes associes au pool, utilisez la syntaxe suivante :
# zpool clear tank
Pour de plus amples informations relatives la suppression des erreurs de pool, reportez-vous
la section Suppression des priphriques de pool de stockage la page 114.
DEGRADED
ONLINE
FAULTED
261
Le disque c1t0d0 peut galement tre remplac, mais un autortablissement des donnes est
impossible, car il n'existe aucune rplique correcte.
Dans la configuration suivante, aucun des disques dfaillants ne peut tre remplac. Les disques
ONLINE ne peuvent pas l'tre non plus, car le pool lui-mme est dfaillant.
raidz
c1t0d0
c2t0d0
c3t0d0
c3t0d0
FAULTED
ONLINE
FAULTED
FAULTED
ONLINE
Dans la configuration suivante, chacun des disques de niveau suprieur peut tre remplac.
Cependant, les donnes incorrectes seront galement copies dans le nouveau disque, le cas
chant.
c1t0d0
c1t1d0
ONLINE
ONLINE
Si les deux disques taient dfectueux, alors tout remplacement serait impossible car le pool
lui-mme serait dfectueux.
Cette commande lance la migration de donnes vers le nouveau priphrique, soit partir du
priphrique endommag, soit partir d'autres priphriques du pool s'il s'agit d'une
configuration redondante. Une fois l'excution de la commande termine, le priphrique
endommag est spar de la configuration. Il peut dornavant tre retir du systme. Si vous
262
avez dj retir le priphrique et que vous l'avez remplac par un autre dans le mme
emplacement, utilisez la forme "priphrique unique" de la commande. Exemple :
# zpool replace tank c1t0d0
L'exemple suivant illustre le remplacement d'un priphrique (c1t3d0) du pool de stockage mis
en miroir tank sur un systme Sun Fire x4500. Pour remplacer le disque c1t3d0 par un nouveau
au mme emplacement (c1t3d0), annulez la configuration du disque avant de procder au
remplacement. Les tapes de base sont les suivantes :
Mettez au pralable le disque remplacer hors ligne. Vous ne pouvez pas annuler la
configuration d'un disque utilis.
Identifiez le disque (c1t3d0) dont la configuration doit tre annule puis annulez sa
configuration. Dans cette configuration mise en miroir, le pool est endommag et le disque
est hors ligne mais le pool reste disponible.
Remplacez le disque (c1t3d0). Vrifiez que la DEL bleue, indiquant que le priphrique est
prt tre retir, est allume avant de retirer le lecteur dfaillant.
263
EXEMPLE 111
(Suite)
sata1/3
disk
connected
unconfigured ok
<Replace the physical disk c1t3d0>
# cfgadm -c configure sata1/3
# cfgadm | grep sata3/7
sata3/7::dsk/c5t7d0
disk
connected
configured ok
# zpool online tank c1t3d0
# zpool replace tank c1t3d0
# zpool status
pool: tank
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Tue Apr 22 14:44:46 2008
config:
NAME
tank
mirror
c0t1d0
c1t1d0
mirror
c0t2d0
c1t2d0
mirror
c0t3d0
c1t3d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
Notez que la commande zpool output affiche parfois l'ancien disque et le nouveau sous
l'en-tte de remplacement. Exemple :
replacing
DEGRADED
c1t3d0s0/o FAULTED
c1t3d0
ONLINE
0
0
0
0
0
0
0
0
0
264
EXEMPLE 111
(Suite)
config:
NAME
tank
mirror
c0t1d0
c1t1d0
mirror
c0t2d0
c1t2d0
mirror
c0t3d0
replacing
c1t3d0
c4t3d0
STATE
READ WRITE CKSUM
DEGRADED
0
0
0
ONLINE
0
0
0
ONLINE
0
0
0
ONLINE
0
0
0
ONLINE
0
0
0
ONLINE
0
0
0
ONLINE
0
0
0
DEGRADED
0
0
0
ONLINE
0
0
0
DEGRADED
0
0
0
OFFLINE
0
0
0
ONLINE
0
0
0
La commande zpool status doit parfois tre excute plusieurs fois jusqu' la fin du
remplacement du disque.
# zpool
pool:
state:
scrub:
config:
status tank
tank
ONLINE
resilver completed after 0h0m with 0 errors on Tue Apr 22 14:54:50 2008
NAME
tank
mirror
c0t1d0
c1t1d0
mirror
c0t2d0
c1t2d0
mirror
c0t3d0
c4t3d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
265
ZFS n'effectue la rargenture que de la quantit minimale de donnes requises. Dans le cas
d'une brve interruption de service (et non pas du remplacement complet d'un
priphrique), vous pouvez effectuer la rargenture du disque en quelques minutes ou
quelques secondes, plutt que d'effectuer la rargenture de l'intgralit du disque ou de
compliquer l'opration avec la journalisation de " rgions sales " prise en charge par certains
gestionnaires de volume. Lors du remplacement d'un disque entier, la dure du processus de
rargenture est proportionnelle la quantit de donnes utilises dans le disque. Le
remplacement d'un disque de 500 Go ne dure que quelques secondes si le pool ne contient
que quelques giga-octets d'espace utilis.
La rargenture est un processus fiable qui peut tre interrompu, le cas chant. En cas de
mise hors-tension ou de rinitialisation du systme, le processus de rargenture reprend
exactement l o il s'est arrt, sans requrir une intervention manuelle.
status tank
tank
ONLINE
One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h2m, 16.43% done, 0h13m to go
config:
NAME
STATE
READ WRITE CKSUM
tank
DEGRADED
0
0
0
mirror
DEGRADED
0
0
0
replacing
DEGRADED
0
0
0
c1t0d0
ONLINE
0
0
0
c2t0d0
ONLINE
0
0
0
c1t1d0
ONLINE
0
0
0
Dans cet exemple, le disque c1t0d0 est remplac par c2t0d0. Cet vnement est observ dans la
sortie d'tat par la prsence du priphrique virtuel de remplacement (replacing) de la
configuration. Ce priphrique n'est pas rel et ne permet pas de crer un pool. L'objectif de ce
priphrique consiste uniquement afficher le processus de rargenture et identifier le
priphrique en cours de remplacement.
Notez que tout pool en cours de rargenture se voit attribuer l'tat ONLINE ou DEGRADED car il ne
peut pas fournir le niveau souhait de redondance tant que le processus n'est pas termin. La
rargenture s'effectue aussi rapidement que possible, mais les E/S sont toujours programmes
266
avec une priorit infrieure celle des E/S requises par l'utilisateur afin de minimiser l'impact
sur le systme. Une fois le processus termin, la nouvelle configuration complte s'applique,
remplaant l'ancienne configuration. Exemple :
# zpool
pool:
state:
scrub:
config:
status tank
tank
ONLINE
resilver completed after 0h2m with 0 errors on Thu Aug 28 09:50:11 2008
NAME
tank
mirror
c2t0d0
c1t1d0
STATE
ONLINE
ONLINE
ONLINE
ONLINE
L'tat du pool est nouveau ONLINE et le disque dfectueux d'origine (c1t0d0) a t supprim de
la configuration.
ZFS utilise les sommes de contrle, la redondance et les donnes autortablissantes afin de
rduire les risques de corruption de donnes. Cependant, la corruption de donnes peut se
produire si le pool n'est pas redondant, si la corruption s'est produite alors que le pool tait
endommag ou si une srie d'vnements improbables a corrompu plusieurs copies d'un
lment de donnes. Quelle que soit la source, le rsultat est le mme : les donnes sont
corrompues et par consquent inaccessibles. Les actions effectuer dpendent du type de
donnes corrompue et de leurs valeurs relatives. Deux types de donnes peuvent tre
corrompus :
Mtadonnes de pool ZFS requiert une certaine quantit de donnes analyser afin
d'ouvrir un pool et d'accder aux jeux de donnes. Si ces donnes sont corrompues, le pool
entier ou des parties compltes de la hirarchie du jeu de donnes sont indisponibles.
267
Donnes d'objet Dans ce cas, la corruption se produit au sein d'un fichier ou priphrique
spcifique. Ce problme peut rendre une partie du fichier ou rpertoire inaccessible ou
endommager l'objet.
Les donnes sont vrifies lors des oprations normales et lors du nettoyage. Pour de plus
amples informations sur la vrification de l'intgrit des donnes du pool, reportez-vous la
section Vrification de l'intgrit des donnes ZFS la page 249.
STATE
ONLINE
ONLINE
ONLINE
Toute erreur indique seulement qu'une erreur s'est produite un moment donn. Il est possible
que certaines erreurs ne soient plus prsentes dans le systme. Dans des circonstances
normales, cette situation est vraie. Certaines interruptions de service temporaires peuvent
entraner une corruption de donnes qui est automatiquement rpare une fois l'interruption
de service termine. Un nettoyage complet du pool examine chaque bloc actif dans le pool.
Ainsi, le journal d'erreur est rinitialis la fin de chaque nettoyage. Si vous dterminez que les
erreurs ne sont plus prsentes et ne souhaitez pas attendre la fin du nettoyage, la commande
zpool online permet de rinitialiser toutes les erreurs du pool.
Si la corruption de donnes se produit dans des mtadonnes au niveau du pool, la sortie est
lgrement diffrente. Exemple :
# zpool status -v morpheus
pool: morpheus
268
id:
state:
status:
action:
see:
config:
1422736890544688191
FAULTED
The pool metadata is corrupted.
The pool cannot be imported due to damaged devices or data.
http://www.sun.com/msg/ZFS-8000-72
morpheus
c1t10d0
FAULTED
ONLINE
corrupted data
Dans le cas d'une corruption au niveau du pool, ce dernier se voit attribuer l'tat FAULTED, car le
pool ne peut pas fournir le niveau de redondance requis.
STATE
ONLINE
ONLINE
ONLINE
269
/monkey/sub/dir/d.txt
/monkey/ghost/e.txt
/monkey/ghost/boo/f.txt
Si le chemin complet du fichier est trouv et si le jeu de donnes est mont, le chemin
complet du fichier s'affiche. Exemple :
/monkey/a.txt
Si chemin complet du fichier est trouv mais que le jeu de donnes n'est pas mont, le nom
du jeu de donnes non prcd d'un slash (/) s'affiche, suivi du chemin du fichier au sein du
jeu de donnes. Exemple :
monkey/ghost/e.txt
Si le nombre d'objet vers un chemin de fichiers ne peut pas tre converti, soit en raison d'une
erreur soit parce qu'aucun chemin de fichiers rel n'est associ l'objet, tel que c'est le cas
pour dnode_t, alors le nom du jeu de donnes s'affiche, suivi du numro de l'objet. Exemple :
monkey/dnode:<0x0>
En cas de corruption d'un MOS (Meta-Object Set, jeu de mta-objet), la balise spciale
<metadata> s'affiche, suivie du numro de l'objet.
Si la corruption se situe au sein des mtadonnes d'un rpertoire ou d'un fichier, vous devez
dplacer le fichier vers un autre emplacement. Vous pouvez dplacer en toute scurit un fichier
ou rpertoire vers un emplacement moins pratique, ce qui permettra de restaurer l'objet
d'origine sur place.
270
Utilisez la commande fmdump -eV pour afficher les pools prsentant des erreurs fatales et
dterminer ainsi quel pool pose des problmes.
Importez les pools un un en ignorant ceux qui posent problme, comme dcrit dans
fmdump.
271
272
Index
A
Accs
Instantan ZFS
(exemple), 180
ACL
ACL dans un fichier ZFS
Description dtaille, 200
ACL sur un fichier ZFS
Description dtaille, 199
Configuration d'ACL dans un fichier ZFS (mode
compact)
Exemple, 217
Configuration d'hritage d'ACL dans un fichier ZFS
(mode dtaill)
(exemple), 206
Dfinition d'ACL sur un fichier ZFS (mode compact)
Description, 216
Dfinition des ACL sur un fichier ZFS (mode
dtaill)
Description, 200
Dfinition sur les fichiers ZFS
Description, 198
Description, 191
Description de format, 193
Diffrences avec les ACL POSIX-draft, 192
Hritage d'ACL, 196
Indicateurs d'hritage d'ACL, 196
Mode de proprit aclmode, 197
Mode de proprit d'ACL, 197
Mode de propritaclinherit, 197
Modification d'une ACL insignifiante dans un fichier
ZFS (mode dtaill)
273
Index
Affichage (Suite)
tat de maintenance d'un pool de stockage ZFS
Exemple, 128
tat dtaill du fonctionnement du pool de stockage
ZFS
(exemple), 129
tat fonctionnel d'un pool de stockage
Description, 127
history, commande, 27
Rapport syslog de messages d'erreur ZFS
Description, 256
Statistiques d'E/S l'chelle du pool de stockage ZFS
Exemple, 125
Statistiques d'E/S de pool de stockage vdev ZFS
Exemple, 126
Statistiques d'E/S de pools de stockage ZFS
Description, 125
Ajout
Disques, une configuration RAID-Z
(exemple), 108
Priphrique un pool de stockage ZFS (zpool add)
Exemple, 106
Priphrique de journalisation mis en miroir
(exemple), 108
Systme de fichiers ZFS une zone non globale
Exemple, 239
Volume ZFS une zone non globale
(exemple), 240
Ajustement, Priphriques de swap et de vidage, 82
Annulation du partage
Systme de fichiers ZFS
exemple, 170
atime, proprit, Description, 144
Autortablissement, Description, 96
available, proprit, Description, 145
B
Bloc d'initialisation, Installation l'aide de installboot
et de installgrub, 84
274
C
canmount, proprit
Description, 145
Description dtaille, 153
checksum, proprit, Description, 145
Clone
Cration
Exemple, 182
Dfinition, 37
Destruction
Exemple, 183
Fonctions, 182
Comportement d'espace satur, Diffrences existant
entre les systmes de fichiers traditionnels et
ZFS, 51
Composants, Pool de stockage ZFS, 91
Composants de ZFS, Exigences d'attribution de
noms, 40
compression, proprit, Description, 146
compressratio, proprit, Description, 146
Comptabilisation de l'espace ZFS, Diffrences existant
entre les systmes de fichiers traditionnels et
ZFS, 50
Configuration
ACL dans un fichier ZFS (mode compact)
Exemple, 217
Configuration en miroir
Description, 94
Fonction de redondance, 94
Vue conceptuelle, 94
Configuration RAID-Z
Double parit, description, 94
Exemple, 98
Parit simple, description, 94
Redondance, fonction, 94
Vue conceptuelle, 94
Configuration RAID-Z, ajout de disques,
(exemple), 108
Configuration requise, Installation et Live Upgrade, 55
Connexion
Priphrique, un pool de stockage ZFS (zpool
attach)
Exemple, 109
Index
Contrle
Intgrit des donnes ZFS, 249
Validation des donnes (nettoyage), 250
copies, proprit, Description, 146
Cration
Clone ZFS
Exemple, 182
Hirarchie d'un systme de fichiers ZFS, 44
Instantan ZFS
(exemple), 178
Pool de stockage, l'aide d'un priphrique de
journalisation (exemple), 99
Pool de stockage RAID-Z double parit (zpool
create)
Exemple, 98
Pool de stockage RAID-Z parit simple (zpool
create)
Exemple, 98
Pool de stockage ZFS
Description, 97
Pool de stockage ZFS (zpool create)
(exemple), 42, 97
Pool de stockage ZFS mis en miroir (zpool create)
(exemple), 97
Pool racine de remplacement
(exemple), 244
Systme de fichiers ZFS, 46
(exemple), 140
Description, 140
Systme de fichiers ZFS de base (zpool create)
(exemple), 42
Volume mul en tant que priphrique de swap
(exemple), 236
Volume ZFS
(exemple), 235
creation, proprit, Description, 146
D
Dfinition
ACL sur les fichiers ZFS
Description, 198
ACL sur un fichier ZFS (mode compact)
Description, 216
Dfinition (Suite)
ACL sur un fichier ZFS (mode dtaill)
Description, 200
atime, proprit ZFS
(exemple), 159
compression, proprit
(exemple), 46
Hritage d'ACL dans un fichier ZFS (mode dtaill)
(exemple), 206
mountpoint, proprit, 46
Point de montage hrit
(exemple), 166
Point de montage ZFS (zfs set mountpoint)
(exemple), 165
quota, proprit (exemple), 47
Quota d'un systme de fichiers ZFS (zfs set quota)
Exemple, 171
Quota ZFS
(exemple), 159
Rservation de systme de fichiers ZFS
Exemple, 173
sharenfs, proprit
(exemple), 46
Dlgation
Droit (exemple), 227
Jeu de donnes une zone non globale
(exemple), 240
Dlgation de droits, zfs allow, 224
Dlgation de droits un groupe, (exemple), 228
Dlgation de droits un utilisateur individuel,
(exemple), 227
Dmontage
Systme de fichiers ZFS
(exemple), 168
Dpannage
Dtection de problmes ventuels (zpool status
-x), 253
Dterminer si un priphrique peut tre remplac
Description, 261
Priphrique manquant (dfaillant), 248
Problme d'identification, 252
Remplacement d'un priphrique (zpool replace)
(exemple), 266
275
Index
Dpannage (Suite)
Remplacement d'un priphrique manquant
(exemple), 257
Rparation d'un fichier ou rpertoire endommag
Description, 269
Rparation d'un systme qui ne peut tre initialis
Description, 271
Rparation d'une configuration ZFS
endommage, 257
Rparation de dommages au niveau d'un pool
Description, 270
Destruction
Clone ZFS
Exemple, 183
Instantan ZFS
(exemple), 179
Pool de stockage ZFS
Description, 97
Pool de stockage ZFS (zpool destroy)
(exemple), 105
Systme de fichiers ZFS
(exemple), 141
Systme de fichiers ZFS comportant des systmes
dpendants
(exemple), 142
Dtection
Niveaux de rplication incohrents
Exemple, 103
Priphriques en cours d'utilisation
Exemple, 102
Dtermination
Type de panne de priphrique
Description, 259
Dterminer
Remplacement d'un priphrique
Description, 261
devices, proprit, Description, 146
Diffrences existant entre les systmes de fichiers
traditionnels et ZFS
Comportement d'espace satur, 51
Comptabilisation de l'espace ZFS, 50
Gestion d'un volume traditionnel, 51
Granularit d'un systme de fichiers, 49
Montage d'un systme de fichiers ZFS, 51
276
E
Effacement
Priphrique d'un pool de stockage ZFS (zpool
clear)
Description, 114
Enregistrement
Donnes d'un systme de fichiers ZFS (zfs send)
(exemple), 185
Entrelacement dynamique
Description, 96
Fonction de pool de stockage, 96
Envoi et rception
Donnes d'un systme de fichiers ZFS
Description, 184
Etiquette EFI
Description, 92
Interaction avec ZFS, 92
exec, proprit, Description, 146
Exigences d'attribution de noms, Composants ZFS, 40
Exigences matrielles et logicielles, 41
Index
Exportation
Pool de stockage ZFS
(exemple), 131
F
Fichiers, En tant que composants d'un pool de stockage
ZFS, 94
Fonctions de rplication de ZFS, Mise en miroir ou
RAID-Z, 94
G
Gestion d'un volume traditionnel, Diffrences existant
entre les systmes de fichiers traditionnels et
ZFS, 51
Granularit d'un systme de fichiers, Diffrences
existant entre les systmes de fichiers traditionnels et
ZFS, 49
H
Hritage
Proprit ZFS (zfs inherit)
Description, 159
Hirarchie d'un systme de fichiers, Cration, 44
history, commande, zpool history, 27
I
Identification
Pool de stockage ZFS importer (zpool import -a)
(exemple), 132
Stockage requis, 43
Type de corruption de donnes (zpool status -v)
Exemple, 268
Importation
Pool de stockage ZFS
(exemple), 135
Pool de stockage ZFS, partir de rpertoires
alternatifs (zpool import -d)
J
Jeu de donnes
Dfinition, 38
Description, 139
277
Index
L
Lecture seule, proprits ZFS, mounted, 147
Liste
Descendants d'un systme de fichiers ZFS
(exemple), 156
Informations sur le pool ZFS, 44
Pool de stockage ZFS
Description, 123
Pools de stockage ZFS
Exemple, 124
Proprit ZFS (zfs list)
(exemple), 160
Proprit ZFS de script
(exemple), 163
Proprit ZFS par valeur source
(exemple), 162
Systme de fichiers ZFS
(exemple), 156
Systme de fichiers ZFS (zfs list)
(exemple), 47
Systme de fichiers ZFS sans l'en-tte
Exemple, 158
Types de systmes de fichiers ZFS
Exemple, 158
luactivate
Systme de fichier racine
(exemple), 72
lucreate
Environnement d'initialisation ZFS partir d'un
environnement d'initialisation ZFS
(exemple), 73
Migration d'un systme de fichiers racine
(exemple), 70
M
Migration
Systme de fichiers racine UFS vers systme de
fichiers racine ZFS
278
Index
N
Nettoyage
Exemple, 250
Validation des donnes, 250
Niveaux de rplication incohrents
Dtection
Exemple, 103
Notification
priphrique reconnect dans ZFS(zpool online)
Exemple, 258
O
origin, proprit, Description, 147
P
Partage
Systme de fichiers ZFS
Description, 169
Exemple, 169
Priphrique de journalisation mis en miroir, Cration
d'un pool (exemple), 99
Priphrique de journalisation mis en miroir, ajout,
(exemple), 108
Priphrique virtuel
Composant de pools de stockage ZFS, 100
Dfinition, 39
Priphriques de journalisation distincts,
considrations, 22
Priphriques de swap et de vidage
Ajustement de la taille, 82
Description, 81
Points prendre en compte, 81
Priphriques en cours d'utilisation
Dtection
Exemple, 102
Point de montage
Automatique, 165
Gestion de ZFS
Description, 164
Hritage, 164
Par dfaut pour les pools de stockage ZFS, 104
Index
Index
Index
Q
quota, proprit, Description, 147
Quota et rservation, Description, 170
R
RAID-Z, Dfinition, 39
read-only, proprit, Description, 147
Rargenture, Dfinition, 39
Rargenture et nettoyage des donnes,
Description, 251
Rception
Donnes de systme de fichiers ZFS (zfs receive)
(exemple), 186
recordsize, proprit
Description, 148
Description dtaille, 153
Rcupration
Pool de stockage ZFS dtruit
Exemple, 136
referenced, proprit, Description, 148
refquota, proprit, Description, 148
refreservation, proprit, Description, 148
Remplacement
Priphrique (zpool replace)
(exemple), 114, 266
Exemple, 262
Priphrique manquant
(exemple), 257
Renommer
Instantan ZFS
Exemple, 179
Rparation
Configuration ZFS endommage
Description, 257
Dommages au niveau d'un pool
Description, 270
Index
Rparation (Suite)
Rparation d'un fichier ou rpertoire endommag
Description, 269
Systme qui ne peut tre initialis
Description, 271
reservation, proprit, Description, 149
Rsolution de problmes
Corruption de donnes identifie (zpool status -v)
Exemple, 255
Dtermination du type de corruption de donnes
(zpool status -v)
Exemple, 268
Dtermination du type de panne de priphrique
Description, 259
Informations globales d'tat des pools
Description, 253
Mode de panne ZFS, 247
Notification d'un priphrique reconnect dans ZFS
(zpool online)
Exemple, 258
Priphrique endommag, 248
Rapport syslog de messages d'erreur ZFS, 256
Remplacement de priphrique (zpool replace)
Exemple, 262
Suppression des erreurs de priphrique (zpool
clear)
Exemple, 260
Restauration
ACL insignifiante sur un fichier ZFS (mode dtaill)
(exemple), 205
Instantan ZFS
Exemple, 181
S
Script
Sortie de pool de stockage ZFS
Exemple, 124
Smantique transactionnelle, Description, 35
Sparation
Priphrique, d'un pool de stockage ZFS (zpool
detach)
Exemple, 111
setuid, proprit, Description, 149
sharenfs, proprit
Description, 149, 169
snapdir, proprit, Description, 149
Solaris Live Upgrade
Migration d'un systme de fichiers racine, 67
(exemple), 70
Problmes de migration d'un systme de fichiers
racine, 69
Somme de contrle, Dfinition, 37
Stockage requis, Identification, 43
Stockage sur pool, Description, 34
Suppression
Erreurs de priphrique (zpool clear)
Exemple, 260
Suppression d'un droit, zfs unallow, 225
Suppression d'un priphrique
Pool de stockage ZFS
Exemple, 114
Systme de
fichiers ZFS
Exemple, 142
Systme de fichiers, Dfinition, 38
Systme de fichiers racine ZFS, Problmes de migration
d'un systme de fichiers racine, 69
Systme de fichiers ZFS
ACL dans un rpertoire ZFS
Description dtaille, 200
Administration simplifie
Description, 36
Ajout d'un systme de fichiers ZFS une zone non
globale
Exemple, 239
Ajout d'un volume ZFS une zone non globale
(exemple), 240
Annulation du partage
exemple, 170
Clone
Cration, 182
Dfinition, 37
Destruction, 183
Remplacement d'un systme de fichiers
(exemple), 183
Clones
Description, 182
283
Index
Index
T
Terminologie
Clone, 37
Instantan, 39
Jeu de donnes, 38
Miroir, 38
Priphrique virtuel, 39
Pool, 38
RAID-Z, 39
Rargenture, 39
Somme de contrle, 37
Systme de fichiers, 38
Volume, 40
Test
Cration de pool de stockage ZFS (zpool create -n)
Exemple, 104
type, proprit, Description, 149
Type de jeu de donnes, Description, 157
U
used, proprit
Description, 149
Description dtaille, 151
285
Index
V
volblocksize, proprit, Description, 150
volsize, proprit
Description, 150
Description dtaille, 154
Volume, Dfinition, 40
Volume ZFS
Description, 235
En tant que priphrique de swap, 236
X
xattr, proprit, Description, 150
Z
zfs allow
Affichage des droits dlgus, 226
Description, 224
zfs create
(exemple), 46, 140
Description, 140
zfs destroy -r, (exemple ), 142
zfs Destruction, (exemple), 141
zfs get, (exemple), 160
zfs get -H -o, (exemple), 163
zfs get -s, (exemple), 162
zfs inherit, (exemple), 159
zfs list
(exemple), 47, 156
zfs list -H, Exemple, 158
zfs list -r, (exemple), 156
zfs list -t, Exemple, 158
zfs mount, Exemple, 166
zfs promote, Promotion d'un clone (exemple), 183
zfs receive, (exemple), 186
zfs rename, Exemple, 142
286
Index
287
288