{"id":427,"date":"2013-03-08T19:00:43","date_gmt":"2013-03-08T22:00:43","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=427"},"modified":"2013-03-08T19:00:43","modified_gmt":"2013-03-08T22:00:43","slug":"sistemas-de-arquivos-para-gnulinux","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=427","title":{"rendered":"Sistemas de arquivos para GNU\/Linux"},"content":{"rendered":"<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td colspan=\"2\"><b>Introdu\u00e7\u00e3o<\/b><\/p>\n<div>Antes de come\u00e7ar a falar sobre os sistemas de arquivos, temos que ter em mente o que \u00e9 um sistema de arquivos.<\/p>\n<p><em>Sistema de arquivos<\/em> \u00e9 uma estrutura l\u00f3gica que permite armazenar informa\u00e7\u00f5es em massa e de forma bem organizada, permitindo que um Sistema Operacional ou aplica\u00e7\u00f5es possam ser usadas pelo computador, assim como gravar novas informa\u00e7\u00f5es, e essas informa\u00e7\u00f5es possam ser acessadas posteriormente.<\/p>\n<p>Um sistema de arquivos depende de estruturas de dados sobre os arquivos. Uma dessas estruturas s\u00e3o os metadados de dados que descrevem os dados. Cada arquivo est\u00e1 associado com um <em>inode<\/em>, o qual \u00e9 identificado por um n\u00famero inteiro, muitas vezes referido como um n\u00famero &#8216;i-&#8216;, ou n\u00famero de inode.<\/p>\n<p>Inodes armazenam informa\u00e7\u00f5es sobre arquivos e diret\u00f3rios (pastas), tais como a propriedade do arquivo, modo de acesso (ler, escrever, executar permiss\u00f5es) e tipo de arquivo. Em muitos tipos de implementa\u00e7\u00f5es de sistemas de arquivos, o n\u00famero m\u00e1ximo de inodes \u00e9 fixado no momento da cria\u00e7\u00e3o do sistema de arquivos, limitando o n\u00famero m\u00e1ximo de arquivos que o sistema de arquivos pode conter.<\/p>\n<p>&#8211; Posso usar Sistema Operacional, ou alguma aplica\u00e7\u00e3o, sem ter que aplicar um sistema de arquivos?<\/p>\n<p>N\u00e3o, o disco r\u00edgido que armazena as informa\u00e7\u00f5es \u00e9 formatado fisicamente pelo fabricante, e esse tipo de formata\u00e7\u00e3o n\u00e3o faz com que o disco possa armazenar informa\u00e7\u00f5es, por\u00e9m, n\u00e3o se consegue utilizar o mesmo, pois ainda precisa de uma estrutura l\u00f3gica para utilizar todo o espa\u00e7o que o disco disponibiliza.<\/p>\n<h1>Objetivo do artigo<\/h1>\n<p>N\u00e3o faz parte do objetivo do artigo fazer um estudo aprofundado sobre cada sistema de arquivos abordado, mas sim, abordar as caracter\u00edsticas dos mesmos, permitindo conhecer mais de cada um.<\/p>\n<h1>Esclarecimentos<\/h1>\n<p>Todo e qualquer sistema de arquivos n\u00e3o \u00e9 ANTI-FALHAS.<\/p>\n<p>O mesmo n\u00e3o impede que sua estrutura de dados fique corrompida ou danificada ap\u00f3s um desligamento inesperado causado por falta de energia, ou por travamento no sistema ou aplica\u00e7\u00e3o, fazendo com que voc\u00ea seja obrigado a usar o bot\u00e3o de desligamento ou de reinicializa\u00e7\u00e3o.<\/p>\n<p>E ap\u00f3s desligar ou reinicializar desta forma, pode ter certeza que seu HD logo ficar\u00e1 com <em>badblocks<\/em>, principalmente se este tipo de situa\u00e7\u00e3o acontecer constantemente. N\u00e3o se impressione se o seu sistema, ap\u00f3s um acontecimento destes, n\u00e3o conseguir mais ser acessado, ou precisar de reparos manuais para poder ser usado novamente.<\/p>\n<p>O \u00fanico sistema que ouvi falar bem quanto \u00e0 toler\u00e2ncia de falhas, mas n\u00e3o cheguei a usar e nem a testar, foi o <em>ZFS<\/em>, desenvolvido pela Sun Microsystems.<\/p>\n<p>A\u00ed voc\u00ea pode se perguntar:<\/p>\n<p>&#8211; Mas o que \u00e9 um &#8216;badblock&#8217; e por qu\u00ea o sistema pode ficar corrompido, caso aconte\u00e7a o que voc\u00ea citou acima?<\/p>\n<p>1\u00b0 &#8211; Um &#8216;badblock&#8217; \u00e9 uma \u00e1rea danificada de um disco que n\u00e3o pode ser mais utilizada, pois o dano \u00e9 permanente.<\/p>\n<p>Este tipo de dano pode ser causado por desligamentos for\u00e7ados, como por exemplo, apertar o bot\u00e3o de desligamento da m\u00e1quina, assim como reinicializa\u00e7\u00e3o for\u00e7ada, formata\u00e7\u00f5es erradas, esbarr\u00f5es no HD, falta de energia etc.<\/p>\n<p>Quando h\u00e1 muitos &#8216;badblocks&#8217;, seu HD est\u00e1 pr\u00f3ximo do fim de sua vida \u00fatil, pois o mesmo est\u00e1 com muitos problemas.<\/p>\n<p>2\u00b0 &#8211; O sistema de arquivos pode ficar corrompido e o SO ficar inacess\u00edvel, porque algum, ou alguns dados que estejam sendo utilizados pelo sistema no momento em que acontece o que foi citado anteriormente ainda n\u00e3o foram salvos, fazendo com que o mesmo fique incompleto, sendo assim corrompido. E se um arquivo deste for importante para o sistema, pode fazer com que o sistema fique inacess\u00edvel.<\/p>\n<p>Por\u00e9m, muitos dos sistemas de arquivos tem toler\u00e2ncia de falhas, alguns mais consistentes e robustos que os outros.<\/p>\n<p>Para os sistemas de arquivos usados no <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a>, toda essa consist\u00eancia tem ajuda do recurso muito utilizado que \u00e9 o <em>Journaling<\/em>.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Journaling<\/b><\/p>\n<div><em>Journaling<\/em> \u00e9 um recurso usado pelos sistemas de arquivos que consiste em uma \u00e1rea dedicada para registros, armazenando todas as a\u00e7\u00f5es que ser\u00e3o feitas nos arquivos, como grava\u00e7\u00e3o e\/ou altera\u00e7\u00e3o de dados, por exemplo. Seja armazenamento somente de metadados, ou de metadados e dados de arquivos, permitindo restaurar o sistema de arquivos, caso aconte\u00e7a algum erro inesperado.<\/p>\n<p>A principal finalidade do &#8216;journaling&#8217; \u00e9 recuperar o sistema de arquivos de erros (toler\u00e2ncia de falhas), sejam eles causados pelo sistema, aplica\u00e7\u00f5es ou desligamentos incorretos de forma for\u00e7ada ou inesperada.<\/p>\n<p>Com isso \u00e9 poss\u00edvel localizar todas as opera\u00e7\u00f5es que n\u00e3o haviam sido completadas, restaurando a consist\u00eancia do sistema de arquivos e permitindo que o sistema operacional continue sendo utilizado.<\/p>\n<p>A\u00ed voc\u00ea ainda fica com d\u00favida e pergunta: Mas como assim?<\/p>\n<p>Com o &#8216;jounaling&#8217;, o sistema de arquivos passa a registrar em uma \u00e1rea especial chamada <em>journal<\/em>, ou <em>log<\/em>, as a\u00e7\u00f5es que ser\u00e3o feitas nos arquivos (grava\u00e7\u00e3o ou altera\u00e7\u00e3o de dados, por exemplo) antes da grava\u00e7\u00e3o no FS em si.<\/p>\n<p>Ap\u00f3s a execu\u00e7\u00e3o, as opera\u00e7\u00f5es registradas no log s\u00e3o tidas como conclu\u00eddas e, portanto, eliminadas. Note que todo este procedimento acontece de maneira extremamente r\u00e1pida.<\/p>\n<p>Mas em que exatamente, o &#8216;journaling&#8217; mostra-se vantajoso?<\/p>\n<p>Os registros de log s\u00e3o escritos antes que as mudan\u00e7as efetivamente ocorram no sistema de arquivos. Estes registros somente s\u00e3o eliminados quando as mudan\u00e7as s\u00e3o executadas.<\/p>\n<p>Se, por exemplo, o computador for desligado repentinamente (como ocorre em falta de energia el\u00e9trica), o sistema de arquivos verificar\u00e1 os registros existentes no &#8216;journal&#8217; e executar\u00e1 aquilo que estiver marcado como n\u00e3o realizado. Isso faz com que o risco de perda de dados diminua drasticamente, j\u00e1 que o sistema operacional saber\u00e1 &#8216;onde parou&#8217;.<\/p>\n<p>Por\u00e9m temos que ter em mente que este recurso n\u00e3o \u00e9 anti-falhas e sim, um recurso para tolerar falhas at\u00e9 um certo ponto. Pois esta toler\u00e2ncia n\u00e3o previne 100% de erros como os citados anteriormente, toda essa toler\u00e2ncia a falhas pode acabar de uma hora para outra, ap\u00f3s v\u00e1rias quedas de energia ou desligamentos for\u00e7ados.<\/p>\n<p>Contudo, nem todos os sistemas de arquivos que usam o &#8216;journaling&#8217; possuem uma boa implementa\u00e7\u00e3o do mesmo, fazendo com que este recurso n\u00e3o seja 100% confi\u00e1vel.<\/p>\n<p>Se voc\u00ea come\u00e7ar a desligar o sistema incorretamente com frequ\u00eancia, vai perceber que, algumas vezes, o sistema n\u00e3o ser\u00e1 capaz de verificar o &#8216;journal&#8217;, e o sistema de arquivos ter\u00e1 que ser verificado usando um utilit\u00e1rio para verifica\u00e7\u00e3o da integridade do sistema de arquivos, tentando localizar todas as opera\u00e7\u00f5es que n\u00e3o haviam sido completadas para tentar recuperar a integridade de alguns arquivos, fazendo com que, quase sempre, alguns arquivos sejam perdidos.<\/p>\n<h1>T\u00e9cnicas de journaling<\/h1>\n<ul>\n<li><em>Journal F\u00edsico<\/em>: Consiste em registrar uma c\u00f3pia antecipada de todos os blocos de arquivos que ser\u00e3o posteriormente gravados no sistema de arquivo principal. Se houver uma falha quando o sistema de arquivos est\u00e1 gravando, a grava\u00e7\u00e3o pode simplesmente ser repetida at\u00e9 a conclus\u00e3o, quando o sistema de arquivo for montado da pr\u00f3xima vez.\n<p>Se houver uma falha quando a grava\u00e7\u00e3o est\u00e1 sendo registrado no journal, a grava\u00e7\u00e3o parcial ter\u00e1 um <em>checksum<\/em> ausente, ou incompat\u00edvel, e pode ser ignorada na pr\u00f3xima montagem do sistema de arquivos.<\/li>\n<li><em>Journal L\u00f3gico<\/em>: Consiste em gravar apenas os metadados que sofrer\u00e3o a\u00e7\u00f5es, tais como leitura\/grava\u00e7\u00e3o e altera\u00e7\u00e3o dos arquivos. Um sistema de arquivos, com uma &#8216;journal&#8217; l\u00f3gico, ainda recupera-se rapidamente ap\u00f3s um acidente, mas pode permitir que os dados n\u00e3o sejam recuperados devido a n\u00e3o grava\u00e7\u00e3o antecipada dos blocos do arquivo alterado ou em uso, causando corrup\u00e7\u00e3o de dados. Por\u00e9m, isso aumenta o desempenho, nota-se mais isso na inicializa\u00e7\u00e3o do sistema.<\/li>\n<\/ul>\n<h1>Outras informa\u00e7\u00f5es<\/h1>\n<p>Os sistemas de arquivos para <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a>: JFS, XFS, ReiserFS, ext3 e ext4, possuem &#8216;journaling&#8217;.<\/p>\n<p>O arquivo de log do &#8216;journaling&#8217; pode estar no mesmo sistema de arquivos, ou em um sistema de arquivos de outra parti\u00e7\u00e3o, e\/ou outro disco. E seu tamanho pode ser aumentado tamb\u00e9m para melhorar o desempenho.<\/p>\n<p>Ent\u00e3o o &#8216;journaling&#8217; torna-se indispens\u00e1vel para os sistema de arquivos usados hoje e no futuro, pois \u00e9 atrav\u00e9s deste recurso que temos uma certa toler\u00e2ncia a certos acontecimentos n\u00e3o planejados.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Sistema de arquivos ext3<\/b><\/p>\n<div>O sistema de arquivos <em>ext3<\/em> j\u00e1 est\u00e1 entre a comunidade <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a> a muito tempo e ainda \u00e9 bastante utilizado. O ext3 \u00e9 uma atualiza\u00e7\u00e3o do sistema de arquivos <em>ext2<\/em>.<\/p>\n<p>Em rela\u00e7\u00e3o ao ext2, a principal diferen\u00e7a \u00e9 a implementa\u00e7\u00e3o do journaling, um recurso muito interessante abordado na segunda p\u00e1gina deste artigo, que consiste no armazenamento de registros para posterior restaura\u00e7\u00e3o das informa\u00e7\u00f5es, caso aconte\u00e7a algum erro.<\/p>\n<h1>Principais vantagens<\/h1>\n<p>1. Possui journaling. H\u00e1 tr\u00eas n\u00edveis de opera\u00e7\u00e3o do journaling dispon\u00edveis na implementa\u00e7\u00e3o do ext3:<\/p>\n<ul>\n<li>Modo de <em>Opera\u00e7\u00e3o Ordered<\/em> (default): O journal \u00e9 atualizado no final de cada opera\u00e7\u00e3o. Isto faz com que exista uma pequena perda de desempenho, j\u00e1 que os dados s\u00e3o gravados duas vezes, uma no arquivo que foi alterado ou gravado, por exemplo, e outra no journal. O conte\u00fado dos blocos de cada dado n\u00e3o \u00e9 armazenado no journal, por\u00e9m, os metadados de cada arquivo s\u00e3o armazenados no journal antes dos dados serem escritos no disco, assim como marca\u00e7\u00e3o de altera\u00e7\u00e3o dos metadados dos arquivos.<\/li>\n<li>Modo de <em>Opera\u00e7\u00e3o Writeback<\/em>: O journal armazena apenas informa\u00e7\u00f5es referentes \u00e0 estrutura do sistema de arquivos (metadata) e n\u00e3o em rela\u00e7\u00e3o aos arquivos propriamente ditos, e \u00e9 gravado de forma mais ocasional, aproveitando os momentos de inatividade.\n<p>Este modo \u00e9 o mais r\u00e1pido, mas em compensa\u00e7\u00e3o oferece uma seguran\u00e7a muito menor contra perda e corrompimento de arquivos causados pelos desligamentos incorretos.<\/li>\n<li>Modo de <em>Opera\u00e7\u00e3o Journal<\/em>: Que \u00e9 o mais seguro, por\u00e9m, mais lento. Nele, o journal armazena n\u00e3o apenas informa\u00e7\u00f5es sobre as a\u00e7\u00f5es sofridas, mas tamb\u00e9m uma c\u00f3pia de seguran\u00e7a de todos os arquivos modificados, que ainda n\u00e3o foram gravados no disco. A cada altera\u00e7\u00e3o, o sistema grava uma c\u00f3pia do arquivo (no journal), atualiza as informa\u00e7\u00f5es referentes \u00e0 estrutura do sistema de arquivos, grava o arquivo e atualiza novamente o journal, marcando a opera\u00e7\u00e3o como conclu\u00edda. Como disse, isso garante uma seguran\u00e7a muito grande contra perda de dados, mas em compensa\u00e7\u00e3o, reduz o desempenho drasticamente. Justamente por causa disso, este \u00e9 o modo menos usado.<\/li>\n<\/ul>\n<p>O modo de opera\u00e7\u00e3o padr\u00e3o \u00e9 o Ordered, por\u00e9m n\u00e3o significa dizer que voc\u00ea n\u00e3o consiga mudar isso. Para usar o modo Writeback ou o modo journal, voc\u00ea deve adicionar a op\u00e7\u00e3o &#8220;data=writeback&#8221; ou &#8220;data=journal&#8221; nas op\u00e7\u00f5es referentes \u00e0 parti\u00e7\u00e3o, dentro do arquivo \/etc\/fstab ou usando o comando <em>tune2fs<\/em>.<\/p>\n<p>2. Possui indexa\u00e7\u00e3o de maior quantidade de diret\u00f3rios;<\/p>\n<p>3. Suporte para tamanhos maiores de volumes e arquivos em rela\u00e7\u00e3o a sua vers\u00e3o anterior.<\/p>\n<p>Veja abaixo uma tabela:<\/p>\n<pre>Tamanho do bloco   Tamanho m\u00e1x. arquivo   Tamanho m\u00e1x. fs\r\n1 KiB                            16 GiB             2 TiB\r\n2 KiB                           256 GiB             8 TiB\r\n4 KiB                             2 TiB            16 TiB\r\n8 KiB                            2 TiBsp           32 TiB<\/pre>\n<p>4. O ext3 ainda pode contar com algumas ferramentas para gerenciamento de sistema de arquivos extFS, tais como:<\/p>\n<ul>\n<li>tune2fs<\/li>\n<li>mke2fs<\/li>\n<li>debugfs<\/li>\n<li>e2fsck<\/li>\n<\/ul>\n<h1>Principais desvantagens<\/h1>\n<ul>\n<li><em>Funcionalidade<\/em>: Como o ext3 visa uma grande compatibilidade com o ext2, muitas das estruturas <em>on-disk<\/em> s\u00e3o similares \u00e0quelas do ext2. Por causa disso o ext3 n\u00e3o possui muitas das fun\u00e7\u00f5es mais recentes, como aloca\u00e7\u00e3o din\u00e2mica de inodes e tamanhos de blocos vari\u00e1veis (fragmentos ou caudas).\n<p>Os sistemas de arquivos ext3 n\u00e3o podem ser checados enquanto s\u00e3o montados para escrita. Um <em>dump<\/em> do sistema de arquivos feito enquanto ele est\u00e1 sendo montado para leitura e escrita pode resultar em dados corrompidos dentro do arquivo de dump.<\/li>\n<li><em>Desfragmenta\u00e7\u00e3o<\/em>: Apesar de n\u00e3o fragmentar muito o disco na estrutura do ext3, n\u00e3o h\u00e1 uma ferramenta para desfragmenta\u00e7\u00e3o online funcional em n\u00edvel de sistema de arquivos.<\/li>\n<li><em>Recupera\u00e7\u00e3o de dados deletados<\/em>: Diferentemente do ext2, o ext3 zera os ponteiros de blocos nos inodes de arquivos apagados. Ele faz isso para simplificar o acesso de leitura e escrita quando o journal est\u00e1 sendo utilizado ap\u00f3s uma montagem.\n<p>Isso, no entanto, previne efetivamente que os arquivos sejam recuperados. Isso prov\u00ea uma remo\u00e7\u00e3o de arquivos um pouco mais segura que em sistemas ext2, o que pode ser tanto uma vantagem quanto uma desvantagem.<\/li>\n<li><em>Verifica\u00e7\u00e3o do sistema de arquivos<\/em>: O ext3 \u00e9 considerado lento na verifica\u00e7\u00e3o do sistema de arquivos.<\/li>\n<li><em>Cria\u00e7\u00e3o do sistema de arquivos<\/em>: O ext3 \u00e9 lento quando se aplica um sistema de arquivos, e se o disco tiver que marcar <em>badblocks<\/em>, demora mais ainda.<\/li>\n<\/ul>\n<p>O sistema de arquivos ext3, apesar de possuir journaling, n\u00e3o foi desenvolvido desde o inicio para suportar o journal, e sim, foi integrado a partir da vers\u00e3o 3 do mesmo, por isso, o journal n\u00e3o \u00e9 t\u00e3o eficaz no ext3.<\/p>\n<p>E quando o journal falha, ele faz uso do <em>fsck<\/em> para verificar a integridade do sistema de arquivos, e se o fsck n\u00e3o conseguir recuperar a integridade do mesmo, seu sistema de arquivos fica corrompido.<\/p>\n<p>Para muitos, este sistema de arquivos \u00e9 obsoleto e para outros est\u00e1vel, e tem um bom desempenho.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Sistema de arquivos ext4<\/b><\/p>\n<div>O sistema de arquivos <em>ext4<\/em> \u00e9 \u00faltima vers\u00e3o do sistema de arquivos extFS at\u00e9 o momento, ele \u00e9 na verdade a atualiza\u00e7\u00e3o do ext3, j\u00e1 abordado no artigo.<\/p>\n<p>O ext4 trouxe, de acordo com seus desenvolvedores, alguns recursos que n\u00e3o existiam no ext3, mantendo alguns que a vers\u00e3o anterior j\u00e1 possu\u00eda. Na verdade s\u00e3o recursos que estavam tentando implantar na vers\u00e3o 3 do extFS (ext3), por\u00e9m, devido a alguns problemas na implementa\u00e7\u00e3o, lan\u00e7aram essa nova vers\u00e3o com as caracter\u00edsticas descritas abaixo.<\/p>\n<h1>Principais vantagens<\/h1>\n<ul>\n<li>Possui journaling com aprimoramento de <em>checksum<\/em>.<\/li>\n<li>Melhorias no journaling: Checagem no journaling, checksum aprimorado permitindo ao ext4 ter mais toler\u00e2ncia \u00e0 falhas que o ext3 e restrutura\u00e7\u00e3o mais r\u00e1pida;<\/li>\n<li>Suporte para tamanhos maiores de volumes e arquivos em rela\u00e7\u00e3o \u00e0 vers\u00e3o 3. O ext4 tem uma margem de 1024 PB (Petabytes) ou 1EB (Exabyte) para parti\u00e7\u00f5es e 16 TB por arquivo. Isto pode n\u00e3o ser importante para desktops ou servidores simples, por\u00e9m com certeza \u00e9 \u00fatil para servidores grandes, configurados em Raid e de alta disponibilidade.<\/li>\n<li>A indexa\u00e7\u00e3o de quantidade de diret\u00f3rios foi aumentada;<\/li>\n<li>Suporte a recupera\u00e7\u00e3o de arquivos Undelete: Suporte \u00e0 recupera\u00e7\u00e3o de arquivos, permitindo que arquivos seja recuperados.<\/li>\n<li>Checagem r\u00e1pida do sistema de arquivos: O fsck est\u00e1 mais r\u00e1pido por que a nova estrutura de organiza\u00e7\u00e3o de blocos permite que partes n\u00e3o usadas do HD sejam puladas, o que economiza tempo numa eventual checagem.<\/li>\n<li>Desfragmenta\u00e7\u00e3o online: ext3 deixava os arquivos com um pouquinho, mas bem pouquinho de fragmenta\u00e7\u00e3o. Agora n\u00e3o deixa mais. O ext4 vai desfragmentando enquanto os arquivos v\u00e3o sendo alocados.<\/li>\n<li>Melhorias na pr\u00e9-aloca\u00e7\u00e3o: \u00c0s vezes um programa vai usar um espa\u00e7o do HD mas n\u00e3o na hora, ent\u00e3o ele reserva o espa\u00e7o que vai usar, fazendo uma pr\u00e9-aloca\u00e7\u00e3o, ou seja, ele guarda aquele espa\u00e7o pra ele e ningu\u00e9m mais pode usar, como se fosse uma reserva. Para essa a\u00e7\u00e3o, a maioria dos file systems enchem de zeros os inodes que eles v\u00e3o reservar.\n<p>Quando essa a\u00e7\u00e3o \u00e9 executada milhares de vezes, como em um banco de dados, esse tempo de escritas de zeros geram um delay de tempo desnecess\u00e1rio. O ext4 vai permitir pr\u00e9-aloca\u00e7\u00e3o de arquivos sem fazer isso, o que vai garantir uma melhoria na performance, principalmente nas rotinas de bancos de dados e em ferramentas multim\u00eddia.<\/li>\n<li>Tempo de aloca\u00e7\u00e3o estendido: O ext4 vai conseguir manter a aloca\u00e7\u00e3o do espa\u00e7o em disco at\u00e9 o \u00faltimo momento, o que pode trazer mais performance.<\/li>\n<li>Maior n\u00famero de subdiret\u00f3rios: O ext3 colocava um limite de subdiret\u00f3rios ou pastas de 32000, se voc\u00ea achava isso um inc\u00f4modo, os limites ser\u00e3o apenas o do espa\u00e7o fornecido pelo disco.<\/li>\n<li>Aloca\u00e7\u00e3o tardia: ext4 usa uma t\u00e9cnica de execu\u00e7\u00e3o do sistema de arquivos chamado allocate-on-flush, tamb\u00e9m conhecida como a atribui\u00e7\u00e3o de atraso. Isso melhora o desempenho e reduz a fragmenta\u00e7\u00e3o, melhorando a aloca\u00e7\u00e3o de blocos decis\u00f5es com base no tamanho do arquivo.<\/li>\n<li>O ext4 ainda pode contar com algumas ferramentas para gerenciamento de sistema de arquivos extFS, tais como o <em>tune2fs<\/em>, <em>mke2fs<\/em>, <em>debugfs<\/em> e <em>e2fsck<\/em>.<\/li>\n<\/ul>\n<h1>Principais desvantagens<\/h1>\n<p>1. Aloca\u00e7\u00e3o tardia e potencial perda de dados:<\/p>\n<p>Com as mudan\u00e7as de aloca\u00e7\u00e3o atrasada, este recurso representa algum risco adicional de perda de dados nos casos em que o sistema trava antes que todos os dados tenham sido gravados no disco.<\/p>\n<p>Devido a isto, o ext4, na vers\u00e3o 2.6.30 do kernel <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a>, detecta automaticamente estes casos e reverte para o comportamento antigo. O cen\u00e1rio t\u00edpico em que isso pode ocorrer \u00e9 um programa que substitui o conte\u00fado de um arquivo sem for\u00e7ar uma grava\u00e7\u00e3o para o disco com <em>sync<\/em>.<\/p>\n<p>2. Cria\u00e7\u00e3o do sistema de arquivos:<\/p>\n<p>Assim como no ex3, o ext4 \u00e9 lento quando se aplica um sistema de arquivos, e se o disco tiver que marcar badblocks, demora mais ainda.<\/p>\n<p>O sistema de arquivos ext4, apesar de possuir journaling, n\u00e3o foi desenvolvido desde o inicio para suport\u00e1-lo e este recurso foi integrado a partir da vers\u00e3o 3 do mesmo, por isso o journal n\u00e3o \u00e9 t\u00e3o eficaz, nem no ext3 e no ext4, apesar que o \u00faltimo mencionado teve melhorias.<\/p>\n<p>E quando o journal falhar, ele faz uso do fsck para verificar a integridade do sistema de arquivos, e se o fsck n\u00e3o conseguir recuperar a integridade do mesmo, seu sistema de arquivos fica corrompido.<\/p>\n<p>Atualmente o ext4 \u00e9 bem r\u00e1pido, tem um \u00f3timo desempenho, mas seu journal pode deixar a desejar quanto \u00e0 toler\u00e2ncia de falhas, apesar que o mesmo teve melhorias e resiste bem.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Sistema de arquivos XFS<\/b><\/p>\n<div>O sistema de arquivos <em>XFS<\/em> \u00e9 considerado por muitos de alto desempenho, \u00e9 um sistema de arquivos de 64 bits sendo compat\u00edvel com sistemas de 32 bits. Foi desenvolvido inicialmente para o SO IRIX, depois portado para o kernel <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a>.<\/p>\n<p>O kernel e a maioria dos sistemas GNU\/Linux d\u00e3o suporte durante a instala\u00e7\u00e3o para usar o XFS como sistema de arquivos de suas parti\u00e7\u00f5es, e assim, como os outros sistemas de arquivos apresentados at\u00e9 agora, possui journaling.<\/p>\n<h1>Principais vantagens<\/h1>\n<ul>\n<li>Possui journaling em sua estrutura, por\u00e9m o journal no XFS se comporta de forma similar a outros sistemas de arquivos, mantendo somente a grava\u00e7\u00e3o dos metadados dos arquivos no journaling, fazendo com que a consist\u00eancia do sistema de arquivos como um todo fique preservada.\n<p>Diferente do que faz outros sistemas de arquivos, que se um arquivo ficar corrompido, o sistema fica inacess\u00edvel, por\u00e9m, se um arquivo estiver sendo usado e as altera\u00e7\u00f5es nos metadados n\u00e3o forem gravadas antes de um erro ou falha (falta de energia por exemplo), poder\u00e1 ficar corrompido, j\u00e1 que seu conte\u00fado n\u00e3o foi salvo e os metadados n\u00e3o foram colocados no journal antes da grava\u00e7\u00e3o do arquivo no sistema de arquivos.<\/li>\n<li>\u00c9 um sistema de arquivos de 64 bits compat\u00edvel com sistemas de 32 bits tamb\u00e9m.<\/li>\n<li>Em sistemas 64 bits h\u00e1 um limite de tamanho de 8 EiB para cada arquivo, j\u00e1 em sistema de 32 bits o tamanho m\u00e1ximo do volume ou arquivo \u00e9 limitado a 16 TiB.<\/li>\n<li>Tamanhos de blocos vari\u00e1veis: Tamanho de blocos do sistema representa a unidade de aloca\u00e7\u00e3o m\u00ednima. XFS permite que o sistema de arquivos seja criado com tamanhos de blocos que variam entre 512 bytes e 64 kilobytes, permitindo que o sistema de arquivos ajuste-o para o uso esperado.\n<p>Quando est\u00e1 trabalhando com muitos arquivos pequenos, um tamanho de bloco pequeno \u00e9 o ideal, mas para um sistema lidando principalmente com arquivos grandes, um tamanho de bloco maior pode proporcionar uma vantagem quanto ao desempenho.<\/li>\n<li>A desfragmenta\u00e7\u00e3o online: Embora o XFS use aloca\u00e7\u00e3o com atraso, isso melhora significativamente a resist\u00eancia do sistema de arquivos para os problemas de fragmenta\u00e7\u00e3o. XFS fornece um utilit\u00e1rio de desfragmenta\u00e7\u00e3o que pode desfragmentar os arquivos com o sistema de arquivos em uso.<\/li>\n<li>A cria\u00e7\u00e3o do sistema de arquivos XFS \u00e9 muito r\u00e1pida.<\/li>\n<li>Redimensionamento online: XFS oferece a &#8216;xfs_growfs&#8217;, utilit\u00e1rio para executar o redimensionamento online de sistemas de arquivos XFS.\n<p>Espa\u00e7o onde se encontra o sistemas de arquivos XFS podem ser alterados desde que haja espa\u00e7o restante n\u00e3o alocado no dispositivo para adicionar ao XFS. Este recurso \u00e9 normalmente usado em conjunto com o gerenciamento de volume, caso contr\u00e1rio a parti\u00e7\u00e3o que mant\u00e9m o sistema de arquivos ter\u00e1 que ser ampliada separadamente.<\/li>\n<li>Utilit\u00e1rios para gerenciamento do sistema de arquivos inclusos no <em>xfsprogs<\/em>, tais para checagem do mesmo, aplica\u00e7\u00e3o do sistema de arquivos, ajustes no sistema de arquivos entre outros.<\/li>\n<li>Cotas de disco: Cotas para sistemas de arquivos XFS s\u00e3o ativadas quando o sistema de arquivos \u00e9 montado, diferente de outros sistemas de arquivos que na maioria exigem serem montados primeiro para depois ativar a quota com o <em>quotaon<\/em>.<\/li>\n<li>Trabalha muito bem com arquivos grandes (leitura e grava\u00e7\u00e3o), principalmente em sistemas que armazenam muitos arquivos de grande tamanho. Lembre-se o XFS foi desenvolvido para trabalhar em grandes sistemas, principalmente de 64 bits.<\/li>\n<\/ul>\n<h1>Principais desvantagens<\/h1>\n<ul>\n<li>Redimensionamento do XFS n\u00e3o pode ser usado para diminuir o tamanho do mesmo, apenas aumentar.<\/li>\n<li>Opera\u00e7\u00f5es usando metadados em XFS s\u00e3o muito lentas do que com outros sistemas de arquivos, produzindo mau desempenho em opera\u00e7\u00f5es como dele\u00e7\u00f5es em massa de grandes n\u00fameros de arquivos pequenos.<\/li>\n<\/ul>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Sistema de arquivos ReiserFS<\/b><\/p>\n<div>O sistema de arquivos <em>ReiserFS<\/em> foi criado por <em>Hans Reiser<\/em> e pode ser usado pelas distribui\u00e7\u00f5es <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a>, sendo que algumas d\u00e3o bom suporte durante a instala\u00e7\u00e3o e outras n\u00e3o. Sua vers\u00e3o atual \u00e9 a 3.6.x. O ReiserFS foi o primeiro sistema de arquivos com suporte a journaling inclu\u00eddo no n\u00facleo do GNU\/Linux.<\/p>\n<p>Algo muito interessante no ReiserFS \u00e9 suporte ao journaling implantado desde o in\u00edcio e n\u00e3o depois de ter sido desenvolvido (como foi feito no extFS). Isso garante que o ReiserFS trabalhe melhor com o journal, possibilitando uma toler\u00e2ncia contra falhas mais eficaz.<\/p>\n<h1>Principais vantagens<\/h1>\n<ul>\n<li>Suporte a journaling, o mesmo foi integrado desde de seu desenvolvimento. Diferentemente do que acontece no ext3 e ext4, que foi implementado em vers\u00f5es posteriores ap\u00f3s o desenvolvimento da primeira vers\u00e3o.\n<p>O extFS permite trabalhar em v\u00e1rios modos de opera\u00e7\u00e3o, j\u00e1 no ReiserFS \u00e9 importante frisar que as t\u00e9cnicas de journaling limitam-se, por padr\u00e3o, aos metadados (conjuntos de informa\u00e7\u00e3o sobre arquivos, como tamanho, propriet\u00e1rio, permiss\u00f5es, data de altera\u00e7\u00e3o etc). Contudo, o usu\u00e1rio poder\u00e1 alterar seu modo de opera\u00e7\u00e3o para <em>journal<\/em> ou <em>writeback<\/em>, pois o ReiserFS tamb\u00e9m suporta os tr\u00eas modos de opera\u00e7\u00e3o assim como no extFS, vers\u00e3o 3 e 4. Como o <em>journaling<\/em> est\u00e1 presente desde o inicio, faz com que esse sistema de arquivos seja eficiente na recupera\u00e7\u00e3o do sistema operacional como um todo em caso de problemas.<\/p>\n<p>No caso de um desligamento incorreto do sistema, o ReiserFS \u00e9 capaz de recuperar a consist\u00eancia do sistema de arquivos em pouco tempo e a possibilidade de perda de pastas ou parti\u00e7\u00f5es \u00e9 reduzida.<\/p>\n<p>Em compensa\u00e7\u00e3o, os arquivos que eventualmente estiverem sendo gravados no exato momento em que acabou a energia, ficar\u00e3o com seus dados corrompidos, haver\u00e1 acesso aos arquivos normalmente, mas o conte\u00fado estar\u00e1 truncado ou incompleto.<\/li>\n<li>Organiza\u00e7\u00e3o dos objetos do sistema de arquivos em uma estrutura de dados chamada <em>B+Trees<\/em> (\u00e1rvores B+). Neste esquema, os dados s\u00e3o fixados em posi\u00e7\u00f5es organizadas por divis\u00f5es denominadas folhas.\n<p>As folhas por sua vez s\u00e3o organizadas por n\u00f3s, chamados de sub-\u00e1rvores, que est\u00e3o ligados a um n\u00f3 raiz. Esse processo organizacional \u00e9 mais complexo, por\u00e9m apresenta performance superior na grava\u00e7\u00e3o e no acesso aos dados se comparado a outros sistemas de arquivos.<\/li>\n<li>Aloca\u00e7\u00e3o din\u00e2mica de inodes (em poucas palavras, inodes s\u00e3o estruturas que cont\u00e9m informa\u00e7\u00f5es sobre os arquivos), diminuindo o desperd\u00edcio de espa\u00e7o. Outros sistemas de arquivos t\u00eam blocos de tamanho fixo para aloca\u00e7\u00e3o, assim, se n\u00e3o for necess\u00e1rio usar um bloco inteiro, o espa\u00e7o restante fica em desuso. No ReiserFS a aloca\u00e7\u00e3o \u00e9 feita com base no tamanho do arquivo.<\/li>\n<li>ReiserFS tem <em>progsreiserfs<\/em>, que \u00e9 um conjunto de utilit\u00e1rios para gerenciamento de sistema de arquivos, para checagem, formata\u00e7\u00e3o, depura\u00e7\u00e3o etc.<\/li>\n<li>A formata\u00e7\u00e3o em ReiserFS \u00e9 muito r\u00e1pida.<\/li>\n<\/ul>\n<h1>Principais desvantagens<\/h1>\n<ul>\n<li>Uma desvantagem do ReiserFS \u00e9 seu consumo de CPU muito elevado, chegando a usar at\u00e9 99% quando a atividade de disco \u00e9 elevada.<\/li>\n<li>O futuro do ReiserFS \u00e9 atualmente dado como incerto, em virtude da pris\u00e3o, em 10 de Outubro de 2006, de Hans Reiser, seu criador, e sua condena\u00e7\u00e3o em 28 de Abril de 2008 pelo assassinato de sua mulher no in\u00edcio de Setembro de 2006.<\/li>\n<\/ul>\n<p>Atualmente, devido \u00e0 paralisa\u00e7\u00e3o das atividades da Namesys, que \u00e9 sua principal desenvolvedora junto com Hans Reiser, o projeto ReiserFS est\u00e1 armazenado em <a href=\"http:\/\/kernel.org\/\">kernel.org<\/a>.<\/p>\n<p>O ReiserFS tem um nova vers\u00e3o, que \u00e9 a 4, mas a mesma ainda n\u00e3o est\u00e1 inclusa no kernel vers\u00e3o 3.x.x, que atualmente \u00e9 3.4.2 no momento da cria\u00e7\u00e3o deste artigo, pois os desenvolvedores afirmam que o Reiser4 n\u00e3o segue o padr\u00e3o GNU\/Linux de decodifica\u00e7\u00e3o.<\/p>\n<p>Para mais informa\u00e7\u00f5es sobre o Reiser4, acesse link:<\/p>\n<ul>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Reiser4\">Reiser4 \u00ab Wikipedia.org\/wiki<\/a><\/li>\n<\/ul>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Sistema de arquivos JFS<\/b><\/p>\n<div>O <em>JFS<\/em> foi criado com o prop\u00f3sito principal de ser utilizado em servidores que deveriam usar poucos recursos do processador, e ser capaz de ser redimensionado mesmo em uso. JFS \u00e9 um sistema de 64 bits, assim como XFS, onde existem duas vers\u00f5es: JFS1 e JFS2. No pinguim \u00e9 usada a vers\u00e3o 2.<\/p>\n<p>JFS est\u00e1 dispon\u00edvel na maioria das distros, assim como outros, mas durante a instala\u00e7\u00e3o o FS padr\u00e3o, em sua maioria, \u00e9 o ext4.<\/p>\n<h1>Principais vantagens<\/h1>\n<ul>\n<li>Repara\u00e7\u00e3o muito eficaz de um disco com badblocks, ele consegue marcar os setores defeituosos com muita precis\u00e3o, algo que outros sistemas de arquivos para <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">Linux<\/a> n\u00e3o fazem.<\/li>\n<li>Cria\u00e7\u00e3o do sistema de arquivos muito r\u00e1pida, desde que n\u00e3o inclua para marcar os badblocks existentes do disco, pois se fizer isso vai demorar bastante.<\/li>\n<li>Possui v\u00e1rios utilit\u00e1rios para gerenciar o sistema de arquivos, todos eles inclusos no <em>jfsutils<\/em>, para aplica\u00e7\u00e3o e verifica\u00e7\u00e3o de integridade do sistema de arquivos.<\/li>\n<li>Baixo consumo do processador.<\/li>\n<li>Suporte a journaling: O JFS usa um journal para manter somente a consist\u00eancia dos metadados, ou seja, grava somente os metadados dos arquivos que sofrer\u00e3o a\u00e7\u00f5es como modifica\u00e7\u00e3o, por exemplo. Assim, apenas consist\u00eancia de metadados (e n\u00e3o o conte\u00fado de arquivo) pode ser assegurado no caso de desligamento inadequado. Este \u00e9 tamb\u00e9m o comportamento de XFS . Ext3 e ext4, por outro lado, usam o journal para gravar os metadados e os dados, apesar de ter outros modos de opera\u00e7\u00e3o.<\/li>\n<li>Aloca\u00e7\u00e3o din\u00e2mica de inodes: JFS aloca dinamicamente espa\u00e7o em disco.<\/li>\n<\/ul>\n<h1>Principais desvantagens<\/h1>\n<ul>\n<li>Taxas de transfer\u00eancias baixas, nunca espere transfer\u00eancias com alta velocidade, pois o mesmo \u00e9 lento.<\/li>\n<li>Foi desenvolvido com o prop\u00f3sito principal de trabalhar com arquivos grandes e n\u00e3o trabalha bem com arquivos pequenos. Na cria\u00e7\u00e3o e desempacotamento de arquivos sua velocidade \u00e9 baixa.<\/li>\n<li>O tamanho de uma parti\u00e7\u00e3o e arquivo com o sistema de arquivos JFS aplicado s\u00f3 abriga 2 terabytes de espa\u00e7o no total.<\/li>\n<\/ul>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Benchmark b\u00e1sico dos sistemas de arquivos<\/b><\/p>\n<div>Depois de tantas informa\u00e7\u00f5es sobre cada sistema de arquivos abordado, voc\u00ea pode ficar com, no m\u00ednimo, um pouco de curiosidade de saber o desempenho de cada um deles em teste.<\/p>\n<p>Aqui vou mostrar v\u00e1rios gr\u00e1ficos que comparam o desempenho de cada um, trata-se de benchmark b\u00e1sico.<\/p>\n<p>ESCLARECIMENTO: Para este Benchmark n\u00e3o fiz otimiza\u00e7\u00e3o em nenhum dos sistemas de arquivos, todos foram instalados com suas op\u00e7\u00f5es padr\u00f5es. O SO usado para testar foi o <em>Debian 6<\/em>, rodando em uma m\u00e1quina com processador Intel Core 2 Duo e espa\u00e7o em mem\u00f3ria de 4 Gigas, al\u00e9m de um disco SATA Samsung.<\/p>\n<p>Todos os testes n\u00e3o informam o uso de CPU, apenas o tempo que foi necess\u00e1rio para concluir a tarefa, e foram feitos em modo texto.<\/p>\n<h1>Primeiro teste<\/h1>\n<p>Trata-se de criar um arquivo de 10 Gigabytes de tamanho em cada sistema de arquivos usando o comando <em>dd<\/em>, todos conclu\u00edram o teste em minutos. Veja o resultado no gr\u00e1fico abaixo:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/teste1.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_teste1.png\" width=\"500\" height=\"274\" border=\"0\" \/><\/a><\/div>\n<p>Neste teste o mais veloz foi ext4, seguido de ext3 e logo depois XFS, seguido de ReiserFS e em \u00faltimo ficou o JFS.<\/p>\n<h1>Segundo teste<\/h1>\n<p>Foi desempacotado um arquivo do kernel 3.4 com tamanho de 77 Megas e todos conclu\u00edram a tarefa em menos de um minuto, ou seja, conclu\u00edram em segundos. Veja o resultado no gr\u00e1fico abaixo:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/teste2.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_teste2.png\" width=\"500\" height=\"233\" border=\"0\" \/><\/a><\/div>\n<p>Neste segundo teste, ext4 tamb\u00e9m foi mais r\u00e1pido, mas a diferen\u00e7a n\u00e3o foi tanta para ext3 e ReiserFS, XFS veio logo atr\u00e1s, e no \u00faltimo lugar, mais uma vez ficou JFS.<\/p>\n<h1>Terceiro teste<\/h1>\n<p>Fiz uso de um script para criar 30 mil arquivos de texto simples, sem conte\u00fado, e todos conclu\u00edram o trabalho em poucos segundos, veja o resultado no gr\u00e1fico abaixo:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/teste3.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_teste3.png\" width=\"500\" height=\"259\" border=\"0\" \/><\/a><\/div>\n<p>Nesta terceira rodada, o mais r\u00e1pido foi ReiserFS, seguido de pertinho por ext4 e ext3, e mais uma vez, JFS foi o mais lento.<\/p>\n<h1>Quarto teste<\/h1>\n<p>Fiz uma listagem de todos os 30 mil arquivos criados no teste anterior, e mais uma vez todos conclu\u00edram em poucos segundos. Veja o resultado no gr\u00e1fico abaixo:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/teste4.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_teste4.png\" width=\"500\" height=\"251\" border=\"0\" \/><\/a><\/div>\n<p>Nesta rodada, o ext3 foi muito mais r\u00e1pido que os outros, concluindo o trabalho em menos de um segundo, logo depois veio ext4, ReiserFS, JFS e XFS, com pouco tempo de diferen\u00e7a entre eles.<\/p>\n<h1>Quinto teste<\/h1>\n<p>Fiz a remo\u00e7\u00e3o de todos os 30 mil arquivos criados anteriormente, e mais uma vez todos conclu\u00edram o teste em menos de um minuto, veja o resultado no gr\u00e1fico abaixo:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/teste5.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_teste5.png\" width=\"500\" height=\"251\" border=\"0\" \/><\/a><\/div>\n<p>Neste teste o mais r\u00e1pido foi ext4, seguido de ext3 e ReiserFS, o mais lento foi XFS, ali\u00e1s, muito lento em compara\u00e7\u00e3o com os outros.<\/p>\n<h1>Sexto teste<\/h1>\n<p>Removi o diret\u00f3rio do kernel 3.4 e todos seus arquivos e subdiret\u00f3rios criados ap\u00f3s a descompacta\u00e7\u00e3o, e o teste foi conclu\u00eddo em segundos. Veja o resultado no gr\u00e1fico abaixo:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/teste6.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_teste6.png\" width=\"500\" height=\"249\" border=\"0\" \/><\/a><\/div>\n<p>Neste teste o ext3 e ext4 foram absurdamente mais r\u00e1pidos, respectivamente, com um pouquinho de tempo a mais, o ReiserFS demostrou muita velocidade. O JFS foi muito lento.<\/p>\n<h1>S\u00e9timo teste<\/h1>\n<p>Fiz uso de um script para criar 30 mil diret\u00f3rios vazios e a tarefa levou menos de um minuto para ser conclu\u00edda, mais uma vez (foi conclu\u00edda em segundos). Veja o resultado no gr\u00e1fico abaixo:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/teste7.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_teste7.png\" width=\"500\" height=\"250\" border=\"0\" \/><\/a><\/div>\n<p>Neste teste houve um certo equil\u00edbrio na velocidade de t\u00e9rmino de tarefa de cada um, dupla exts foram um pouco mais velozes que ReiserFS e JFS, e XFS foi o mais lento mais um vez.<\/p>\n<h1>Oitavo teste<\/h1>\n<p>Removi os diret\u00f3rios criados e o t\u00e9rmino da tarefa foi em segundos tamb\u00e9m:<\/p>\n<div><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/teste8.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_teste8.png\" width=\"500\" height=\"246\" border=\"0\" \/><\/a><\/div>\n<p>Neste \u00faltimo teste os sistemas de arquivos ext4, ext3 e ReiserFS foram absurdamente mais r\u00e1pidos, acabando a tarefa em menos de um segundo cada.<\/p>\n<p>Voc\u00ea pode ver tamb\u00e9m um benchmark feito pela Phoronix acessando o link abaixo:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.phoronix.com\/scan.php?page=article&amp;item=linux_2638_large&amp;num=1\">File_System Comparison \u00ab phoronix.com<\/a><\/li>\n<\/ul>\n<p>Nota-se neste benchmark b\u00e1sico realizado por mim, que os sistemas mais velozes foram ext4 e ext3, seguido do ReiserFS e depois XFS e por \u00faltimo, o JFS.<\/p>\n<p>Tenho que levar em conta que n\u00e3o foi feito nenhum tipo de personaliza\u00e7\u00e3o no sistema de arquivos aplicado, tal como: aumento de tamanho do arquivo do journaling, ou journaling externo, por exemplo. Ou seja, nenhum sistema de arquivos foi turbinado.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Considera\u00e7\u00f5es finais<\/b><\/p>\n<div>Todos os testes realizados e mostrados na p\u00e1gina anterior foram baseados na velocidade de t\u00e9rmino de cada tarefa, contudo, n\u00e3o fa\u00e7a a escolha do sistema de arquivos somente pelo desempenho, leve em considera\u00e7\u00e3o as caracter\u00edsticas positivas e negativas de cada um.<\/p>\n<p>Quando o assunto \u00e9 sistema de arquivos no <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a>, \u00e9 inevit\u00e1vel as compara\u00e7\u00f5es entre o ReiserFS, XFS, ext4 e o ext3, al\u00e9m do JFS, que \u00e9 menos usado. Nada mais natural, afinal, cada administrador de sistemas e ou redes e at\u00e9 mesmo usu\u00e1rios busca qual \u00e9 o melhor para suas necessidades.<\/p>\n<p>Apontar qual realmente \u00e9 melhor n\u00e3o \u00e9 uma tarefa f\u00e1cil. H\u00e1 v\u00e1rios comparativos na Internet que tentam oferecer esta resposta, mas na minha opini\u00e3o, a melhor coisa a fazer \u00e9 testar os sistemas de arquivos que lhe atra\u00edram para definir qual mais lhe agrada.<\/p>\n<p>Definitivamente, o uso de sistemas de arquivos sem suporte a journaling, ou algum recurso similar, para toler\u00e2ncia de falhas e erros n\u00e3o \u00e9 recomend\u00e1vel de usar, pois pode deix\u00e1-lo na m\u00e3o.<\/p>\n<p>NOTA: N\u00e3o inclu\u00ed o <em>Btrfs<\/em>, pois o mesmo \u00e9 considerado inst\u00e1vel e n\u00e3o \u00e9 aconselh\u00e1vel o seu uso em produ\u00e7\u00e3o, e ainda est\u00e1 em desenvolvimento constante para ser aprimorado.<\/p>\n<p>Se deseja mais informa\u00e7\u00f5es sobre o mesmo, leia o artigo:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.vivaolinux.com.br\/artigo\/Apresentando-o-Btrfs-Nova-geracao-de-sistema-de-arquivos-para-GNU-Linux\/\">Apresentando o Btrfs &#8211; Nova gera\u00e7\u00e3o de sistema de arquivos para GNU\/Linux<\/a><\/li>\n<\/ul>\n<h1>Recomenda\u00e7\u00e3o de uso<\/h1>\n<p>Se quer desempenho, recomendo ext4, pois o mesmo mostra-se muito r\u00e1pido, e o suporte dele no kernel (usado como default nas instala\u00e7\u00f5es at\u00e9 ent\u00e3o de muitas distros) \u00e9 muito bom. E ext3, que apesar de ser considerado obsoleto por muitos, \u00e9 bem est\u00e1vel e ainda \u00e9 r\u00e1pido tamb\u00e9m, por\u00e9m, o mesmo n\u00e3o tem tanta efic\u00e1cia com o journaling (como explicado durante o artigo).<\/p>\n<p>Para isso recomendo ReiserFS e XFS, pois estou usando-os a um bom tempo, e os mesmos at\u00e9 o momento n\u00e3o apresentaram nenhum problema, mesmo j\u00e1 passando por desligamentos inesperados e ambos terem um desempenho muito bom, cada um com suas vantagens. XFS trabalha melhor com arquivos grandes e ReiserFS com arquivos pequenos.<\/p>\n<p>S\u00e3o apenas recomenda\u00e7\u00f5es, por\u00e9m, recomendo que teste e veja qual \u00e9 o que mais o agrada no quesito que deseja e necessita.<\/p>\n<p>Concluindo, menciono mais uma vez que o journal \u00e9 para tolerar falhas e erros, e n\u00e3o protege 100% contra perda de dados.<\/p><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Antes de come\u00e7ar a falar sobre os sistemas de arquivos, temos que ter em mente o que \u00e9 um sistema de arquivos. Sistema de arquivos \u00e9 uma estrutura l\u00f3gica que permite armazenar informa\u00e7\u00f5es em massa e de forma bem organizada, permitindo que um Sistema Operacional ou aplica\u00e7\u00f5es possam ser usadas pelo computador, assim como [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1,79,51,68],"tags":[158,243,242],"class_list":["post-427","post","type-post","status-publish","format-standard","hentry","category-viazap","category-firewall","category-linux-linuxrs","category-redes-2","tag-arquivos","tag-gnulinux","tag-sistemas"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=427"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/427\/revisions"}],"predecessor-version":[{"id":428,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/427\/revisions\/428"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=427"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=427"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}