Escolar Documentos
Profissional Documentos
Cultura Documentos
SISTEMAS DE ARQUIVOS
OSASCO
2015
SISTEMAS DE ARQUIVOS
OSASCO
2015
AGRADECIMENTOS
Agradeo a essa universidade e seu corpo docente, que me auxiliaram ao longo dessa jornada.
A professora Andreia C. G. Machion, pelo suporte no pouco tempo que lhe coube nas correes e
incentivos.
Aos meus pais e irmo pelo amor e incentivo, e por estarem presentes em todos os momentos de minha
vida.
E a todos que fizeram parte direta e indiretamente da minha formao o meu muito obrigado.
LISTA DE FIGURAS
Figura 1: Fongrafo ........................................................................................................................ 10
Figura 2: reas de um disco ............................................................................................................ 11
Figura 3: Cabealho de um arquivo ................................................................................................. 12
Figura 4: Diretrio aberto com o editor de texto Vim ...................................................................... 14
Figura 5: Um bloco de 4KB formado por 8 setores de 512 bytes ..................................................... 14
Figura 6: Eficincia do espao em disco X Taxa de transferncia .................................................... 15
Figura 7: Exemplo de alocao contgua: ........................................................................................ 17
Figura 8: Exemplo de alocao encadeada ...................................................................................... 18
Figura 9: Exemplo da Tabela de Alocao de Arquivos .................................................................. 18
Figura 10: Um inode com os blocos de indireo ............................................................................ 19
Figura 11: Relacionamento entre as tabelas de arquivos .................................................................. 21
Figura 12: Composio de um disco com o MINIX FS ................................................................... 23
Figura 13: Exemplo do inode do MINIX FS.................................................................................... 24
Figura 14: Exemplo de um mapa de bits.......................................................................................... 24
Figura 15: Exemplo do Cache de Blocos ......................................................................................... 25
Figura 16: Composio de um disco com o EXT4 ........................................................................... 27
Figura 17: Uma rvore de extenses................................................................................................ 28
Figura 18: Composio de um disco com o NTFS ........................................................................... 31
Figura 19: Exemplo do dd aps a execuo ..................................................................................... 37
Figura 20: Criao de um nico arquivo via dd ............................................................................... 38
Figura 21: Criao de multiplos arquivos via dd (1 MB) ................................................................. 39
Figura 22:Criao de multiplos arquivos via dd (10 MB) ................................................................ 40
Figura 23: Criao de multiplos arquivos via dd (100 MB) ............................................................. 40
Figura 24: Criao de multiplos arquivos via dd (1GB) ................................................................... 41
LISTA DE TABELAS
Tabela 1: Cronograma do trabalho .................................................................................................... 9
Tabela 2: Lista de extenses e assinaturas comuns .......................................................................... 13
Tabela 3: Setores do MBR .............................................................................................................. 16
Tabela 4: Layout bsico de uma tabela GUID ................................................................................. 16
Tabela 5: Sistemas de arquivos e seus nmeros mgicos ................................................................. 17
Tabela 6: Algumas mensagens do sistema de arquivos .................................................................... 22
Tabela 7: Contedo do cabealho das extenses .............................................................................. 28
Tabela 8: Contedo dos ns das extenses ...................................................................................... 28
Tabela 9: Contedo das folhas das extenses .................................................................................. 28
Tabela 10: Tabela de inodes reservadas........................................................................................... 29
Tabela 11: Alguns campos do superbloco do EXT4 ........................................................................ 29
Tabela 12: Valores padro do tamanho do cluster do NTFS ............................................................ 31
Tabela 13: Bloco de parmetros da BIOS ........................................................................................ 32
Tabela 14: Entradas Reservadas para o MFT ................................................................................... 33
Tabela 15: Atributos do MFT .......................................................................................................... 34
SUMRIO
1. Introduo ..................................................................................................................................... 8
1.1 Objetivo Geral ......................................................................................................................... 8
1.2 Objetivos Especficos .............................................................................................................. 8
1.3 Justificativa ............................................................................................................................. 8
1.4 Metodologia ............................................................................................................................ 9
2. Fundamentao Terica .............................................................................................................. 10
2.1 Dispositivo de Armazenamento ............................................................................................. 10
2.2 Disco Rgido ......................................................................................................................... 10
2.3 Sistemas de Arquivos ............................................................................................................ 11
2.3.1 Estrutura Bsica .............................................................................................................. 12
2.3.2 Estrutura Interna.............................................................................................................. 14
2.4 MINIX File System ............................................................................................................... 23
2.4.1 Estrutura de Dados do MINIX File System ..................................................................... 23
2.4.2 Peculiaridades Encontradas ............................................................................................. 25
2.5 Fourth Extended File System (EXT4) .................................................................................... 26
2.5.1 Estrutura de Dados do EXT4 ........................................................................................... 26
2.5.2 Peculiaridades Encontradas ............................................................................................. 30
2.6 New Technology File System (NTFS) ................................................................................... 31
2.6.1 Estrutura de Dados do NTFS ........................................................................................... 31
2.6.2 Peculiaridades Encontradas ............................................................................................. 34
3. Ferramentas De Testes ................................................................................................................ 36
3.1 MINIX 3 ............................................................................................................................... 36
3.2 Ubuntu Server ....................................................................................................................... 36
3.3 Microsoft Windows 10 Pro .................................................................................................... 36
3.4 Dataset Definition dd .......................................................................................................... 36
3.5 Vmware Workstation............................................................................................................. 37
4. Realizaes de Testes.................................................................................................................. 38
4.1 Teste de Carga ....................................................................................................................... 38
4.1.1 Criao de um nico Arquivo ......................................................................................... 38
4.1.2 Criao de Mltiplos Arquivos (1 MB) ........................................................................... 38
4.1.3 Criao de Mltiplos Arquivos (10 MB) ......................................................................... 39
4.1.4 Criao de Mltiplos Arquivos (100 MB)........................................................................ 40
4.1.5 Criao de Mltiplos Arquivos (1 GB) ............................................................................ 41
4.1.6 Concluses ...................................................................................................................... 41
4.2 Uso do Sistema de Arquivos .................................................................................................. 41
4.2.1 MINIX Fs V3 .................................................................................................................. 42
4.2.2 Fourth Extended File System (EXTt4)............................................................................. 42
4.2.3 New Technology File System (NTFS) ............................................................................. 42
5. Consideraes Finais................................................................................................................... 44
1. INTRODUO
A cada dia, quantidades enormes de informao so geradas, e cada vez mais tem-se a
necessidade de armazen-las e restaur-las com velocidade e facilidade. Para isso so utilizados
algoritmos e tcnicas eficientes que permitam armazenar e recuperar informaes, a que surge a
necessidade dos Sistemas de Arquivos.
Um sistema de arquivos a estrutura usada pelo computador para organizar dados em um
disco rgido. (MICROSOFT, 2015)
O tempo foi passando e o volume de dados gerados e a capacidade dos dispositivos de
armazenamento foi aumentando, forando os arquitetos de sistemas de arquivos a criarem novas
maneiras de armazenar e recuperar dados. Atualmente existem sistemas de arquivos que podem
trabalhar melhor em determinadas situaes que outros:
Este trabalho possui como objetivo apresentar trs sistemas de arquivos e suas arquiteturas,
executar testes para anlise de comportamento, e ento apresentar as concluses em relao ao que foi
encontrado nesses experimentos.
1.1 OBJETIVO GERAL
Realizar um estudo sobre como os dados so gerenciados por trs sistemas de arquivos
populares: MINIX V3 FS, Fourth Extended File System (EXT4) e o New Technology File System
(NTFS), para compreenso do seu funcionamento.
1.2 OBJETIVOS ESPECFICOS
A fim de cumprir o objetivo geral deste estudo, tem-se os seguintes objetivos especficos:
atualmente, que tambm de cdigo aberto e desenvolvido por uma enorme comunidade, sendo
encontrado como default de diversas distribuies UNIX-like (CALLEJA, 2008). O NTFS o mais
recente sistema de arquivos da Microsoft, de cdigo fechado e utilizado por diversos computadores
com sistemas operacionais baseados na arquitetura Windows NT, desde aqueles focados para desktop
at aqueles focados em servidores (JUNIOR, 2015) .Por essas caractersticas, os trs se apresentam
como ferramentas ideais para o estudo sobre sistema de arquivos.
1.4 METODOLOGIA
O desenvolvimento deste trabalho deve seguir os passos descritos a seguir de acordo com
o cronograma mostrado na Tabela 1.
Embasamento Terico
Execuo de Testes
Concluses
Setembro
Outubro
Novembro
10
2. FUNDAMENTAO TERICA
Neste captulo ser tratado sobre dispositivos de armazenamento, em especfico o disco
rgido, o que so sistemas de arquivos, detalhando suas arquiteturas tcnicas e lgicas. Tambm so
descritas as arquiteturas do MINIX FS (TANENBAUM & WOODHULL, 2008), NTFS (TECHNET,
2003), e o EXT4 (CALLEJA, 2008).
Figura 1: Fongrafo
11
Um sistema de arquivos nada mais do que uma estrutura usada pelo computador para
organizar dados em uma unidade de armazenamento. Para entender melhor, vamos utilizar como
exemplo uma biblioteca, onde os livros seriam os arquivos salvos dentro de um disco rgido. Todos os
livros, antes de serem colocados na estante so catalogados numa base de dados, que armazena
informaes como nomes dos livros, localizao deles nas estantes, data de compra, histrico de
pessoas que acessaram o livro, entre outros.
Um sistema de arquivos no muito diferente: todos os arquivos criados numa mquina
possuem suas informaes salvas dentro de uma tabela (Tabela de Alocao de Dados ou uma Tabela
de Inodes dependendo da arquitetura) que sero utilizadas posteriormente para recuperao do arquivo.
Conforme dito por Tanenbaum (TANENBAUM & WOODHULL, 2008), o
armazenamento de informaes deve respeitar as seguintes regras:
Advanced Format: Termo cunhado pela IDEMA que utilizado em todos os discos rgidos que foram formatados
utilizado setores maiores que 512 bytes, sendo o mais comum o 4K (4096 bytes ou 4kb) (IDEMA, 2011);
12
Para auxiliar nessa abstrao de dados, o sistema de arquivos permite que um nome e uma
extenso sejam colocados no arquivo, assim o usurio poder saber do que se trata o contedo do
arquivo e tambm poder ser lembrado que programa deve ser utilizado para ter acesso ao contedo.
A quantidade de caracteres disponveis para o nome varia de sistema de arquivos para outro, tambm
quais caracteres so vlidos como nome de arquivo. J para a extenso so disponibilizados somente
3 caracteres com exceo do ponto (.).
FORMATO DE ARQUIVOS
De forma genrica, o sistema de arquivos possui somente dois formatos para arquivos:
End of file: A constante EOF utilizada como valor retornado por diversas funes para indicar que o final do arquivo
chegou, ou tambm falhas sobre certas condies. O caractere 1A (Ctrl - Z) era utilizado no final dos arquivos para
sistemas operacionais antigos, com o CP/M ou o DOS. Atualmente o caractere est em desuso, j que o sistema de
arquivos controla a quantidade de blocos/clusters (BUTTERWORTH, 2012)
13
Db
Extenso
Png
Xlsx
Assinatura
53 51 4C 69 74 65 20 66 6F
72 6D 61 74 20 33 00
89 50 4E 47 0D 0A 1A 0A
50 4B 03 04 14 00 06 00
Odt
Tar
50 4B 03 04
75 73 74 61 72
Significado
Para o usurio e o sistema de arquivos isso no ajuda muito, pois fica difcil identificar
qual foi o processo que o gerou ou do que se trata seu contedo. Para solucionar esse problema foram
criados dois modelos: o primeiro onde a identificao do arquivo fica por conta de o sistema
operacional reconhecer sua extenso, e a outra o reconhecimento feito pelo sistema de arquivos
utilizando uma assinatura no cabealho do arquivo. A Tabela 2 mostra alguns exemplos para
extenses de arquivos e assinaturas de arquivos, enquanto a Figura 3 demonstra como um arquivo
salvo em disco. Note na figura o campo marcado em verde: essa a assinatura do arquivo, que de
acordo com a tabela abaixo se trata de um arquivo de texto do Libre Office.
A diferena entre um modelo e outro que, utilizando a assinatura, voc garante que est
abrindo o arquivo com a ferramenta correta. Neste caso a extenso se torna um lembrete para o usurio
do que se trata aquele arquivo.
NOME DE ARQUIVOS
A atribuio de nomes a um arquivo, conforme j dito, varia de um sistema de arquivos
para outro. Os valores que devem ser levados em conta na escolha do nome sempre so:
Informaes como essas precisam ser levadas em conta quando voc precisa transferir os
dados de um sistema de arquivos para outro. Em alguns casos, o dado ser impedido de ser gravado
por possuir alguma caracterstica que o destino no sabe tratar, ou o destino pode tentar tratar de tal
peculiaridade apresentando algumas possibilidades de correo para o usurio.
DIRETRIOS
Diretrios, ficheiros, ou pastas, so trs nomes diferentes para a mesma funo: criar uma
camada de abstrao que auxilie um usurio ou processo a organizar seus dados de uma forma que
14
possam ser facilmente localizados. Isso necessrio pois a maneira do sistema de arquivos localizar
dados dentro de um disco por meio de seu endereo armazenado dentro de uma tabela.
A parte a questo de organizao de arquivos, diretrios tambm so uma forma de diviso
das tabelas de localizao de dados para alguns sistemas de arquivos. Em vez de percorrer uma tabela
gigantesca, fica mais rpido varrer tabelas menores, sendo que essas tabelas menores possuiriam como
identificador um nome (no caso o nome do diretrio) e duas entradas obrigatrias: a do diretrio acima
e sua prpria entrada.
Figura 4: Diretrio aberto com o editor de texto Vim
Em alguns casos o diretrio somente outro arquivo, um de texto no caso, sendo possvel
ler seu contedo com qualquer editor de texto (e.g. Vim, Vi ou GNU nano), como pode ser visto na
Figura 4. O roxo indica que se trata de um arquivo oculto 3, o azul so outros diretrios, e os brancos
so arquivos de texto ou outro contedo qualquer que seja visvel ao usurio.
2.3.2 ESTRUTURA INTERNA
Aqui veremos a estrutura tcnica de um sistema de arquivos, como o esquema de alocao
de dados, bloco de boot, e superbloco.
BLOCO OU CLUSTER
512 bytes
512 bytes
512 bytes
512 bytes
512 bytes
512 bytes
15
1000
80
800
60
600
40
400
20
200
0
1200
128 B
256 B
512 B
1 KB
2 KB
4 KB
Tamanho do bloco (bytes)
8 KB
16 KB
BLOCO DE BOOT
Bloco de boot a primeira rea do disco, que possui tamanho mximo de 1024 bytes (2
setores), e que responsvel por inicializar o contedo do disco durante o arranque do computador,
por exemplo o Sistema Operacional. Em seu contedo pode ser encontrado um nmero mgico
informando se a partio inicializvel ou no, e o cdigo que ser responsvel pela inicializao do
sistema (um bootloader).
O acionamento do bloco de boot pode ser feito de duas maneiras: atravs do Registro
Mestre de Inicializao (MBR) ou atravs da Tabela de Partio GUID (GPT).
Seek time: indica o tempo que a cabea de leitura demora para ir de uma trilha outra do disco, ou seja, indica a
performance da agulha usada no HD (MORIMOTO, 2007);
4
16
Descrio
Cdigo de Bootstrap
Entrada da Partio 1
Entrada da Partio 2
Entrada da Partio 3
Entrada da Partio 4
Assinatura de boot do disco
17
parties (dependendo do tamanho da GPT), contadores de setores de 64 bits (maior partio de 9,4
ZB), e redundncia (a GPT pode ser encontrada no incio e no final do disco).
A Tabela 4 ilustra um disco que utiliza o GPT. Mesmo no sendo mais necessrio, o MBR
ainda est presente num disco por motivos de compatibilidade, sendo o incio do GPT fica no bloco
adjacente, e ao final do disco uma cpia de seus dados so mantidas em caso de ocorrer alguma falha
o incio do disco.
SUPERBLOCO OU BLOCOS DE PARMETROS DA BIOS
Superbloco, ou bloco de parmetros da BIOS (BPB) como chamado na documentao
da Microsoft, a primeira rea do disco relacionada ao sistema de arquivos. Este bloco serve para
armazenar algumas informaes relacionadas ao sistema de arquivos da partio a qual ele pertence,
como o nmero mgico, que contm um valor (em hexa) que informa ao sistema operacional qual o
sistema de arquivos que deve ser utilizado para a montagem da partio. A Tabela 5 mostra alguns
desses nmeros mgicos.
Alguns sistemas de arquivos mais recentes, como o MINIX File System no possuem todos
os dados do superbloco gravados em disco, j que vrios deles so volteis (exemplo a primeira inode
livre, tamanho em disco, flag de somente-leitura, e verso do sistema de arquivos). Isso feito como
forma de proteo contra m escrita, pois um superbloco danificado acaba inutilizando toda a partio.
Tabela 5: Sistemas de arquivos e seus nmeros mgicos
0xEF53
0x5346544E
0x4D5A
0x3153464A
0x4D44
0x9123683E
Nmero Mgico
Sistema de arquivos
Extended File System (EXT)
New Technology File System (NTFS)
MINIX File System V3
Journaling File System (JFS)
Sistema de Arquivos MSDOS
Better File System (Btrfs)
0x56
PART 2
0x61
PART 2
0x62
PART 3
(EOF)
A alocao contgua faz com que um arquivo salvo em disco tenha seus blocos
armazenados de forma que todos estejam prximos. Isso diminui a quantidade de chamadas de seek
que o sistema teria que fazer para ter acesso a todo o arquivo. Em unidades de disco de gravao nica
(como o CD ou o DVD) este tipo de gravao efetivo, pois, voc garante que os arquivos jamais se
fragmentaro, porm em dispositivos de armazenamento onde voc tem certeza que os dados sero
volteis em um certo ponto, mais cedo ou mais tarde os dados se fragmentaro ou se perdero.
18
0x55
Begin
NEXT:
0x56
0x56
NEXT:
0x61
0x57
Begin
NEXT:
0x62
0x58
EOF
0x59
NEXT:
0x60
0x60
EOF
0x61
NEXT:
0x58
0x62
NEXT:
0x59
Na alocao encadeada continua possui a mesma ideia da alocao contgua: dados sero
armazenados de forma contgua, porm todos possuiro informao da localizao do prximo bloco
adjacente. A diferena que, caso a partio fragmente, os dados ainda sim sero acessveis, por outro
lado existe uma perda enorme de desempenho pois quando um processo l um bloco ele no precisa
do cabealho, obrigando o sistema de arquivos a concatenar os blocos.
Figura 9: Exemplo da Tabela de Alocao de Arquivos
Uma soluo apresentada a que encontramos hoje nos sistemas de arquivos FAT: uma
tabela de alocao de dados que possui a localizao de todos os arquivos em um nico lugar. Dessa
maneira o sistema de arquivos no precisa mais concatenar os dados antes de repassar para o processo.
Porm a FAT obriga que a tabela inteira esteja na memria o tempo todo, o que pode ser um problema
dependendo do tamanho do disco, a quantidade de arquivos presentes nele e o quanto de memria voc
tem disponvel para uso.
Para solucionar o fato de manter a tabela todo o tempo na memria foram desenvolvidos
os inodes, hoje utilizados por quase todos os sistemas de arquivos populares do Linux. Neste modelo,
existe uma tabela na memria que armazena somente as entradas dos arquivos em uso no momento.
Caso o arquivo seja fechado, a entrada expurgada da memria, limitando a tabela somente ao limite
mximo de arquivos que podem ser abertos simultaneamente pelo sistema operacional.
Com os inodes, alm dos problemas de desempenhos causados ao seek time, um novo
problema surge: a impossibilidade de se criar arquivos muito grandes. Um inode disponibiliza at sete
blocos, numerados de 0 a 6, para armazenamento de dados, porm caso precise de mais espao so
disponibilizados mais trs blocos para uso de blocos de indireo.
Blocos de indireo so formados por um inode separado que possui X blocos, sendo X
quem define o sistema de arquivos. O primeiro bloco de indireo possui seu endereo no bloco 7, e
caso seja preciso mais blocos disponveis para este arquivo so utilizados os blocos de indireo dupla,
que so X blocos que gerenciam X blocos cada. E se mesmo assim for preciso mais blocos, alguns
19
sistemas de arquivos disponibilizam os blocos de indireo tripla, onde so X blocos que gerenciam X
blocos que gerenciam X blocos cada.
A Figura 10 demonstra melhor como funcionam esses blocos de indireo. Porm, aps o
uso de blocos de indireo tripla, o inode considerado cheio, e um arquivo que utiliza mais do que
um inode consegue gerenciar considerado como muito grande e ento descartado. Uma soluo seria
aumentar o nmero de blocos de indireo, porm no s no vantajoso, como tambm esbarra no
limite de ponteiros do sistema operacional.
Um sistema operacional 32 bits consegue gerenciar 2-1 ponteiros, isso caso sejam
5
unsigned . Por conta desta limitao, durante muito tempo foi impossvel gerar arquivos maiores que
4GB. A soluo veio muito depois com o Large File Support (LFS), um conjunto de alteraes feitas
no kernel do Linux e na linguagem de programao C que permitem emular ponteiros de 64 bits. Com
isso o problema foi postergado, j que com ponteiros 64 bits o maior arquivo que pode ser criado de
16 GB.
Figura 10: Um inode com os blocos de indireo
20
no sejam realmente utilizados aps o fechamento do arquivo, ento estes 8KiB sero devolvidos como
disponveis para a prxima requisio.
A Pr-Alocao (fallocate), presente no EXT3 e EXT4, somente inicia o processo de
gravao aps todos os blocos estarem reservados em disco. Quando se cria um novo arquivo, o
sistema de arquivos ter que verificar se existe blocos o suficiente para a solicitao. Se existir ento
eles so reservados e se d o incio da gravao. A pr-alocao no interfere com o tempo de escrita,
j que no posterga a gravao.
J a Alocao com Atraso (delalloc), ou Alocao Durante o Flush, o mtodo menos
utilizado deles por ser o mais recente. Atualmente encontrado no XFS, Btrfs, e no EXT4, este mtodo
atrasa a gravao dos dados ao mximo possvel, ao contrrio do que encontrado tradicionalmente
que gravar os dados o mais cedo possvel (CALLEJA, 2011). Quando voc atrasa a alocao dos
blocos voc acaba tirando a vantagem de conseguir armazenar da melhor forma possvel arquivos cujo
os dados esto em constate crescimento, alm de evitar que arquivos temporrios sejam escritos em
disco. O tempo que se leva antes de iniciar a gravao definido por trs fatores:
21
interessante lembrar que um processo pode ficar horas parado enquanto aguarda uma
resposta do sistema de arquivos, j que esta foi a forma que os projetistas encontraram para deixar um
processo em modo de espera. Mandar uma requisio para o sistema de arquivos no significa que ela
ser atendida na hora, e sim que ser enfileirada e posteriormente tratada quando for mais conveniente.
No responder a requisio tambm no significa que o sistema de arquivos ficar parado
o tempo todo at conseguir a resposta do programa: o sistema anota quem foi o solicitante, qual foi a
requisio e a enfileira, para ento se libera para aguardar a prxima chamada.
22
Mensagens
chdir
chmod
chown
creat
seek
rename
sync
umount
mount
mknod
revive
read
write
rmdir
setuid
setgid
close
Descrio
Altera o diretrio de trabalho
Altera as permisses do arquivo/diretrio
Altera o usurio/grupo dono do arquivo
Cria um novo arquivo em disco
Busca pelo prximo bloco do arquivo no disco
Renomeia o arquivo/diretrio
Grava todos os blocos alterados que esto em
cache
Desmonta uma partio
Monta uma partio
Cria um arquivo especial
Revive um processo
L o contedo de um arquivo
Escreve um novo bloco ao final do arquivo
Exclui um diretrio
Seta um novo valor para o usurio dono do
arquivo
Seta um novo valor para o grupo dono do
arquivo
Fecha um arquivo e exclui a inode dele da
memria
Valor de Resposta
Status
Status
Status
Descritor do Arquivo
Nova Posio
Status
Sempre OK
Status
Status
Status
(Nenhuma resposta)
Nmero de bytes lidos
Nmero de bytes escritos
Status
Status
Status
Status
A Tabela 5 mostra algumas mensagens que so importantes, porm todas esto sujeitas a
disponibilidade do sistema de arquivos.
REGISTRO DE MUDANA (JOURNALING)
De acordo com Jones (2008), sistemas de arquivos com registro de mudanas (Journaling)
so sistemas de arquivos resistentes a falhas que usam um dirio que registra as alteraes antes que
elas sejam guardadas no sistema de arquivos para evitar que os metadados sejam corrompidos. Esses
registros so armazenados numa rea reservada pelo sistema de arquivos de at 15% do disco, e l
todas as alteraes so salvas na forma de um dirio. Caso ocorra uma falha de escrita, na prxima
montagem a ferramenta de anlise de disco do sistema operacional (fsck ou chkdsk) consultar este
jornal e desfazer todas as ltimas operaes at que o disco esteja consistente de novo.
O registro de mudanas pode operar de trs formas diferente:
23
tem uma enorme perda de desempenho, j que todo arquivo ser gravado duplamente
em disco;
2.4 MINIX FILE SYSTEM
O MINIX File System somente um grande programa em C que executa no espao do
usurio (TANENBAUM & WOODHULL, 2008), recebendo todas as requisies dos processos,
tratando e enviando para o kernel, e depois repassando a resposta novamente para o processo
solicitante. Iniciou-se como um software desenvolvido para estudos, igual a o resto do MINIX, porm
seu cdigo cresceu tanto que est mais prximo de uma ferramenta para ser utilizada no dia a dia. Para
todos os fins trataremos aqui de seu ltimo release at o momento, o V3.
Algumas das caractersticas desse sistema de arquivos so:
Bloco de Boot
Superbloco
Mapa de Inodes
Mapa de Blocos
Dados
Portable Operating System Interface (POSIX): Conjunto de normas da IEEE e da Open Group que definem um sistema
operacional UNIX. (IEEE , 2008)
6
24
Modo
Nmero de links
Uid
Gid
Tamanho do arquivo
Data de acesso
Data de modificao
Data da modificao de status
Zona 0
Zona 1
Zona 2
Zona 3
Zona 4
Zona 5
Zona 6
Zona de Indireo
Zona de Indireo Dupla
Sem uso
Uma tabela dessas possui o tamanho mximo de 64 bytes, e ela criada para cada novo
arquivo em disco. Conforme Tanenbaum (2008), essa regio foi colocada por compatibilidade as
normas da POSIX do que para algum uso do sistema operacional. Em seu cdigo fonte, o MINIX
gerencia os blocos do disco utilizando ponteiros inteiros de 32 bits signed 7, o que limita a 2 GB o
maior arquivo em disco. Isso seria o equivalente a ocupar somente at a zona de indireo dupla. Num
cenrio desses no h necessidade de mais zonas de indireo.
0x55
1
0x56
1
0x57
1
0x58
0
0x59
0
0x60
1
0x61
0
0x62
0
0x63
1
0x64
0
MAPA DE BITS
O MINIX gerencia os blocos e inodes livres utilizando duas tabelas separadas chamadas
de mapa de bits (bitmap), que pode ser visto na Figura 14. Cada uma possui uma tabela contendo a
localizao de todos os inodes ou blocos, sejam eles livres ou em uso, e utiliza isso como uma forma
de controle. Incluso e excluso de arquivos ocorre por meio da atualizao dessa tabela. Informando
que um determinado bloco desta tabela est em uso ou no mais que o suficiente para que o sistema
de arquivos saiba quais blocos disponibilizar para escrita.
Outro ponto da arquitetura que o inode 0 no existe: ao contrrio dos vetores que
comeam a partir do 0, os inodes possuem como primeiro ndice o inode 1. O 0 utilizado para
informar ao sistema de arquivos que ocorreu um erro durante a sua chamada (pesquisar por uma inode
7
25
X ou se existem inodes livres). Isso significa que, pelo menos, um inode no possui uso para
armazenamento no disco.
Figura 15: Exemplo do Cache de Blocos
0x55
0x56
0x57
0x58
0x59
0x60
0x61
0x62
Count: 1 Count: 2 Count: 3 Count: 3 Count: 4 Count: 6 Count: 7 Count: 7
CACHE DE BLOCOS
O cache formado por duas listas duplamente ligadas organizadas do bloco mais acessado
para o menos acessado, como pode ser visto na Figura 15. Quanto mais processos estiverem
requisitando um determinado bloco, mais prximo do final da lista ele estar. O controle de quantos
processos esto requisitando determinado bloco feito por meio de um contador. Quando este contador
chega a zero significa que no existe mais nenhum processo requisitando ele, ento o bloco pode ser
seguramente descartado do cache.
Para controlar quais blocos esto no cache utilizada uma segunda tabela a qual contm
um hash de n bits de ordem inferior do bloco cacheado. Antes de executar uma operao de seek, o
sistema de arquivos confere primeiro se o bloco j no se encontra cacheado, e somente caso no esteja
que executar uma operao de seek. Para agilizar o processo, o sistema de arquivos tambm
cachear o bloco seguinte, mesmo que no seja necessrio.
SINCRONIZANDO BLOCOS
O MINIX no grava os blocos de imediato: ao invs disso ele a salva dentro do cache para
posteriormente enviar a mensagem sync para gravar todos no disco. A chamada sync no precisa
necessariamente ser chamada de tempos em tempos para que o bloco seja salvo.
Se nenhum processo estiver utilizando um determinado bloco, antes de expurg-lo do
cache, enviada a mensagem de sync e o bloco escrito em disco. Outro momento que isso pode
ocorrer quando um processo utiliza um bloco no cache que possui contedo diferente do disco.
2.4.2 PECULIARIDADES ENCONTRADAS
A seguir so descritos alguns problemas relatados pelos usurios ou at mesmos encontrados nas
especificaes do sistema.
DESCONTINUIDADE
Conforme Tanenbaum (2010), existe um trabalho em conjunto para desenvolver um
sistema de arquivos que possua tolerncia a falhas. Como o seu cdigo fonte tambm no atualizado
no Github8 desde Dezembro de 2014 possvel perceber que o sistema de arquivos no possuir
nenhuma nova release.
Github: site de compartilhamento de projetos Open Soure privados e pblicos que permite versionamento e
colaborao (GITHUB, 2015);
8
26
Tamanho mximo de disco: o EXT4 possui como tamanho mximo 1EiB de disco e
consegue gravar arquivos de at 16 TiB;
Gravao atrasada: para evitar a fragmentao, o EXT4 vem com a opo do
delalloc ativada por default;
Modo No-Journaling: como default o EXT4 possui ativo o sistema de Journaling,
porm possvel desativa-lo caso no exista interesse em utiliza-lo. Em sua verso
anterior (EXT3) o Journaling era obrigatrio o uso;
Suporte a Extenses: Os inodes foram alterados para abandonar o uso dos blocos de
indireo em favor das rvores de extenses, melhorando o gerenciamento dos dados
em disco;
Checksum de Metadados: Para proteger os metadados contra eventuais falhas o
EXT4 passou a armazenar uma soma de verificao em todos os seus metadados;
Modo 48bits: No momento o EXT4 no possui e no precisa de suporte a 64bits,
porm 32bits j no atendem mais as necessidades devido a limitao de criao de
arquivos (maior arquivo 32bits 4GB). Por isso, caso o sistema de arquivos tenha o
modo 64bits habilitados, sero utilizados um ponteiro 16 bits e outro 32 bits;
2.5.1 ESTRUTURA DE DADOS DO EXT4
Diferente do MINIX FS, o EXT4 possui uma estrutura de dados um pouco mais complexa
que pode ser visto na Figura 15.
Virtual File System Switch: (VFS): Uma camada de software do Kernel que trata todas as requisies de sistemas
relacionadas a Sistemas de Arquivos Unix (BOVETI & CESATI, 2002).
9
27
Superbloco
Superbloco
Tabela de
inodes
Tabela de
inodes
Uma extenso pode armazenar o endereo de at 32768 blocos, porm nem todo esse
espao pode ser usado quando a extenso alocada para um arquivo. possvel que, por causa do
disco estar extremamente fragmentado ou o arquivo ser extremamente grande, mais extenses
precisem ser disponibilizadas. Por padro um inode do EXT4 possui 5 entradas para extenses, cada
uma de 12 bits cada (60 bits), sendo 1 como cabealho, e as outras 4 para armazenar. Caso o arquivo
venha a precisar de mais extenses ento passamos a utilizar as rvores de extenses para armazenar
estes arquivos.
rvore de Extenses so rvore b+10que armazenam extenses em suas folhas. Essa
rvore possui a profundidade mxima de 5, sendo os dados disponibilizados de acordo com a Figura
16 e as Tabelas 7, 8 e 9.
GRUPO DE BLOCOS
O EXT utiliza uma estrutura chamada de Grupo de Blocos, que se trata de um aglomerado
de 32768 blocos que agem como regies independentes, possuindo seus prprios mapas de inodes e
blocos, e uma cpia do superbloco. A ideia parecida com os cilindros: permitir que as partes de um
arquivo estejam armazenadas no mesmo local, de forma a agilizar a leitura e diminuir a fragmentao.
A partir do EXT4 esta estrutura recebeu uma nova funo, chamada de Grupo de Blocos
Flexveis, que possui a mesma ideia que o grupo de blocos normais, porm os mapas de inodes/blocos
e o superbloco estaro localizados no incio de cada grupo de bloco que seja um mltiplo de 3.
rvore B+: Um tipo de rvore B aonde os objetos ficam na folha, e a raiz serve somente para indicar a profundidade
at o momento (HARRIS, 2010);
10
28
Offset
0x0
0x2
0x4
0x6
0x8
Offset
0x0
0x4
0x8
0xA
Offset
0x0
0x4
0x6
0x8
Nome
eh_magic
eh_entries
eh_max
eh_depth
eh_generator
Nome
ei_block
ei_leaf_lo
ei_leaf_hi
ei_unused
Nome
ee_block
ee_len
ee_start_hi
ee_start_lo
Descrio
Nmero Mgico
Nmero de extenses em uso
Nmero mximo de extenses disponveis para esse inode
Profundidade dessa extenso. Valor mximo de 5
Gerao dessa rvore. Sem uso para o EXT4 no momento
Descrio
Informa o range de blocos indexados por este n
Os ltimos 32 bits que compe uma extenso
Os primeiros 16 bits que compe uma extenses
Reservado para uma futura atualizao
Descrio
O endereo do primeiro bloco armazenado nesta extenso
Nmero de blocos atendidos por essa extenso.
Os primeiros 16 bits que essa extenso aponta
Os ltimos 32 bits que essa extenso aponta
INODES
Alm da mudana dos blocos indiretos para extenses, os inodes do EXT4 tambm
passaram a ganhar alguns campos novos, sendo um deles o to aguardado ctime, ou data de criao.
O primeiro inode valido inicia a partir do 12, sendo os anteriores utilizados para gerenciamento. Eles
29
esto disponibilizados conforme apresentado na Tabela 10, ressaltando que por mais que seja dito que
a inode 11 seja o primeiro inode disponvel em disco, ainda sim j possui uma entrada por padro.
Inode
0
1
2
3
4
5
6
7
8
9
10
11
Propsito
Utilizado como mensagem de erro de Sem inode disponvel
Lista de blocos defeituosos
Diretrio root
Quota de usurio
Quota de grupo
Bootloader
Diretrio protegido contra excluso
Reservado para uso futuro
Jornal
Reservado para uso futuro
Reservado para uso futuro
Primeiro inode livre. Utilizado pela pasta lost + founds
SUPERBLOCO
Diferente de outros sistemas de arquivos, como o MINIX FS, o EXT4 permite a edio do
superbloco de forma a armazenar o maior nmero de informaes possveis dentro do espao de 1024
bytes. Isso feito de forma a evitar que toda vez os dados sejam recalculados, por outro lado existe
uma chance do superbloco ser corrompido. Como forma de segurana, o EXT4 possui uma cpia do
superbloco no incio de cada grupo de blocos presentes na partio. Caso a opo sparse_super esteja
ativa, ento o superbloco ser salvo somente em grupos que sejam multiplos de 3 (Grupo de Blocos
Flexveis).
Offset
0x0
0x4
0x20
0x28
0x2C
0x30
0x34
0x36
0x38
Nome
s_inodes_count
s_blocks_count_lo
s_blocks_per_group
s_inodes_per_group
s_mtime
s_wtime
s_mnt_count
s_max_mnt_count
s_magic
Descrio
Contador do total de inode
Contador do total de blocos
Blocos por grupo
Inodes por grupo
Tempo de montagem, em segundos desde o EPOCH
Tempo de escrita, em segundos desde o EPOCH
Quantidade de montagens antes de rodar o fsck
Quantidade mxima de montagens antes de rodar o fsck
Nmero mgico
30
INLINE DATA
O EXT4 possui a capacidade de armazenar os dados dentro do mesmo bloco utilizado pelo
inode, contanto que o arquivo caiba dentro dele. Num inode de 256 bytes, o sistema de arquivos
consegue disponibilizar at 156 bytes para armazenamento de dados. Graas a esta capacidade, a
leitura se torna mais fcil, pois ao localizar o inode voc tem acesso automaticamente ao arquivo sem
a necessidade de executar posteriormente uma busca por seus blocos.
Existe uma alterao pendente no cdigo que permitir que seja possvel armazenar at
160 bytes num inode, j que atualmente o sistema de arquivos gerencia de maneira incorreta o espao
utilizado por eles.
POLTICA DE ALOCAO DE BLOCOS E INODES
A alocao dos blocos pelo EXT4 utiliza dos mtodos mballoc, delalloc, fallocate, block
group, e mais duas polticas de alocao. A primeira poltica que todos os blocos de um mesmo
arquivo sero salvos no mesmo grupo de blocos, se possvel. Dessa forma diminui o seek time em
disco j que toda a operao ocorrer na mesma regio do disco.
A segunda poltica implementada que todos os inodes e arquivos sero salvos no mesmo
grupo que seus diretrios. Esta poltica vlida para todos os grupos com exceo do grupo 0, que
responsvel pelo contedo do diretrio raiz. Caso uma pasta ou arquivo seja criada na raiz do sistema
de arquivos, o contedo ser salvo no grupo que estiver com menos uso.
2.5.2 PECULIARIDADES ENCONTRADAS
A seguir so descritos alguns problemas relatados pelos usurios ou at mesmos
encontrados nas especificaes do sistema.
PERDA DE DADOS
Muito reclamado pela comunidade, e at levantado em algumas discusses pelo Linus
Torvalds (2009), devido as novas polticas de gerenciamento de blocos do EXT4, a gravao de dados
pode levar algo em torno de 30 a 60 segundos. Um valor intolervel para muitos, visto que em alguns
casos 60 segundos pode ser uma perda significante de dados. Como soluo de contorno foi liberado
a opo de montagem nodelalloc, que permite desabilitar a alocao com atraso.
DOCUMENTAO OFICIAL PRECRIA
O EXT4 possui uma wiki11 que possui o material oficial sobre sua estrutura e design.
Porm boa parte do contedo encontrada de forma incompleta por falta de conhecimento de quem
estava escrevendo, e contedo desatualizado, j que algumas pginas no citam as funes
acrescentadas no cdigo esse ano.
SISTEMA DE ARQUIVOS 48bits
O EXT4 foi desenvolvido utilizando da unio de dois ponteiros para que seja possvel
gerenciar blocos acima de 32bits, porm mesmo com todo esse poder de armazenamento a comunidade
11
31
de desenvolvedores informa que esse valor terico e no d para saber qual seria o comportamento
do sistema de arquivos com arquivos realmente largos.
2.6 NEW TECHNOLOGY FILE SYSTEM (NTFS)
O NTFS um sistema de arquivos desenvolvido pela Microsoft (TECHNET, 2003) como
substituto do FAT16. Surgiu primeiramente como parte da famlia de sistemas operacionais Windows
NT, e desde ento o sistema de arquivos principal de todas as verses do Windows. um programa
de cdigo fechado que funciona na camada de kernel, recebendo as requisies dos processos,
executando, e ento repassando a mensagem de volta ao solicitante.
Entre as melhorias do NTFS, as que podemos destacar so:
Diferente do MINIX FS ou do EXT4, o NTFS divide seu disco em 4 reas: o Boot Sector,
a Tabela Mestre de Arquivos, os dados do disco, e uma cpia da Tabela Mestre de Arquivos.
Figura 18: Composio de um disco com o NTFS
Setor de
boot
CLUSTER
Cluster a menor unidade dentro da partio do NTFS, e funciona da mesma maneira que
um bloco. O NTFS possui capacidade de gerenciar em uma nica partio 2 cluster menos 1, e o
valor default de alocao de clusters varia de acordo com o tamanho da partio, conforme pode ser
visto na Tabela 12.
Tabela 12: Valores padro do tamanho do cluster do NTFS
Tamanho do Volume
Tamanho do Cluster do NTFS
7 MB 512 MB
512 bytes
513 MB 1,024 MB
1 KB
1,025 MB 2 GB
2 KB
2 GB 2 TB
4 KB
32
BOOT SECTOR
O NTFS armazena todos os dados relacionados a partio no setor de boot, ao contrrio
dos demais sistemas de arquivos. Essa partio possui o tamanho de at 16 setores (8KB) e consiste
dos seguintes elementos:
33
Vale ressaltar que essa configurao feita de forma automtica pelo NTFS, sendo que ele
se auto reconfigurar assim que notar que a tabela atingiu seu tamanho mximo. Nesse caso possvel
que a tabela acabe se fragmentando, j que as demais partes sero alocadas em regies diferentes do
disco de acordo com a disponibilidade. Tambm possvel configurar durante a formatao o tamanho
reservado para a MFT, dessa forma possvel evitar a fragmentao da tabela, porm voc perde
espao em disco para os registros.
A MFT reserva os primeiros 16 registros para seus prprios metadados, sendo eles
distribudos conforme a Tabela 14. Cada registro dentro da MFT possui o tamanho de 1KB e
armazenam alguns dados bsicos sobre o arquivo, como o nome dele. Dentro de um registro da MFT,
900 bytes so reservados para:
Registros Residentes: Quando um arquivo possui um tamanho menor que 900 bytes
ento ele salvo dentro do registro da MFT, dessa forma diminuindo o tempo que
seria perdido pesquisando pelo arquivo dentro do disco;
Atributos Residentes: Quando os atributos do arquivo possuem tamanho menor do
que 900 bytes eles so armazenados dentro da entrada do MFT;
Arquivo do Sistema
Master file table
Attribute Definitions
Diferente dos sistemas de arquivos como o EXT4 ou o MINIX FS, o NTFS pode possuir
uma lista de atributos que ultrapassa 900 bytes. Nesses casos um ou mais clusters podem ser reservados
para armazenar os atributos. Na Tabela 15 possvel ver uma lista de alguns desses atributos que a
MFT armazena.
34
O NTFS no possui suporte a disquetes, sendo esse campo meramente um resduo do FAT16. (TECHNET, 2003)
35
36
3. FERRAMENTAS DE TESTES
Neste captulo sero descritas as ferramentas que foram utilizadas durante os testes de
carga e comportamento dos sistemas de arquivos.
3.1 MINIX 3
O MINIX um sistema operacional de cdigo aberto baseado na arquitetura UNIX,
desenvolvido por Andrew Stuart Tanenbaum (TANENBAUM & WOODHULL, Sistemas
Operacionais: Projeto e Implementao, 2008) e mantido pela comunidade. Iniciou como uma
ferramenta educacional para seu livro Sistemas Operacionais Projeto e Implementao, porm
desde o lanamento a terceira verso do sistema, em 2005, o desenvolvimento tem sido focado para
dar suporte a aplicaes baseadas em processadores ARM. Mesmo no sendo mais seu foco, o MINIX
continua sendo uma excelente ferramenta para estudos.
3.2 UBUNTU SERVER
Ubuntu Server uma ramificao da distribuio Ubuntu, mantido pela Canonical, voltado
para servidores. Em sua 15 verso (Vivid Vervet), o Ubuntu possui como diferencial o fato dos pacotes
estarem sempre na verso mais recente, diferente das demais distribuies no mesmo ramo que lanam
somente atualizaes de correo. O Ubuntu tambm conhecido por possuir a maior quantidade de
pacotes compatveis com o sistema operacional.
3.3 MICROSOFT WINDOWS 10 PRO
O Microsoft Windows um sistema operacional pago de cdigo fechado, desenvolvido
pela Microsoft, com foco em usurios de desktops ou notebooks. Lanado em 2015, o Windows 10
veio com uma srie de novas funcionalidades e correes visuais, comparado ao seu antecessor, o
Windows 8.1. Entre elas o suporte ao Cortana e a volta do menu Iniciar. Apesar de no possuir nenhuma
atualizao ao seu sistema de arquivos, o Windows 10 ainda a melhor maneira de executar os testes.
3.4 DATASET DEFINITION DD
O dd um comando de sistemas operacionais baseados no UNIX que permite voc copiar
arquivos, informando origem/destino conforme a Figura 21. O diferencial do dd para outros comandos
do gnero (como o cp) que com o dd voc pode copiar qualquer coisa, como uma unidade de disco
inteira, alm de ser possvel tambm gerar arquivos com contedo randmico.
Os parmetros aceitos pelo dd que foram utilizados nos testes so:
37
1 vCPU;
1 GB de Memria RAM;
Hard Disk de 60 GB (Necessrio principalmente para o Windows);
38
4. REALIZAES DE TESTES
Neste captulo sero discutidos sobre os testes de carga realizados atravs do dd e anlise
comportamental dos discos.
4.1 TESTE DE CARGA
A execuo do dd nas mquinas virtuais foi realizado de duas formas: a primeira pegando
o tempo de criao de um nico arquivo, e depois o tempo de criao de mltiplos arquivos. Voc pode
conferir os tempos de criao nos grficos abaixo. Executar os testes com o dd se provou desafiador
devido aos relatrios de tempo sarem de forma inconsistente. Isso ocorre em ambientes virtuais com
facilidade devido a mquina virtual competir a escrita com outras mquinas virtuais e tambm com o
prprio sistema operacional hospedeiro (no caso o Windows 10).
4.1.1 CRIAO DE UM NICO ARQUIVO
Figura 20: Criao de um nico arquivo via dd
180
160
140
120
100
Minix FS V3
80
EXT4
60
NTFS
40
20
0
1 MB
10 MB
100 MB
500 MB
Tamanho do Arquivo
1 GB
2 GB
Durante a primeira etapa dos testes, o MINIX FS se saiu relativamente bem at comear a
utilizar os blocos de indireo dupla, quando o tempo de criao passou a crescer conforme o arquivo
tambm crescia. Isso ocorre porque o MINIX ainda utiliza a antiga funo de alocao de blocos
balloc, aonde alocado bloco a bloco no disco. J o NTFS e o EXT4 tiveram desempenhos
semelhantes, sendo o NTFS mais rpido por questo de segundos. Isso ocorre pois ambos trabalham
com alocao de Multiblocos, alm de que as mudanas na MFT e na Inode de cada um com o objetivo
de melhorar o desempenho se provaram efetivas.
4.1.2 CRIAO DE MLTIPLOS ARQUIVOS (1 MB)
Ao executar o loop de criao de arquivos, o dd teve o melhor desempenho do EXT4,
39
levando at 128 segundos para criar 16000 arquivos em disco, porm sofreu instabilidade durante o
teste de 2000 arquivos: levou 2 segundos a mais do que durante a teste de 4000 arquivos. O MINIX,
por outro lado teve dificuldade em armazenamento de dados, levando 367 segundos para gravar
exatamente a mesma quantidade, e ainda apresentou um segundo problema: no conseguiu eliminar
esses arquivos posteriormente. Na tentativa foi alegado falta de memria, mesmo que outras
ferramentas (free ou o top) informassem o contrrio.
O NTFS no teve problemas para excluir os arquivos, tambm no sofreu de instabilidade,
porm o tempo de criao foi o maior dos testes: 534 segundos para concluir a atividade.
Figura 21: Criao de multiplos arquivos via dd (1 MB)
600
500
400
300
Minix FS V3
200
NTFS
EXT4
100
0
1000
2000
4000
8000
Quantidade de Arquivos
12000
16000
40
350
300
250
Minix FS V3
200
EXT4
150
NTFS
100
50
0
100
200
400
800
Quantidade de Arquivos
1200
1600
300
250
200
Minix FS V3
150
EXT4
NTFS
100
50
0
10
20
40
80
Quantidade de Arquivos
120
160
41
interessante notar que o excesso de tempo que o NTFS levava para criar os arquivos diminui conforme
se aumenta o tamanho deles e diminui a quantidade.
4.1.5 CRIAO DE MLTIPLOS ARQUIVOS (1 GB)
Figura 24: Criao de multiplos arquivos via dd (1GB)
350
300
250
200
Minix FS V3
150
EXT4
NTFS
100
50
0
4
8
Quantidade de Arquivos
12
16
Criar arquivos grandes (+ 1 GB) demonstra que por mais que o MINIX possua capacidade
para tratar eles, no foi feito com esse propsito. Mesmo com arquivos pequenos ainda existia uma
perda de desempenho comparado ao NTFS e o EXT4, e o aumento do tamanho no mudou muita
coisa. O EXT4 e o NTFS possuram tempo de armazenamentos semelhantes, porm no fim o NTFS
acabou tendo novamente o melhor desempenho, levando 29 segundos para gravar 16 arquivos de 1
GB em disco, enquanto o EXT4 levou 84 segundos.
4.1.6 CONCLUSES
Conforme pode ser visto, mesmo a anos sendo desenvolvido, o MINIX FS possui o pior
desempenho quando se trata da velocidade de armazenar dados, e suas tecnologias tambm podem ser
consideradas obsoletas. J o EXT4 possui um desempenho aceitvel, porm possui uma instabilidade
de desempenho causado pelo prprio sistema de arquivos que monitora o melhor momento para
armazenar, dessa forma no se sobrecarregando de tarefas. O NTFS, por outro lado, conseguiu manter
os tempos de maneira estvel, porm tem um pssimo desempenho quando se trata de arquivos
pequenos.
4.2 USO DO SISTEMA DE ARQUIVOS
Nesse tpico sero discutidos sobre os sistemas de arquivos em produo, como o
comportamento deles em ambiente de produo, entre outros.
42
4.2.1 MINIX FS V3
O MINIX FS no to diferente quanto outros sistemas de arquivos UNIX-like, com o
EXTFS, XFS, ou o JFS. Ele possui suporte a alguns metadados de arquivos, no ocupa tanto espao
em disco, e possui uma estrutura simples e organizada. Para quem busca compreender como funciona
um sistema de arquivos, ele perfeito para esse tipo de compreenso, porm para uso no to bom
assim. As limitaes de 2GB para o tamanho mximo de arquivos hoje em dia um bom empecilho,
sendo que a grande maioria dos sistemas de arquivos 32 bits j possuem suporte ao LFS.
Outro ponto negativo a chance de perda de dados no sistema de arquivos ser grande:
mesmo avisando que o arquivo j est salvo em disco, o MINIX ainda no havia iniciado a rotina de
sync. Durante os testes foi comprovado que existe a possibilidade de o arquivo desaparecer em caso
de falta de energia. Isso ocorre porque o MINIX grava por ltimo os metadados em disco, ao contrrio
dos demais que armazenam primeiro.
A incompatibilidade do sistema de arquivos com suas verses anteriores tambm complica
caso deseje migrar os dados. Sua melhor chance criar uma partio EXT2 e ento armazenar os dados
nessa partio. Esse problema j foi solucionado na verso do LINUX do MINIX FS, porm a verso
do LINUX no sabe gerenciar blocos maiores do que 64KB. Na melhor das possibilidades, o MINIX
perfeito para usar em dispositivos pequenos, como disquetes, ou para estudos. Porm para o uso do
dia a dia existem melhores.
4.2.2 FOURTH EXTENDED FILE SYSTEM (EXT4)
O EXT4 foi desenvolvido para ser a verso mais robusta do EXT3, que havia sido
apresentado como uma soluo para os problemas do EXT2, porm no fim acabou criando outros, em
principal a perda de desempenho causada pelo Journaling. A ideia de substituir o modelo de alocao
de blocos indiretos por extenses funcionou perfeitamente, sendo que agora possui suporte a arquivos
grandes, muito mais do que seu antecessor suporta.
Outro ponto a incluso de novas polticas de alocao de dados, como o delalloc. Isso
mitigou muito a fragmentao de dados, j que agora o sistema de arquivos espera ao mximo pelo
melhor momento antes de alocar os arquivos em disco. Outro diferencial que agora possvel
formatar uma partio sem o Journaling, o que aumenta o espao e o desempenho, em troca da
resilincia.
Por outro lado, o EXT4 tem sofrido por causa de seus problemas, principalmente com a
alocao com atraso. Existem casos em que a alocao com atraso no respeita o commit_timeout,
ocasionando em perda de dados, e outras em que o usurio gostaria de usufruir dos recursos do EXT4,
porm no quer arriscar a perda de 60 segundos de dados, motivo pelo qual posteriormente foi criado
a opo de montagem nodelalloc.
Outros problemas vistos so dentro da prpria comunidade, aonde existe uma briga entre
aqueles que apoiam os recursos do EXT4, e aqueles que so contra eles. Isso tem afetado muito a
imagem do sistema de arquivos, ao ponto de algumas empresas cogitarem a substituio dele por outro,
como por exemplo o Btrfs.
4.2.3 NEW TECHNOLOGY FILE SYSTEM (NTFS)
O NTFS pode no aparentar ser to velho, porm dos 3 o sistema de arquivos mais antigo.
Foi desenvolvido no ano de 1993, e de l para c no sofreu muitas alteraes para incluso de novas
funes, porm possui a maior estabilidade entre os trs. Sua ltima grande mudana foi o lanamento
do NTFS 5, que foi lanado junto com o Windows 2000. O foco dele servidores, ento toda sua
43
estrutura foi feita para atender essa demanda desde aquela poca, porm como desktops tambm
precisavam abandonar o FAT16, ento o mesmo sistema de arquivos utilizado para mquinas clientes.
O sistema de arquivos possui abordagens interessantes, como a tabela de descritores de
arquivos ser simplificada em 1 nica por arquivo, porm to simplista quanto o MINIX FS. Por ser
um sistema de arquivos antigo, era de se esperar que j tivesse sido substitudo por outro, porm a
Microsoft no obteve sucesso at o momento em desenvolver um.
O maior problema com o NTFS a MFT, um legado dos sistemas de arquivos FAT. Assim
como seu antecessor, a MFT obrigada a ficar inteira cacheada em memria, o que pode ser um
problema dependendo do tamanho total da tabela e o quanto de memria voc possui. Outro ponto
negativo a falta de documentao do NTFS, sendo que a maioria encontrada bem rasa, com exceo
de alguns feitos por fs que so bem detalhados, ou uma documentao ou outra da Microsoft. E
mesmo esses documentos esto desatualizados, com por exemplo a TechNet (2003) que a ltima
atualizao foi em 2003.
O ltimo ponto no chega a ser negativo, e sim curioso. O NTFS possui o bootloader j
instalado na partio, mesmo que ela no seja inicializvel. Na documentao informado que a regio
livre caso no seja inicializvel, porm ao formatar um disco com o NTFS foi possvel notar o
bootloader nos primeiros 1024 bytes do disco.
44
5. CONSIDERAES FINAIS
O objetivo final desse trabalho foi realizar um estudo em trs sistemas de arquivos
diferentes com o intuito de compreender seu funcionamento. Para conseguir atingir esse objetivo foi
necessrio um estudo inicial de como os sistemas de arquivos funcionam, levantando toda a parte
terica das funcionalidades sem focar em um nico sistema de arquivos. Com essas informaes foi
possvel ento compreender como cada um dos sistemas de arquivos apresentados se comportam.
Diversos problemas foram encontrados ao longo do tempo, como a falta de material
didtico para alguns dos sistemas de arquivos, ou ferramentas que fossem compatveis em diferentes
sistemas operacionais. Outro ponto que se mostrou uma dificuldade foi encontrar uma maneira que os
testes pudessem ocorrer de forma que uma fonte externa no interferisse nela. Mquinas virtuais
acabaram se mostrando a melhor maneira de executar eles, apesar do desempenho estar merc do
computador cliente que estivesse executando. At mesmo os testes de carga dos sistemas de arquivos
se mostraram afetados em alguns momentos quando o teste foi realizado em ambiente de nuvem.
Considera-se que o objetivo foi atingido, porm ainda existe campo a ser explorado dentro
desse tema. Durante o projeto foi levantado diversas ideias do que mais poderia ser explorado, porm
pela falta de tempo tiveram que ficar de fora.
45
6. LISTA DE ABREVIAES
NTFS New Technology File System
EXT4 Fourth Extended File System
FS File System
POSIX Portable Operating System Interface
IEEE - Institute of Electrical and Electronics Engineers
EOF End of File
MBR Master Boot Record
GPT GUID Partition Table
GUID Globally Unique Identifier
UEFI Unified Extensible Firmware Interface
BIOS Basic Input/Output System
MFT Master File Table
46
7. REFERNCIAS
BOVETI, D. P., & CESATI, M. (2002). Understanding Linux Kernel. O'Reilly.
BRUDERHOFER, N. (2006). EdisonPhonograph.jpg. Fonte:
https://de.wikipedia.org/wiki/File:Phonograph.jpg
BUTTERWORTH, N. (2012). All about EOF. Acesso em 5 de dez. de 2015, disponvel em
https://latedev.wordpress.com/2012/12/04/all-about-eof
CALLEJA, D. (2008). EXT4. Acesso em 13 de nov. de 2015, disponvel em
http://kernelnewbies.org/Ext4
CARD, R., TS'O, T., & TWEEDIE, S. (2015). ext2-inode.gif. Fonte:
http://e2fsprogs.sourceforge.net/ext2-inode.gif
DJWONG. (2014). EXT4 Disk Layout. Acesso em 13 de nov. de 2015, disponvel em
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
GITHUB. (2015). About GitHub. Acesso em 18 de ago. de 2015, disponvel em
https://github.com/about
HARRIS, M. (2010). What is a B+ Tree? Acesso em 27 de set. de 2015, disponvel em
https://www.quora.com/What-is-a-B+-Tree
HSIUNG, S. (2009). ext4-builds-an-extent-tree-for-larger-files.png. Fonte:
http://www.datarecoverytools.co.uk/wp-content/uploads/2009/11/ext4-builds-an-extent-treefor-larger-files.png
IDEMA. (2011). Advanced Format (AF) Technology. Acesso em 8 de nov. de 2015, disponvel em
http://www.idema.org/?page_id=98
IEEE , C. (2008). Standard for Information Technology Portable Operating System Interface
(POSIX(R). Acesso em 16 de ago. de 2015, disponvel em
https://standards.ieee.org/findstds/standard/1003.1-2008.html
JONES, M. T. (2008). Anatomia dos Sistemas de Arquivos de journaling do Linux. Acesso em 20 de
ago. de 2015, disponvel em http://www.ibm.com/developerworks/br/library/l-journalingfilesystems/
JUNIOR, P. G. (2015). Trabalhando com o sistema de arquivos NTFS - Parte I. Acesso em 30 de
set. de 2015, disponvel em https://technet.microsoft.com/pt-br/library/cc716477.aspx
MAN. (2001). Linux Programmer's Manual.
MICROSOFT. (2015). Comparando sistemas de arquivos NTFS e FAT. Acesso em 15 de ago. de
2015, disponvel em http://windows.microsoft.com/pt-br/windows-vista/comparing-ntfs-andfat-file-systems
MISTWIZ. (2008). Disk-structure2.svg. Fonte:
https://upload.wikimedia.org/wikipedia/commons/a/ae/Disk-structure2.svg
MORIMOTO, C. E. (2007). Disco Rgido. Acesso em 15 de out. de 2015, disponvel em
http://www.hardware.com.br/termos/disco-rigido
RODRIGUES, G. (2013). Modificadores de Variveis. Acesso em 18 de out. de 2015, disponvel em
http://personalizandoc.blogspot.com.br/2013/02/modificadores-de-variaveis.html
STROSS, R. (2010). The Incredible Talking Machine. Acesso em 30 de set. de 2015, disponvel em
http://content.time.com/time/specials/packages/article/0,28804,1999143_1999210_1999211,0
0.html
47
TANENBAUM, A. S. (2010). MINIX 3: status report and current research. Acesso em 30 de out. de
2015, disponvel em http://www.minix3.org/docs/login-2010.pdf
TANENBAUM, A. S., & WOODHULL, A. S. (2008). Sistemas Operacionais: Projeto e
Implementao. Bookman.
TECHNET. (2003). How NTFS Works. Acesso em 30 de set. de 2015, disponvel em
https://technet.microsoft.com/pt-br/library/cc781134%28v=ws.10%29.aspx
TECHNET. (2015). Master Boot Record. Acesso em 17 de set de 2015, disponvel em
https://technet.microsoft.com/en-us/library/cc976786.aspx
WOLSKI, R. (2014). filetable.rich.jpg. Acesso em 5 de dez de 2015, disponvel em
http://www.cs.ucsb.edu/~rich/class/cs170/notes/FileSystem/filetable.rich.jpg