35
PROFESSOR: ANTONY ALISON ANTONY RIBEIRO 11:03

8 - Ext LINUX

Embed Size (px)

DESCRIPTION

8 - Ext LINUX

Citation preview

PROFESSOR: ANTONYALISON ANTONY RIBEIRO

11:03

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