Como posso fazer uso adequado de subvolumes no btrfs?

1

No passado, sempre usei três ext4 partitions para atender às minhas necessidades:

  • /dev/sda2 : /
  • /dev/sda3 : /home
  • /dev/sda4 : /mnt/Data

Agora, estou usando o Ubuntu 15.04 com o sistema de arquivos btrfs . Após a instalação, acabei com uma grande partição, contendo as três partições:

  • /dev/sda2 : estendido
    • /dev/sda5 : /
    • /dev/sda6 : /home
    • /dev/sda7 : /mnt/Data

Quando navego por essas partições de um USB ativo, algo estranho acontece: o diretório raiz de cada uma dessas partições é chamado de @ . Eu suspeito que isso tenha algo a ver com algo chamado subvolume em btrfs .

Gostaria de aproveitar bem esses subvolumes. Por exemplo, estou usando uma partição /home separada para facilitar as novas instalações. Isso ainda é necessário? Ou posso colocar todas as partições em uma grande partição com subvolumes diferentes para alcançar a mesma coisa?

    
por Exeleration-G 17.05.2015 / 14:42

1 resposta

2

Dependerá exatamente do que você quer fazer com seus discos, mas no meu caso sim mudei para o btrfs e fiz exatamente como você diz - use subvolumes em vez de partições .

De o wiki do btrfs :

  

Um subvolume no btrfs não é o mesmo que um volume lógico do LVM ou um ZFS   subvolume. Com o LVM, um volume lógico é um dispositivo de bloco em seu próprio   direita (que poderia, por exemplo, conter qualquer outro sistema de arquivos ou   contêiner como dm-crypt, MD RAID, etc.) - este não é o caso   btrfs.

     

Um subvolume btrfs não é um dispositivo de bloco (e não pode ser tratado como um)   em vez disso, um subvolume btrfs pode ser considerado como um arquivo POSIX   namespace. Esse namespace pode ser acessado por meio do subvolume de nível superior   do sistema de arquivos, ou pode ser montado em seu próprio direito.

     

Então, dada uma estrutura de sistema de arquivos como esta:

toplevel
+-- dir_1           (normal directory)
|   +-- file_2      (normal file)
|   \-- file_3      (normal file)
\-- subvol_a        (subvolume)
    +-- subvol_b    (subvolume, nested below subvol_a)
    |   \-- file_4  (normal file)
    \-- file_5      (normal file)
     

O subvolume de nível superior (ID5) (que se pode pensar como a raiz de   o sistema de arquivos) pode ser montado, e toda a estrutura do sistema de arquivos   ser visto no ponto de montagem; alternativamente, qualquer outro subvolume pode ser   montado (com as opções de montagem subvol ou subvolide, por exemplo   subvol = subvol_a) e somente qualquer coisa abaixo desse subvolume (no   exemplo, o subvolume subvol_b, seu conteúdo e arquivo file_4)   ser visível no ponto de montagem.

     

Subvolumes podem ser aninhados e cada subvolume (exceto o nível superior   subolume) tem um subvolume pai. Montar um subvolume também faz   de seus subvolumes filhos aninhados disponíveis em seus respectivos locais   em relação ao ponto de montagem.

     

Um sistema de arquivos btrfs possui um subvolume padrão, que é inicialmente configurado para   ser o subvolume de nível superior e que é montado se nenhum subvol ou   opção subvolide é especificada.

     

Alterar o subvolume padrão com o padrão subvolume btrfs fará   o nível superior do sistema de arquivos inacessível, exceto pelo uso do   subvol = / ou subvolide = 5 opções de montagem.

     

Subvolumes podem ser movidos no sistema de arquivos.

Meu entendimento é que o instalador do Ubuntu (se você escolher btrfs) irá criar @ e @home como subvolumes no seu sistema de arquivos btrfs. Em seguida, ele montará @ como a raiz do sistema de arquivos e @home in /home .

Isso abre mais possibilidades, uma das quais é instantâneos. Eu uso apt-btrfs-snapshot , que gerencia a criação de um instantâneo cada vez que faço algo com apt , ou seja, instalar ou remover pacotes. Dessa forma, posso reverter todas as alterações no sistema se algo der errado. Eu também tenho subvolumes para cada um dos usuários no meu sistema, embora isso seja quase definitivamente desnecessário. O ponto é que eu não tenho mais partições raiz e domésticas separadas, e não desperdiço espaço tentando alocar o suficiente para cada uma delas.

Recentemente, fiz uma nova instalação do Ubuntu 15.10 por cima de uma instalação 14.04 que tinha o btrfs para o disco principal - e consegui manter o subvolume @home intacto ao substituir o diretório raiz @ pelo novo instalar apenas usando o instalador gráfico. Este foi o principal motivo para usar partições separadas, e parece que versões recentes do Ubuntu suportam btrfs da mesma maneira - então eu sugiro que você não precise mais de partições se você configurou o btrfs.

    
por seanlano 23.02.2016 / 00:39