Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Sistema de Arquivos Linux, Notas de estudo de Cultura

Sistema de Arquivos Linux

Tipologia: Notas de estudo

2012

Compartilhado em 06/06/2012

carlos-rosa-17
carlos-rosa-17 🇧🇷

5

(2)

16 documentos

1 / 17

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Sistema de Arquivos Linux e outras Notas de estudo em PDF para Cultura, somente na Docsity!

13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] õ VINUX PORQUE NÓS AMAMOS A LIBERDADE! UML AOLIPLS COM BR Esquemas de particionamento e sistemas de arquivos Autor: José Lopes de Oliveira Júnior Data: 21/07/2006 Introdução Duas das primeiras decisões que novos usuários de sistemas GNU/Linux têm de tomar, dizem respeito a qual esquema de particionamento e a qual sistema de arquivos eles devem utilizar. Apesar de parecerem dúvidas banais e corriqueiras para a maioria dos usuários, estas escolhas podem ser decisivas para o bom desempenho do sistema, bem como para a segurança das informações nele armazenadas. Este artigo busca trazer ao leitor um esclarecimento sobre vantagens e desvantagens de se usar mais de uma partição para a instalação de sistemas GNU/Linux e os principais tipos de sistemas de arquivos utilizados no GNU/Linux, com descrições, comparações e indicações de uso para eles. O leitor não encontrará neste artigo, conteúdo do tipo "como particionar/formatar um disco rigido"; "como, em uma dada distribuição, adicionar suporte a um determinado sistema de arquivos"; "como usar certo(s) programa(s) de particionamento" e etc. O conteúdo aqui é bastante teórico e visa instruir o leitor sobre "qual o melhor caminho a se trilhar", em vez de ensinar "como trilhar o caminho". Na seção 2 é apresentada a definição e os conceitos básicos de particionamento de discos rígidos, bem como as vantagens e desvantagens de se utilizar mais de uma partição para instalação do GNU/Linux e um exemplo de esquema de particionamento. Na seção 3 é apresentada a definição de sistemas de arquivos, além dos principais tipos de sistemas de arquivos utilizados no GNU/Linux, contendo uma breve descrição sobre cada um e resultados de alguns benchmarks feitos com eles. Na seção 4 é apresentada a conclusão do artigo, seguida pelas referências usadas para o desenvolvimento do mesmo, na seção 5. Particionamento 2.1. Definição e primitivas Particionamento pode ser definido, tecnicamente, dentro da informática, como o ato de se associar várias www .vivaolinux.com br/artigos/impressora.php?codigo=5116 m7 13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] unidades lógicas a uma unidade física. É a ação de se dividir logicamente um dispositivo de armazenamento de dados (normalmente um disco rígido), de forma com que se trabalhe com cada divisão (partição) como se esta fosse um disco rígido independente. O uso mais comum do particionamento em discos rígidos é para a instalação de mais de um sistema operacional no computador [LSAG 2006]. Dessa forma, cada sistema operacional fica restrito à sua partição e não entra em conflito com os demais. Caso não houvesse o recurso de particionamento, segundo [LSAG 2006], para cada sistema operacional que se desejasse utilizar no computador, seria necessário um disco rígido exclusivo para a sua instalação. Existem basicamente, três tipos de partições: partições primárias, partições estendidas e partições lógicas. De acordo com [LSAG 2006], o esquema original de particionamento de discos rígidos para PCs, permitia apenas a criação de quatro partições primárias, mas logo surgiu a necessidade de se utilizar mais partições. Para solucionar este problema, as partições estendidas foram concebidas. Este tipo de partição funciona quase como uma partição primária. A primeira grande diferença entre elas, segundo [Piropo 2006], é o fato de que partições estendidas não podem ser utilizadas para se inicializar o computador, portanto não podem conter os arquivos de inicialização de um sistema operacional. Dessa forma, estes arquivos devem estar dentro de uma partição primária. [Piropo 2006] ainda diz que, pelo fato de somente um sistema operacional poder ser usado por vez no computador, somente uma partição primária pode estar apta a inicializar o sistema e esta partição recebe o nome de partição ativa. A segunda grande diferença entre partições primárias e estendidas, é que, diferentemente de partições primárias, partições estendidas não podem ser utilizadas, diretamente, para alocação de dados. Para que as partições estendidas possam ser utilizadas, é necessário que sejam divididas em partições lógicas, sendo que estas últimas serão utilizadas de fato. Assim, partições estendidas devem ser encaradas como contêineres de partições lógicas e são estas partições que serão utilizadas para alocação de dados. Segundo [PPDebian 2006], além da limitação de quatro partições primárias por disco rígido, cada disco pode conter apenas uma partição estendida e, dentro dela, podem ser criadas até 60 partições lógicas para discos IDE e 12 para discos SCSI. Dessa maneira, num disco rígido IDE, pode-se ter, dependendo do esquema de particionamento, até 63 partições (três partições primárias e 60 lógicas) e até 15 em discos SCSI (3 primárias e 12 lógicas). Vale lembrar que, como somente partições primárias podem ser usadas para se inicializar um sistema operacional, no esquema de particionamento do disco deve haver, pelo menos, uma partição primária. Segundo [LSAG 2006], não há diferença no tempo de acesso entre os tipos de partição. Por isso é errado pensar que uma partição primária será acessada mais rapidamente que uma partição lógica. 2.1.1. Conceitos importantes para usuários GNU/Linux www .vivaolinux.com br/artigos/impressora.php?codigo=5116 27 13/0412 Esquemas de particionamento e sistemas de arquivos [Artigo] Apesar da utilização de somente duas partições ser uma prática bem comum em instalações domésticas do GNU/Linux, este sistema pode ser instalado de forma com que determinados diretórios fiquem, cada um em sua partição, ou até mesmo em computadores diferentes [Conectiva 2006]. Pode-se definir, por exemplo, que o diretório /boot ficará na partição hdal; / na partição hda2; /home na partição hda3, /var na partição hda4 e hda5 como partição de troca. É claro que qualquer combinação pode ser feita, dependendo das necessidades da aplicação e esta é uma prática bastante comum em servidores. Segundo [LSAG 2006], os seguintes diretórios não podem ter partições separadas para eles e, portanto, devem ficar na mesma partição do diretório raíz (/): /bin; /etc; /dev; /initrd; /lib e /sbin. Esta limitação se justifica pelo fato de que o conteúdo destes diretórios são necessários no momento de inicialização do sistema e por isso devem sempre fazer parte da partição do diretório raíz. Da mesma forma, [LSAG 2006] sugere que os diretórios /var e (tmp fiquem em partições próprias para eles, pois seu conteúdo se altera constantemente e a não criação de partições separadas para eles traz o risco de um arquivo de log encher a partição do diretório raíz, por exemplo. 2.3. Vantagens e desvantagens dos esquemas de particionamento A utilização do GNU/Linux sob várias partições trás vantagens e desvantagens que variam de acordo com a aplicação. De uma forma geral, [Debian 2006] cita como as principais vantagens: * Segurança. Caso haja algum problema, em alguma parte da hierarquia de diretórios, somente a partição que armazena aquela parte da hierarquia será afetada e o administrador não terá que recuperar todo o sistema. Por exemplo, imaginando que haja um problema de corrompimento de arquivos em /tmp e que este diretório esteja montado em uma partição própria, não haverá risco de perda de dados em outras partições, o que torna o sistema mais confiável. e Crescimento descontrolado de dados. No caso de alguém ou algum programa começar a criar arquivos no sistema, com o intuito de encher o disco rígido, este problema ficará restrito à partição que foi alvo do ataque, evitando o comprometimento geral do sistema. Um exemplo bem prático, no caso de um servidor de e-mails, é o de se manter o diretório onde se localizam as mensagens eletrônicas (/var/spool/mail) em uma partição separada. Assim, caso algum usuário começasse a receber muitas mensagens, como spams, por exemplo, somente esta partição seria afetada, garantindo-se assim a segurança dos dados armazenados no sistema e possibilitando ao administrador uma solução mais prática para o problema. É importante se observar que estes problemas podem ser solucionados através do uso de quotas de disco, que é um recurso que limita o uso do disco rígido para usuários e seus programas. O interessante é que as quotas de disco ainda podem ser combinadas com esquemas de particionamento, o que possibilita a criação de várias soluções diferentes para problemas deste tipo. Mais informações sobre quotas de disco podem ser encontradas em [Conectiva 2006]. [Conectiva 2006] ainda cita, como vantagem de se utilizar várias partições para a instalação do GNU/Linux, a facilidade de manutenção de cópias de segurança (backup), que é uma prática indicada para qualquer tipo www .vivaolinux.com br/artigos/impressora.php?codigo=5116 ant 13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] de sistema e aplicação. Dentre todas essas vantagens, a única desvantagem encontrada em [Debian 2006], é a impossibilidade de se prever as necessidades de espaço para cada partição, pois se o administrador alocar pouco espaço para uma partição, ficará faltando futuramente e, caso ele aloque espaço em demasia, este será um espaço desperdiçado no disco. Aparentemente esta pode ser uma desvantagem sem importância para muitos, mas é bastante séria, visto a dificuldade que é o redimensionamento de uma partição e o perigo de perda de dados que esta operação apresenta. Por isso, os tamanhos de cada partição devem ser definidos com muito cuidado e planejamento prévio, a fim de evitar futuros imprevistos. O leitor mais cuidadoso poderia indicar, como outra desvantagem de se utilizar muitas partições, o aumento do tempo de acesso ao disco, já que este deveria buscar dados em várias partições, alocadas ao longo do disco rígido, a todo instante. Entretanto, por causa dos avanços na construção de discos rígidos, este tempo é pequeno o bastante para poder ser desprezado, fazendo com que esta possível desvantagem não exista. 2.4. Memória virtual 2.4.1. Introdução Para que qualquer software possa ser executado, ele deve estar carregado na memória principal do computador (memória RAM). Acontece que em sistemas com pouca memória RAM, a mesma pode se esgotar rapidamente, tornando inviável o uso do computador. Por isso surgiu o conceito de memória virtual (memória secundária). A memória virtual nada mais é do que uma área do disco rígido (um arquivo ou uma partição), que é usada pelo computador como uma extensão da memória RAM e esta área é comumente chamada de espaço ou área de troca (swap space) [LSAG 2006]. A grande desvantagem desta técnica é que o acesso ao disco rígido é muito mais lento que o acesso à memória RAM. Por isso, quanto mais o sistema tiver que fazer uso da memória virtual, mais lento ele ficará [LSAG 2006]. 2.4.2. O tamanho da área de troca 2.4.2.1. O problema Como já foi dito, definir limites para partições é uma tarefa complicada e como a área de troca, no GNU/Linux, costuma ser deixada em uma partição separada, ela também sofre com este problema. O fato é que, ser for reservado pouco espaço para esta área, o sistema poderá não funcionar direito, por falta de memória (há relatos de compilações serem mal-sucedidas pela falta de memória) e se for reservado muito espaço, haverá desperdício de espaço em disco. 2.4.2.2. A solução Muito é dito sobre fórmulas "mágicas", onde se multiplica a quantidade de memória RAM por uma constante, para se obter o tamanho da área de troca. Mas tais fórmulas não conseguem exprimir uma solução muito exata para o problema, induzindo muitas vezes o usuário, a alocar pouco ou muito espaço www .vivaolinux.com br/artigos/impressora.php?codigo=5116 57 13/0412 Esquemas de particionamento e sistemas de arquivos [Artigo] MB) fica reservada para o diretório /home, isolando-se assim os arquivos dos usuários e limitando sua utilização do disco. Na terceira partição primária (4544 MB) será montado o diretório raíz (/), com os arquivos de inicialização do sistema. Na primeira e na segunda partições lógicas (10240 MB e 7168 MB) serão armazenados, respectivamente, os diretórios /usr e /opt. Isto limita o espaço utilizado pelos programas que serão instalados no sistema. Na terceira e na quarta partições lógicas (2048 MB e 1024 MB) residirão os diretórios /var e /tmp. Por fim, a quinta partição lógica (512 MB) ficará reservada para área de troca. Através desta divisão pode-se ter um panorama geral do sistema e assim pode-se prever o seu crescimento, além do fato de que os dados estarão protegidos em suas respectivas partições, o que garante mais segurança ao sistema. 2.6. Conclusão - Esquemas de particionamento Nesta seção foram apresentados os principais conceitos a se saber sobre particionamento de discos, bem como motivações para se utilizar mais de uma partição para a instalação do GNU/Linux. Apenas torna-se necessário enfatizar que, antes de se tomar qualquer decisão com relação ao esquema de particionamento a ser adotado, é preciso que algum tempo seja gasto com o planejamento desta ação (na verdade toda decisão deve ser precedida de um bom planejamento). Este planejamento é muito importante, para evitar possíveis transtornos causados pelo problema da definição prévia de espaço para cada partição. Assim, o uso que será dado ao sistema deve ser bem claro (servidor de banco de dados, servidor de e- mails, workstation, uso doméstico e etc.), para que se possa prever de forma inteligente quanto de espaço cada partição possuirá, sem que haja desperdício e nem falta de espaço para elas. Sistemas de arquivos 3.1. Definição Conforme [Bauer & Bowden 2006], a maneira mais simples de se armazenar dados em um disco, consiste em, simplesmente, gravá-los na mídia. Entretanto, isto torna o acesso a estes dados muito inconveniente, pois não há informações sobre o tipo dos dados gravados, seu tamanho ou sua identificação no disco. Além disso, o fato de gravar um novo conjunto de dados na mesma mídia, torna-se complicado, pois deve-se saber em qual parte do disco os últimos dados foram gravados, para que não haja risco de perda acidental de informações. Através desta breve análise, fica evidente que é necessária a existência de uma estrutura para armazenagem dos dados e informações referentes a eles. É neste contexto que surgem os sistemas de arquivos. Neste ponto deve-se deixar claro o sentido que deve ser dado à expressão "sistema de arquivos". De acordo com [Bauer & Bowden 2006], muitas pessoas utilizam a expressão sistema de arquivos para relacionar duas www .vivaolinux.com br/artigos/impressora.php?codigo=5116 mt 13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] coisas distintas. A primeira delas diz respeito à estrutura hierárquica dos diretórios do sistema e a segunda diz respeito ao formato de baixo nível usado para armazenar dados. Este segundo entendimento é Justamente o tópico que esta seção enfoca e o primeiro é referenciado, neste artigo, como "hierarquia de diretórios". Segundo [LSAG 2006], sistemas de arquivos são os métodos e estruturas de dados que um sistema operacional utiliza para manter o acompanhamento de arquivos em um disco ou partição, isto é, a maneira com que os arquivos são armazenados em disco. Pode-se dizer que os sistemas de arquivos criam uma camada entre os programas e a mídia que eles gerenciam, de forma com que eles controlem as operações de Entrada e Saída (E/S, em português ou I/O, em inglês - Input/Output) de dados na mídia, com o intuito de manter a integridade e a segurança dos dados lá armazenados, além de buscar trazer uma boa performance às operações de acesso ao disco. 3.2. História dos sistemas de arquivos no GNU/Linux A história da evolução dos sistemas de arquivos para o GNU/Linux é bem interessante e ajuda a compreender alguns conceitos interessantes dos sistemas de arquivos deste sistema operacional. Conforme [DISEFS 2006], o GNU/Linux, no seu início, era desenvolvido sob o sistema operacional Minix, um sistema operacional para fins acadêmicos, desenvolvido pelo Dr. Andrew S. Tanenbaum, para uso em disciplinas que ensinam a implementação de sistemas operacionais. Era mais fácil compartilhar discos entre os dois sistemas, do que escrever um novo sistema de arquivos, então Linus Torvalds, o criador do GNU/Linux, decidiu implementar suporte para o sistema de arquivos do Minix, no GNU/Linux. Apesar de eficiente e, relativamente, livre de erros, o MinixFS (Minix Filesystem) era muito limitado e, com a disseminação do GNU/Linux, seus usuários começaram a pensar e trabalhar em um novo sistema de arquivos para ele [DISEFS 2006]. Neste ponto, foi criado o Virtual Filesystem (VFS), que é uma camada entre o sistema de arquivos e o kernel (núcleo do sistema operacional - o Linux, de fato), com o objetivo de facilitar a integração e o uso de vários tipos de sistemas de arquivos [DISEFS 2006]. Segundo [Bauer & Bowden 2006], a camada VFS é que permite aos usuários do GNU/Linux montar diferentes tipos de sistemas de arquivos ao mesmo tempo. Em abril de 1992, após a integração do VFS ao Linux, um novo sistema de arquivos, chamado Extended Filesystem (Ext), foi implementado e integrado ao Linux, versão 0.96c. Este novo sistema de arquivos, que era um melhoramento do MinixFS, removeu muitas limitações do MinixFS, mas ainda possuía muitos problemas [DISEFS 2006]. Como resposta a estes problemas, dois novos sistemas de arquivos foram criados em janeiro de 1993: o Xia Filesystem e o Second Extended Filesystem (Ext2). O primeiro era altamente baseado no código do kernel para o MinixFS, adicionando poucas melhorias. Já o segundo era baseado no código do Ext, com muitas reorganizações e melhorias. O Ext2 foi desenvolvido com sua evolução em mente, pois continha espaço para futuras melhorias [DISEFS 2006]. No início, o XiaFS era mais estável que o Ext2, mas como tempo, erros foram corrigidos no Ext2 e muitas www .vivaolinux.com br/artigos/impressora.php?codigo=5116 87 13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] demais, para diminuir a fragmentação interna e nem pequenos demais, para não prejudicar o desempenho do sistema. Dessa forma, ao se definir o tamanho dos blocos, o administrador deve ter total consciência do uso que será dado ao sistema, para definir um tamanho adequado para eles. Para usuários comuns, que não têm muita preocupação com relação a isto, sugere-se que deixe o programa formatador escolher o tamanho dos blocos (caso este programa permita que se altere o tamanho dos blocos). 3.4. Armazenamento dos dados em disco Os sistemas de arquivos onde o GNU/Linux pode ser instalado, seguem um padrão de funcionamento para manter a compatibilidade entre si e o sistema, apesar de poderem variar um pouco [LSAG 2006]. Basicamente, o que ocorre é que os dados a serem gravados são associados a um elemento do sistema de arquivos, chamado inode. Um inode armazena, exclusivamente, informações sobre um arquivo, como permissões, dono, datas e tamanho (por isso, para cada arquivo, há um inode correspondente). Apenas o nome do arquivo não é armazenado no inode, pois este é especificado no diretório, junto com o número de identificação do inode referente a ele e para esta ligação dá-se o nome de hardlink (um hardlink nada mais é do que a associação de um nome a um número identificador de inode - assim um inode pode ser referenciado por vários nomes). Os dados referentes ao arquivo, representado pelo inode, são gravados em blocos no disco, de forma separada do mode, sendo que o inode implementa as referências para estes blocos [LSAG 2006]. Na estrutura do inode, além das informações sobre o arquivo, como tamanho, localização física, dono e grupo do dono, permissões de acesso, datas e contador de referências (hardiinks) [TLIP 2006], há dois tipos de estruturas usadas para referenciar blocos de dados do arquivo: direct blocks e indirect blocks [LSAG 2006]. Os direct blocks (blocos diretos) são blocos reservados especialmente para a utilização daquele inode (são blocos estáticos e somente o inode que os referencia pode trabalhar com eles) e por isso são poucos. Os indirect blocks (blocos indiretos) são blocos alocados dinamicamente, no caso do arquivo ser grande demais e precisar de mais blocos para ser armazenado em disco. Neste caso, após os direct blocks se esgotarem, ponteiros são usados para referenciar mais blocos em disco [LSAG 2006]. Para armazenar as características de um sistema de arquivos, como o seu tamanho, o tamanho dos blocos, os contadores dos blocos vazios e cheios e o tamanho e a localização da tabela de inodes, percebeu-se que era necessária a criação de um novo elemento do sistema de arquivos e para este elemento, que armazenaria estas informações tão relevantes do sistema de arquivos, deu-se o nome de superblock (super bloco). A importância do superblock dentro do sistema de arquivos é tão grande, que qualquer dano causado nele, pode causar na perda de dados armazenados no sistema de arquivos. Por isso, copias do superblock são armazenadas automaticamente em intervalos do sistema de arquivos (como no início de cada grupo de blocos). Além disso, para cada sistema de arquivos montado, o GNU/Linux mantém uma cópia do seu superblock na memória [TLIP 2006]. 3.5. Fragmentação www .vivaolinux.com br/artigos/impressora.php?codigo=5116 1047 13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] Ao se gravar um arquivo em disco, o ideal é que seus dados sejam alocados em blocos consecutivos, para melhorar a performance de recuperação do arquivo posteriormente. Contudo, nem sempre é possível que um arquivo tenha seus dados alocados desta forma no disco e para esta situação, dá-se o nome de fragmentação [LSAG 2006]. É comum também chamar este tipo de fragmentação de fragmentação externa. Os sistemas de arquivos mais modernos do GNU/Linux utilizam técnicas especiais para a alocação de blocos, por isso não é necessária muita preocupação com este problema neste sistema operacional. Já para os sistemas de arquivos mais antigos, a fragmentação era uma realidade. Como objetivo de desfragmentar o disco, o utilitário Defrag foi criado, mas hoje em dia é altamente recomendável que ele NÃO seja usado, pois ele foi criado para ser utilizado em versões antigas do Ext2 e não é atualizado desde o ano de 1998 [LSAG 2006]. [LSAG 2006] sugere que, caso se deseje desfragmentar uma partição, que se faça o backup dos dados lá armazenados, formate a partição e se retorne com os dados. Segundo a fonte, esta é uma medida segura e ainda reforça a idéia do backup antes de se realizar uma desfragmentação, para evitar o risco de perda de dados. 3.6. Principais tipos de sistemas de arquivos do GNU/Linux 3.6.1. MinixFS (Minix Filesystem) Desenvolvido para o sistema Minix, este foi o primeiro sistema de arquivos do GNU/Linux. É um sistema de arquivos bastante simples e por isso contém algumas limitações sérias, como o tamanho máximo de sua partição sendo de 64 MB e o tamanho máximo de um nome de arquivo sendo de 14 caracteres [DISEFS 2006]. 3.6.2. Ext (Extended Filesystem) Criado em abril de 1992 e fortemente baseado no MinixFS, o Ext (Extended Filesystem) foi o primeiro sistema de arquivos a ser criado exclusivamente para o GNU/Linux. Suas principais vantagens com relação ao MinixFS foram o aumento do tamanho máximo de sua partição para 2 GB e o tamanho máximo dos nomes de arquivos para 255 caracteres [DISEFS 2006]. 3.6.3. Ext2 (Second Extended Filesystem) O Ext? (Second Extended Filesystem) foi criado para solucionar alguns problemas presentes no Ext. Entre estes problemas destacam-se a falta de suporte para acesso separado, modificação de datas dos inodes, modificação das datas dos arquivos e fragmentação. Com o aumento dos usuários adeptos ao Ext2, erros foram corrigidos e muitas melhorias foram feitas neste sistema de arquivos, que se tornou padrão de facto para o GNU/Linux [DISEFS 2006]. 3.6.4. Ext3 (Third Extended Filesystem) www .vivaolinux.com br/artigos/impressora.php?codigo=5116 int 13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] operacionais Windows 9X e Windows NT. Na prática, este é o sistema de arquivos usado para montar partições formatadas com os sistema de arquivos FAT32. Para informações sobre outras versões do FAT (FATI2, FAT16 e etc.), veja os sistemas de arquivos msdos e umsdos (manual do programa mount). 3.6.11. NTFS (New Technology Filesystem) O NTFS (New Technology Filesystem) é a versão para o GNU/Linux do sistema de arquivos de mesmo nome, da Microsoft. Vale lembrar que, apesar desse sistema de arquivos ser conhecido dentro do GNU/Linux como NTFS, o nome da sua implementação para este sistema operacional é Linux-NTFS. De acordo com [Conectiva 2006], este é o sistema de arquivos dos sistemas operacionais Windows 2000, XP e NT. Assim como o sistema de arquivos VFAT, na prática, este sistema de arquivos é usado para montar partições formatadas sob o sistema de arquivos NTFS. 3.7. Benchmarks de sistemas de arquivos 3.7.1. Introdução Benchmark é um programa de testes, utilizado para avaliar o desempenho de algum dispositivo [Wenzel 2006]. Na prática, dentro da computação, quando se comparam tecnologias (hardware ou software), diz-se que foi feito um benchmark. Muitas pessoas não acreditam em benchmarks e assim não dão crédito aos resultados que eles descrevem. Na verdade, alguns benchmarks são realmente suspeitos, como, por exemplo, uma empresa desenvolvedora de uma placa de vídeo, que faz um benchmark de sua placa junto com uma concorrente, sem especificar com detalhes os testes feitos e os resultados obtidos com cada um deles. Entretanto há muitos benchmarks confiáveis, que podem ser levados em consideração na hora de se comparar duas ou mais tecnologias. Cabe esclarecer que os resultados obtidos em um benchmark, por mais confiável que este seja, não devem ser tomados como verdades absolutas, devendo ser considerados dentro de um determinado contexto. Por exemplo, caso seja feito um benchmark de monitores e se chegue à conclusão de que o monitor M1 suporta resoluções maiores, gasta mais energia e é mais caro que o monitor M2, não significa que o segundo monitor deve ser descartado em uma compra, pois ele seria a opção ideal para uso onde não é necessária a utilização de resoluções muito altas e onde a economia de energia tem um peso considerável na escolha, como em estabelecimentos comerciais, computadores antigos e etc. Benchmarks de sistemas de arquivos, normalmente, colocam à prova a velocidade com que os sistemas testados executam operações de I/O, o quanto consomem de CPU, quais recursos de configuração possuem e como reagem em caso de falhas (como desligamento acidental do sistema). Muitos benchmarks de sistemas de arquivos do GNU/Linux já foram feitos e a maioria deles estão acessíveis via internet. Três deles chamam muito a atenção, por características interessantes e eles serão discutidos nesta seção. 3.7.2. Um benckmark técnico [Dôllk & Reitter 2006] testaram o Ext2, Ext3, ReiserFS, JFS e o XFS. O que chama a atenção neste www .vivaolinux.com br/artigos/impressora.php?codigo=5116 1347 13/0412 Esquemas de particionamento e sistemas de arquivos [Artigo] benchmark, é que os testes foram feitos através do uso de programas específicos para benchmarks: FSBench (http://fsbench.netnation.com”), que é um script escrito em linguagem Python, que chama os outros dois programas, passando-lhes os parâmetros adequados; Bonnie++ (http:/Awww.coker.com.awbonie++/) e IOZone (http://www. iozone.org/). Os testes feitos neste benchmark varias entre realizar buscas aleatórias, criar, aleatoriamente, arquivos e escrever num arquivo existente, sendo que o tamanho destes arquivos variam de um a quatro GB. A conclusão deste benchmark foi que o JFS foi o vencedor, por ter se saído bem em todos os testes. Em segundo lugar ficou o XFS, com resultados inferiores, mas com um baixo consumo de CPU. Em terceiro fcou o ReiserFS, trabalhando muito bem com arquivos pequenos, mas consumindo muita CPU. Surpreendentemente, o Ext2 ficou em quarto lugar,com uma performance ligeiramente pior que a dos três primeiros. O Ext3 ficou em último lugar, tendo se mostrado muito lento ao trabalhar no seu modo "journal", que é o seu modo de operação mais seguro. 3.7.3. Um benchmark para usuários comuns Com intuito de realizar um benchmark mais próximo à realidade de usuários comuns do GNU/Linux, Justin Piszcz realizou um testes nos sistemas de arquivos Ext2, Ext3, ReiserFS, JFS e XF'S [Piszez 2006]. Foram feitos 21 testes, que incluíam criar 10000 arquivos com o comando touch em um diretório, criar 10000 diretórios com o comando mkdir, partir um arquivo de 10 MB em partes de tamanhos variados, entre outros testes. A conclusão encontrada por Piszez foi que os melhores sistemas de arquivos a serem utilizados, baseado no tempo total dos testes, são o JFS, o ReiserFS ou o XFS, dependendo da necessidade e dos tipos de arquivos que serão mais utilizados na aplicação. Já o Ext3 apresentou resultados muito lentos nos testes, enquanto o Ext2 apresentou resultados satisfatórios, talvez por não possuir o recurso de journaling. 3.7.4. Confirmação de Piszez Hans Ivers realizou um benchmark que, segundo [Ivers 2006], complementaria aquele feito por Piszez, pois este não teria feito testes tão próximos do ambiente real de um usuário comum do GNU/Linux. Os testes feitos por Ivers vão, desde a realização de operações com um arquivo de imagem ISO de 700 MB, até operações com uma árvore de diretórios com 7500 arquivos, 900 diretórios e 1.9 GB de tamanho. Ao todo, foram realizadas 11 tarefas, nos sistemas de arquivos Ext3, ReiserFS, JFS e XFS. A conclusão de Ivers, foi que os resultados obtidos por Piszez foram confirmados. Conforme [Ivers 2006], o Ext3 consome mais espaço em disco após a formatação que os outros € leva mais tempo para ser criado. O ReiserFS leva mais tempo para ser montado, além de não trabalhar tão bem com arquivos pequenos, como sugerem os outros benchmarks citados, além de consumir muita CPU. O JFS é o sistema de arquivos que consome menos CPU e conseguiu ótimos resultados nos testes feitos. Já o XFS foi o melhor sistema de arquivos testado e Ivers o recomenda para qualquer perfil de aplicação, desde um computador para uso doméstico, até para um servidor de arquivos. www .vivaolinux.com br/artigos/impressora.php?codigo=5116 14n7 13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] Entretanto, a definição de um bom esquema de particionamento de disco e a escolha de um sistema de arquivos adequado à aplicação em questão, podem diminuir muito o risco de ocorrência destes problemas. Por isso é interessante que, antes do usuário procurar aprender a utilizar um programa de particionamento de disco, ou a formatar suas partições com os sistemas de arquivos, ele aprenda os conceitos básicos e a teoria relacionados à operação em questão, a fim de aplicar bem esses conhecimentos e obter uma melhora na segurança e no desempenho do sistema. Referências [LSAG 2006] Wirzenius, L., Oja, J., Stafford, S. & Weeks A. (2006) "The Linux System Administrator's Guide" Version 0.9 , maio. [Conectiva 2006] Conectiva S.A. (2006) "Guia do Servidor Conectiva Linux" Versão ano 2004 , maio. [DISEFS 2006] Card, R., Theodore, T. & Tweedie, S. (2006) "Design and Implementation of the Second Extended Filesystem" , maio. [WikiNFS 2006] Wikipedia, a enciclopédia livre (2006) "Network File System" , maio. [WikiISO 2006] Wikipedia, a enciclopédia livre (2006) "ISO 9660" , maio. [FSHowTo 2006] The Linux Documentation Project (2006) "Filesystems HowTo" , maio. [PPDebian 2006] Projeto Debian (2006) "Programas de particionamento Debian" , maio. [DebianPart 2006] Projeto Debian (2006) "Instalando Debian GNU/Linux 3.0 para Intel x86" Capítulo 6: "Particionamento para a Debian" , maio. [Piszez 2006] Piszez, J. (2006) "Benchmarking Filesystems" , maio. [Bauer & Bowden 2006] Bauer, B. & Bowden, T. "SuSE Linux - Guide for Geeks" Capítulo 2.1.4: "Understanding File Systems" Versão ano 2001 , maio. www .vivaolinux.com br/artigos/impressora.php?codigo=5116 16n7 13/04/12 Esquemas de particionamento e sistemas de arquivos [Artigo] [Dôllk & Reitter 2006] Dôlle, M. & Reiter, J. (2006) "Provão - Ext 2/3, JFS, Reiser e XFS, quem ganha essa?" Artigo da edição número dois da revista Linux Magazine, páginas 23-25, setembro de 2004 , maio. [LinMag 2006] Revista Linux Magazine (2006) "Entrevista com Theodore T'so" Artigo da edição número 12 da revista, páginas 8 e 9, setembro de 2005 , maio. [Ivers 2006] Ivers, H. (2006) "Filesystems (Ext3, Reiser, XFS, JFS) Comparison on Debian Etch" , maio. [Piropo 2006] Piropo, B. (2006) "Particionando II" , maio. [Wenzel 2006] Wenzel, F. (2006) "Informatiquês" , maio. [TLIP 2006] The Linux Information Project (2006) "Superblock" , maio. [GdH 2006] Guia do Hardware (2006) "Termos Técnicos GdH - Internal Fragmentation (Fragmentação Interna)" , junho. http://www ..vivaolinux. com br/artigo/Esquemas- de-particionamento-e-sistemas-de-arquivos Voltar para o site www .vivaolinux.com br/artigos/impressora.php?codigo=5116 vm7