Aufs

De Wiki doc

Révision datée du 11 novembre 2017 à 19:06 par Ycharbi (discussion | contributions) (Ajout d'une source)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Aufs est un système de fichier permettant de fusionner plusieurs systèmes de fichiers en un seul point de montage. Il écrit les données sur le disque comportant le plus d'espace mais ne peut pas écrire un fichier qui dépasse le plus grand espace disponible (un fichier ne peut pas être découpé en deux).

Application basique

Aufs peut être utilisé avec plusieurs disques durs, des images disques, des partages réseaux... Nous utiliserons pour l'exemple et la facilité de reproduction des étapes, 2 images disques créés, formatés et montés selon la procédure décrite dans la page sur losetup.

Installation du paquet

Aufs est géré par Linux depuis le noyau 3.0. L'outil permettant d’interagir avec ce système est le suivant:

apt install aufs-tools

INFORMATION

Un redémarrage est nécessaire afin de pouvoir utiliser aufs puisque aufs-tools recompile un initrd avec un module noyau comportant cette fonctionnalité.

Fusion des volumes

Nous partons du principe que nos deux volumes (loop0 et loop1) sont créés, formatés et montés respectivement dans /mnt/1 et /mnt/2. Aussi, notre point de montage sera situé dans /root/disques

mount -t aufs -o br=/mnt/1=rw:/mnt/2=rw -o create=mfs -o udba=reval -o sum -o dio  -o dirperm1 none /root/disques/

Paramètres:

  • br= indique la branche, et chaque branche est séparée par : (deux points). Une branche ne peut contenir le symbole = dans son nom.
  • =rw indique que la branche est en lecture/écriture. Cela signifie que si je modifie un fichier dans l'arborescence partagée, et que la branche (dans laquelle se trouve le fichier) est en rw alors il sera modifié.
  • create=mfs indique que si je créé un fichier dans l'arborescence partagée /volume1/test_partages/, alors le fichier sera créé dans la branche disposant du plus d'espace libre. Sans cela, le fichier serait créé dans la première branche en rw (dans l’exemple : /mnt/1).
  • udba=reval indique que si je créé/supprime/modifie un fichier dans une branche (directement), la branche partagée devrait pouvoir vous donner l'info du changement.
  • sum indique qu'un df sur la branche partagée se fera sur la somme de toutes les branches (et pas seulement de la première).
  • dio indique qu'on utilise un accès direct aux I/O.
  • dirperm1 indique qu'un changement de droits et/ou utilisateur n'impacte pas que la première branche.

Montage au démarrage

À faire.

Squashfs en lecture/écriture

Avec Aufs, il devient possible d'exécuter des images squashfs avec des espaces en lecture/écriture de façon totalement transparente. Il suffit de combiner l'image squashfs avec une mémoire morte sur / et le système va lire les fichiers de la RAM (ro) et écrire les ajouts sur la mémoire morte (rw).

Pratique à écrire.

Sources