Professional Documents
Culture Documents
Introduo
por meio de um sistema de arquivos que ocorre a gravao e a recuperao dos dados em um
dispositivo de armazenamento em um computador.
O sistema de arquivos independente do hardware e da BIOS, sendo especificado pelo software do
sistema operacional no momento da instalao do sistema ou na configurao de dispositivos de
armazenamento adicionais posteriormente instalao.
Segundo WIRZENIUS (1998), o dispositivo de armazenamento comumente usado em um
computador o disco rgido. Ele formado por pratos magnetizveis onde os dados so gravados e
recuperados por leitores eletrnicos denominados "cabeas" de leitura e gravao. O disco possui
vrios desses pratos giratrios. Cada face do prato possui uma cabea de leitura e gravao
exclusiva. O disco possui tambm uma geometria lgica que permite ao computador gravar e
recuperar dados nessa estrutura fsica.
Uma vez que o sistema operacional precisa conhecer essa geometria do sistema, necessrio
submeter o disco a um processo denominado formatao lgica para gravar uma estrutura de
sistema de arquivos nele.
Assim, o disco possui uma formatao determinada por um sistema de arquivos. Esse formato
especifica o modo como os arquivos so gravados e recuperados, alm de outros detalhes tcnicos
sobre os mesmos.
Segundo WIRZENIUS (1998), durante a formatao pode-se encontrar blocos ruins no disco,
chamados de blocos defeituosos (bad blocks) ou setores defeituosos (bad sectors). Esses blocos
defeituosos so marcados pelo sistema operacional como no utilizveis. A presena de muitos
blocos defeituosos indica a possibilidade de falha no dispositivo e recomenda-se sua troca.
No GNU/Linux a formatao pode ser realizada pelo utilitrio mkfs (make file system). Esse
comando constri um sistema de arquivos do tipo especificado pelo administrador e que seja
suportado pelo GNU/Linux. Caso o tipo no seja especificado usado o EXT2. A sintaxe para o
comando :
mkfs -t <type> /dev/<dispositivo>
Onde <type> um tipo de sistema de arquivos vlido e <dispositivo> a partio que se deseja
formatar. Por exemplo:
# mkfs -t ext3 /dev/hda3
Criar uma partio do tipo EXT3 na terceira partio primria (a3) de um disco tipo IDE (hd). O
processo de formatao apaga de modo irremedivel os dados, caso existam, em uma partio. Isso
ocorre porque uma nova estrutura lgica gravada no disco para a partio destruindo a existente.
Observa-se que o disco rgido normalmente subdividido em regies independentes denominadas
parties.
parties
As parties em disco recebem denominaes distintas entre si (hda1, hda2 e assim por diante, at
63 parties para dispositivos IDE. Para dispositivos SCSI, sda1, sda2 e assim por diante at 15
parties) e cada uma pode ser formatada com um tipo de sistema de arquivos diferente dentre os
reconhecidos pelo GNU/Linux. Deste modo, comum coexistir, em um mesmo disco, vrias
parties com diferentes sistemas de arquivos para atender tanto s necessidades dos usurios
quanto s do prprio sistema GNU/Linux, no que se refere s parties swap.
As parties funcionam de modo similar ao disco rgido avulso. Cada uma possui suas estruturas e
registros de dados e metadados independentes das outras. O esquema de particionamento no
definido pelo hardware ou pela BIOS, sendo uma conveno do sistema operacional.
Assim, a convivncia entre sistemas operacionais em parties no mesmo dispositivo de
armazenamento depende do modo como os sistemas operacionais executam a instalao de seus
sistemas de arquivos. O utilitrio que cria as parties chamado particionador. Existem diversos
particionadores no GNU/Linux. Dois dos mais comuns so o cfdisk e o fdisk.
sistemas de arquivos
Os dados so organizados em estruturas, que os armazenam digitalmente de modo que possam ser
lidos por um computador. Essas estruturas so chamadas de arquivos.
Os arquivos so armazenados, no sistema de arquivos, em diretrios que so uma subdiviso lgica
e que funcionam como repositrios de arquivos ou de outros diretrios.
foi originalmente desenvolvido por Stephen Tweedie, Rmy Card e Theodore Ts'o e outros para a
Red Hat.
O EXT3 possui uma vantagem significativa sobre todos os outros sistemas atuais, que a sua total
compatibilidade com o sistema de arquivos EXT2. O EXT3 praticamente um EXT2 acrescido das
propriedades de "journal". Conseqentemente, pode empregar todas as aplicaes existentes
desenvolvidas para manipular o sistema de arquivos EXT2, bem como permitir uma migrao para
EXT3 sem grande esforo.
O EXT2 tem sido o sistema de arquivos mais popular para o GNU/Linux at o momento. Essa
ampla base de usurios faz parecer que o EXT2 o sistema de arquivos padro do GNU/Linux. Tal
afirmao no de todo correta, j que o GNU/Linux reconhece os sistemas de arquivos atravs de
uma funcionalidade incorporada ao kernel denominada VFS (Virtual File System). No existe
realmente um sistema de arquivos considerado padro e sim o mais adotado pelos usurios.
Deste modo, o GNU/Linux pode reconhecer mais de vinte sistemas de arquivos em diferentes nveis
de funcionalidade. Entre eles esto alguns que so proprietrios e outros que so populares em
diversas plataformas. Parte dessas caractersticas ainda experimenta,l no estando totalmente
funcionais. O padro EXT3 pode ser assim compreendido, conforme NEMETH et al (2004):
Os dados do arquivo so armazenados em unidades chamadas 'blocos'. Estes blocos podem ser
numerados seqencialmente. Um arquivo tambm tem um inode. Como os blocos, os inodes so
numerados seqencialmente, embora tenham uma seqncia diferente. Uma entrada de diretrio
consiste do nome do arquivo e um nmero de inode. O inode tambm armazena o local dos blocos
de dados, como se segue e conforme Figura 1:
Os nmeros dos blocos dos primeiros 12 blocos de dados esto armazenados diretamente no
inode. Estes s vezes so chamados de blocos diretos.
O inode contm o nmero do bloco de um bloco indireto. Um bloco indireto contm os
nmeros de blocos de 256 blocos de dados adicionais.
O inode contm o nmero do bloco de um bloco duplamente indireto. Um bloco duplamente
indireto contm os nmeros de blocos de 256 blocos indiretos adicionais.
O inode contm o nmero do bloco de um bloco trs vezes indireto. Um bloco trs vezes
indireto contm os nmeros de blocos de 256 blocos duplamente indiretos adicionais.
Cada partio de sistema de arquivos dividida em grupos de blocos. Estruturas como tabelas de
inode so alocadas entre os grupos de blocos para que os blocos que so acessados juntos possam
ser armazenados prximos uns dos outros no disco. Esse agrupamento aumenta a velocidade de
acesso ao arquivo e reduz o tempo de procura por blocos do mesmo arquivo. Inodes so entradas de
tabelas de comprimento fixo, cada uma das quais armazenam informaes sobre um arquivo
existente no sistema de arquivos." (NEMETH, et al, 2004, p. 106).
Os inodes so criados no momento da formatao lgica do dispositivo. Desta forma possvel
redimensionar o nmero de inodes de acordo com a capacidade do dispositivo e o tipo e tamanho de
arquivos que sero nele armazenados. Isso evita a falta de inodes que poderia provocar uma parada
de sistema. Para determinar o tamanho do inode no momento da formatao usado o comando
mke2fs com opo -i bytes-por-inodes.
Observe que este ajuste feito na criao da partio, no sendo possvel redimensionar o nmero
de inodes aps a formatao inicial. A forma de disponibilizar inodes em um dispositivo
removendo arquivos que ocupam muitas entradas nas tabelas de blocos ou movendo-os para outros
dispositivos.
Um superbloco um registro que descreve as caractersticas do sistema de arquivos conforme
Figura 2. Ele contm informaes sobre:
Vrias cpias do superbloco so gravadas em reas diferentes do disco, (no incio de cada grupo de
bloco) prevenindo desse modo perdas de informaes essenciais para o sistema de arquivos.
Inodes no referenciados;
Contagem de links exagerada;
Blocos de dados no utilizados e no registrados nos mapas de blocos;
Blocos de dados listados como livres e que so usados num arquivo;
Informaes de resumo incompletas no superbloco.
Esses cinco problemas so corrigidos de maneira segura e automtica. O utilitrio tambm capaz
de analisar erros e solicitar a interveno do operador como nos casos de:
Corrigir um sistema de arquivos manualmente uma tarefa complexa que exige do administrador
conhecimentos sobre a estrutura e o funcionamento interno do sistema de arquivos. Alteraes
introduzidas nessa tentativa de recuperao que sejam indevidas podem danificar permanentemente
o acesso aos dados.
Caso fsck localize um arquivo cujo diretrio "pai" no pode ser encontrado, esse arquivo ser salvo
no diretrio lost+found no nvel mais alto do sistema de arquivos. Uma vez que os nomes dos
arquivos so registrados somente em seus diretrios "pais", no possvel referenciar-se a esses
arquivos por seus nomes. Os arquivos salvos nessa pasta tero como nomes seus nmeros de inode.
A introduo do "journal" em sistemas EXT3 modifica essa abordagem de recuperao de sistemas
de arquivos e reduz o tempo de parada do sistema para valores muito baixos, introduzindo uma
confiabilidade muito superior ao servidor. Na instalao do sistema de arquivos, uma rea
reservada para a alocao do "journal" ou "log".
Segundo NEMETH, et al (2004), as operaes efetuadas nos arquivos so registradas nessa rea de
log do mesmo modo que o controle de transaes em bancos de dados. As operaes so
primeiramente gravadas no journal. Quando a atualizao do registro de aes (log) completada,
um registro de complemento (commit record) gravado sinalizando o final da entrada. Ento, as
mudanas so efetivamente gravadas em disco no sistema de arquivos normal.
Uma falha nesse ponto permite, atravs da consulta ao journal, a reconstruo das operaes ainda
no concludas e a rpida recuperao do sistema. Aps a gravao em disco no sistema de
arquivos, um marcador confirma a operao e descarta o log, j que a operao foi corretamente
confirmada.
O EXT3 passou a ser suportado pelo kernel do Linux a partir da verso 2.4. Conseqentemente,
todas as distribuies Linux lanadas com esse kernel ou superior tm suporte padro para EXT3.
De acordo com INFOWESTER (2004), no EXT3, o cdigo de Journaling usa uma camada chamada
"Journaling Block Device" (mdulo JBD). A JBD foi criada com o propsito de implantar o suporte
ao Journal em qualquer tipo de dispositivo com base em blocos de dados. Por exemplo, o cdigo
EXT3 informa e "pede autorizao" JBD para efetuar as mudanas antes de modificar/adicionar
qualquer dado no disco. Sendo assim, o JBD que verdadeiramente "gerencia" o Journal. Portanto,
ele uma dependncia de mdulo para o correto funcionamento do EXT3 juntamente com o
mdulo mbcache, que introduz uma camada cache para os metablocos melhorando o desempenho
do sistema.
O JBD funciona como uma entidade independente permitindo que no s o EXT3 a use, mas,
tambm, outros sistemas de arquivos. A JBD utiliza um mtodo diferente de outros Journalings para
recuperao de informaes. Ao invs de armazenar as informaes em bytes que depois devem ser
gravados, a JBD grava os prprios blocos modificados do sistema de arquivos. Assim, o EXT3
tambm armazena "rplicas" completas dos blocos modificados em memria para rastrear as
operaes que ficaram pendentes. A desvantagem desta forma de trabalho que o Journal acaba
sendo maior.
No entanto, o EXT3 no precisa lidar com a complexidade dos Journalings que trabalham gravando
bytes. Ele suporta trs diferentes modos de trabalho do Journaling, de acordo com NEMETH, et al
(2004) e INFOWESTER (2004):
Journaling (Registro de aes): grava todas as mudanas em sistema de arquivos e usa um
arquivo de registros de aes maior. Isso pode retardar a recuperao durante a
reinicializao. o mais lento dos trs modos, sendo o que possui maior capacidade de
evitar perdas de dados. Uma forma de aperfeioar a velocidade dessa opo gravar os
registros em bancos de dados externos.
Ordered (Ordenado): grava somente mudanas em arquivos metadados (arquivos que
possuem informaes sobre outros arquivos), mas registra as atualizaes no arquivo de
dados antes de fazer as mudanas associadas ao sistema de arquivos. Este Journaling o
padro nos sistemas de arquivos EXT3 sendo a melhor opo para a maioria dos sistemas.
Writeback: tambm s grava mudanas para o sistema de arquivo em metadados, mas utiliza
o processo de escrita do sistema de arquivos em uso para gravao. o mais rpido
Journaling EXT3, porm o menos confivel e mais suscetvel corrupo de arquivos aps
uma queda do sistema. Esse modo equivalente instalao de um sistema com EXT2
nativo.
O modo Ordered o padro no EXT3, mas possvel especificar qual o modo que se deseja usar
atravs da modificao no arquivo /etc/fstab do parmetro data="mode", onde "mode" pode ser
igual a ordered, writeback ou journal. Por exemplo, uma entrada no /etc/fstab, usando o modo
journal como padro:
/dev/hda5 /etc ext3 data=journal defaults 1 1
Devido compatibilidade entre o sistema EXT2 e seu sucessor EXT3, possvel realizar uma
migrao apenas incluindo a rea destinada ao registro das aes. O utilitrio que faz essa
configurao o tune2fs com opo -j.
Por mais que seja segura a migrao, imprescindvel efetuar cpia de segurana antes do
procedimento e garantir que nenhum usurio obtenha acesso ao sistema nesse momento para evitar
perdas dos dados. Por exemplo, para migrar uma partio EXT2 em /dev/hda3 para EXT3 usa-se:
# tune2fs -j /dev/hda3
Aps a concluso do comando necessrio alterar o tipo de partio no /etc/fstab para que esta seja
corretamente montada. possvel montar uma partio EXT3 como EXT2, porm, isso no
recomendvel, pois pode causar danos inesperados aos dados.
A busca por chaves, ento, agiliza a pesquisa em rvores, mas limita o tipo de chaves que podemos
trabalhar.
O ReiserFS possui suporte a arquivos maiores que 2GB.
ReiserFS usa rvores balanceadas para tornar o processo de busca de arquivos, informaes sobre
segurana e outros metadados mais eficientes. Para arquivos muito pequenos, seus dados podem ser
armazenados prximos aos metadados, ento, ambos podem ser recuperados com um pequeno
movimento do mecanismo da "cabea" de leitura do disco. Essa propriedade vai contribuir para um
melhor desempenho caso uma aplicao necessite abrir muitos arquivos pequenos rapidamente.
Outra grande vantagem do ReiserFS a alocao dinmica de inodes, j que esse sistema de
arquivos no os aloca em espaos fixos ou blocos e sim, aloca o tamanho exato que o arquivo
precisa. Em sistemas baseados em inodes fixos, como o EXT3, o espao no disco alocado em
blocos que variam de 512 a 4096 bytes ou at maior, caso o arquivo exceda um mltiplo exato do
tamanho do bloco.
A leitura e escrita de arquivos grandes so limitadas pela velocidade do dispositivo de
armazenamento e pelo canal de entrada e sada da controladora de discos. J o acesso a arquivos
pequenos, como scripts do Shell, limitado pela eficincia do projeto do sistema de arquivos. A
razo disso que a abertura de um arquivo requer a leitura dos metadados sobre ele que esto
armazenados no inode do diretrio em uma rea distinta dos dados. Aps localizar a entrada
referente ao arquivo no diretrio que o sistema realiza a leitura dos setores que contm os dados.
Alm disso, o sistema precisa examinar os metadados relativos segurana para verificar se o
usurio tem permisso de acesso ao arquivo, isso significa leituras adicionais. O sistema pode gastar
mais tempo decidindo entre permitir o acesso e localizar as entradas de dados do que se as buscasse
dentro do prprio arquivo. Entre o EXT3 e o ReiserFS, a principal diferena que o EXT3 tenta
guardar informaes tanto sobre o metadados, ou seja, as informaes sobre o espao ocupado pelos
arquivos e suas permisses quanto sobre os dados em si, enquanto o ReiserFS guarda apenas
informaes sobre os metadados.
Para completar, o ReiserFS rpido. Seu ganho de velocidade em relao a outros sistemas de
arquivos varia de acordo com cada operao em disco. Em quase todas as operaes ele mais
rpido, e em algumas no. No incomum algum utilizar o ReiserFS com milhares de arquivos no
mesmo diretrio, uma tarefa para a qual o ReiserFS especialmente adaptado.
Seu uso de funes hash e rvores balanceadas, ao invs de seqncias infindveis de inodes tornam
a procura de um arquivo em uma dezena ou em uma grande quantidade uma operao bem rpida.
No caso de um desligamento incorreto do sistema, o ReiserFS capaz de recuperar a consistncia
do sistema de arquivos em fraes de segundo e a possibilidade de perda de pastas ou parties
nula. Em compensao, os arquivos que eventualmente estiverem sendo gravados no exato
momento em que acabou a energia ficaro com seus dados alterados. Voc continuar tendo acesso
aos arquivos normalmente, mas o contedo estar truncado ou incompleto.
J o EXT3 tenta sempre preservar no s o metadados, mas tambm os dados dos arquivos em si.
Isto se revela ao mesmo tempo uma fora e uma fraqueza. A vantagem que existe uma
possibilidade maior de recuperar os arquivos que estiverem sendo gravados no exato momento em
que acabar a energia. Por outro lado o journal guarda mais informaes e acessado mais
freqentemente, o que causa degradao no desempenho ( justamente por isso que o ReiserFS
costuma se sair melhor nos benchmarks) e ao mesmo tempo faz com que exista a possibilidade do
prprio journal se corromper durante o desligamento.
Apesar de ser muito difcil a corrupo do sistema ReiserFS, tambm pode acontecer. Porm o
gerenciamento de setores defeituosos do sistema de arquivos ReiserFS simples de ser realizado j
que as ferramentas para essa operao esto disponveis. Segundo Morimoto (2004), pode-se usar o
comando badblocks para fazer um exame de superfcie e mostrar uma lista com os setores
defeituosos. Para usar em conjunto com o ReiserFS, necessrio especificar o tamanho dos blocos
(em bytes). Se voc no usou nenhuma opo especial ao formatar a partio, os blocos tero 4096
bytes. O comando para verificar a partio /dev/hda1, por exemplo, fica:
# badblocks -b 4096 /dev/hda1
Ainda segundo Morimoto (2004), o ReiserFS capaz de marcar, via software, setores defeituosos
que for encontrando. Isso feito automaticamente, assim como no NTFS do Windows XP. S
preciso marcar setores defeituosos manualmente em sistemas de arquivos antigos, como o FAT32 e
o EXT2.
Para ver se existem setores defeituosos na partio, marcados via software, execute o comando:
# debugreiserfs /dev/hda1
Caso exista algum erro no sistema de arquivos, causados por desligamentos incorretos, por
exemplo, voc pode corrigir com o comando:
# reiserfsck /dev/hda1
O ReiserFS um sistema de arquivos relativamente novo, mas que conta com o patrocnio de
grandes empresas. Apesar de ainda estar em desenvolvimento, seu uso em servidores de produo j
uma realidade. Dadas as caractersticas do sistema tem se mostrado como uma soluo a mais
para os usurios do sistema GNU/Linux.
Concluses
Em sistemas EXT2 sem journal as falhas e erros so corrigidos com o utilitrio fsck. Apesar dos
resultados satisfatrios de correo e recuperao desse utilitrio, em sistemas de alta
disponibilidade o tempo gasto para solucionar inconsistncias um transtorno. H uma demora para
concluir a checagem, j que todos os arquivos so analisados por referncias cruzadas. Essa
abordagem somente funciona bem para inconsistncias comuns.
Conclui-se desta forma que o uso de um sistema de arquivos sem journal atualmente inaceitvel
para os padres de disponibilidade e principalmente em relao questo de segurana dos dados.
A abordagem dos sistemas com "journal" economiza bastante tempo e contribui para melhorar o
ndice de disponibilidade de sistemas crticos que no podem ficar indisponveis por muito tempo.
Essa caracterstica atendida satisfatoriamente tanto pelo EXT3 quanto pelo ReiserFS.
No quesito velocidade de acesso rvore de diretrios, o ReiserFS mais rpido que o EXT3
devido aos algoritmos otimizados. Conforme PISZCZ (2004) em seus testes comparativos.
Uma das vantagens do ReiserFS sobre o EXT3 o seu desempenho para lidar com parties que
possuem um grande nmero de arquivos pequenos. Esses arquivos so lidos em apenas uma
operao de entrada/sada do disco rgido, sendo esse sistema ideal para esse tipo de aplicao. Isso
deve ser levado em conta pelo administrador de sistemas.
Mesmo com as caractersticas e funcionalidades avanadas do ReiserFS, tais como rvores
balanceadas, velocidade de acesso e melhor desempenho com operaes de entrada e sada em
disco, esse sistema ainda no se encontra em um estgio avanado de desenvolvimento. Isso faz
com que o EXT3 ainda seja uma boa opo para servidores de produo, j que possvel realizar a
migrao para o EXT3 com relativa facilidade, evitando-se a reinstalao de sistemas.
O ReiserFS tende a superar o EXT3 aps a implementao de novas caractersticas na verso
Reiser4.
A escolha entre o uso do sistema EXT3 ou do ReiserFS deve ser uma deciso prpria do
administrador, visto que o desempenho de ambos os sistemas bastante prximo e especfico para
cada caso de uso.
Referncias bibliogrficas
BARBOSA, Jorge L. V. Artigo. Disponvel em
http://atlas.ucpel.tche.br/~barbosa/consiso/consiso9/so/sites/s15/reiserfs.htm
Acesso em Novembro de 2004.
BARION, Ettore F. R. - Dicas Unicamp - Disponvel em
http://www.dicas-l.unicamp.br/dicas-l/20010517.shtml
Acesso em Novembro de 2004.
BREVIGLIERI, Rafael Leandro. Sistemas de arquivos. Disponvel em
http://www.slackware-brasil.com.br/.../artigo_completo.php?aid=108
Acesso em Novembro de 2004.
CRANE, Aaron. HowTo-Sistemas de arquivos. Disponvel em
http://br.tldp.org/projetos/howto/.../ext2fs-undeletions.pt_BR-606.html
Acesso em Novembro de 2004.
EQUIPE P&D em H.A Conectiva - Primeiros passos HA mini-Howto - Disponvel em
http://ha.underlinux.com.br/doc/heartbeat-0.4.8e-doc/Primeiros_Passos_HA _miniHOWTO.txt
Acesso em Novembro de 2004.
INFOWESTER. Sistema de Arquivo EXT3. Disponvel em
http://www.infowester.com/linext3.php
Acesso em Novembro de 2004.
MORIMOTO, Carlos E. Dicas. Disponvel em
http://www.guiadohardware.net/linux/dicas/36.htm
NAMESYS. Conceitos, Definies sobre rvores balanceadas e o ReiserFS. Site oficial do
ReiserFS disponvel em http://www.namesys.com.
NEMETH, Evi, et al. Manual Completo do Linux - Guia do Administrador. Traduo de Ariovaldo
Griesi. So Paulo: Makron Books, 2004.
PISZCZ, Justin. Teste comparativo entre sistemas de arquivos com journal. Traduo de Bruno
Bellantuono. Disponvel em
http://www.pczone.com.br/html/modules.php?name=News&file=article&sid=126
Acesso em Novembro de 2004.
RIBEIRO, Uir. Certificao Linux. Rio de Janeiro: Axcel Books, 2004.
SILVA, Gleydson Mazioli da. Guia FOCA GNU/Linux. Verso 5.44. Disponvel em
http://www.cipsga.org.br. Acesso em Agosto de 2004.
WIRZENIUS, Lars, et al. Guia do Administrador de Sistemas Linux. Traduo de Conectiva
Informtica. So Paulo: Conectiva, 1998.