Ao instalar e/ou formatar partições em um computador com Linux, você sempre ver uma lista de opções com sistema de arquivos disponíveis. Por padrão, no caso de instalação nova de sistema, um padrão em cada distro é mostrado. Mas, e quando você não tem certeza de qual sistema de arquivos Linux usar? Sendo assim, dentre diversos sistemas de arquivos Linux existentes, qual eu devo usar?
Sistemas de arquivos Linux
Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, que permitem ao sistema operacional controlar o acesso ao disco rígido. Diferentes sistemas operacionais usam diferentes sistemas de arquivos. Conforme cresce a capacidade dos discos e aumenta o volume de arquivos e acessos, esta tarefa torna-se mais e mais complicada, exigindo o uso de sistemas de arquivos cada vez mais complexos e robustos – via Hardware.com.br.
O Linux é conhecido por ter uma gama de sistemas de arquivos suportados, inclusive que são suportados em outros sistemas operacionais. Existem muitos… desde dos mais simples, os experimentais e os que podem ser o futuro da próxima geração de sistemas de arquivos para Linux.
Muitas distribuições Linux oferecem um sistema de arquivos ‘padrão’ no momento da instalação, a menos que você decida o contrário. Em partes, é muito bom isso, pois auxilia recém-chegados ou pessoas não preocupadas nisso a tomar uma decisão e a se sentirem confortáveis com ela. Por outro lado, para aqueles que precisam e procuram melhor desempenho do sistema; ou que possuem um recurso computacional que trabalha com grande volume de dados, com diversas leituras e escritas em disco, conhecer e escolher o sistema de arquivos que melhor atenda as suas necessidades é importante! 😉
Dependendo da escolha e o uso do sistema, você pode encontrar lentidões no futuro e problemas que podem ser evitados. Assim, dentre diversos sistemas de arquivos Linux existentes, existe um que se encaixa melhor com seu perfil de uso; e proporciona melhor condições de trabalho.
Saiba como tentar solucionar problemas encontrados em um disco rígido usando o Linux
Muito além do kernel – conheça todos os elementos que formam a estrutura do sistema Linux
Existem diversos sistemas de arquivos diferentes, que vão desde sistemas simples como o FAT16, até sistemas como o EXT4, BtrFS e ZFS, que incorporam recursos muito mais avançados. Para quem usa o Linux apenas para uso geral, estes sistemas podem parecer estranho, mas são velhos conhecidos de quem trabalha com servidores e/ou grande volumes de dados 😉
Qual sistema de arquivos Linux eu devo usar?
Por padrão, caso não se sinta seguro ou não tenha “necessidades especiais” para manter um sistema com características robustas para grandes volumes de dados e com baixo risco de falhas, atualmente, use o sistema de arquivos Ext4. O Ext4 é o sistema de arquivos adotado por padrão na maioria das distribuições do Linux. Ele é uma versão melhorada dos antigos sistemas de arquivos Ext3/2. Não é o mais avançado sistema de arquivos existente, mas ele é sólido e estável!
No futuro, podem haver reviravoltas, bem como: o uso do sistema de arquivos BtrFS como padrão na maioria das distribuições Linux. Mas, por enquanto, o Ext4 é opção indicada para quem estiver nessa situação 😉 Mas, caso esteja mais curioso e com vontade de “testar” outro sistema de arquivos, de antemão, recomendo um, dentre os mostrados abaixo, que suporta o recurso journaling (presente no Ext4). Esse recurso é super importante, porque mantém o controle das modificações feitas no sistema de arquivos em um arquivo de log (journal) antes de escrevê-las no disco.
Basicamente, no momento da inicialização do sistema operacional, se o sistema de arquivos não estava totalmente inoperante (sem nenhum dado sendo escrito) quando houve o desligamento inesperado do computador (devido a uma reinicialização forçada, por exemplo), é acionado este registro completo (journal) das alterações feitas no sistema de arquivos antes do desligamento. Embora as mudanças de dados feitas no disco, no momento do acidente, possam ser perdidas, o processo de journaling garante que a estrutura do sistema de arquivos permaneça consistente; evitando corromper o sistema de arquivos do sistema 😉
Conheça algumas maneiras para restaurar seu sistema Linux em caso de falhas
Ext4 (Ext3 e Ext2)
Sucessor do Ext2 e Ext3, o Ext4 é uma versão melhorada e robusta. Ext significa “EXTended file system“, e foi o primeiro criado especificamente para Linux. Tem quatro revisões principais. “Ext” é a primeira versão do sistema de arquivos, introduzida em 1992. Foi uma grande atualização do sistema de arquivos Minix usado na época, mas não tem recursos importantes. Muitas distribuições Linux não suportam mais ele.
Já o Ext2 foi o primeiro sistema de arquivos a suportar atributos de arquivo estendidos e 2 unidades de terabyte. Também não possui suporte ao journaling – recurso importante que mantém o controle das modificações feitas no sistema de arquivos em um arquivo de log (journal) antes de escrevê-las no disco. Por isso recomendo evitar o Ext2 a menos que você saiba que precisa dele algum motivo.
Em seguida, o Ext3 foi o sistema de arquivos mais usado, por padrão, nos últimos anos nas distribuições Linux. Basicamente, ele é um Ext2 com suporte journaling. E, por volta de 2010, o Ext4 tornou-se o substituto “padrão” na maioria das distribuições Linux, no momento da instalação. Também foi projetado para ser compatível com as versões anteriores (Ext 2/3).
Ele inclui recursos mais recentes que reduzem a fragmentação de arquivos (desfragmentação online), permite maiores volumes de arquivos (16 TiB para um sistema com blocos de 4k), usa Delayed allocation (“alocação com atraso”) para melhorar a vida útil da memória flash e outros. Esta é a versão mais moderna do sistema de arquivos Ext e é o padrão na maioria das distribuições Linux.
Devo usar?!
O Ext4 é indicado para aqueles que procuram um sistema de arquivos super estável ou para aqueles que procuram algo que, realmente, funciona sem problemas 😉 Assim, se suas necessidades não são muito além do comum, você deve usar o Ext4!
BtrFS
O BtrFS é um sistema de arquivos para Linux desenvolvido pela Oracle. É um novo sistema de arquivos e permanece em desenvolvimento pesado. A comunidade Linux a considera instável para alguns casos. O foco central do BtrFS baseia-se no princípio do copy-on-write (CoW) – implementação onde o sistema mantém uma única cópia de um bit de dados antes que os dados tenham sido escritos; quando os dados forem escritos, uma cópia dele será feita. Essa estratégia é utilizada para reduzir a duplicação desnecessária de objetos de memória.
Além de suportar copy-on-write, o BtrFS pode suportar snaphots instantâneos (somente leitura) do sistema, clonagem de arquivos, subvolumes, compactação transparente, verificação de sistema de arquivos off-line, desfragmentação online e suporte para RAID 0, RAID 1, RAID 5, RAID 6 e RAID 10.
Conheça algumas maneiras para restaurar seu sistema Linux em caso de falhas
O Btrfs é visto como o sistema de arquivos da próxima geração para usuários de Linux, pois já está presente como opção, para instalação, na maioria das distribuições Linux existentes. Por exemplo, o OpenSUSE traz o Btrfs como opção padrão 😉
Entretanto, não é ideal para todas as aplicações usos, mas certamente é uma boa escolha para uma solução de desktop.
Devo usar?!
Os desenvolvedores do BtrFS prometeram que este sistema de arquivos será a próxima geração para os sistemas adotarem-o como padrão nas principais distribuições Linux. Mesmo em desenvolvimento constante, ele é um sistema de arquivos bastante sólido para uso do cotidiano. Inclusive. existem muitos recursos para usuários avançados e usuários básicos (incluindo grande desempenho em SSDs).
Portanto, se deseja ver novos horizontes, este sistema de arquivos é para você obter um pouco mais de seu sistema de arquivos e experimentar novos recursos. Pois, se procura um melhor suporte para SSD, vale a pena dá uma olhada nele 😉
ZFS
Foi projetado pela antiga Sun Microsystems (hoje Oracle) para o Solaris – sistema construído por ela. O ZFS suporta muitos recursos avançados, incluindo pooling de unidades, snapshots e striping de discos dinâmicos – o BtrFS trará muitos desses recursos para o Linux por padrão.
Cada arquivo tem uma soma de verificação, para que ZFS possa dizer se um arquivo está corrompido ou não. O ZFS de código aberto sob a licença Sun CDDL, o que significa que não pode ser incluído no kernel do Linux. No entanto, você pode instalar o suporte ZFS em qualquer distribuição Linux. Ubuntu agora oferece suporte oficial ao ZFS, começando com Ubuntu 16.04.
Para executar o ZFS, você deve instalar software de repositórios de terceiros. Contudo, como dito, a licença do ZFS é restritiva e impede que ele venha no kernel Linux; assim, pode ser muito complicado ou simplesmente impossível executá-lo sobre algumas distribuições Linux.
Devo usar?!
Se estiver usando o Ubuntu, você poderá testá-lo com mais facilidade. Mas, caso contrário recomendo usar o BtrFS (mencionado anteriormente), pois é mais indicado nessa situação 😉
XFS
Foi desenvolvido pela Silicon Graphics em 1994 para o sistema operacional SGI IRX e foi portado para Linux em 2001. É semelhante ao Ext4 em alguns aspectos, bem como o recurso da alocação com atraso para diminuir a fragmentação de arquivos e aumentar a vida útil do disco.
O XFS tem bom desempenho ao lidar com arquivos grandes, mas tem pior desempenho do que outros sistemas de arquivos ao lidar com muitos arquivos pequenos. Pode ser útil para certos tipos de servidores que precisam principalmente lidar com arquivos grandes – tipo base de dados ou servidor de arquivos.
Além disso, o XFS é a solução recomendada para o Red Hat Enterprise Linux desde a versão 7. Tem uma história rica em supercomputação e uso de servidores, o que provavelmente é parte do motivo pelo qual a Red Hat está defendendo seu uso. Existem, no entanto, algumas desvantagens importantes para o uso do XFS. A mais notável das desvantagens é a falta de checksums de dados ou ECC deixando-o susceptível a corrupção de dados silenciosos, também conhecido como “bit rot“, tornando a falta de compressão transparente.
Apesar dessas deficiências, o XFS é conhecido por ser muito estável e torna-se uma solução muito sólida.
Devo usar?!
O XFS é para aqueles que procuram uma solução de armazenamento de arquivos sólida. Por exemplo, se você tem um servidor doméstico e está em dúvida sobre qual sistema de arquivos usar, considere o XFS. Muitos dos recursos que o XFS vem podem ajudar no seu sistema de armazenamento de arquivos.
Entretanto, não é recomendado apenas para servidores. Se você é um usuário mais avançado e está interessado no que foi prometido pelo BtrFS (e ainda não foi implementado), confira o XFS. Ele faz bastante coisa e não tem baixo risco de problemas com estabilidade.
JFS
Ou “Journaled File System“, foi desenvolvido pela IBM, para o sistema operacional IBM AIX, em 1990 e posteriormente portado para Linux (desde a versão do kernel 2.4.18pre9-ac4). Possui baixo uso da CPU e bom desempenho para arquivos grandes e pequenos.
As partições JFS podem ser redimensionadas dinamicamente, mas não encolhidas. Ele foi extremamente bem planejado e tem suporte na maioria das grandes distribuições, no entanto, seus testes de produção em servidores Linux não são tão extensos como o Ext; já que foi projetado para o AIX. O Ext4 é mais comumente usado e é mais amplamente testado.
Devo usar?!
A utilização do JFS no Linux não tão comum, já que existe o Ext4; e ele, normalmente, oferece um melhor desempenho. Por outro lado, especialmente para sistemas de bancos de dados que precisam de gravações síncronas para sobreviver a um acidente de hardware, o JFS parece ser uma boa opção. Por exemplo, ele é leve e eficiente com atividades de discos “pesadas”; com uso de CPU baixa.
Assim, caso tenha algum ambiente com atividade alta em disco e possa testar um novo sistema de arquivos, recomendo o JFS.
F2FS
F2FS é um sistema de arquivos desenvolvido pela Samsung especificamente para armazenamento de dados em memória flash e em SSD. F2FS é uma tecnologia relativamente nova. Apesar disso, ele já tem algum sucesso real no Linux. O usuários dos SSD’s não me deixam mentir 😉
A maioria das distribuições Linux não suportam o F2FS, por padrão, no momento da instalação. Pois, o kernel Linux precisa ser configurado e ajustado antes para ficar pronto para uso. Um ponto de desvantagem para usuários com pouco conhecimento no universo Linux.
Devo usar?!
Se possui um armazenamento de dados em memória flash ou SSS, e se você é um “usuário avançado” que procura obter o máximo de sua unidade de armazenamento no Linux; este é um sistema de arquivos que você pode pensar em usar 😉
FAT16, FAT32, exFAT
Os sistemas de arquivos FAT da Microsoft são muitas vezes uma opção ao formatar uma unidade no Linux. Esses sistemas de arquivos não incluem um journal, assim são ideais para unidades USB externas. Eles são suportados em diversos sistemas operacionais, como: Windows, macOS, Linux e outros dispositivos.
Isto os torna o sistema de arquivos recomendados para formatação de uma unidade externa que você deseja usar com outros sistemas operacionais. FAT32 é mais antigo. O exFAT é a opção ideal, pois suporta arquivos com mais de 4 GB de tamanho e partições com mais de 8 TB de tamanho, ao contrário do FAT32.
Conclusão
Existem muitos sistemas de arquivos disponíveis no Linux (por volta de 36 suportados diretamente pelo kernel Linux) ou que “morreram” com o tempo, como o ReiserFS.
Cada um serve para uma finalidade específica de cada usuário que procura resolver diferentes problemas. Este artigo focou somente nas opções mais populares para a plataforma Linux. Pois, estas são as opções que você verá com mais frequência ao usar o Linux.
btrfs voando no ssd, na transferencia de arquivos quando conclui a barrinha passa do 100% beirando 110% rsrs
Ótimo post parabéns.
Melhor post sobre o assunto que encontrei depois de muita busca, incluindo diversos sites em outros idiomas. Parabéns! Como sugestão, atualize este artigo com regularidade, por exemplo a cada ano ou dois.
Obrigado! Vou anotar sua sugestão 🙂