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