{{tag>débutant mergerfs disque_dur union_systeme_fichiers systeme_fichiers partitions tutoriel noble}}
====== MergerFS ======
MergerFS permet l’union de partitions de différentes tailles et différents types et différents systèmes de fichiers en un seul volume logique. Il peut être utile dans bien des cas .
un schema explicatif rapide :
A + B = C
/disk1 /disk2 /merged
| | |
+-- /dir1 +-- /dir1 +-- /dir1
| | | | | |
| +-- file1 | +-- file2 | +-- file1
| | +-- file3 | +-- file2
+-- /dir2 | | +-- file3
| | +-- /dir3 |
| +-- file4 | +-- /dir2
| +-- file5 | |
+-- file6 | +-- file4
|
+-- /dir3
| |
| +-- file5
|
+-- file6
En image :
{{ :mergerfs:how_mergerfs_work.png?nolink |}}
=====Installation :=====
====En cliquant sur :====
méthode recommandée
**[[apt>mergerfs]]**
====en ligne de commande :====
sudo apt install mergerfs
====en compilant :====
Déconseillé et uniquement pour utilisateurs très avertis :
git clone https://github.com/trapexit/mergerfs.git
cd mergerfs
sudo tools/install-build-pkgs
make deb
sudo dpkg -i ../mergerfs*.deb
===== Mise en place des systèmes de fichiers qui feront parti du Volume final ou " pool " de partitions : =====
Avant de commencer à trifouiller le fichier /etc/fstab , il est impératif de le sauvegarder en passant cette commande :
sudo cp /etc/fstab /etc/fstab.bak
Considérons que nous avons deux disques présents dans notre système , chacun contenant une partition qui feront parti du " pool " que nous monterons dans /media/Stock .
On peut facilement obtenir la liste des partitions en présence sur le système grâce à la commande :
lsblk -fe7 -o+ model
ce qui donne par exemple :
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS MODEL
sda ST4000VX000-2AG166
└─sda1 ext4 1.0 Seagate 4f8cc284-cd84-4eeb-b412-7539f81664c4 2,7T 21% /mnt
sdb WDC WD82PURZ-85TEUY0
└─sdb1 ext4 1.0 WD 1db8a5b3-ff12-4d31-9463-b188ffefe43b 2,3T 65% /media/Videos/WD8
Vous devez avoir **au moins une partition** dans chaque disque (comme c’est le cas ici). Si vous utilisez des disques neufs, une procédure est nécessaire pour les initialiser et créer une ou des partitions , voir : [[gparted|GParted : éditeur de partitions]] .
afin de préparer le " pool " , il est indispensable de monter les partitions au démarrage de l' ordinateur et donc d' inscrire les montages de ces partitions dans le fichier /etc/fstab .
Le fichier /etc/fstab est le fichier de configuration utilisé au démarrage par le système pour monter tous les systèmes de fichiers que contient les partitions .
Nous allons donc indiquer dans ce fichier nos partitions et notre volume MergerFS.
on commence par créer donc les points de montage , un pour chaque partition ainsi que le dossier du futur volume :
sudo mkdir -pv /media/mergerfs/partition_sd{a,b}1 /media/Stock
Nous devons maintenant récupérer les UUIDS de partitions pour les ajouter dans le fichier fstab ( il existe d' autres moyens , mais celui-ci est le plus conventionnel tout type de système de fichiers confondus ) , pour cela la commande suivante sera fort utile :
ls -l /dev/disk/by-uuid | grep sda1 | cut -d ' ' -f10
et
ls -l /dev/disk/by-uuid | grep sdb1 | cut -d ' ' -f10
Maintenant , pour ajouter au fstab les lignes de montages automatiques des partitions sda1 et sdb1 , on peut procéder ainsi pour sda1 :
echo "UUID=$(ls -l /dev/disk/by-uuid | grep sda1 | cut -d ' ' -f10) /media/mergerfs/partition_sda1 auto defaults" | sudo tee -a /etc/fstab
et pour sdb1 :
echo "UUID=$(ls -l /dev/disk/by-uuid | grep sdb1 | cut -d ' ' -f10) /media/mergerfs/partition_sdb1 auto defaults" | sudo tee -a /etc/fstab
Pour le " pool " , il faut ajouter la ligne suivante :
echo "# MergerFS Volume
/media/mergerfs/partition_* /media/Stock fuse.mergerfs threads=16,allow_other,use_ino,cache.files=off,dropcacheonclose=true,category.create=mfs,moveonenospc=true,minfreespace=10G,fsname=mergerfsPool,nonempty 0 0" | sudo tee -a /etc/fstab
cette ligne a pour objectif d' unifier tous les disques montés depuis /media/mergerfs/ dont le point de montage commence par " partition_ " dans /media/Stock avec le système fuse.mergerfs.
Pour ce qui est des options , je vous invite a consulter la signification de celles-ci sur le site de l ' éditeur ( en anglais ) : [[https://trapexit.github.io/mergerfs/config/options/]]
On vérifie qu ' il n' y a pas d' erreur dans le fichier fstab avec la commande suivante :
sudo mount -av
il ne faut en aucun cas que cette commande renvoie une erreur , sinon il est possible que votre ordinateur ne démarre plus du tout la prochaine fois !
En cas d' erreur , ne redémarrer surtout pas l' ordinateur ! et restaurer le fichier fstab.bak avec la commande suivante :
sudo mv /etc/fstab.bak /etc/fstab
Maintenant , il faut appliquer les modifications que l' on vient de faire dans le fichier /etc/fstab , afin de faire prendre en compte par le système .
Pour cela on passe la commande suivante :
sudo systemctl daemon-reload
Et voilà , votre pool de partitions est maintenant disponible dans /media/Stock .
=====Voir aussi=====
* **(en)** le site de l' éditeur : [[https://github.com/trapexit/mergerfs]]