Saturday, November 12, 2016

CentOS - 14 : systèmes de fichiers

Les systèmes de fichiers servent à organiser le stockage des données sur un support comme les disques durs ou les médias amovibles (disquette, clé USB) et à présenter ces données à l'utilisateur.

CentOS 7 est capable d'utiliser divers systèmes, comme, par exemple :
  • ext3
  • ext4
  • XFS
  • GFS2
  • swap

En ce moment, XFS constitue le système de fichiers par défaut de CentOS 7. Il possède toutes les qualités d'un système de fichiers moderne : journalisation, défragmentation et optimisation pour les fichiers de grande taille.

Autrefois, ext3 et ext4 étaient les choix préférés, et encore aujourd'hui ext4 reste une option tout à fait sérieuse. Comme XFS, il offre les fonctions de journalisation et de défragmentation (ce qui manque à ext3).

GFS2 est pour le stockage SAN.

Le système de fichiers swap est adapté spécialement pour les partitions swap dont le rôle correspond au fichier de pagination sous Windows. Dans le monde de Linux, cependant, il ne s'agit pas d'un simple fichier de pagination mais d'une partition de disque avec un système de fichiers conçu exprès pour cette fonction.

Note: il est possible d'utiliser un simple fichier sous Linux aussi mais cette solution serait moins efficace.

A ce sujet, il est recommandé d'avoir une taille de partition swap 2 fois la quantité de mémoire vive pour une quantité de mémoire vive jusqu'à 2 Go. Au-delà, la recommandation est d'égaler la quantité de mémoire vive plus 2 Go.


Comment créer un système de fichiers ?

Avec la commande mkfs

Nous ajoutons un point (.) suivi par le type de système de fichiers souhaité, et puis, la partition où nous voulons créer le système, par exemple :

mkfs.xfs /dev/sdb1

mkfs.ext4 /dev/sdb2

Nous pouvons donner une étiquette avec le paramètre -L :

mkfs.ext4 -L /databases /dev/sdb2

Et voilà, les partitions sdb1 et sdb2 ont désormais un système de fichiers.

Mais dans le monde de Linux, cela n'accomplit pas grand chose en soi.

Encore faut-il créer un "point de montage" (mount point), c'est-à-dire un répertoire dans lequel la partition sera montée.

Au fond, il s'agit d'inscrire le nouveau système de fichiers parmi les autres fichiers de l'arborescence. Nous pouvons bien dire "fichiers", car les répertoires, chez Linux, sont simplement des fichiers capables de contenir d'autres fichiers.

Quand nous naviguons dans l'arborescence et entrons dans ce répertoire (le point de montage), nous accédons, en fait, à la partition que nous avons montée (et aux fichiers qui s'y trouvent).

A retenir : c'est le système de fichiers choisi pour la partition qui permet d'y organiser les fichiers et aussi, qui nous permet de les voir et de les manipuler.

A retenir : le répertoire donnant accès au nouveau système de fichiers s'appelle le "point de montage".



Comment monter le système de fichiers ?

D'abord, je crée un répertoire à la racine (root) que je nomme "vol" (ce n'est qu'un exemple - nous sommes libres de choisir le nom qui nous convient) :

mkdir /vol

Les concepts de "partition" et de "volume" sont comparables et, en faisant des recherches sur l'emplacement préféré pour ces points de montage, j'ai lu que certains suivent une norme Macintosh et les mettent dans un répertoire avec ce nom (/vol ou /volume). Ce choix me convient. En fait, nous pourrions nommer le répertoire ce que nous voudrions et le créer ailleurs du reste. On pourrait utiliser le répertoire /mnt mais j'ai compris que certains préfèrent que ce soit réservé aux montages temporaires (?).

Ensuite, je monte le système de fichiers dans notre point de montage (le répertoire /vol) :

mount /dev/sdb2 /vol

Allons voir ce que cela donne.

Nous pouvons observer les systèmes de fichiers montés avec la commande "df". Je vais exécuter la commande avec le paramètre "h" qui signifie, en substance, "humain" ou plus précisément "human readable".

Voici le statut quo avant que j'exécute la commande mount ci-dessus :


Il n'y a que la partition /dev/sda1, montée dans le répertoire /boot.

Note : la partition /dev/sda1 a pour système de fichiers xfs, ce que nous pourrions voir avec le paramètre "T", soit "df -T" :



Et voici ce que nous voyons après :


Nous avons donc monté une nouvelle partition / nouveau système de fichiers : /dev/sdb2 monté dans le répertoire /vol.

Nous pouvons obtenir d'autres renseignements avec la commande mount, sans paramètres mais avec grep pour limiter la sortie aux systèmes de fichiers associé avec (dans notre cas) le répertoire /vol :





Comment éditer le fichier fstab

(Afin que notre système de fichiers soit monté automatiquement à chaque démarrage)

En pratique, nous voudrions le plus souvent que le système d'exploitation monte notre nouveau système de fichiers à chaque démarrage sans intervention manuelle. Cela peut s'accomplir par la modification du fichier fstab auquel le système d'exploitation a recours pour gérer le montage des systèmes de fichiers.

Voici le contenu de ce fichier par défaut (du moins dans mon installation de CentOS 7) :


Note : c'est la commande suivante qui affiche le contenu de fstab:

cat /etc/fstab

Nous devons ajouter notre nouveau système de fichiers en le désignant par un des moyens suivants :

  • le chemin de la partition, par exemples : /dev/sdb2
  • l'UUID de la partition (universally unique identifier - nous le verrons plus bas)
  • l'étiquette (le cas échéant), par exemple : "/databases"

L'UUID est le meilleur choix.

L'étiquette (ou "label") n'est pas obligatoire, n'est donc pas nécessairement présente, et rien n'empêcherait un administrateur inattentif de désigner deux systèmes de fichiers avec la même étiquette.

Quant au chemin de la partition, il pourrait changer si un nouveau disque était branché sur la machine. Supposons, par exemple, que la partition que nous voulons monter soit désignée par le nom /dev/sdb1. Si un nouveau disque était branché, le système d'exploitation pourrait le détecter le premier et lui donner le nom "sdb". Le disque que nous avons connu sous le nom de "sdb" serait désornais "sdc" et la première partition "sdc1". 

Mais comment trouver l'UUID de la partition ?

Avec la commande blkid :



Veuillez vous reporter à la capture d'écran suivant. Nous avons ouvert le fichier fstab avec l'éditeur de texte de notre choix et nous ajoutons l'UUID, le point de montage (/vol), le type de système de fichiers (ext4), certaines options ou le simple mot "defaults" si les valeurs par défaut nous conviennent, et puis (le plus souvent) deux 0 :



  • Il est facultatif d'entourer l'UUID de guillemets.
  • Nous pouvons mettre soit un espace, soit une tabulation entre les éléments de chaque ligne.
La configuration ci-dessous fonctionnerait tout aussi bien :




Après avoir examiné les différentes options fstab, j'en ai conclu que les valeurs par défaut me conviendraient parfaitement bien la plupart du temps et je ne vais pas présenter les autres dans ce billet de blogue. Pour en savoir plus, vous pourriez faire une recherche sur ces termes :

options fstab

Et voici une ressource pour commencer :



Mais qu'en est-il des deux zéros ?
  • Le premier zéro réglait l'archivage de la partition effectué par la programme "dump" et ne sert plus.
  • Le second zéro concerne les système ext* (ext3, ext4), et quelques autres, mais non pas xfs. Il établit l'ordre de la vérification des systèmes de fichiers au démarrage.

Quoi qu'il en soit, quand nous faisons redémarrer la machine, le système de fichiers devrait être monté sans intervention manuelle de notre part, ce qui nous pouvons vérifier avec la commande suivante :



 




No comments:

Post a Comment