GNU/Linux >> Tutoriels Linux >  >> Linux

Exemples Linux AuFS :autre didacticiel sur le système de fichiers Union (implémentation UnionFS)

AuFS signifie Another Union File System.

AuFS a commencé comme une implémentation du système de fichiers UnionFS Union.

Un système de fichiers union prend un système de fichiers existant et le superpose de manière transparente sur un système de fichiers plus récent. Il permet aux fichiers et répertoires de systèmes de fichiers séparés de coexister sous un même toit. AuFS peut fusionner plusieurs répertoires et en fournir une seule vue fusionnée.

AuFS est utilisé dans de nombreux projets open source tels que Slax, Knoppix et de nombreuses autres distributions live CD et live USB.

Sur les systèmes basés sur Debian, par exemple sur Ubuntu, procédez comme suit pour installer aufs.

# apt-get install aufs-tools

Exemple 1 - Comprendre le fonctionnement d'AuFS

Cet exemple montre comment monter deux répertoires d'un même système de fichiers.

# mkdir /tmp/dir1

# mkdir /tmp/aufs-root

# mount -t aufs -o br=/tmp/dir1:/home/lakshmanan none /tmp/aufs-root/

Les deux premières commandes ont créé 2 nouveaux répertoires. Le mount.aufs est la commande pour monter le système de fichiers en tant que montage Union.

La commande mount, spécifie qu'il va à union mount "/tmp/dir1" et /home/lakshmanan" sous "/tmp/aufs-root". Le répertoire "/tmp/aufs-root" aura le contenu de "/tmp/dir1" et "/home/lakshmanan".

Les options suivantes sont utilisées dans l'exemple de commande de montage ci-dessus :

  • -o - spécifie les options à transmettre au système de fichiers
  • br - spécifie une branche, où chaque branche est séparée par deux-points (:). Une branche n'est rien d'autre qu'un répertoire sur un système.
  • aucun - spécifie que nous n'avons aucun périphérique associé, puisque nous allons monter deux répertoires

Comme vous le voyez dans la sortie de la commande ls -l ci-dessous, nous pouvons voir qu'aufs fusionne le contenu des 2 répertoires distincts et apporte une vue unifiée.

# ls -l /tmp/dir1/
-rw-r--r-- 1 root       root       23 Mar 25 14:21 file_in_tmp_dir1

# ls -l /home/lakshmanan
-rw-r--r-- 1 root       root            26 Mar 25 14:20 file_in_home_dir

# ls -l /tmp/aufs-root/
-rw-r--r-- 1 root       root            26 Mar 25 14:20 file_in_home_dir
-rw-r--r-- 1 root       root            23 Mar 25 14:21 file_in_tmp_dir1

Par défaut, si aucune autorisation n'est spécifiée, la première branche sera montée en écriture et les branches restantes seront montées en lecture seule.

Ainsi, lorsque vous créez un fichier dans "/tmp/aufs-root/", il sera physiquement créé sous "/tmp/dir1", car il s'agit de la seule branche accessible en écriture.

Exemple 2 – Vue unifiée des répertoires personnels

Parfois, les administrateurs système finissent par avoir plusieurs partitions de disque qui ont des répertoires personnels de plusieurs utilisateurs. Nous verrons un exemple de la façon dont nous pouvons en faire une vue unifiée et simplifier le processus d'administration.

Dans cet exemple :

  • /home -> est le point de montage de /dev/sda2 ayant les utilisateurs "lakshmanan" et "sysadmin"
  • /home1 -> est le point de montage de /dev/sdb2 ayant l'utilisateur "test".
# mount -t aufs -o br=/home=rw:/home1=rw -o udba=reval  none /common/

# ls -l /common/
drwxr-xr-x 39 lakshmanan lakshmanan  4096 Mar 25 15:52 lakshmanan
drwxr-xr-x 26 sysadmin   sysadmin    4096 Mar 25 15:51 sysadmin
drwxr-xr-x  2 root       root        4096 Mar 25 16:36 test

La commande de montage ci-dessus a une option supplémentaire appelée "udba", qui fait référence à "l'accès direct à la branche de l'utilisateur". Cette option indique ce qu'il faut faire, si l'utilisateur accède directement à une branche et crée/met à jour des fichiers sans passer par AuFS.

Voici les valeurs possibles pour udba :

  • udba=none – Avec cette option, l'AuFS sera plus rapide, mais peut afficher des données incorrectes, si l'utilisateur a créé des fichiers/répertoires sans passer par l'AuFS.
  • udba=reval - Avec cette option, l'AuFS recherchera à nouveau les branches et les mettra à jour. Ainsi, toute modification apportée à n'importe quel répertoire de la branche sera reflétée dans "/common".
  • udba=notify – Avec cette option, l'AuFS s'enregistrera pour inotify pour tous les répertoires des succursales. Cela affecte les performances d'AuFS.
# touch /home/lakshmanan/TGS

# ls -l /common/lakshmanan/
.
.
-rw-r--r-- 1 root       root             0 Mar 25 17:17 TGS

La commande touch a créé un fichier nommé « TGS » dans le répertoire personnel de « lakshmanan » sans passer par AuFS. Depuis que nous avons monté en utilisant "udba=retval", lorsque nous exécutons ls, AuFS a effectué une nouvelle recherche et affiche le nouveau fichier qui a été créé.

Notez également que, dans la commande de montage précédente, nous avons spécifié l'autorisation pour chaque branche en tant que readwrite. Ainsi, lorsqu'un fichier est créé sous /common/test/, il sera physiquement créé dans "/home1/test/", qui est l'emplacement physique réel. La même chose s'applique également aux autres répertoires.

# touch /common/test/Testing

# ls -l /home1/test/
-rw-r--r-- 1 root root  0 Mar 25 18:26 Testing

Exemple 3 :Monter avec une autorisation en lecture seule pour les branches

Vous pouvez également monter en définissant des autorisations pour chaque branche.

# mount -t aufs -o br=/tmp/dir1=rw:/home/lakshmanan=ro -o udba=reval none /tmp/aufs-root/

La commande ci-dessus montera le /tmp/aufs-root, en ayant "/tmp/dir1" en écriture et "/home/lakshmanan" en lecture seule. Toute modification que vous effectuez dans /tmp/aufs-root sera enregistrée uniquement sous "/tmp/dir1", car c'est le seul répertoire accessible en écriture.

La séquence de commandes suivante peut être utilisée pour vérifier ce qui précède.

# cat > /home/lakshmanan/1.txt
This is a new file

# cat /tmp/aufs-root/1.txt
This is a new file

# cat >> /tmp/aufs-root/1.txt
This is updated on AuFS space

# cat /home/lakshmanan/1.txt
This is a new file

# cat /tmp/dir1/1.txt
This is a new file
This is updated on AuFS space

Dans la séquence de commandes ci-dessus, nous avons effectué les opérations suivantes :

  • Nous créons un fichier appelé 1.txt sous "/home/lakshmanan".
  • Ce fichier est reflété dans le répertoire de montage de l'union, en raison de l'option udba=retval que nous avons expliquée ci-dessus
  • Mettre à jour le fichier présent dans le répertoire de montage de l'union
  • Même si le fichier est présent dans /home/lakshmanan, puisqu'il est monté en lecture seule, AuFS prend une copie du fichier et la place sur "/tmp/dir1".
  • En plus de cette copie, il ajoute le contenu et enregistre le fichier
  • Dans /home/lakshmanan/1.txt, le changement n'est pas reflété
  • Un nouveau fichier nommé "1.txt" est créé sous "/tmp/dir1" avec le contenu mis à jour

Exemple 4 - Appliquer la politique Round Robin pour la création de fichiers sous AuFS

Lorsque nous avons plus de 2 branches accessibles en écriture, nous pouvons choisir l'une des politiques prédéfinies, de sorte qu'un fichier créé sera stocké en fonction de la politique choisie.

# mount -t aufs -o br=/tmp/dir1=rw:/home/lakshmanan=rw -o udba=reval -o create=rr none /tmp/aufs-root/

L'option "create=rr" spécifie que la politique round robin doit être appliquée pour ce montage union. Dans la politique de tourniquet, si nous créons 4 fichiers, 2 fichiers seront dans "/tmp/dir1" et 2 fichiers seront dans "/home/lakshmanan".

# touch /tmp/aufs/first-round-robin

# touch /tmp/aufs/second-round-robin

# ls -l /tmp/dir1/first-round-robin
-rw-r--r-- 1 root root 0 Mar 25 21:53 /tmp/dir1/first-round-robin

# ls -l /home/lakshmanan/second-round-robin
-rw-r--r-- 1 root root 0 Mar 25 21:54 /home/lakshmanan/second-round-robin

Linux
  1. Tutoriel de commande Linux tail pour les débutants (5 exemples)

  2. Comment créer et monter un système de fichiers Btrfs (expliqué avec des exemples)

  3. Comment créer et monter des systèmes de fichiers sous Linux

  4. Comment monter et démonter un système de fichiers sous Linux

  5. mount Exemples de commandes sous Linux

Tutoriel de commande Linux shred pour les débutants (5 exemples)

Dbxfs - Monter le dossier Dropbox localement en tant que système de fichiers virtuel sous Linux

Comment monter Google Drive localement en tant que système de fichiers virtuel sous Linux

Comment monter un système de fichiers Linux distant à l'aide de SSHFS

Tutoriel Tripwire :Système de détection d'intrusion basé sur l'hôte Linux

Commande de montage Linux avec exemples