Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
elearning:workbooks:solaris:10:junior:l116 [2019/11/30 09:43] – admin | elearning:workbooks:solaris:10:junior:l116 [2020/01/30 03:28] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
+ | |||
+ | Version: **2020.01** | ||
Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
- | Version: 1.11.01 | + | ======SO210 - Gestion du système de fichiers ZFS====== |
- | + | ||
- | ======SO101 - Système de Fichiers====== | + | |
- | + | ||
- | Le système de fichiers d'Unix est organisé autour d'une arborescence unique ayant un point de départ appelé la **racine**, représenté par le caractère **/**. En dessous de cette racine se trouvent des répertoires contenant fichiers et sous-répertoires. | + | |
- | + | ||
- | =====L' | + | |
- | + | ||
- | * **/bin** : est une abréviation de ‘binary’ ou binaires. Sous Solaris /bin est un **lien symbolique** vers **/ | + | |
- | * **/cdrom** : points de montage pour les CD et DVD. | + | |
- | * **/dev** : contient des **noms logiques** d’unités utilisés pour accéder à tout type de matériel. Ce sont des liens symboliques vers des **fichiers spéciaux** du répertoire **/ | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/etc** : contient des fichiers de configuration. | + | |
- | * **/export** : contient le répertoire /home. Le répertoire /home contient les répertoires de chaque utilisateur, | + | |
- | * **/home** : contient les répertoires des comptes locaux. | + | |
- | * **/kernel** : contient le noyau Solaris (**genunix**) et les fichiers associés. | + | |
- | * **/lib** : contient les bibliothèques communes utilisées par les programmes. Sous Solaris /lib est un lien symbolique vers **/ | + | |
- | * **/ | + | |
- | * **/mnt** : répertoire utilisé pour des montages occasionnels. | + | |
- | * **/opt** : répertoire utilisé pour l' | + | |
- | * **/ | + | |
- | * **/proc** : un **pseudo-filesystem** représentant les processus en activité. | + | |
- | * **/sbin** : contient des binaires, donc programmes, pour l’administration du système local. | + | |
- | * **/system** : Point d' | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/tmp** : stocke des fichiers temporaires créés par des programmes. Il est vidé à chaque redémarrage du système. | + | |
- | * **/usr** : contient de nombreux répertoires tels : | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/var** : contient des fichiers de taille variable ainsi que des répertoires tels : | + | |
- | * **/ | + | |
- | * **/ | + | |
- | * **/vol** : répertoire du service **VOLD** (**VO**lume **M**anagement **D**aemon) utilisé pour monter et démonter automatiquement les périphériques amovibles. | + | |
- | + | ||
- | Il existe trois types majeurs de fichier sous le système Solaris: | + | |
- | + | ||
- | * les fichiers normaux ( ordinary files ) | + | |
- | + | ||
- | * les répertoires ( directories ) | + | |
- | + | ||
- | * les fichiers spéciaux ( special files ou Devices) | + | |
- | + | ||
- | Le fichiers normaux sont des fichiers textes, des tableaux ou des exécutables. | + | |
- | + | ||
- | La limite de la longueur du nom de fichier est de **255** caractères. | + | |
- | + | ||
- | Il y a une distinction entres les majuscules et le minuscules. | + | |
- | + | ||
- | Le caractère **/** est interdit dans les noms des fichiers. | + | |
- | + | ||
- | L' | + | |
- | + | ||
- | Si le nom d'un fichier commence par un ., le fichier devient caché. | + | |
- | + | ||
- | =====La commande mount===== | + | |
- | + | ||
- | La commande **mount** est utilisée pour monter un filesystem. Monter un filesystem est nécessaire afin d' | + | |
- | + | ||
- | Les filesystems montés automatiquement par Solaris lors du démarrage sont décrits dans le fichier **/ | + | |
- | + | ||
- | < | + | |
- | # cat / | + | |
- | # | + | |
- | #to mount to fsck | + | |
- | # | + | |
- | fd - / | + | |
- | /proc | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | sharefs | + | |
- | ctfs - / | + | |
- | objfs | + | |
- | swap - / | + | |
- | </ | + | |
- | + | ||
- | Ce fichier comporte 7 colonnes : | + | |
- | + | ||
- | * **device to mount** | + | |
- | * Nom de la partition en mode bloc pour un filesystem UFS ou une zone de swap | + | |
- | * Nom de la ressource NFS | + | |
- | * Nom d'un répertoire pour un filesystem virtuel | + | |
- | * **device to fsck** | + | |
- | * Nom de la partition en mode bloc pour un filesystem UFS | + | |
- | * Le signe **-** dans les autres cas car non significatif | + | |
- | * **mount point** | + | |
- | * Nom du répertoire de montage | + | |
- | * Le signe **-** dans les autres cas car non significatif | + | |
- | * **FS type** | + | |
- | * Type de filesystem | + | |
- | * **fsck pass** | + | |
- | * **-** indique que le filesystem ne sera pas vérifié par fsck | + | |
- | * **0** indique qu'un filesystem UFS ne sera pas vérifié par fsck mais un autre type sera vérifié | + | |
- | * **1** indique que le filesystem sera vérifié par fsck dans l' | + | |
- | * **2** indique que le filesystem sera vérifié par fsck en parallèle | + | |
- | * **mount at boot** | + | |
- | * désigne si oui ou non le filesystem est monté au boot par la commande **mountall** | + | |
- | * le filesystem racine prend toujours la valeur **no** car il est déjà monté au moment de l' | + | |
- | * **mount options** | + | |
- | * la valeur **-** indique toutes les options par défaut | + | |
- | * ce champs peut comporter une liste d' | + | |
- | * dans le cas d'un filesystem UFS, l' | + | |
- | + | ||
- | + | ||
- | Afin de monter un filesystem manuellement il est nécessaire de connaître : | + | |
- | + | ||
- | * le nom da la partition exprimé sous la forme du fichier spécial en mode **bloc** | + | |
- | * le répertoire de montage | + | |
- | + | ||
- | Une commande de montage ressemble à celle-ci : | + | |
- | + | ||
- | mount / | + | |
- | + | ||
- | où **point_de_montage** est un répertoire vide dans lequel est monté le filesystem / | + | |
- | + | ||
- | Le répertoire de montage doit être dédié à cet usage. Tout fichier dans le répertoire sera caché par la présence du contenu de / | + | |
- | + | ||
- | ====Options de la commande==== | + | |
- | + | ||
- | Les options de la commande **mount** sont : | + | |
- | + | ||
- | < | + | |
- | # mount --help | + | |
- | mount: illegal option -- help | + | |
- | Usage: | + | |
- | mount [-v | -p] | + | |
- | mount [-F FSType] [-V] [current_options] [-o specific_options] | + | |
- | {special | mount_point} | + | |
- | mount [-F FSType] [-V] [current_options] [-o specific_options] | + | |
- | special mount_point | + | |
- | mount -a [-F FSType ] [-V] [current_options] [-o specific_options] | + | |
- | [mount_point ...] | + | |
- | </ | + | |
- | + | ||
- | =====La commande umount===== | + | |
- | + | ||
- | L' | + | |
- | + | ||
- | umount / | + | |
- | + | ||
- | ou | + | |
- | + | ||
- | umount / | + | |
- | + | ||
- | Si le filesystem est en cours d' | + | |
- | + | ||
- | Pour connaître les processus en cours, on dispose de la commande **fuser**. | + | |
- | + | ||
- | Par exemple, dans notre cas, le filesystem **/ | + | |
- | + | ||
- | < | + | |
- | # cat /etc/vfstab | grep home | + | |
- | / | + | |
- | </ | + | |
- | + | ||
- | Dans le cas où vous êtes connecté en tant qu'un utilisateur normal et vous agissez en tant que root grâce à la commande su, vous ne pourrez pas démonter / | + | |
- | + | ||
- | < | + | |
- | # fuser -cu / | + | |
- | / | + | |
- | </ | + | |
- | + | ||
- | Les options de cette commande sont : | + | |
- | + | ||
- | * -c | + | |
- | * effectue une recherche récursive | + | |
- | * -u | + | |
- | * affiche les noms des propriétaires des processus trouvés | + | |
- | + | ||
- | Dans ce cas, vous pouvez démonter / | + | |
- | + | ||
- | < | + | |
- | # umount / | + | |
- | </ | + | |
- | + | ||
- | ====Options de la commande==== | + | |
- | + | ||
- | Les options de la commande **umount** sont : | + | |
- | + | ||
- | < | + | |
- | # umount --help | + | |
- | umount: illegal option -- help | + | |
- | Usage: | + | |
- | umount [-f] [-V] [-o specific_options] {special | mount-point} | + | |
- | umount -a [-f] [-V] [-o specific_options] [mount_point ...] | + | |
- | </ | + | |
- | + | ||
- | =====Le fichier / | + | |
- | + | ||
- | Les filesystems actuellement montés sont consignés dans le fichier **/ | + | |
- | + | ||
- | < | + | |
- | # cat / | + | |
- | / | + | |
- | / | + | |
- | ctfs / | + | |
- | proc /proc | + | |
- | mnttab | + | |
- | swap / | + | |
- | objfs / | + | |
- | sharefs / | + | |
- | / | + | |
- | fd /dev/fd fd rw, | + | |
- | swap /tmp tmpfs | + | |
- | swap / | + | |
- | / | + | |
- | -hosts | + | |
- | auto_home | + | |
- | solaris.i2tch.loc: | + | |
- | </ | + | |
- | + | ||
- | Pour remonter / | + | |
- | + | ||
- | < | + | |
- | # mount -F ufs / | + | |
- | </ | + | |
- | + | ||
- | Regardez maintenant de nouveau le fichier /etc/mnttab : | + | |
- | + | ||
- | < | + | |
- | # cat / | + | |
- | / | + | |
- | / | + | |
- | ctfs / | + | |
- | proc /proc | + | |
- | mnttab | + | |
- | swap / | + | |
- | objfs / | + | |
- | sharefs / | + | |
- | / | + | |
- | fd /dev/fd fd rw, | + | |
- | swap /tmp tmpfs | + | |
- | swap / | + | |
- | -hosts | + | |
- | auto_home | + | |
- | solaris.i2tch.loc: | + | |
- | / | + | |
- | </ | + | |
- | + | ||
- | =====Options de montage pour un filesystem UFS===== | + | |
- | + | ||
- | Le dernier champs du fichier **/ | + | |
- | + | ||
- | ^ Option ^ Valeur par défaut ^ Description ^ | + | |
- | | rw/ro | rw | lecture/ | + | |
- | | largefiles/ | + | |
- | | logging/ | + | |
- | | atime/ | + | |
- | | exec/noexec | exec | Exécution ou non des programmes | | + | |
- | | devices/ | + | |
- | | setuid/ | + | |
- | | suid/nosuid | suid | Combinaison de nodevices et nosetuid | | + | |
- | | quota | - | Activation des quotas | | + | |
- | | rq | - | Combinaison des options rw et quota | | + | |
- | + | ||
- | Ces options peuvent être aussi introduites sur la ligne de commande lors d'un montage manuel grâce à l' | + | |
- | + | ||
- | Les options d'un filesystem monté peuvent être consultées grâce à la commande **mount** : | + | |
- | + | ||
- | < | + | |
- | # mount | grep / | + | |
- | / | + | |
- | </ | + | |
- | + | ||
- | < | + | |
- | A l'aide du manuel et de l' | + | |
- | </ | + | |
- | + | ||
- | =====Le Filesystem UFS===== | + | |
- | + | ||
- | **UFS** (**U**nix **F**ile**S**ystem) est un filesystem de type **Berkeley** auquel ont été ajoutés des fonctions de **journalisation** appelées **UFS logging**. L'UFS logging crée un journal dans les blocs libres du filesystem. La taille est de 1Mo par Go de données avec un maximum de 64Mo. | + | |
- | + | ||
- | ====Structure==== | + | |
- | + | ||
- | Chaque système UFS contient des **groupe de cylindres**. Chaque group de cylindres contient un : | + | |
- | + | ||
- | * boot block | + | |
- | * superbloc | + | |
- | * inode | + | |
- | * bloc d' | + | |
- | * bloc de données | + | |
- | + | ||
- | ===boot block=== | + | |
- | + | ||
- | Ce bloc est utilisé quand le filesystem sert au démarrage. Il n' | + | |
- | + | ||
- | ===Superbloc=== | + | |
- | + | ||
- | Le superbloc contient : | + | |
- | + | ||
- | * la taille des blocs | + | |
- | * la taille du système de fichiers | + | |
- | * le nombre de montages effectués pour ce système de fichiers | + | |
- | * un pointeur vers la racine du système de fichiers | + | |
- | * les pointeurs vers la liste des inodes libres | + | |
- | * les pointeurs vers la liste des blocs de données libres | + | |
- | + | ||
- | Le Superbloc est dupliqué sur le système de fichiers. | + | |
- | + | ||
- | ===Inodes=== | + | |
- | + | ||
- | En tapant la commande **ls -ld** vous obtenez une liste d' | + | |
- | + | ||
- | Le premier caractère de chaque ligne peut être un des suivants : | + | |
- | + | ||
- | * **-** - un fichier | + | |
- | * **d** - un répertoire | + | |
- | * **l** - un lien symbolique | + | |
- | * **b** - un périphérique du type bloc | + | |
- | * **c** - un périphérique du type caractère | + | |
- | * **p** - un tube nommé pour la communication entre processus | + | |
- | * **s** - un socket dans un contexte réseau | + | |
- | + | ||
- | Par exemple : | + | |
- | + | ||
- | < | + | |
- | # ls -l / | + | |
- | lrwxrwxrwx | + | |
- | lrwxrwxrwx | + | |
- | + | ||
- | # ls -l / | + | |
- | brw-r----- | + | |
- | crw-r----- | + | |
- | </ | + | |
- | + | ||
- | Chaque fichier est représenté par un **inode**. L' | + | |
- | + | ||
- | * le type de fichier, soit **-**, **d**, **l**, **b**, **c**, **p**, **s** | + | |
- | * les droits d' | + | |
- | * le nombre de liens physiques soit le nombre de noms | + | |
- | * l'UID du créateur ou l'UID affecté par la commande **chown** s'il y a eu une modification | + | |
- | * le GID du processus créateur ou le GID affecté par la commande **chgrp** | + | |
- | * la taille du fichier en octets | + | |
- | * la date de création, soit le **ctime** | + | |
- | * la date de dernière modification, | + | |
- | * la date du dernier accès, soit le **atime** | + | |
- | * les adresses qui pointent vers les blocs de données du fichier | + | |
- | + | ||
- | Graphiquement, | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | Pour visualiser le numéro d' | + | |
- | + | ||
- | < | + | |
- | # ls -ldi / | + | |
- | 311303 lrwxrwxrwx | + | |
- | 311348 lrwxrwxrwx | + | |
- | + | ||
- | # ls -ldi / | + | |
- | 17301507 brw-r----- | + | |
- | 17301508 crw-r----- | + | |
- | + | ||
- | # ls -ldi /etc / | + | |
- | 824 drwxr-xr-x | + | |
- | 1301 -rw-r--r-- | + | |
- | </ | + | |
- | + | ||
- | ===Blocs d' | + | |
- | + | ||
- | L' | + | |
- | + | ||
- | ===Blocs de données=== | + | |
- | + | ||
- | Les données sont stockées dans des blocs de données. Dans le cas d'un répertoire, | + | |
- | + | ||
- | Le nom d'un fichier est stocké dans le bloc de données et non pas dans l' | + | |
- | + | ||
- | ====Liens Physiques==== | + | |
- | + | ||
- | Un lien physique se crée en utilisant la commande suivante : | + | |
- | + | ||
- | * ln nom_du_fichier nom_supplémentaire | + | |
- | + | ||
- | Pour illustrer ce point, tapez la ligne de commande suivante : | + | |
- | + | ||
- | < | + | |
- | # cd /tmp; mkdir inode; cd inode; touch fichier1; ls -ali | + | |
- | total 16 | + | |
- | 4038066373 drwxr-xr-x | + | |
- | 4031513256 drwxrwxrwt | + | |
- | 4041221744 -rw-r--r-- | + | |
- | </ | + | |
- | + | ||
- | Notez bien le numéro de l' | + | |
- | + | ||
- | | + | |
- | + | ||
- | Créez maintenant un lien physique et visualisez le résultat : | + | |
- | + | ||
- | < | + | |
- | # ln fichier1 fichier2; ls -lai | + | |
- | total 16 | + | |
- | 4038066373 drwxr-xr-x | + | |
- | 4031513256 drwxrwxrwt | + | |
- | 4041221744 -rw-r--r-- | + | |
- | 4041221744 -rw-r--r-- | + | |
- | </ | + | |
- | + | ||
- | Notez les deux lignes suivantes : | + | |
- | + | ||
- | **4041221744** -rw-r--r-- | + | |
- | **4041221744** -rw-r--r-- | + | |
- | + | ||
- | Les deux fichiers, fichier1 et fichier2, sont référencés par le même inode. Le nombre de liens est donc augmenté de 1. | + | |
- | + | ||
- | ====Liens Symboliques==== | + | |
- | + | ||
- | Un lien symbolique est un **raccourci** vers un autre fichier ou répertoire. Un lien symbolique se crée en utilisant la commande suivante : | + | |
- | + | ||
- | * ln -s nom_du_fichier nom_raccourci | + | |
- | + | ||
- | Pour illustrer ce point, tapez les commandes suivantes : | + | |
- | + | ||
- | < | + | |
- | # ln -s fichier1 fichier3; ls -lai | + | |
- | total 24 | + | |
- | 4038066373 drwxr-xr-x | + | |
- | 4031513256 drwxrwxrwt | + | |
- | 4041221744 -rw-r--r-- | + | |
- | 4041221744 -rw-r--r-- | + | |
- | 4041221688 lrwxrwxrwx | + | |
- | </ | + | |
- | + | ||
- | Notez que le lien symbolique est référencé par un autre inode. Le lien symbolique pointe vers le fichier1. | + | |
- | + | ||
- | ====Création==== | + | |
- | + | ||
- | La création d'un système de fichiers UFS se fait grâce à la commande **newfs**. Un exemple d'une telle commande est : | + | |
- | + | ||
- | newfs -v -b 4096 -m 10 / | + | |
- | + | ||
- | Dans cette commande on stipule : | + | |
- | + | ||
- | * -v | + | |
- | * le mode verbose | + | |
- | * -b 4096 | + | |
- | * une taille des blocs de 4096 octets | + | |
- | * -m 10 | + | |
- | * 10% d' | + | |
- | + | ||
- | La commande newfs est une commande de confort qui invoque la commande **mkfs**. | + | |
- | + | ||
- | Par contre pour connaître les options d'une partition, il convient d' | + | |
- | + | ||
- | < | + | |
- | # mkfs -m / | + | |
- | mkfs -F ufs -o nsect=128, | + | |
- | </ | + | |
- | + | ||
- | Il est aussi possible lors de la création de spécifier trois autres options : | + | |
- | + | ||
- | ===nbpi=== | + | |
- | + | ||
- | L' | + | |
- | + | ||
- | ^ Taile du filesystem ^ Valeur de nbpi ^ | + | |
- | | < 1Go | 2048 | | + | |
- | | < 2Go | 4096 | | + | |
- | | < 3Go | 6144 | | + | |
- | | < 1To | 8192 | | + | |
- | | > 1To | 1048576 | | + | |
- | + | ||
- | ===free=== | + | |
- | + | ||
- | Cette option stipule le pourcentage du disque réservé à root. | + | |
- | + | ||
- | ===opt=== | + | |
- | + | ||
- | Cette option désigne la politique de' | + | |
- | + | ||
- | * **time** - optimisation des performances (option par défaut), | + | |
- | * **space** - optimisation par espace disque. | + | |
- | + | ||
- | Seules les options **opt** et **free** peuvent être modifiées après la création du filesystem. | + | |
- | + | ||
- | ====Vérification==== | + | |
- | + | ||
- | Un indicateur stocké dans le superblock permet de connaître l' | + | |
- | + | ||
- | ^ Valeur ^ Description ^ | + | |
- | | FSACTIVE | Le filesystem est monté sans l' | + | |
- | | FSCLEAN | Le filesystem a été démonté correctement | | + | |
- | | FSSTABLE | Le filesystem est monté sans l' | + | |
- | | FSLOG | Le filesystem utilise l' | + | |
- | | FSBAD | Le filesystem contient des données incohérentes | | + | |
- | + | ||
- | Au démarrage du système **fsck** n'est lancé que si l' | + | |
- | + | ||
- | La commande fsck peut être lancé manuellement. Il est nécessaire de démonter le filesystem avant son utilisation et de vérifier celui-ci avec fsck et l' | + | |
- | + | ||
- | < | + | |
- | # umount / | + | |
- | # fsck -m / | + | |
- | ** / | + | |
- | ufs fsck: sanity check: / | + | |
- | </ | + | |
- | + | ||
- | Saisissez maintenant la commande suivante : | + | |
- | + | ||
- | < | + | |
- | # fsck / | + | |
- | ** / | + | |
- | ** Last Mounted on / | + | |
- | ** Phase 1 - Check Blocks and Sizes | + | |
- | ** Phase 2 - Check Pathnames | + | |
- | ** Phase 3a - Check Connectivity | + | |
- | ** Phase 3b - Verify Shadows/ | + | |
- | ** Phase 4 - Check Reference Counts | + | |
- | ** Phase 5 - Check Cylinder Groups | + | |
- | 2 files, 9 used, 7444611 free (19 frags, 930574 blocks, 0.0% fragmentation) | + | |
- | </ | + | |
- | + | ||
- | La dernière ligne indique : | + | |
- | + | ||
- | ^ Mot clé ^ Description ^ | + | |
- | | files | Le nombre d' | + | |
- | | used | Le nombre de fragments utilisés | | + | |
- | | free | Le nombre de fragments inutilisés | | + | |
- | | frags | Le nombre de fragments inutilisés dans des blocs utilisés | | + | |
- | | blocs | Le nombre de blocs complets inutilisés | | + | |
- | + | ||
- | Si des erreurs sont trouvées, la commande devient interactive. | + | |
- | + | ||
- | Il est possible donc de lancer la commande fsck avec une option **-y** ou **-n** pour contourner l' | + | |
- | + | ||
- | ==== Paramétrages ==== | + | |
- | + | ||
- | Nous avons vu que l' | + | |
- | + | ||
- | < | + | |
- | # mkfs -m / | + | |
- | mkfs -F ufs -o nsect=128, | + | |
- | </ | + | |
- | + | ||
- | Afin de modifier cette valeur, nous disposons de la commande **tunefs**. L' | + | |
- | + | ||
- | Saisissez la commande suivante : | + | |
- | + | ||
- | < | + | |
- | # tunefs -m 5 / | + | |
- | minimum percentage of free space changes from 1% to 5% | + | |
- | </ | + | |
- | + | ||
- | Vérifiez son application : | + | |
- | + | ||
- | < | + | |
- | # mkfs -m / | + | |
- | mkfs -F ufs -o nsect=128, | + | |
- | </ | + | |
- | + | ||
- | =====Gestion du système de fichiers ZFS===== | + | |
- | =====Introduction===== | + | =====Présentation de ZFS===== |
Solaris 10 comprend le système de fichiers Solaris [[wp> | Solaris 10 comprend le système de fichiers Solaris [[wp> | ||
Ligne 570: | Ligne 13: | ||
Solaris ZFS utilise un modèle de stockage en pools qui supprime purement et simplement le concept de volumes. Ainsi, ZFS supprime les problèmes liés à la gestion des partitions, à l' | Solaris ZFS utilise un modèle de stockage en pools qui supprime purement et simplement le concept de volumes. Ainsi, ZFS supprime les problèmes liés à la gestion des partitions, à l' | ||
- | Toutes les opérations sont des transactions copie-écriture. L' | + | Toutes les opérations sont des transactions copie-écriture. L' |
====Le vocabulaire ZFS==== | ====Le vocabulaire ZFS==== | ||
Ligne 577: | Ligne 20: | ||
^ Terme ^ Description ^ | ^ Terme ^ Description ^ | ||
- | | pool | Un élement | + | | pool | Un élément |
| file system | Un **dataset** contenant répertoires et fichiers | | | file system | Un **dataset** contenant répertoires et fichiers | | ||
| clone | Une copie d'un file system | | | clone | Une copie d'un file system | | ||
Ligne 613: | Ligne 56: | ||
| remove | Supprime un disque d'un pool existant | | | remove | Supprime un disque d'un pool existant | | ||
| replace | Remplace un disque par un autre dans un pool existant | | | replace | Remplace un disque par un autre dans un pool existant | | ||
- | | scrub | Vérifie les checksums d'un pool et répare des blocs de données | + | | scrub | Vérifie les checksums d'un pool et répare des blocs de données |
===La Commande zfs=== | ===La Commande zfs=== | ||
Ligne 634: | Ligne 77: | ||
| mount | Mounts a ZFS file system at a specific mount point | | | mount | Mounts a ZFS file system at a specific mount point | | ||
| unmount | Unmounts a ZFS file system | | | unmount | Unmounts a ZFS file system | | ||
+ | |||
+ | =====Préparation de la VM Solaris 10==== | ||
+ | |||
+ | Éteignez la VM Solaris 10. Dans la section **Stockage** de l' | ||
+ | |||
+ | ^ Type ^ Taille ^ Nom ^ | ||
+ | | vmdk | 256 Mb | Disk1 | | ||
+ | | vmdk | 256 Mb | Disk2 | | ||
+ | | vmdk | 256 Mb | Disk3 | | ||
+ | | vmdk | 256 Mb | Disk4 | | ||
+ | | vmdk | 256 Mb | Disk5 | | ||
+ | | vmdk | 20 Gb | Mirror | | ||
+ | |||
+ | Démarrez la VM Solaris 10, créez ensuite le fichier **reconfigure** à la racine du système et re-démarrez le : | ||
+ | |||
+ | < | ||
+ | # touch / | ||
+ | # shutdown -i0 -g1 -y | ||
+ | </ | ||
+ | |||
+ | Connectez-vous à la VM et vérifiez que les disques ont été détectés : | ||
+ | |||
+ | < | ||
+ | # format | ||
+ | Searching for disks...done | ||
+ | |||
+ | |||
+ | AVAILABLE DISK SELECTIONS: | ||
+ | 0. c0t0d0 < | ||
+ | / | ||
+ | 1. c0t2d0 < | ||
+ | / | ||
+ | 2. c0t3d0 < | ||
+ | / | ||
+ | 3. c0t4d0 < | ||
+ | / | ||
+ | 4. c0t5d0 < | ||
+ | / | ||
+ | 5. c0t6d0 < | ||
+ | / | ||
+ | 6. c0t7d0 < | ||
+ | / | ||
+ | Specify disk (enter its number): ^C | ||
+ | </ | ||
=====LAB #1 - La Gestion du Stockage ZFS===== | =====LAB #1 - La Gestion du Stockage ZFS===== | ||
Ligne 649: | Ligne 136: | ||
< | < | ||
# zpool list | # zpool list | ||
- | NAME | + | NAME SIZE ALLOC FREE CAP HEALTH |
- | mypool | + | mypool |
</ | </ | ||
Ligne 657: | Ligne 144: | ||
< | < | ||
# zpool status | # zpool status | ||
- | pool : mypool | + | pool: mypool |
- | état : ONLINE | + | state: ONLINE |
- | | + | |
- | configuration | + | config: |
NAME STATE READ WRITE CKSUM | NAME STATE READ WRITE CKSUM | ||
Ligne 668: | Ligne 155: | ||
c0t3d0 | c0t3d0 | ||
- | erreurs | + | errors: No known data errors |
</ | </ | ||
Ligne 676: | Ligne 163: | ||
# zfs list | # zfs list | ||
NAME | NAME | ||
- | mypool | + | mypool |
</ | </ | ||
Ligne 691: | Ligne 178: | ||
# zfs create mypool/ | # zfs create mypool/ | ||
# zfs list | # zfs list | ||
- | NAME USED AVAIL REFER MOUNTPOINT | + | NAME |
- | mypool | + | mypool |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
</ | </ | ||
Ligne 709: | Ligne 196: | ||
# zfs set mountpoint=/ | # zfs set mountpoint=/ | ||
# zfs list | # zfs list | ||
- | NAME USED AVAIL REFER MOUNTPOINT | + | NAME |
- | mypool | + | mypool |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
</ | </ | ||
Ligne 721: | Ligne 208: | ||
====L' | ====L' | ||
- | Pour visualiser | + | Pour visualiser |
< | < | ||
# zpool get all mypool | # zpool get all mypool | ||
- | NAME PROPERTY | + | NAME PROPERTY |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
- | mypool | + | mypool |
</ | </ | ||
- | Notez que la valeur d' | + | Notez que la valeur d' |
< | < | ||
Ligne 754: | Ligne 241: | ||
</ | </ | ||
- | Ajoutez maintenant en tant que spare le quatrième disque que vous avez précedement | + | Ajoutez maintenant en tant que spare le quatrième disque que vous avez précédemment |
< | < | ||
# zpool add mypool spare c0t5d0 | # zpool add mypool spare c0t5d0 | ||
# zpool status mypool | # zpool status mypool | ||
- | pool : mypool | + | pool: mypool |
- | état : ONLINE | + | state: ONLINE |
- | | + | |
- | configuration | + | config: |
NAME STATE READ WRITE CKSUM | NAME STATE READ WRITE CKSUM | ||
Ligne 769: | Ligne 256: | ||
c0t2d0 | c0t2d0 | ||
c0t3d0 | c0t3d0 | ||
- | | + | |
- | c0t5d0 | + | c0t5d0 |
- | erreurs | + | errors: No known data errors |
</ | </ | ||
Ligne 781: | Ligne 268: | ||
< | < | ||
# cat / | # cat / | ||
- | 1658 | + | 909 |
</ | </ | ||
Ligne 795: | Ligne 282: | ||
pool alloc | pool alloc | ||
---------- | ---------- | ||
- | mypool | + | mypool |
- | mirror | + | mirror |
- | c0t2d0 | + | c0t2d0 |
- | c0t3d0 | + | c0t3d0 |
---------- | ---------- | ||
Ligne 804: | Ligne 291: | ||
pool alloc | pool alloc | ||
---------- | ---------- | ||
- | mypool | + | mypool |
- | mirror | + | mirror |
- | c0t2d0 | + | c0t2d0 |
- | c0t3d0 | + | c0t3d0 |
---------- | ---------- | ||
Ligne 813: | Ligne 300: | ||
pool alloc | pool alloc | ||
---------- | ---------- | ||
- | mypool | + | mypool |
- | mirror | + | mirror |
- | c0t2d0 | + | c0t2d0 |
- | c0t3d0 | + | c0t3d0 |
---------- | ---------- | ||
Ligne 822: | Ligne 309: | ||
pool alloc | pool alloc | ||
---------- | ---------- | ||
- | mypool | + | mypool |
- | mirror | + | mirror |
- | c0t2d0 | + | c0t2d0 |
- | c0t3d0 | + | c0t3d0 |
---------- | ---------- | ||
Ligne 831: | Ligne 318: | ||
pool alloc | pool alloc | ||
---------- | ---------- | ||
- | mypool | + | mypool |
- | mirror | + | mirror |
- | c0t2d0 | + | c0t2d0 |
- | c0t3d0 | + | c0t3d0 |
---------- | ---------- | ||
Ligne 846: | Ligne 333: | ||
Tuez maintenant le processus **randomfile** : | Tuez maintenant le processus **randomfile** : | ||
- | | + | < |
+ | ^C# kill -9 909 | ||
+ | # | ||
+ | </ | ||
Supprimez le fichier **/ | Supprimez le fichier **/ | ||
Ligne 852: | Ligne 342: | ||
< | < | ||
# rm -rf / | # rm -rf / | ||
- | 1658 Tué | + | 909 Killed |
</ | </ | ||
====Le Mise en Place d'un Quota pour un Utilisateur==== | ====Le Mise en Place d'un Quota pour un Utilisateur==== | ||
- | Afin de mettre en palce un quota pour un utilisateur, | + | Afin de mettre en place un quota pour un utilisateur, |
< | < | ||
# zfs set quota=50M mypool/ | # zfs set quota=50M mypool/ | ||
- | # zfs get quota mypool | ||
- | NAME PROPERTY | ||
- | mypool | ||
# zfs list | # zfs list | ||
- | NAME USED AVAIL REFER MOUNTPOINT | + | NAME |
- | mypool | + | mypool |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
</ | </ | ||
- | <WRAP center round important 60%> | + | Créez maintenant un fichier de données |
- | Notez la mise en place du quota de 50Mo sur / | + | |
- | </ | + | |
- | + | ||
- | Créez maintenant un fichier de donnnées | + | |
< | < | ||
# cat / | # cat / | ||
- | cat : erreur en sortie | + | cat: output error (0/1040 characters written) |
- | Quota disque dépassé | + | Disc quota exceeded |
</ | </ | ||
- | |||
- | <WRAP center round important 60%> | ||
- | Notez la phrase **Quota disque dépassé**. | ||
- | </ | ||
Constatez que l' | Constatez que l' | ||
Ligne 892: | Ligne 371: | ||
# zfs list mypool/ | # zfs list mypool/ | ||
NAME USED AVAIL REFER MOUNTPOINT | NAME USED AVAIL REFER MOUNTPOINT | ||
- | mypool/ | + | mypool/ |
</ | </ | ||
Ligne 925: | Ligne 404: | ||
< | < | ||
- | # zfs snapshot mypool/ | + | # zfs snapshot mypool/ |
</ | </ | ||
Ligne 933: | Ligne 412: | ||
# ls -l / | # ls -l / | ||
total 3 | total 3 | ||
- | drwxr-xr-x | + | drwxr-xr-x |
</ | </ | ||
Ligne 939: | Ligne 418: | ||
< | < | ||
- | # ls -l / | + | # ls -l / |
total 2 | total 2 | ||
- | -rw-r--r-- | + | -rw-r--r-- |
</ | </ | ||
- | Il est important à noter que le répertoire .zfs ne peut pas être lister | + | Il est important à noter que le répertoire .zfs ne peut pas être listé |
< | < | ||
Ligne 950: | Ligne 429: | ||
/ | / | ||
total 8 | total 8 | ||
- | drwxr-xr-x | + | drwxr-xr-x |
- | drwxr-xr-x | + | drwxr-xr-x |
- | -rw-r--r-- | + | -rw-r--r-- |
</ | </ | ||
Ligne 958: | Ligne 437: | ||
< | < | ||
- | # zfs snapshot -r mypool@Dec13-1 | + | # zfs snapshot -r mypool@snapshot2 |
</ | </ | ||
Ligne 965: | Ligne 444: | ||
< | < | ||
# ls / | # ls / | ||
- | Dec13-1 | + | snapshot2 |
# ls / | # ls / | ||
- | Dec13 Dec13-1 | + | snapshot1 |
</ | </ | ||
Ligne 974: | Ligne 453: | ||
< | < | ||
# zfs list -t snapshot -r mypool | # zfs list -t snapshot -r mypool | ||
- | NAME USED AVAIL REFER MOUNTPOINT | + | NAME |
- | mypool@Dec13-1 | + | mypool@snapshot2 |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
</ | </ | ||
Ligne 987: | Ligne 466: | ||
# ls -l / | # ls -l / | ||
total 3 | total 3 | ||
- | -rw-r--r-- | + | -rw-r--r-- |
- | -rw-r--r-- | + | -rw-r--r-- |
</ | </ | ||
Ligne 994: | Ligne 473: | ||
< | < | ||
- | # zfs snapshot -r mypool@Dec13-2 | + | # zfs snapshot -r mypool@snapshot3 |
# zfs list -t snapshot -r mypool | # zfs list -t snapshot -r mypool | ||
- | NAME USED AVAIL REFER MOUNTPOINT | + | NAME |
- | mypool@Dec13-1 | + | mypool@snapshot2 |
- | mypool@Dec13-2 | + | mypool@snapshot3 |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
</ | </ | ||
Ligne 1009: | Ligne 488: | ||
< | < | ||
- | # zfs diff mypool/ | + | # zfs diff mypool/ |
M / | M / | ||
+ / | + / | ||
Ligne 1026: | Ligne 505: | ||
| - | Supprimé | | | - | Supprimé | | ||
- | NOtez que vous ne pouvez pas comparer les snapshots dans l' | + | Notez que vous ne pouvez pas comparer les snapshots dans l' |
< | < | ||
- | # zfs diff mypool/ | + | # zfs diff mypool/ |
- | Unable to obtain diffs: | + | Unable to obtain diffs: |
- | Not an earlier snapshot from the same fs | + | |
</ | </ | ||
Ligne 1040: | Ligne 518: | ||
< | < | ||
# zfs list -t snapshot -r mypool | # zfs list -t snapshot -r mypool | ||
- | NAME USED AVAIL REFER MOUNTPOINT | + | NAME |
- | mypool@Dec13-1 | + | mypool@snapshot2 |
- | mypool@Dec13-2 | + | mypool@snapshot3 |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | # zfs rollback mypool/ | + | # zfs rollback mypool/ |
- | impossible de restaurer vers ' | + | cannot rollback to ' |
- | utilisez | + | use ' |
- | mypool/ | + | mypool/ |
</ | </ | ||
- | Supprimez donc le snapshot **Dec13-2** : | + | Supprimez donc le snapshot **snapshot3** : |
< | < | ||
- | # zfs destroy mypool/ | + | # zfs destroy mypool/ |
# zfs list -t snapshot -r mypool | # zfs list -t snapshot -r mypool | ||
- | NAME USED AVAIL REFER MOUNTPOINT | + | NAME |
- | mypool@Dec13-1 | + | mypool@snapshot2 |
- | mypool@Dec13-2 | + | mypool@snapshot3 |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
</ | </ | ||
- | Maintenant fair un RollBack vers le snapshot **Dec13-1** : | + | Maintenant fair un RollBack vers le snapshot **snapshot2** : |
< | < | ||
- | # zfs rollback mypool/ | + | # zfs rollback mypool/ |
# ls -l / | # ls -l / | ||
total 2 | total 2 | ||
- | -rw-r--r-- | + | -rw-r--r-- |
</ | </ | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Notez l' | + | Notez l’absence |
</ | </ | ||
Ligne 1086: | Ligne 564: | ||
< | < | ||
- | # zfs clone mypool/ | + | # zfs clone mypool/ |
# zfs list | # zfs list | ||
- | NAME USED AVAIL REFER MOUNTPOINT | + | NAME USED AVAIL REFER MOUNTPOINT |
- | mypool | + | mypool |
- | mypool@Dec13-1 | + | mypool@snapshot2 |
- | mypool@Dec13-2 | + | mypool@snapshot3 |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
- | mypool/ | + | mypool/ |
</ | </ | ||
Ligne 1106: | Ligne 584: | ||
# ls -l / | # ls -l / | ||
total 2 | total 2 | ||
- | -rw-r--r-- | + | -rw-r--r-- |
</ | </ | ||
Ligne 1126: | Ligne 604: | ||
< | < | ||
# zpool status mypool | # zpool status mypool | ||
- | pool : mypool | + | pool: mypool |
- | état : ONLINE | + | state: ONLINE |
- | | + | |
- | configuration | + | config: |
NAME STATE READ WRITE CKSUM | NAME STATE READ WRITE CKSUM | ||
Ligne 1136: | Ligne 614: | ||
c0t2d0 | c0t2d0 | ||
c0t3d0 | c0t3d0 | ||
- | | + | |
- | c0t5d0 | + | c0t5d0 |
+ | |||
+ | errors: No known data errors | ||
- | erreurs : aucune erreur de données connue | ||
# zpool replace mypool c0t2d0 c0t4d0 | # zpool replace mypool c0t2d0 c0t4d0 | ||
</ | </ | ||
Ligne 1147: | Ligne 626: | ||
< | < | ||
# zpool status mypool | # zpool status mypool | ||
- | pool : mypool | + | pool: mypool |
- | état : ONLINE | + | state: ONLINE |
- | scan: resilvered | + | scan: resilvered |
- | configuration | + | config: |
NAME STATE READ WRITE CKSUM | NAME STATE READ WRITE CKSUM | ||
Ligne 1157: | Ligne 636: | ||
c0t4d0 | c0t4d0 | ||
c0t3d0 | c0t3d0 | ||
- | | + | |
- | c0t5d0 | + | c0t5d0 |
- | erreurs | + | errors: No known data errors |
</ | </ | ||
Ligne 1167: | Ligne 646: | ||
</ | </ | ||
- | ====La | + | ====La |
- | La déscrution | + | La destruction |
< | < | ||
# zpool destroy mypool | # zpool destroy mypool | ||
- | </ | ||
- | |||
- | Notez que cette opération détruit aussi les snapshots !! : | ||
- | |||
- | < | ||
# zfs list | # zfs list | ||
- | aucun jeu de données disponible | + | no datasets available |
</ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Notez que cette opération détruit aussi les snapshots !! | ||
+ | </ | ||
====La Création d'un Pool en RAID-5==== | ====La Création d'un Pool en RAID-5==== | ||
Ligne 1189: | Ligne 667: | ||
# zpool create mypool raidz c0t2d0 c0t3d0 c0t4d0 spare c0t5d0 | # zpool create mypool raidz c0t2d0 c0t3d0 c0t4d0 spare c0t5d0 | ||
# zpool status mypool | # zpool status mypool | ||
- | pool : mypool | + | pool: mypool |
- | état : ONLINE | + | state: ONLINE |
- | | + | |
- | configuration | + | config: |
NAME STATE READ WRITE CKSUM | NAME STATE READ WRITE CKSUM | ||
Ligne 1200: | Ligne 678: | ||
c0t3d0 | c0t3d0 | ||
c0t4d0 | c0t4d0 | ||
- | | + | |
- | c0t5d0 | + | c0t5d0 |
- | erreurs | + | errors: No known data errors |
</ | </ | ||
Ligne 1211: | Ligne 689: | ||
# zpool destroy mypool | # zpool destroy mypool | ||
</ | </ | ||
+ | |||
====La Création d'un Pool en RAID-6==== | ====La Création d'un Pool en RAID-6==== | ||
Ligne 1218: | Ligne 697: | ||
# zpool create mypool raidz2 c0t2d0 c0t3d0 c0t4d0 c0t5d0 spare c0t6d0 | # zpool create mypool raidz2 c0t2d0 c0t3d0 c0t4d0 c0t5d0 spare c0t6d0 | ||
# zpool status mypool | # zpool status mypool | ||
- | pool : mypool | + | pool: mypool |
- | état : ONLINE | + | state: ONLINE |
- | | + | |
- | configuration | + | config: |
NAME STATE READ WRITE CKSUM | NAME STATE READ WRITE CKSUM | ||
Ligne 1230: | Ligne 709: | ||
c0t4d0 | c0t4d0 | ||
c0t5d0 | c0t5d0 | ||
- | | + | |
- | c0t6d0 | + | c0t6d0 |
- | erreurs | + | errors: No known data errors |
</ | </ | ||
Ligne 1242: | Ligne 721: | ||
</ | </ | ||
- | ====Conculter | + | ====Consulter |
La sous-commande **history** de la command **zpool** permet de consulter l' | La sous-commande **history** de la command **zpool** permet de consulter l' | ||
Ligne 1248: | Ligne 727: | ||
< | < | ||
# zpool history | # zpool history | ||
- | Historique de ' | + | no pools available |
- | 2013-06-02.21: | + | |
</ | </ | ||
Ligne 1259: | Ligne 737: | ||
< | < | ||
< | < | ||
- | Copyright © 2019 Hugh Norris. | + | Copyright © 2020 Hugh Norris. |
</ | </ | ||
</ | </ |