Não é possível montar o sistema de arquivos BTRFS secundário para um subvolume específico

3

Então, eu estou tentando envolver meu BTRFS e configurar meu servidor de arquivos usando sistemas de arquivos BTRFS. Aqui está minha configuração:

  • / dev / sda1: sistema de arquivos BTRFS, contém subvolumes @, @home montados para / e / home.

  • / dev / sdb1 e / dev / sdc1: sistema de arquivos em pool BRTFS, 2x3 GB HDD's, contém todos os meus arquivos de mídia. Atualmente montado em / mnt / media

Eu os configuro dessa maneira porque eu não quero que nenhum dos meus arquivos de mídia ocupem espaço em / dev / sda1, que é um SSD de 120GB; Eu gostaria de reservar apenas para arquivos do sistema. Eu gostaria de montar este sistema de arquivos BTRFS secundário em um subvolume de nível superior chamado @media para que eu possa fazer snapshots. No entanto, toda vez que tento montar / dev / sdb1 ou / dev / sdc1 usando subvolid, recebo este erro:

peetipablo@flexo:/$ sudo mount -t btrfs -o subvolid=354 /dev/sdb1 /mnt/media
mount: mount(2) failed: No such file or directory

Aqui está a lista de subvolumes:

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

Se eu tentar fazer @media o subvolume padrão para o diretório / mnt / media, eu sou capaz de montar o sdb1 sem o -o subvolid, mas quando tento fazer um snapshot, recebo um erro:

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

Tenho a sensação de que não estou entendendo algo ou estou usando esse novo tipo de sistema de arquivos de uma forma que não é para ser usado. Devo apenas mesclar todos os 3 dispositivos em um sistema de arquivos BTRFS e não me preocupar em encher meu SSD com mídia? Existe uma maneira de atingir meu objetivo final usando um método diferente do que estou usando atualmente?

    
por Pete Buonomo 17.05.2015 / 23:01

1 resposta

3

Os sistemas de arquivos Btrfs não interagem entre si, portanto, você não pode montar o @media subvolume em /dev/sd{b,c}1 porque o @media subvolume está atualmente em /dev/sda1 e você recebe um erro entre dispositivos ao tentar snapshot /mnt/media to /mnt/media_snap porque /mnt/media está em /dev/sd{b,c}1 , enquanto /mnt/media_snap está em /dev/sda1 .

Em vez de ter o subvolume @media no sistema de arquivos /dev/sda1 btrfs, você deseja criar um subvolume @media no sistema de arquivos btrfs em /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/

Você pode criar instantâneos de /mnt/media/ , mas só pode colocar o instantâneo no sistema de arquivos /dev/sd{b,c}1 . Então você pode criar um instantâneo somente leitura assim:

sudo btrfs subvol snap -r /mnt/media/ /mnt/media/<snapshot_name>

Mas eu recomendo colocar cada snapshot de um subvolume fora do próprio subvolume, porque isso simplifica as coisas quando você precisa reverter para um snapshot. Para fazer isso, você precisará montar a raiz do sistema de arquivos /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>
    
por Vincent Yu 09.07.2015 / 05:59