J'essaie donc de comprendre BTRFS et de configurer mon serveur de fichiers à l'aide de systèmes de fichiers BTRFS. Voici ma configuration:
/ dev/sda1: système de fichiers BTRFS, contient les sous-volumes @, @home montés sur/et/home.
/ dev/sdb1 et/dev/sdc1: système de fichiers mis en pool par BRTFS, disques durs de 2x3 Go,
contient tous mes fichiers multimédias. Actuellement monté sur/mnt/media
Je les ai configurés de cette façon car je ne veux pas que mes fichiers multimédias prennent de la place sur/dev/sda1, qui est un SSD de 120 Go; Je voudrais réserver cela uniquement aux fichiers système. J'aimerais monter ce système de fichiers BTRFS secondaire dans un sous-volume de niveau supérieur appelé @media afin que je puisse réaliser des instantanés. Cependant, chaque fois que j'essaie de monter/dev/sdb1 ou/dev/sdc1 en utilisant subvolid, j'obtiens cette erreur:
peetipablo@flexo:/$ Sudo mount -t btrfs -o subvolid=354 /dev/sdb1 /mnt/media
mount: mount(2) failed: No such file or directory
Voici la liste des sous-volumes:
peetipablo@flexo:/$ Sudo btrfs subvolume list /
ID 257 gen 142548 top level 5 path @
ID 258 gen 142527 top level 5 path @home
ID 310 gen 113715 top level 5 path @apt-snapshot-release-upgrade-utopic-2015-04-30_08:11:14
ID 311 gen 113766 top level 5 path @apt-snapshot-release-upgrade-vivid-2015-04-30_08:39:50
ID 312 gen 134632 top level 257 path var/lib/machines
ID 313 gen 142500 top level 257 path root_snapshot_5_13_15
ID 354 gen 142517 top level 5 path @media
Si j'essaie de faire de @media le sous-volume par défaut du répertoire/mnt/media, je peux monter sdb1 sans le sous-fichier -o, mais j'obtiens une erreur lorsque j'essaie de prendre une photo:
peetipablo@flexo:/$ Sudo btrfs subvolume set-default 354 /mnt/media
peetipablo@flexo:/$ Sudo btrfs subvolume get-default /mnt/media
ID 354 gen 142517 top level 5 path @media
peetipablo@flexo:/$ Sudo mount -t btrfs /dev/sdb1 /mnt/media
peetipablo@flexo:/$ Sudo btrfs subvolume snapshot @media /mnt/media_snap
ERROR: error accessing '@media'
peetipablo@flexo:/$ Sudo btrfs subvolume snapshot /mnt/media /mnt/media_snap
Create a snapshot of '/mnt/media' in '/mnt/media_snap'
ERROR: cannot snapshot '/mnt/media' - Invalid cross-device link
J'ai l'impression que je ne comprends pas quelque chose ou que j'utilise ce type de système de fichiers plus récent d'une manière qui n'est pas destinée à être utilisée. Devrais-je simplement fusionner les 3 périphériques dans un système de fichiers BTRFS sans avoir à me soucier de remplir mon disque dur SSD avec un support? Y at-il un moyen d’atteindre mon objectif final en utilisant une méthode différente de celle que j’utilise actuellement?
Les systèmes de fichiers Btrfs n'interagissent pas les uns avec les autres, vous ne pouvez donc pas monter le sous-volume @media
sur /dev/sd{b,c}1
car le sous-volume @media
est actuellement sur /dev/sda1
, et vous obtenez un appareil croisé. erreur lorsque vous essayez de capturer /mnt/media
vers /mnt/media_snap
parce que /mnt/media
est sur /dev/sd{b,c}1
alors que /mnt/media_snap
est sur /dev/sda1
.
Au lieu d'avoir le sous-volume @media
sur le système de fichiers /dev/sda1
btrfs, vous voulez créer un sous-volume @media
sur le système de fichiers btrfs sur /dev/sd{b,c}1
:
Sudo mount /dev/sdb1 /mnt/media/
Sudo btrfs subvol create /mnt/media/@media
Sudo umount /mnt/media/
Sudo mount -o subvol=@media /dev/sdb1 /mnt/media/
Vous pouvez créer des instantanés de /mnt/media/
, mais vous ne pouvez placer l’instantané que sur le système de fichiers /dev/sd{b,c}1
. Donc, vous pouvez créer un instantané en lecture seule comme ceci:
Sudo btrfs subvol snap -r /mnt/media/ /mnt/media/<snapshot_name>
Mais je recommande de placer chaque instantané d'un sous-volume extérieur le sous-volume lui-même, car cela simplifie les choses lorsque vous devez revenir à un instantané. Pour ce faire, vous devez monter la racine du système de fichiers /dev/sd{b,c}1
:
Sudo mkdir /mnt/media_root/
Sudo mount -o subvol=/ /dev/sdb1 /mnt/media_root/
Sudo btrfs subvol snap -r /mnt/media_root/@media/ /mnt/media_root/<snapshot_name>