Btrfs

Introdução ao sistema de arquivos Btrfs

Introdução ao sistema de arquivos Btrfs
Btrfs (B-Tree Filesystem) é um moderno sistema de arquivos copy-on-write (CoW) para Linux. O Btrfs visa implementar muitos recursos avançados do sistema de arquivos enquanto se concentra na tolerância a falhas, reparo e fácil administração. O sistema de arquivos btrfs é projetado para suportar o requisito de alto desempenho e grandes servidores de armazenamento. É adequado para data centers em escala de petabyte, bem como smartphones celulares.Neste artigo, irei discutir o sistema de arquivos Btrfs e seus recursos. Então vamos começar.

Cópia na gravação - sistema de arquivos CoW:

Btrfs é um sistema de arquivos copy-on-write (CoW). Em um sistema de arquivos CoW, quando você tenta modificar dados no sistema de arquivos, o sistema de arquivos copia os dados, modifica os dados e, em seguida, grava os dados modificados de volta em um local livre diferente do sistema de arquivos.

A principal vantagem do sistema de arquivos Copy-on-Write (CoW) é que a extensão dos dados que ele deseja modificar é copiada para um local diferente, modificada e armazenada em uma extensão diferente do sistema de arquivos. A extensão dos dados originais não é modificada. Portanto, o sistema de arquivos btrfs pode eliminar o risco de corrupção de dados ou atualização parcial em caso de falha de energia durante a modificação de dados, pois os dados originais são mantidos inalterados.

A principal desvantagem do sistema de arquivos Copy-on-Write (CoW) é que arquivos grandes tendem a ficar fragmentados à medida que são modificados. Portanto, a desfragmentação é necessária de vez em quando. Felizmente, o sistema de arquivos btrfs suporta desfragmentação online. Então, você não precisa desmontar o sistema de arquivos para desfragmentar um sistema de arquivos btrfs.

Principais recursos do sistema de arquivos Btrfs:

Os principais recursos do sistema de arquivos Btrfs são:

i) Armazenamento de arquivo baseado em extensão: Em um sistema de arquivos baseado em extensão, a unidade de armazenamento é chamada de extensão. Uma extensão é uma área contígua de armazenamento que é reservada para um arquivo. Um arquivo requer uma extensão, não importa quão pequeno seja o arquivo. Para arquivos maiores (tamanho de arquivo maior do que o tamanho da extensão), várias extensões serão necessárias. Para arquivos maiores, os metadados serão usados ​​para rastrear as extensões que o arquivo está usando. No sistema de arquivos Btrfs, os metadados são significativamente menores em tamanho. Metadados menores melhoram a eficiência de armazenamento e o desempenho do sistema de arquivos.

ii) Grande suporte para tamanho de arquivo: Em um sistema de arquivos Btrfs, um único arquivo pode ter cerca de 264 bytes ou 16 EiB (exbibytes) de tamanho. Não importa o tamanho do seu arquivo, o Btrfs pode suportá-lo.

iii) Empacotamento com espaço eficiente de arquivos pequenos: Normalmente, não importa o quão pequeno seja um arquivo, ele exigirá um bloco ou uma extensão para armazenar o arquivo. Isso desperdiça muito espaço em disco. Para resolver este problema, o sistema de arquivos Btrfs incorpora arquivos menores nos metadados para armazenar arquivos menores de forma eficiente.

iv) Diretórios indexados com uso eficiente de espaço: Os diretórios do sistema de arquivos btrfs são indexados de duas maneiras diferentes. Para pesquisa de nome de arquivo, a indexação baseada em chave é usada. Para referenciar dados, a indexação de chave baseada em inode é usada. A indexação de dois níveis melhora o desempenho da pesquisa de diretório / arquivo e reduz os requisitos de armazenamento para os índices.

v) Alocação dinâmica de inode: Você precisa de 1 inode para fazer referência a 1 arquivo. Muitos sistemas de arquivos (eu.e., Ext4) têm um número fixo de inodes. Portanto, se você criar muitos arquivos pequenos, poderá ter muito espaço restante em seu disco, mas não será capaz de criar novos arquivos. Você também não pode aumentar o número máximo de inodes uma vez que o sistema de arquivos é criado.

O Btrfs resolve este problema alocando inodes dinamicamente à medida que são necessários. Então, você pode criar quantos arquivos quiser, desde que tenha espaço livre em disco.

vi) Instantâneos graváveis ​​e instantâneos somente leitura: O sistema de arquivos Btrfs suporta instantâneos. Você pode tirar um instantâneo do sistema de arquivos atual, que você pode usar para restaurar seus dados se você acidentalmente removeu alguns arquivos ou corrompeu alguns dados.

Por padrão, os instantâneos do btrfs são somente leitura. Depois de tirar um instantâneo somente leitura, você não pode alterar nenhum arquivo / diretório nesse instantâneo. Em qualquer caso, se você quiser alterar quaisquer arquivos / diretórios depois de tirar um instantâneo do seu sistema de arquivos Btrfs existente, você pode alterar o instantâneo somente leitura para um instantâneo gravável e modificar quaisquer arquivos / diretórios nesse instantâneo.

vii) Subvolumes: Um sistema de arquivos Btrfs pode ter muitos subvolumes. Um subvolume é uma árvore binária nomeada (árvore B) (ou raiz do sistema de arquivos interno / lógico) da árvore raiz do sistema de arquivos existente (principal) do sistema de arquivos btrfs. Um subvolume não é um dispositivo de bloco próprio. Mas, você pode montar subvolumes Btrfs individualmente. Você pode pensar em subvolumes como namespaces.

viii) Suporte de cota ciente de subvolume: Você também pode alocar cotas para subvolumes. Assim que a cota for excedida, você não poderá adicionar nenhum dado novo ao subvolume. Você não precisará de nenhum programa separado para criar cotas de subvolume Btrfs.

ix) Checksums em dados e metadados: Para evitar a corrupção de dados, o Btrfs usa algoritmos de soma de verificação crc32c para os dados e os metadados do sistema de arquivos por padrão. As somas de verificação são armazenadas no sistema de arquivos para verificar automaticamente se há erros no sistema de arquivos e corrupção de dados em segundo plano.

Btrfs tem suporte para muitos outros algoritmos de soma de verificação: xxhash, sha256 e blake2b.

x) Compressão: O sistema de arquivos Btrfs suporta compressão transparente de arquivos. A compressão e descompressão dos arquivos em um sistema de arquivos btrfs são feitas em segundo plano automaticamente.

Btrfs suporta 3 algoritmos de compressão: ZLIB, LZO e ZSTD.

ZLIB é o método de compressão padrão do sistema de arquivos btrfs.

xi) Suporte integrado a vários dispositivos: Os sistemas de arquivos Btrfs têm suporte integrado ao gerenciador de volume lógico (LVM). Você pode adicionar vários dispositivos de armazenamento em um único sistema de arquivos btrfs. Você também pode configurar matrizes RAID no sistema de arquivos btrfs sem precisar de nenhum software extra.

O sistema de arquivos Btrfs suporta distribuição de dados, espelhamento de dados, distribuição de dados + espelhamento e implementações de paridade única e dupla.

Distribuição de dados: Se você adicionou vários dispositivos de armazenamento no mesmo sistema de arquivos btrfs, o btrfs pode armazenar o mesmo arquivo em diferentes dispositivos / partições físicas. Isso é chamado de distribuição de dados. A distribuição de dados melhora o desempenho de leitura / gravação do sistema de arquivos. RAID-0 usa o recurso de distribuição de dados extensivamente.

Espelhamento de dados: Se você adicionou vários dispositivos de armazenamento no mesmo sistema de arquivos btrfs, todos os dados gravados em um dispositivo de armazenamento serão gravados em todos os outros dispositivos de armazenamento. Isso é chamado de espelhamento de dados. RAID-1 usa o recurso de espelhamento de dados extensivamente.

Distribuição de dados + paridade única: RAID-5 usa distribuição de dados e paridade distribuída única. Se você adicionou vários dispositivos de armazenamento em um sistema de arquivos btrfs, o RAID-5 irá retirar os dados em vários dispositivos de armazenamento e calcular e armazenar blocos de paridade entre os dispositivos de armazenamento. RAID-5 pode sustentar uma única falha de unidade.

Distribuição de dados + paridade dupla: RAID-6 usa distribuição de dados e paridade distribuída dupla. Se você adicionou vários dispositivos de armazenamento em um sistema de arquivos btrfs, o RAID-6 irá separar os dados em vários dispositivos de armazenamento e calcular e armazenar blocos de paridade dupla entre os dispositivos de armazenamento. RAID-6 pode sustentar duas falhas de unidade. Fora isso, é o mesmo que RAID-5 (striping de dados + paridade única).

Distribuição de dados + espelhamento: RAID-10 usa distribuição de dados e espelhamento de dados ao mesmo tempo. RAID-10 requer um número par de dispositivos de armazenamento do mesmo tamanho para ser adicionado a um único sistema de arquivos btrfs. O número mínimo de dispositivos de armazenamento que você pode adicionar em um sistema de arquivos btrfs RAID-10 é 4. Metade do dispositivo de armazenamento será usada para distribuição de dados, e a outra metade será usada para espelhar os dados da primeira metade dos dispositivos de armazenamento (onde os dados são distribuídos).

xii) Conscientização e otimizações de SSD: O sistema de arquivos btrfs reconhece SSD e tem alguns recursos de otimização de SSD. O sistema de arquivos btrfs também tem suporte TRIM / Discard para dispositivos de armazenamento SSD.

O recurso TRIM pode detectar e marcar extensões de dados que não são mais usados. Uma vez que as extensões são marcadas, o sistema de arquivos btrfs pode apagá-las automaticamente para que os outros arquivos possam usar essas extensões de dados.

O recurso Descartar irá remover todas as extensões de dados do SSD. Se você deseja vender seu SSD, este recurso pode ser útil.

xiii) Backup incremental eficiente: Btrfs suporta backup incremental. A primeira vez que você faz backup de um sistema de arquivos btrfs, ele tira um instantâneo do sistema de arquivos atual. Em seguida, todos os backups subsequentes serão comparados com o primeiro instantâneo e apenas as alterações serão armazenadas no disco. Portanto, quaisquer backups subsequentes ocuparão menos espaço em disco e serão mais rápidos.

xiv) Esfregaço de fundo: É um processo do sistema de arquivos Btrfs usado para encontrar e corrigir erros nos arquivos que têm cópias redundantes (múltiplas cópias) armazenadas no sistema de arquivos Btrfs.

xv) Desfragmentação do sistema de arquivos online: Eu expliquei anteriormente como o sistema de arquivos Btrfs Copy-on-Write funciona. Arquivos grandes são armazenados em várias extensões do sistema de arquivos Btrfs. Conforme você modifica arquivos grandes, as extensões que devem ser modificadas são copiadas para diferentes extensões livres do sistema de arquivos e modificadas lá. Portanto, as extensões de dados não modificadas também são mantidas no caso de serem necessárias para a recuperação do sistema de arquivos. Isso causa fragmentação (as extensões de dados de um arquivo grande não serão contínuas e serão espalhadas por todo o dispositivo de armazenamento) no sistema de arquivos à medida que arquivos grandes são modificados. Muita fragmentação afeta negativamente o sistema de arquivos (torna a operação de leitura / gravação do sistema de arquivos mais lenta).

Para resolver este problema, o sistema de arquivos btrfs suporta a desfragmentação do sistema de arquivos online. Com a desfragmentação online, você não precisa desmontar o sistema de arquivos para desfragmentá-lo. Você pode manter o sistema de arquivos funcionando e ainda desfragmentá-lo. A desfragmentação moverá as extensões do arquivo ao redor do sistema de arquivos para manter as extensões do mesmo arquivo grande o mais contínuo possível. A desfragmentação melhora o desempenho do sistema de arquivos.

xvi) Verificação do sistema de arquivos offline: O sistema de arquivos Btrfs possui muitas ferramentas integradas que você pode usar para verificar se há erros no sistema de arquivos e corrigi-los. Você também pode consertar um sistema de arquivos Btrfs quebrado (que não pode ser montado) com essas ferramentas.

xvii) Conversão local de sistemas de arquivos Ext2 / 3/4 e ReiserFS existentes: O sistema de arquivos Btrfs possui um utilitário embutido btrfs-convert, que você pode usar para converter um sistema de arquivos Ext2 / 3/4 e ReiserFS existente em um sistema de arquivos Btrfs.

O programa de conversão do sistema de arquivos Btrfs lê os metadados de um sistema de arquivos Ext2 / 3/4 (ou ReiserFS) existente, cria metadados Btrfs e os armazena no sistema de arquivos. O sistema de arquivos mantém os metadados Btrfs e Ext2 / 3/4 (ou ReiserFS). O sistema de arquivos Btrfs aponta para os mesmos blocos de arquivos usados ​​pelos arquivos do sistema de arquivos Ext2 / 3/4 (ou ReiserFS). O sistema de arquivos e os blocos de dados existentes são mantidos intocados, pois o Btrfs é um sistema de arquivos Copiar na Gravação (CoW). Quando um arquivo é modificado, o sistema de arquivos Btrfs copia os blocos de dados originais para novas extensões livres e os modifica lá.

xviii) Dispositivos de sementes: O sistema de arquivos Btrfs suporta dispositivos seed. Você pode criar um sistema de arquivos somente leitura e usá-lo como um modelo (dispositivo de semente) para criar outros sistemas de arquivos Btrfs. A vantagem de fazer isso é que apenas os dados modificados serão gravados no novo sistema de arquivos. Os dados originais (nos dispositivos de seed) serão mantidos como estão. Este recurso pode ser usado para economizar muito espaço em disco e redundância de dados.

xix) Enviar / receber alterações de subvolume: O sistema de arquivos btrfs pode enviar / receber mudanças de subvolume. O sistema de arquivos Btrfs pode enviar as mudanças incrementais de um subvolume para outro sistema de arquivos Btrfs (também pode residir em outro computador) que pode receber as mudanças de subvolume. Este recurso é usado para fazer backups incrementais do sistema de arquivos Btrfs local ou remotamente. Este método é mais rápido e eficiente do que o rsync.

xx) Desduplicação em lote / fora de banda: O sistema de arquivos Btrfs suporta desduplicação em lote ou fora de banda. A duplicação ocorre após um arquivo ser gravado no sistema de arquivos. O sistema de arquivos Btrfs verifica ativamente todo o sistema de arquivos em busca de extensões idênticas e mantém apenas uma cópia de cada extensão (remove extensões redundantes / duplicadas). O mesmo princípio de cópia na gravação (CoW) é usado para esta tarefa. A desduplicação economiza muito espaço em disco.

xxi) Suporte a arquivos de troca: Se você estiver usando Linux Kernel 5.0 ou mais recente, você pode criar arquivos de swap no sistema de arquivos Btrfs.

Existem algumas limitações do Swapfile em um sistema de arquivos Btrfs:

- O arquivo de swap deve ser alocado como NoCoW (não copy-on-write)

- O arquivo de swap não deve ter nenhuma compressão habilitada.

Estabilidade do sistema de arquivos Btrfs:

O sistema de arquivos Btrfs é desenvolvido ativamente pela equipe Btrfs. A maioria dos recursos do sistema de arquivos são estáveis ​​no momento em que este livro foi escrito. Alguns dos recursos avançados ainda não são estáveis ​​o suficiente para um ambiente de produção. A equipe do Btrfs está trabalhando muito para resolver esses problemas de estabilidade.

Se você quiser usar o sistema de arquivos Btrfs em seu servidor de produção, verifique a página oficial Status - btrfs Wiki para descobrir se os recursos do sistema de arquivos de que você precisa são estáveis ​​o suficiente para você ou não. Além disso, certifique-se de executar alguns testes antes da implantação final de seu sistema de arquivos Btrfs e lembre-se de manter backups de seus dados importantes. Manter o backup é sempre importante para ambientes de produção.

Substituição futura do sistema de arquivos Ext4:

O sistema de arquivos Btrfs está sendo desenvolvido rapidamente. A equipe de desenvolvimento do Btrfs também se preocupa com a estabilidade do sistema de arquivos. Então, eles tentam o seu melhor para torná-lo o mais estável possível ao desenvolver o sistema de arquivos btrfs. Assim que o sistema de arquivos btrfs estiver totalmente desenvolvido e todos os recursos estiverem estáveis ​​o suficiente, ele pode substituir o sistema de arquivos Ext4.

Referências:

[1] Wiki btrfs - https: // btrfs.wiki.núcleo.org / index.php / Main_Page
[2] BTRFS - The Kernel Tree Documentation - https: // www.núcleo.org / doc / html / latest / filesystems / btrfs.html
[3] BTRFS - Glossário - https: // btrfs.wiki.núcleo.org / index.php / glossário
[4] Recursos do sistema de arquivos “Btrfs” - https: // www.thegeekdiary.com / features-of-the-btrfs-filesystem /
[5] Comparação de sistemas de arquivos - https: // en.wikipedia.org / wiki / Comparison_of_file_systems
[6] Design do Btrfs - Wiki do btrfs - https: // btrfs.wiki.núcleo.org / index.php / Btrfs_design
[7] talvez ficar sem inodes pudesse ser levado "mais a sério"? - https: // lwn.net / Artigos / 724522 /
[8] Tornando um instantâneo Btrfs somente leitura gravável - https: // markandruth.co.uk / 2016/12/29 / making-a-btrfs-read-only-snapshot-writable
[9] Distribuição de dados - https: // en.wikipedia.org / wiki / Data_striping
[10] FAQ - btrfs wiki - https: // btrfs.wiki.núcleo.org / index.php / FAQ
[11] Níveis RAID padrão - https: // en.wikipedia.org / wiki / Standard_RAID_levels
[12] Trim (computação) - https: // en.wikipedia.org / wiki / Trim_ (computação)
[13] Unidade de estado sólido - ArchWiki - https: // wiki.Archlinux.org / index.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.núcleo.org / index.php / Btrfsck
[15] Conversão de Ext3 / 4 e ReiserFS - btrfs Wiki - https: // btrfs.wiki.núcleo.org / index.php / Conversion_from_Ext3
[16] Backup incremental - btrfs Wiki - https: // btrfs.wiki.núcleo.org / index.php / Incremental_Backup
[17] Deduplicação - btrfs Wiki - https: // btrfs.wiki.núcleo.org / index.php / deduplicação
[18] Status - btrfs Wiki - https: // btrfs.wiki.núcleo.org / index.php / status

Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...
Controle e gerencie o movimento do mouse entre vários monitores no Windows 10
Gerenciador de mouse com tela dupla permite que você controle e configure o movimento do mouse entre vários monitores, diminuindo seus movimentos pert...
WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...