Upload
alison-ribeiro
View
41
Download
0
Embed Size (px)
DESCRIPTION
8 - Ext LINUX
Citation preview
Os sistemas de arquivos utilizados atualmente no Linux
são avançados e tem vários recursos mas não foi
sempre assim. Nas primeiras versões do kernel, o
sistema de arquivos utilizado era o EXT. Extremamente
frágil e com muitas limitações, como por exemplo,
permissão para criação de partições de somente até
2GB e fácil desfragmentação.
A partir do EXT2 a limitação de 2GB para partições caiu
por terra, já que ele permite criação de partições de
até 4Terabytes!
Um pouco da história
11:03
Diferentemente do que ocorria há alguns anos, escolher
um sistema de arquivos para um sistema Linux não é
mais uma questão de segundos (Ext2 ou ReiserFS?).
Kernels a partir do 2.4 oferecem uma variedade de
opções de sistemas de arquivos. A seguir será mostrada
uma visão geral de como esses sistemas de arquivos
basicamente funcionam e quais as vantagens que
oferecem.
É muito importante lembrar que pode não haver um
sistema de arquivos adequado a todos os tipos de
aplicativos. Cada sistema de arquivos tem seus pontos
fortes e fracos específicos, o que deve ser considerado.
No entanto, nem mesmo o sistema de arquivos mais
sofisticado pode ser substituído por uma estratégia de
backup razoável.
Principais sistemas de arquivos no Linux
11:03
Sem dúvida alguma o EXT2 foi uma evolução e tanto
em relação ao EXT, pois neste sistema de arquivos
muitas melhorias foram implantadas, fazendo deste
modo com que o Linux tivesse um sistema de arquivos
com recursos importantíssimos para uma boa
administração de sistemas, tais como o suporte a regras
de permissões bem definidas. A estrutura do EXT2 pode
ser definida assim:
EXT2
11:03
.: Boot Block – Onde são gravadas as informações necessárias
para a inicialização do sistema.
.: Inodes – Ficam armazenadas todas as informações sobre cada
arquivo: Permissão de acesso, tipo de arquivo, identificação, dono
do arquivo, data que foi criado e modificado, tamanho e a
localização para o bloco de dados onde o arquivo está guardado.
.: Diretórios – São tipos de arquivos especiais que armazenam
uma lista de todos os arquivos e subdiretórios subordinados a ele.
.: Links - Um recurso muito interessante no qual pode se apontar
para um outro arquivo ou diretório qualquer.
Quando se fala em arquivos e diretórios no Linux, falamos em tudo,
literalmente. Ao contrário do Windows, que trata dispositivos de
hardware como tal, o Linux trata tudo como arquivo, ou seja, um
disco rígido é um arquivo, um modem também, assim como um CD-
ROM, impressora, placa de som, etc.... Os dispositivos de hardware
ficam todos no diretório /dev.
EXT2
11:03
Outra característica é o recurso de montagem. O sistema de
arquivos do Linux obedece uma hierarquia de arquivos e diretórios,
onde pode haver subdiretórios relacionados. E todos devem estar
organizados numa partição, que é onde o sistema de arquivos é
criado. Estas partições podem ser montadas ou desmontadas.
Quando o sistema é iniciado, verifica-se no arquivo /etc/fstab as
partições e dispositivos a serem montados. Ao desligar o sistema,
as mesmas são desmontadas. Mesmo com o sistema ativo, as
partições ou dispositivos podem ser montados ou desmontados a
qualquer hora, inclusive em diretórios diferentes, o que dá uma
versatilidade muito grande.
EXT2
11:03
No Linux pode se acessar partições de diversos tipos,
como FAT, FAT32, iso9660 e outras, inclusive pode se
instalar um sistema nestas partições, assim como roda-
lo através de um CD-ROM. Isso se deve graças ao VFS (
Virtual File System ), que faz todo um trabalho de
gerenciamento do sistema de arquivos “desconhecido”,
decifrando sua estrutura e repassando as para o kernel
e programas, para que estes possam trabalhar sob o FS.
É evidente que isso tem um preço, que se traduz em
perda de rendimento, devido a emulação de estruturas.
Para quem tem dual boot a versatilidade do Linux é um
bom recurso, mas até pouco tempo atrás ainda existia
uma pequena barreira: NTFS, que falarei mais adiante.
EXT2
11:03
Tantos recursos assim fazem com que o EXT2 seja poderoso,
mas é evidente que ele tem as suas fragilidades. Algumas
delas podem até comprometer o bom andamento do trabalho.
Um grande problema do EXT2 é a sua baixa tolerância a falhas
em caso de quedas de energia ou desligamento inadequado,
sendo talvez até mais frágil do que a FAT32 do Windows. Um
desligamento inadequado num sistema EXT2 força o uso do
fsck para verificar a integridade do sistema. Algo mais ou
menos semelhante ao que acontece com o Scandisk do
Windows. Esta checagem pode demorar vários minutos,
dependendo do tamanho do disco rígido, e conforme for o
caso, pode haver até perda de dados, se o arquivo estiver
sendo gravado na hora do desligamento pode haver perda de
um diretório inteiro. Estes problemas foram contornados com
a criação dos sistemas de arquivos com Journaling
EXT2
11:03
Solidez
Por ser um “veterano,” o Ext2 passou por várias melhorias e foi bastante
testado. Esta pode ser a razão para as pessoas sempre se referirem a ele
como "sólido como uma pedra". Depois de uma falha no sistema em que o
sistema de arquivos não pode ser desmontado inteiramente, o e2fsck
começa a analisar os dados do sistema de arquivos. Os metadados são
levados a um estado consistente e os arquivos pendentes ou blocos de
dados são gravados em um diretório designado (chamado lost+found). Em
contraste com os sistemas de arquivos de registro em diário, o e2fsck
analisa todo o sistema de arquivos e não somente os bits de metadados
modificados recentemente. Esse procedimento demora muito mais do que a
verificação dos dados de registro de um sistema de arquivos com registro
em diário. Dependendo do tamanho do sistema de arquivos, ele pode levar
meia hora ou mais. Portanto, não é desejável optar pelo Ext2 em servidores
que precisem de grande disponibilidade. No entanto, como o Ext2 não
mantém um diário e usa muito menos memória, algumas vezes ele é mais
rápido do que outros sistemas de arquivos. 11:03
EXT2
Fácil capacidade de upgrade
O código do Ext2 é a base sólida sobre a qual o Ext3 poderia
se tornar um sistema de arquivos de última geração
amplamente aclamado. Sua confiabilidade e solidez foram
combinadas de forma elegante com as vantagens de um
sistema de arquivos de registro em diário.
11:03
EXT2
As limitações do EXT2 comprometiam sistemas de missão
crítica, onde uma parada de alguns minutos ou perda de
dados poderiam causar prejuízos consideráveis. Os sistemas
de arquivos com tecnologia “Journaling” tem a capacidade
de acompanhar as mudanças que serão feitas nos arquivos
antes de serem efetivadas. Estes registros são gravados
numa área separada do sistema de arquivos, chamada
“Journal” ou “registros de LOG”. Depois que as mudanças
são efetivadas, estes registros anteriores são eliminados. Na
prática é como se fosse um log constante, em full time,
constantemente atualizado.
11:03
Journaling
Isso faz com que os FS com esta tecnologia tenham uma alta
tolerância a falhas e a perda de dados diminua
consideravelmente. Com estes FS não é mais necessária a
atuação do FSCK a cada desligamento inadequado do
sistema, visto que ao reiniciar a máquina o sistema
verificará no registro de LOG se há mudanças marcadas
como não feitas. Caso positivo, estas serão efetivadas e o
sistema inicializará rapidamente e sem maiores problemas,
poupando tempo e dores de cabeça:-).
Nesta categoria de sistemas de arquivos existem algumas
opções como EXT3, ReiserFS e JFS, sendo que os mais
utilizados são o EXT3 e o ReiserFS.
11:03
Journaling
Oficialmente um dos recursos mais importantes da
versão 2.4 do kernel, o ReiserFS tornou-se disponível
como um patch para kernels SUSE 2.2 x desde a versão
6.4 do SUSE Linux. O ReiserFS foi criado por Hans
Reiser e pela equipe de desenvolvimento da Namesys.
Ele provou ser uma alternativa robusta ao Ext2. Seus
bens mais importantes são a melhor utilização do
espaço em disco, o melhor desempenho do acesso ao
disco e uma recuperação de falhas mais rápida.
11:03
ReiserFS
Os pontos fortes do ReiserFS, em mais detalhes, são:
Melhor utilização do espaço em disco
No ReiserFS, todos os dados são organizados em uma estrutura
chamada árvore equilibrada. A estrutura de árvore contribui para
uma melhor utilização do espaço em disco, pois arquivos
pequenos podem ser armazenados diretamente nos nós da folha
da árvore equilibrada B*, em vez de serem armazenados em outro
local e simplesmente manterem um indicador no local do disco.
Além disso, o armazenamento não é alocado em pacotes de 1 ou
4 kB, mas em porções do tamanho exato necessário. Uma outra
vantagem está na alocação dinâmica de inodes. Ela mantém o
sistema de arquivos mais flexível do que os sistemas de arquivos
tradicionais, como Ext2, em que a densidade do inode deve ser
especificada no momento da criação do sistema de arquivos.11:03
ReiserFS
Melhor desempenho do acesso ao disco
Para arquivos pequenos, os respectivos dados e as informações
(inode) “stat_data” são sempre armazenados lado a lado. Eles
podem ser lidos com uma simples operação E/S de disco, o
que quer dizer que é necessário somente um acesso ao disco
para recuperar todas as informações necessárias.
Rápida recuperação de falhas
A utilização de um diário para controlar as mudanças de
metadados recentes faz com que a verificação de um sistema
de arquivos leve segundos, mesmo no caso dos muito grandes.11:03
ReiserFS
Confiabilidade por meio do registro dos dados em diário
O ReiserFS também suporta o registro de dados em diário
e modos de dados ordenados similares aos conceitos
realçados na seção Ext3, Seção 13.2.3, “Ext3”. O modo
padrão é data=ordered, que garante a integridade dos
dados e dos metadados, mas usa o registro de dados em
diário somente para metadados.
11:03
ReiserFS
O Ext3 foi criado por Stephen Tweedie. Diferentemente de
todos os sistemas de arquivos de última geração, o Ext3
não segue totalmente um princípio de design novo. Ele é
baseado no Ext2. Esses dois sistemas de arquivos têm uma
relação muito próxima. Um sistema de arquivos Ext3 pode
ser facilmente criado sobre um sistema de arquivos Ext2. A
diferença mais importante entre o Ext2 e o Ext3 é que o
Ext3 suporta o registro em diário. Em resumo, o Ext3 tem
três grandes vantagens a oferecer:
11:03
EXT3
Upgrades do Ext2 fáceis e altamente confiáveis.
Como o Ext3 é baseado no código do Ext2 e compartilha seu
formato em disco, bem como seu formato de metadados, as
atualizações do Ext2 para o Ext3 são incrivelmente fáceis. Ao
contrário de transições para outros sistemas de arquivos de
registro em diário, como o ReiserFS ou XFS, que podem ser
bastante tediosas (fazer backup de todo o sistema e recriá-lo de
um rascunho), a transição para o Ext3 é uma questão de minutos.
Ela também é muito segura, pois a recriação de um sistema de
arquivos inteiro de um rascunho pode não ser perfeita.
Considerando o número de sistemas Ext2 existentes que aguardam
um upgrade para um sistema de arquivos de registro em diário,
você pode imaginar facilmente por que o Ext3 pode ter alguma
importância para vários administradores de sistema. O downgrade
do Ext3 para o Ext2 é tão fácil quanto o upgrade. Simplesmente
execute uma desmontagem completa do sistema de arquivos Ext3
e remonte-o como um sistema de arquivos Ext2.11:03
EXT3
Confiabilidade e desempenho
Alguns outros sistemas de arquivos de registro em diário
seguem a abordagem de registro em diário de “Apenas
Metadados”. Isso significa que seus metadados são sempre
mantidos em um estado consistente, mas o mesmo não pode
ser garantido automaticamente para os próprios dados do
sistema de arquivos. O Ext 3 foi criado para cuidar dos dados
e dos metadados. O grau de “cuidado” pode ser
personalizado. Habilitar o Ext3 no modo data=journal oferece
segurança máxima (integridade de dados), mas também
deixa o sistema mais lento, pois os dados e os metadados são
registrados em diário. Uma abordagem relativamente nova é
usar o modo data=ordered, que garante a integridade dos
dados e metadados, mas usa o registro em diário apenas para
metadados.11:03
EXT3
O driver do sistema de arquivos coleta todos os blocos de
dados que correspondem a uma atualização de metadados.
Esses blocos de dados são gravados em disco antes da
atualização dos metadados. Como resultado, obtém-se
consistência para dados e metadados sem sacrificar o
desempenho. Uma terceira opção é usar o data=writeback,
para que os dados sejam gravados no mesmo sistema de
arquivos depois que seus metadados forem confirmados no
diário. Essa opção é sempre considerada a melhor em
desempenho. Contudo, ela pode permitir que dados antigos
surjam novamente nos arquivos depois de uma falha e
recuperação, enquanto a integridade do sistema do arquivo é
mantida. A menos que você especifique de forma diferente, o
Ext3 será executado no modo data=ordered por padrão.11:03
EXT3
O ext4 trouxe, de acordo com seus desenvolvedores,
alguns recursos que não existiam no ext3, mantendo
alguns que a versão anterior já possuía. Na verdade são
recursos que estavam tentando implantar na versão 3 do
extFS (ext3), porém, devido a alguns problemas na
implementação, lançaram essa nova versão com as
características descritas abaixo.
11:03
EXT4
Principais vantagens
Possui journaling com aprimoramento de checksum.
Melhorias no journaling: Checagem no journaling, checksum aprimorado
permitindo ao ext4 ter mais tolerância à falhas que o ext3 e restruturação mais
rápida;
Suporte para tamanhos maiores de volumes e arquivos em relação à versão 3. O
ext4 tem uma margem de 1024 PB (Petabytes) ou 1EB (Exabyte) para partições e
16 TB por arquivo. Isto pode não ser importante para desktops ou servidores
simples, porém com certeza é útil para servidores grandes, configurados em Raid e
de alta disponibilidade.
A indexação de quantidade de diretórios foi aumentada;
Suporte a recuperação de arquivos Undelete: Suporte à recuperação de arquivos,
permitindo que arquivos seja recuperados.
Checagem rápida do sistema de arquivos: O fsck está mais rápido por que a nova
estrutura de organização de blocos permite que partes não usadas do HD sejam
puladas, o que economiza tempo numa eventual checagem.11:03
EXT4
Melhorias na pré-alocação: Às vezes um programa vai usar um espaço do HD mas
não na hora, então ele reserva o espaço que vai usar, fazendo uma pré- alocação, ou
seja, ele guarda aquele espaço pra ele e ninguém mais pode usar, como se fosse
uma reserva. Para essa ação, a maioria dos file systems enchem de zeros os inodes
que eles vão reservar.
Quando essa ação é executada milhares de vezes, como em um banco de dados,
esse tempo de escritas de zeros geram um delay de tempo desnecessário. O ext4 vai
permitir pré-alocação de arquivos sem fazer isso, o que vai garantir uma melhoria na
performance, principalmente nas rotinas de bancos de dados e em ferramentas
multimídia.
Tempo de alocação estendido: O ext4 vai conseguir manter a alocação do espaço
em disco até o último momento, o que pode trazer mais performance.
Maior número de subdiretórios: O ext3 colocava um limite de subdiretórios ou
pastas de 32000, se você achava isso um incômodo, os limites serão apenas o do
espaço fornecido pelo disco.
Alocação tardia: ext4 usa uma técnica de execução do sistema de arquivos
chamado allocate-on-flush, também conhecida como a atribuição de atraso. Isso
melhora o desempenho e reduz a fragmentação, melhorando a alocação de blocos
decisões com base no tamanho do arquivo.11:03
EXT4
Principais desvantagens
1. Alocação tardia e potencial perda de dados:
Com as mudanças de alocação 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.
Devido a isto, o ext4, na versão 2.6.30 do kernel GNU/Linux, detecta
automaticamente estes casos e reverte para o comportamento antigo. O
cenário típico em que isso pode ocorrer é um programa que substitui o
conteúdo de um arquivo sem forçar uma gravação para o disco com
sync.
11:03
EXT4
2. Criação do sistema de arquivos:
Assim como no ex3, o ext4 é lento quando se aplica um sistema de
arquivos, e se o disco tiver que marcar badblocks, demora mais ainda.
O sistema de arquivos ext4, apesar de possuir journaling, não foi
desenvolvido desde o inicio para suportá-lo e este recurso foi integrado
a partir da versão 3 do mesmo, por isso o journal não é tão eficaz, nem
no ext3 e no ext4, apesar que o último mencionado teve melhorias.
E quando o journal falhar, ele faz uso do fsck para verificar a
integridade do sistema de arquivos, e se o fsck não conseguir recuperar
a integridade do mesmo, seu sistema de arquivos fica corrompido.
Atualmente o ext4 é bem rápido, tem um ótimo desempenho, mas seu
journal pode deixar a desejar quanto à tolerância de falhas, apesar que
o mesmo teve melhorias e resiste bem. 11:03
EXT4
Logo depois que o kernel 2.6 foi lançado, a família de
sistemas de arquivos com registro em diário recebeu outro
membro: o Reiser4. O Reiser4 é fundamentalmente
diferente de seu predecessor, o ReiserFS (versão 3.6). Ele
apresenta o conceito de plug-ins para ajustar a
funcionalidade do sistema de arquivos e um conceito de
segurança mais refinado.
11:03
Reiser4
Conceito de segurança refinado
Na criação do Reiser4, seus desenvolvedores enfatizaram a
implementação de recursos relevantes de segurança.
Portanto, o Reiser4 contém um conjunto de plug-ins de
segurança dedicados. O mais importante deles apresenta o
conceito de “itens” de arquivo. Atualmente, os controles de
acesso a arquivos são definidos por arquivo. Se existe um
arquivo grande contendo informações relevantes para vários
usuários, grupos ou aplicativos, os direitos de acesso devem
ser razoavelmente imprecisos para incluir todas as partes
envolvidas. No Reiser4, é possível dividir esses arquivos em
partes menores (os “itens”).
11:03
Reiser4
Os direitos de acesso podem então ser definidos para cada
item e cada usuário separadamente, permitindo um
gerenciamento de segurança de arquivos muito mais preciso.
Um exemplo perfeito seria /etc/passwd. Atualmente,
somente os usuários root podem ler e editar o arquivo,
enquanto os não-root só obtêm acesso de leitura a esse
arquivo. Usando o conceito de item do Reiser4, você pode
dividir esse arquivo em um conjunto de itens (um item por
usuário) e permitir que os usuários ou aplicativos modifiquem
seus próprios dados, mas sem acessar os dados de outros
usuários. Esse conceito aumenta a segurança e flexibilidade.
11:03
Reiser4
Extensibilidade por meio de plug-ins
Muitas funções do sistema de arquivos e funções externas
normalmente usadas por um sistema de arquivos são
implementadas como plug-ins no Reiser4. Esses plug-ins
podem ser facilmente adicionados ao sistema básico. Você
não precisa mais compilar o kernel ou reformatar o disco
rígido para adicionar novas funcionalidades ao sistema de
arquivos.
Melhor layout do sistema de arquivos por meio de alocação
atrasada
Assim como o XFS, o Reiser4 suporta a alocação atrasada.
Consulte a Seção 13.2.6, “XFS”. A utilização da alocação
atrasada, até mesmo para metadados, pode resultar em um
melhor layout geral. 11:03
Reiser4
Com intenção original de ser um sistema de arquivos para o
sistema operacional IRIX, a SGI iniciou o desenvolvimento do
XFS no começo de 1990. A idéia por trás do XFS era criar um
sistema de arquivos de registro em diário de 64 bits de alto
desempenho para atender aos altos desafios de computação
de hoje. O XFS é muito bom na manipulação de arquivos
grandes e tem bom desempenho em hardware de ponta.
Entretanto, até mesmo o XFS tem uma desvantagem. Assim
como o ReiserFS, o XFS cuida bastante da integridade dos
metadados, mas nem tanto da integridade dos dados.
Uma rápida análise dos recursos fundamentais do XFS explica
por que ele pode ser um forte concorrente para outros
sistemas de arquivos de registro em diário em computação de
ponta.11:03
XFS
Alta escalabilidade por meio do uso de grupos de alocação
No momento de criação de um sistema de arquivos XFS, o
dispositivo de bloco subjacente ao sistema de arquivos é
dividido em oito ou mais regiões lineares do mesmo tamanho.
Elas são denominadas grupos de alocação. Cada grupo de
alocação gerencia seus próprios inodes e espaços liberados
em disco. Praticamente, os grupos de alocação podem ser
vistos como sistemas de arquivos dentro de um sistema de
arquivos. Como grupos de alocação são independentes uns
dos outros, mais de um pode ser abordado pelo kernel ao
mesmo tempo. Esse recurso é a chave da grande
escalabilidade do XFS. Naturalmente, o conceito de grupos
de alocação independente corresponde às necessidades dos
sistemas com multiprocessadores.11:03
XFS
Alto desempenho por meio de um eficiente gerenciamento de espaço
em disco
O espaço em disco e os inodes são controlados por árvores equilibradas B+
dentro dos grupos de alocação. O uso de árvores equilibradas B+ contribui
muito para o desempenho e a escalabilidade do XFS. O XFs usa a alocação
atrasada. Ele lida com a alocação dividindo o processo em duas partes.
Uma transação pendente é armazenada em RAM e o espaço necessário é
reservado. O XFS ainda não decide exatamente onde (tratando-se do
bloco do sistema de arquivos) os dados devem ser armazenados. Essa
decisão é atrasada até o último momento possível. Alguns dados
temporários de vida curta talvez nunca cheguem no disco, pois podem
ficar obsoletos devido ao tempo que o XFS leva para decidir onde gravá-
los. Portanto, o XFS aumenta o desempenho de gravação e reduz a
fragmentação do sistema de arquivos. Como a alocação atrasada resulta
em eventos de gravação menos freqüentes do que em outros sistemas de
arquivos, é provável que a perda de dados depois de uma falha durante a
gravação seja mais severa.11:03
XFS
Pré-alocação para evitar a fragmentação do sistema de
arquivos
Antes de gravar os dados no sistema de arquivos, o XFS
reserva (pré-aloca) o espaço livre necessário para um
arquivo. Portanto, a fragmentação do sistema de arquivos é
amplamente reduzida. O desempenho aumenta porque o
conteúdo dos arquivos não é distribuído em todo o sistema de
arquivos.
11:03
XFS
Os sistemas de arquivos para Linux tem como grande
vantagem a versatilidade, segurança e compatibilidade com
outros sistemas de arquivos. O problema reside no outro
lado, como a Microsoft que visa somente os seus interesses e
tenta dificultar qualquer solução que possa viabilizar uma
harmonia de sistemas. Ela não está muito interessada nesta
compatibilidade, fazendo com que seja necessário o uso de
recursos como engenharia reversa para fazer com que os
sistemas possam trabalhar juntos em paz. Isso é o que
acontece com o NTFS. Proprietário, fechado, este sistema de
arquivos devido a sua obscuridade tem se tornado uma
barreira para usuários que rodam sistemas Linux e Windows
em dual boot.
11:03
Linux e NTFS
As distribuições que vem com o kernel 2.4.x, tem suporte
para arquivos NTFS somente para leitura. Como a escrita
ainda está em estado experimental, pode se ter experiências
desagradáveis, como por exemplo, corrupção dos arquivos na
partição NTFS. Existem projetos como o Linux-NTFS, que tem
obtido bons resultados, mas provavelmente o projeto que
conseguiu fazer realmente o acesso a partições NTFS pleno e
transparente ao usuário foi o Captive. Além do Captive, o
kernel 2.6.1 já apresenta suporte para escrita em partições
NTFS. Ainda não tive relatos sobre experiências neste kernel
em relação a isto mas creio que esta barreira já esteja
praticamente quebrada.
11:03
Linux e NTFS