Você está na página 1de 52

CENTRO DE ENSINO SUPERIOR DE FOZ DO IGUAU

CESUFOZ

Jairo de Oliveira Ferreira

ANLISE COMPARATIVA DO DESEMPENHO DOS SISTEMAS DE

ARQUIVOS EXT4 E BTRFS

Foz do Iguau Pr

2017
Jairo de Oliveira Ferreira

ANLISE COMPARATIVA DO DESEMPENHO DOS SISTEMAS DE

ARQUIVOS EXT4 E BTRFS

Monografia apresentada para o curso de


graduao em Cincia da Computao do
Centro Superior de Ensino de Foz do
Iguau CESUFOZ, como requisito para
obteno do titulo de bacharel.

Centro de Ensino Superior de Foz do Iguau CESUFOZ

Departamento de Cincia da Computao

Programa de Graduao

Orientador: Wilson Varaschin

Foz do Iguau PR
2017
FOLHA CATALOGO
Jairo de Oliveira Ferreira

ANLISE COMPARATIVA DO DESEMPENHO DOS SISTEMAS DE


ARQUIVOS EXT4 E BTRFS

Monografia apresentada para o curso de


graduao em Cincia da Computao do
Centro de Ensino Superior de Foz do
Iguau CESUFOZ, como requisito para
obteno do ttulo de bacharel.

Trabalho , Foz do Iguau, ... Junho de 2017.

_____________________________
Wilson Varaschin
Orientador

______________________________
Fernando Nakayama de Queiroz
Avaliador

______________________________
Jsus Henrique Segantini
Avaliador

Foz do Iguau
PR
Agradecimentos

Agradeo a Deus por mais essa oportunidade de engrandecer a infinita misericrdia


que ele tem por mim e a meus pais que sempre incentivaram a nunca desistir e nunca
parar independente do que ocorra na vida.

Agradeo a meu amigo e colega de curso Aiman Amin, por diretamente e


indiretamente fazer parte desse trabalho. Em outro momento tomamos caminhos diferentes
por diversas circunstncias. Este trabalho foi iniciado por nos e sou grato a ele por todo
conhecimento e inteligncia aplicado.

Tambm aos professores pelos ensinamentos e dedicao constante, alm de


nortear em todo o trabalho.

Mais uma vez, agradeo a todos que de alguma forma contribuiu para o
desenvolvimento e concluso deste.
RESUMO

Com a melhoria constante dos recursos tecnolgicos, novas propostas so


apresentadas e implementadas para a gesto de dispositivos de armazenamento.
A proposta deste trabalho visa analisar o desempenho e as caractersticas dos
sistemas de arquivos: BTRFS (B-Tree File System) e o Ext4 (Fourth Extended File
System). A sequncia deste estudo ser aplicada, sobre as estruturas dos sistemas
de arquivos, as suas caractersticas e as funcionalidades propostas alm da
diversidade de tipos de sistemas de arquivos. Logo aps, a execuo e anlises a
fim de agregar conhecimentos cientfico, alm da melhor compreenso sobre as
questes particulares de cada sistemas de arquivos. Ser usado tambm
ferramentas para medies do desempenho, das principais funes, a fim de
confront-los, para entender melhor sobre a aplicabilidade de cada sistema de
arquivo.

Palavras-chaves: sistemas de arquivos, dispositivos de armazenamento,


ext4, btrfs.
ABSTRACT

With the constant improvement of technological resources, new proposals


are presented and implemented for the management of storage devices. The
purpose of this paper is to analyze the performance and characteristics of file
systems: BTRFS (B-Tree File System) and Ext4 (Fourth Extended File System). The
follow-up of this study will be applied, on file system structures, their characteristics
and their proposed functionalities. Soon after, the execution and analysis in order to
add scientific knowledge, besides the best understanding on the particular questions
of each file systems. Tools will also be used to measure the performance of key file
system functions in order to confront them.

Keywords: file systems, storage devices, ext4, btrfs.


LISTA DE ABREVIATURAS E SIGLAS

BTRFS B-Tree File System

COW Copy-on-write

EXT Extended File System

EXT2 Two Extended File System

EXT3 Three Extended File System

EXT4 Forth Extended File System

FAT File Allocation Table

MB Mega Byte

NTFS New technology File System

PTS Phoronix Test Suite

RAID Redundant Array of Independent Disks

VFS Virtual File System

XFS X File System

ZFS Zettabyte File System


SUMRIO

1.1.Objetivo Geral ........................................................................................................................ 10


1.2.Objetivos Especficos.......................................................................................................... 10
1.3.Motivao................................................................................................................................ 11
1.4.Organizao do Trabalho ................................................................................................... 11
2.Fundamentao Terica ......................................................................................................... 12
2.1.Sistemas de Arquivos.......................................................................................................... 12
2.2.Terminologia .......................................................................................................................... 13
2.3.Estrutura de Dados de um Sistema de Arquivo ........................................................... 14
2.3.1.rvore B ............................................................................................................................... 14
2.3.2.rvore B+ ............................................................................................................................. 18
2.3.3.Lista encadeada ................................................................................................................. 20
2.3.4.Arquivos .............................................................................................................................. 21
2.3.5.Estrutura de um arquivo .................................................................................................. 22
2.3.6.Tipos de arquivos .............................................................................................................. 23
2.3.7.Atributos de arquivos....................................................................................................... 23
2.3.8.Operaes com arquivos ................................................................................................ 24
2.3.9.Implementao de arquivo ............................................................................................. 25
2.3.10.Diretrios ........................................................................................................................... 27
2.3.11.Hierarquia .......................................................................................................................... 28
2.3.12.Sistemas de diretrios em nvel nico ...................................................................... 29
2.4.Implementao de sistemas de arquivos ....................................................................... 29
2.4.1.Sistemas de arquivos usando tabelas......................................................................... 29
2.4.2.Sistemas de arquivos utilizando journaling ............................................................... 30
2.4.3.Sistemas de arquivos baseado em log........................................................................ 31
2.4.4.Sistema de arquivos usando armazenamento baseado em objeto ..................... 32
2.5.Sistema de Arquivos EXT ................................................................................................... 33
2.6.Sistema de Arquivo BTRFS: B-Tree File System ......................................................... 34
2.7.Benchmark ............................................................................................................................. 37
2.8.Phoronix Test Suite .............................................................................................................. 39
3.Ambiente experimental ................................................................................... 40
3.1.Hardware ................................................................................................................................. 40
3.2.Software .................................................................................................................................. 40
3.3.IOzone ...................................................................................................................................... 41
3.4.Compilebench........................................................................................................................ 44
3.5.Postmark ................................................................................................................................. 46
CONCLUSO ...................................................................................................... 47
REFERNCIAS .................................................................................................... 49
10

1. INTRODUO

A maioria dos usurios de computadores e celulares no fazem ideia que os


sistemas de arquivos foi provavelmente a parte mais importante nos seus afazeres.
Um erro no kernel pode significar na perda de todo o que foi trabalhado.

A eficincia assim como a qualidade dos sistemas de arquivos est em


constante evoluo, para assim garantir a confiabilidade dos dados que ali so
armazenados. A fidelidade dos dados tem sido uma questo importante diante do
contnuo crescimento das informaes armazenadas.

Para tanto muito proveito fora tirado da Lei de Moore, sobre a evoluo dos
hardware e avano das tecnologias. Nos dias vindouros, com a necessidade
crescente de desempenho em aplicaes de softwares, muito se investe em
desenvolvimento de novas tecnologias visando garantir tais evolues
tecnolgicas. Para tanto a evoluo nos sistemas de arquivos continua aqum a
evoluo de transistores em processadores (MOORE, 1965).

1.1. Objetivo Geral

Examinar como o BTRFS pode se comportar em um dispositivo de


armazenamento e compar-lo com o EXT4. Examinando a capacidade e medindo
o tempo de gravao, leitura, recuperao, criao e, por fim, eliminao das
informaes dos sistemas de arquivos.

1.2. Objetivos Especficos

Conhecer o funcionamento e a estrutura dos sistemas de arquivos.


11

Distender um estudo bibliogrfico sobre a origem e tipos de sistemas


de arquivos.

Analisar, simular, e comparar os sistemas de arquivos.

1.3. Motivao

Durante muito tempo a predominncia dos sistemas de arquivos esteve


focado no EXT2, EXT3 e atualmente EXT4. Esta srie fez parte da maioria das
distribuies GNU/Linux.

A proposta do BTRFS est na rpida e constante resposta a crescente


tendncia dos volumes dos sistemas de arquivos. Dentre estas necessidades est
em oferecer suporte a gesto de volumes mltiplos e subvolumes, funes de
RAID, clonagem, desfragmentao e verificaes contra falhas entre outras.

1.4. Organizao do Trabalho

No captulo 2 explanar-se- fundamentao terica e as estruturas de dados


de sistemas de arquivos, ferramentas para medies. Sistemas de arquivos que
sero tratados neste trabalho.

No captulo 3 montagens do ambiente experimental, hardware, software e as


comparaes e apresentaes dos resultados obtidos atravs das medies de
desempenhos dos sistemas de arquivos.

Captulo 4 Anlise dos resultados / concluso


12

2. Fundamentao Terica

Este captulo tem por objetivo discorrer sobre os sistemas de arquivos, como
funcionam, as caractersticas e a arquitetura a fim de demonstrar a finalidade para
os sistemas operacionais e usurios.

2.1. Sistemas de Arquivos

Os computadores, as aplicaes e os usurios manipulam arquivos


constantemente em diversos meios de armazenamento. Para compreender o
comportamento do sistema de arquivo em um sistema operacional este necessita
decodificar as informaes armazenadas e para recuper-las, fazer as possveis
modificaes e torn-las ao disco.

A organizao fsica e lgica dos arquivos e diretrios dentro de um


dispositivo de armazenamento, denominada sistemas de arquivos. Um sistema
de arquivo pode ser visto como uma imensa estrutura de dados armazenada de
forma persistente em um dispositivo fsico (MAZIERO, 2013).

Para compreendermos melhor este processo, imaginamos uma


contabilidade, onde o contabilista necessita de organizar os diversos documentos
de seus clientes em ordem de importncia, datas e ordem alfabtica, visando assim
quando necessrio localizar algum documento, estar devidamente organizado em
prateleiras e nestas prateleiras caixas, e nas caixas os documentos combinados
pela sua importncia. Se no bastasse ainda toda essa organizao o contabilista
necessita datar, enumerar e titular a importncia de cada caixa.

Nesta contextualizao o sistema operacional seria a contabilidade, o


sistema de arquivo seria os contabilistas, nos quais organizam os dados nos discos
de armazenamento. Assim como os contabilistas rotulam as caixas e as organizam
nas prateleiras, da mesma forma o sistema de arquivo faz, endereando os dados,
e criando vnculos entre si a fim de ter uma organizao semelhante.
13

Para grande parte dos usurios do meio computacional os sistemas de


arquivos so as partes mais visveis de um sistema de operacional. Para a maioria
dos sistemas de arquivos so divididos em uma estrutura de diretrios e uma
coleo de arquivos e parties utilizadas para separar grandes volumes de
arquivos e diretrios (CARRIER, 2005).

2.2. Terminologia

Segundo TANENBAUM (2010), os sistemas de arquivos so compostos por


diversos termos especficos para suas funes. Estes so necessrios para
compreender melhor o funcionamento de cada parte em um sistema de arquivo.
Vejamos a seguir termos comuns entre diversos sistemas de arquivos:

Disco: lugar onde armazena informaes por determinado tempo. O


disco estruturado em blocos, que so pequenas partes que um disco
pode ler e gravar.

Blocos/setores: so pedaos divididos em tamanho fixo, onde so


organizados os dados dinamicamente atravs do sistema de arquivo
de cada sistema operacional.

Volume: agregado de blocos do sistema de arquivo, podendo um


volume utilizar apenas um bloco, ou todos contido no sistema de
arquivo.

Superbloco: onde contm todas as principais informaes e


parmetros de um sistema de arquivo. Este lido na memria quando
o computador inicializado, quando utilizado pela primeira vez. As
informaes consistentes neste superbloco um nmero mgico que
identifica o tipo de sistema de arquivo, o nmero de blocos do sistema
de arquivo, o tamanho do volume do sistema de arquivo entre outras
informaes importantes de efeito administrativo.

Metadados: so dados armazenados de outros dados, como, por


exemplo, informaes contidas em um volume ou bloco.
14

Journaling: tcnica utilizada para manter as informaes dos


metadados, mesmo em caso de desligamentos do sistema de forma
brusca.

I-node/n-i: armazena todos os metadados de um arquivo, ou seja,


cada arquivo possui um i-node.

2.3. Estrutura de Dados de um Sistema de Arquivo

Em seguida motivar-se- como so gerenciados os dados em um sistema


de arquivo, bem como o entendimento da manipulao das informaes nos
sistemas de armazenamentos.

2.3.1. rvore B

B-tree, traduo do ingls para rvore B uma soluo para ambientes em


que o volume de informaes bastante elevado e, portanto, ests informaes
no pode ser processada diretamente na memria primaria, mas apenas algumas
pginas. As rvores B so distintas em ns, diferentemente das rvores binrias de
busca, pois est usualmente possui um nmero maior de chaves chamadas de
pginas ou filhos (COMER, 1979).

A rvore B pode ser exemplificada como um ndice de um livro. Sabendo que


um ndice se assemelha a uma coleo de tabela de smbolos, pois o ndice diz em
qual das tabelas, est o que se necessita. Portanto a rvore B uma tabela de
smbolo de tabelas de smbolos.

Uma definio de rvore B e, portanto, a mais utilizada de imediato define o


nmero mnimo e mximo da ordem separados por hfen (-). Exemplo uma rvore
B de ordem 2-3, possui um nmero mnimo de 2 nos internos filhos e mximo de 3
nos internos filhos. Outro sim caso a ordem de uma rvore B resultar em uma frao
15

exemplo 5/2, o resultado desta frao deve ser arredondado para cima, para o
prximo nmero inteiro (COMER, 1979).

Toda rvore B deve conter algumas caractersticas e restries comuns a ser


seguida (COMER, 1979). Considere uma rvore B de ordem x, que deve satisfazer
as condies seguintes:

Cada n deve conter no mximo x filhos;

O n-raiz deve conter no mnimo dois ns filhos;

Se existir 2 ou menos elementos na rvore, ento a raiz ser tambm a


folha, ou seja, o ltimo nvel da rvore, armazenando os dados apenas
no n-raiz.

Cada n interno, desconsiderando a raiz, deve possuir um mnimo de


x/2 ns filhos. Se est diviso for fracionada conforme dito
anteriormente, deve-se ser arredondado para o prximo nmero inteiro.

Todos os ns da rvore, incluindo a raiz, possui uma restrio de x filhos


por n;

Cada n deve possuir dados, chamados de chaves, em ordem crescente;

Qualquer n com n filhos deve ter n-1 dados, ou chaves;

Todas as folhas devem estar no mesmo nvel da rvore B.

A figura 1 demonstra uma rvore B de ordem 4 ou 2-4, em que a raiz tem 2


ns filhos, nmero mnimo, e 1 elemento (chave) representado por k1. O nvel zero
da raiz, representado pelo constante r. As representaes c1 e c2, so ponteiros
para seus ns filhos, onde elementos de menor valor para k1, estaro na parte
esquerda, subrvore esquerda do n-raiz, representado por r.C1, e os valores
maiores de elementos estaro direita na representao r.C2.
16

Figura 1 rvore B de ordem 2-4. Fonte: http://www.datrevo.com/; Acesso em 18/05/2017.

A insero na rvore B de elementos x se d primeiramente atravs de uma


varredura de onde ser inserido o elemento, e insira. No entanto, deve-se fazer
uma verificao se o n x no est cheio, caso sim, ser necessrio realizar uma
subdiviso de ns, que est em passar o elemento mediano x para seu pai e
subdividir x este em dois novos ns t-1 elementos e inserir a nova chave. Outro
sim, se o pai tambm estiver cheio, deve-se repetir esta operao de subdiviso
recursivamente para o pai de x. Tendo ainda a possibilidade desta situao do
aumento na altura da rvore.

A figura 2 demonstra as atividades de insero em uma rvore B. Trata-se


de uma rvore de ordem 2-3. Onde ser inserido nmero de 1 a 7. A insero inicia
nos nmeros 1 e 2. Estes quando inserido tornaram uma raiz-folha,
temporariamente.

Na sequncia do prximo passo na insero do nmero 3, a raiz cria 2 ns-


filhos. A escolha da chave para o n-raiz se d atravs do clculo da mediana dos
nmeros em operao.
17

Figura 2 Insero de rvore B de ordem 2-3. Fonte: https://timegatetechnologies.wordpress.com/;


Acesso em 19/05/2017.

Na sequncia do numeral 4, para insero, deve-se realizar uma operao


lgica para identificar se o numeral a ser inserido maior ou menor que a chave.
Aps a verificao, conclui-se que deve ser inserido na subrvore a direita da raiz,
pois este maior que a chave, preenchendo o nmero mximo por n.

No processo sequente acontece a mesma lgica na insero conforme


descrito acima. Mais se no haver espao para elementos no n, ser realizado um
novo clculo de mediana, e este ser transportado para um n superior como
chave, criando 2 novas subrvores. Outro sim, deve salientar que os elementos ou
chaves devem estar em ordem crescente.

O termo rvore B pode dirigir-se a um projeto especfico ou uma classe geral


de projetos. O armazenamento em uma rvore B, as chaves ficam nos em seus
ns internos, sem a necessidade de mant-las nos registros das folhas. A classe
geral inclui derivaes como a rvore B* e rvore B+ (COMER, 1979).

Nesta derivao a rvore B+, mantm uma cpia das chaves em seu n
interno. A chave e os registros so armazenados na folha. A fim de que o acesso
18

de busca sequencial ordenado seja mais eficiente. Para garantir esse acesso
sequencial, cada n mantm armazenados de seus apontadores (COMER, 1979).

Outra derivao a rvore B*, nesta estrutura a subdiviso postergada at


que os ns irmos estejam densos, liberando a diviso em seguida para 3 ns.
Nesta variao da rvore B, os ns no raiz exige contedo mnimo de 2/3 do n e
vez de 1/2, a fim de manter esta estrutura, ao invs de dividir na sequncia quando
um n est cheio, suas chaves so compartilhas com um n prximo (KNUTH,
1998).

2.3.2. rvore B+

Dentre as variaes de rvore B, est a rvore B +, onde os dados so


ordenados de maneira mais eficiente na insero, recuperao e remoo, cada
qual identificado com uma chave. As modificaes feitas da rvore B, nesta
variao, est em manter todas as chaves nas folhas, e replicar as chaves em ns
no-folha a fim de formar um ndice, estas folhas oferecem um caminho sequencial
para percorrer as chaves (GIAMPAOLO, 1999).

Existem diferenas nas rvores B e rvores B+, nas operaes de


armazenamento dos dados, das chaves e seus ponteiros. No entanto, os clculos
de mediana, diviso de rvores e subrvores so basicamente os mesmos, porm
na operao de insero obtm-se uma pequena variao (GIAMPAOLO, 1999).

Como observado na figura 3 percebe que as folhas esto ligadas por


ponteiros, permitindo um acesso sequencial e linear, destacando-se assim da
rvore B, neste aspecto pois a mesma faz acesso linear.

Entende-se ainda na figura, que os dados no se mantm nos ns e sim nas


respectivas folhas. Conforme vistos os elementos 3 e 5 so chaves nos ns, no
entanto os dados ligados a eles esto localizados nas folhas, ou seja, os dados
associados a ele encontram-se na folha.
19

Figura 3 rvore B+. Fonte: http://www.datrevo.com/; Acesso em 18/05/2017.

Com base nestas informaes pode deferir algumas vantagens da rvore B+


sobre a rvore B:

Uma quantidade maior de chaves podem ser armazenadas nos ns das


folhas, por no estar armazenados dados associados nos ns.

O tempo da busca nesta derivao tem mais eficincia, devido os


ponteiros interligar as folhas, garantindo que seja realizado, consultas ou
varreduras de todos os objetos da folha de forma linear.

A desvantagem da rvore B+ em relao a rvore B, est na recuperao de


dados associados a uma chave, pois mesmo encontrando o n, deve-se ir at a
folha para pegar os dados. No entanto, a rvore B quando encontra o n onde est
a chave, no precisa deslocar at a folha pois os dados encontram no prprio n
(GIAMPAOLO, 1999).

A rvore B+ possui grande usabilidade nos mecanismos de bancos de dados


como o SQLServer e Oracle e em sistemas de arquivos como o NTFS, assim como
ReiserFS do Unix, XFS para Irix, JFS2 para AIX, OS/2, alm de usar para indexar
metadados (GIAMPAOLO, 1999).

As caractersticas da rvore B+ de ordem b com nveis de indexao h:

O nmero mximo de registros armazenados nmax = bh bh-1;

O nmero mnimo de chaves n=2x [b/2]h-1;


20

O espao requerido para armazenar a rvore O(n);

Inserir ou remover um registro requer O(logb n) operaes;

Achar um registro requer O(logb n) operaes;

Executar uma larga consulta com k elementos que ocorrem dentro da


faixa requer O(logb + k) operaes;

2.3.3. Lista encadeada

A lista encadeada uma estrutura de dados na qual possui armazenamento


linear. A figura 4 mostra uma lista encadeada simples. A palavra Prox de cada bloco
usada como ponteiro para o um prximo n, e a palavra Chave para dados
(CORNEN et al., 2009).

Figura 4 Lista Encadeada. Fonte: (Cormen et al. 2009).

A lista encadeada simples, apesar do fato da leitura ser sequencial e direta,


o acesso aleatrio extremamente lento, pois para alcanar um bloco n, o sistema
operacional, a partir do incio, deve ler os blocos n-1 blocos antes dele, um de cada
vez. Ou seja, a lista percorrida da esquerda para direita sem possibilidade de
fazer caminho inverso.

Uma soluo proposta est na lista duplamente encadeada, sendo uma


variao da anterior. Esta lista possui um novo elemento no qual referncia o n
anterior, conforme figura 5 (TANENBAUN, 2010).

Figura 5 Lista Duplamente Encadeada. FONTE: (TANENBAUM, 2010).


21

Existem diversas outras variaes como a lista encadeada circular onde o


ponteiro do ltimo n referncia o primeiro n da lista, de acordo com a figura
seguinte. Exemplificando a lista circular, pode-se pensar em um colar contendo
elementos (CORMEN et al., 2009).

As listas encadeadas so estruturas que podem ser usadas em pilas e filas


com restries apenas nos tipos de operaes, e na implementao de rvores
binrias e lista hash entre outras.

Figura 6 Lista Circular e Duplamente Encadeada. FONTE: (TANENBAUM, 2010).

2.3.4. Arquivos

Arquivo um meio de armazenamento de informaes permanente em


disco, no qual pode ser lido posteriormente. Nesta abstrao os usurios so
poupados dos detalhes de como ests informaes so tratadas pelo disco e onde
se encontram. As informaes podem ser uma sequncia de bits uma foto, um
texto, ou qualquer sequncia de bits que deseje ser armazenada (TANENBAUN,
2010).

No meio computacional o termo arquivo, ficou conhecido aps a publicao


de um artigo em 1950, pela RCA (Corporao Americana de Rdio) na revista
Popular Science no qual descreve um tubo de memria de vcuo desenvolvida.
O artigo descreve:

... os resultados de inmeros clculos computacionais podem


ser mantidos em arquivos e retirados de novo. Este arquivo agora
existe em um tubo de memria desenvolvida nos laboratrios RCA.
Eletronicamente eles mantm nmeros em mquinas de calcular, os
mantm em armazenamento at memorizar uma nova velocidade
22

de solues inteligentes atravs de labirintos matemticos (RCA,


Popular Science Magazine p. 96).

Logo em seguida, 1952, a palavra arquivo foi utilizada para referenciar as


informaes contidas nos cartes perfurados (ROBERT S., 1952).

Um arquivo ainda pode ser descrito como um bloco de dados arbitrrios ou


meios para armazenar dados, estes podem ser lidos por algum programa baseando
em um meio permanente de armazenamento. Em Sistemas Compatvel de Tempo
Compartilhado, os nomes tinham um nome primrio e outro secundrio distinguindo
o tipo do arquivo (MEE; DANIEL, 1996).

2.3.5. Estrutura de um arquivo

Um sistema de arquivo pode conter ou no uma estrutura no arquivo. Um


arquivo no-estruturado, tambm considerado como fluxo de bytes, no contem
estrutura. O sistema de arquivo registra o tamanho do arquivo e permite que
programas leem os bytes da maneira e ordem que estes preferem.

Os arquivos podem ser estruturados de diversas maneiras de acordo com


TANENBAUM, (2010):

Uma sequncia no-estruturada de bytes, sendo que o sistema


operacional no sabe o que o arquivo contm ou ainda no se interessa,
apenas v uma sequncia de bytes.

Arquivo sendo uma sequncia de registros de tamanho fixo, cada um com


alguma estrutura interna. Neste contexto a operao de leitura retorna
um registro e a de escrita sobrepe um registro ou agrega informao.

Nesta outra maneira um arquivo constitudo de uma rvore de registros,


no sendo especificamente do mesmo tamanho, no entanto contendo um
campo-chave em um lugar fixo do registro. efetuada a ordenao da
rvore pela chave, sendo possvel fazer a busca com maior eficincia.
23

O objetivo dos sistemas de arquivo est em permitir ao usurio a


manipulao do arquivo. No entanto, alguns sistemas de arquivos tm regras
especficas para manter a ordem e a eficincia dos mesmos na recuperao dos
arquivos (GIAMPAOLO, 1999).

2.3.6. Tipos de arquivos

A grande maioria dos sistemas operacionais oferecem suporte a diversos


tipos de arquivos. O Unix oferece suporte aos arquivos regulares, especiais de
caracteres e de blocos e diretrios, assim com o Windows. Os arquivos regulares
so os que contm informaes dos usurios. O diretrio tem a funo de organizar
e manter a estrutura dos arquivos. Os arquivos especiais de blocos so
responsveis por ornamentar os discos. E os arquivos especiais de caracteres
esto para modelar os dispositivos de entrada e sada, como terminais, impressoras
e redes (TANENBAUM, 2010).

2.3.7. Atributos de arquivos

Para garantir a segurana, integridade entre outros itens, os sistemas de


arquivos dispem de artifcios para que garantem alm do nome do arquivo e seus
dados, os atributos dos arquivos. Logo esses atributos dos arquivos variam entre
os diversos sistemas operacionais, podendo certos atributos ter disponibilidade em
um e noutro ser tratado de forma diferenciada (TANENBAUN, 2010).

Atributos como proteo, senha, criao e propriedade dizem sobre quem


tem ou no acesso a esse ou aquele arquivo. Outros tipos de atributos de arquivos
so pequenos campos ou bits de informao, chamadas de flags, que controlam
ou habilitam caractersticas especficas de arquivos (TANENBAUM, 2010).
24

A tabela 1 a seguir lista atributos comuns dos sistemas de arquivos


(TANENBAUM, 2010):

Atributo Descrio do atributo


Proteo Quem tem acesso e qual a forma do acesso
Criador ID do criador do arquivo
Proprietrio Dono atual do arquivo
Flag de somente leitura 0 para leitura/escrita; 1 para somente leitura
Flag de oculto 0 para normal; 1 para no exibir oculto
Flag de sistema 0 para arquivos normais; 1 para arquivos do
sistema
Tamanho do registro Nmero de bytes em um registro
Tamanho de campo chave Posio da chave em cada registro
Posio da chave Posio da chave em cada registro
Momento da criao Data e hora de criao do arquivo
Momento do ltimo acesso Data e hora do ltimo acesso do arquivo
Tamanho atual Nmero de bytes do arquivo
Tamanho Mximo Nmero mximo de bytes no arquivo
Tabela 1 Tabela referente a atributos dos arquivos (TANENBAM, 2010).

2.3.8. Operaes com arquivos

Segundo TANENBAUM, (2010) as operaes em arquivos ou chamadas de


sistemas mais comuns entre os sistemas de arquivo so:

Create: a finalidade desta chamada est apenas em anunciar a criao


do arquivo, e seta alguns atributos pertinentes a criao do arquivo.

Delete: a finalidade desta chamada est em liberar espao em disco aps


a definir que o arquivo no mais necessrio.
25

Open: o propsito desta operao est em busca e colocar na memria


principal os atributos e a lista de endereos, a fim de tornar mais eficiente
o acesso as chamadas seguintes.

Close: quando finaliza os acessos os atributos e os endereos so


removidos da memria principal, a fim de liberar espao na tabela interna.
Tendo em vista que alguns sistemas estabelecem regras para manter a
eficincia desta operao.

Read: esta chamada coloca em buffer a quantidade de dados necessrio


para a operao, lendo assim os bytes de um arquivo atual.

Write: escreve os dados em um arquivo byte a byte.

Append: chamada de restrita a diversos sistemas de arquivos, a principal


finalidade est em escrever informaes no final do arquivo.

Seek: esta chamada de sistema, reposiciona o ponteiro em um local


escolhido no arquivo, logo aps os dados so lidos ou escritos a partir
deste ponto.

Get Attributes: mecanismo de leitura dos atributos quando necessrio,


para ento continuar algo.

Set Attributes: mecanismo de alterao de atributos aps a criao,


utilizado pela maioria das flags.

Rename: chamada para renomear um arquivo existente.

2.3.9. Implementao de arquivo

Os dispositivos de armazenamentos so vistos como sendo um grande vetor de


blocos lgicos de tamanho fixo. A implementao de arquivos um mtodo no qual faz o
relacionamento de quais blocos esto relacionados a tal arquivo. So usados vrios
mtodos em diversos sistemas operacionais, dentre eles a alocao contigu, alocao
por lista encadeada, alocao por lista encadeada usando tabela de memria e alocao
por lista indexada (MAZIERO, 2013).
26

Alocao contgua

Trata-se do mtodo mais simples de alocao de blocos de um arquivo, pois


coloca n blocos de forma contgua em disco. Exemplificando, um disco com blocos
de 1 Kb, um arquivo de 100 Kb seria alocado em 100 blocos consecutivos. E com
blocos de 2 Kb seria alocado em 50 blocos consecutivos (TANENBAUM, 2010).

Uma vantagem est na simplicidade da implementao da alocao


contgua, est em saber de duas informaes sobre os blocos de um arquivo, sendo
elas o endereo em disco do primeiro bloco e o nmero de blocos no arquivo. Com
isso aps encontrar o primeiro bloco, o bloco seguinte encontrado por simples
adio (TANENBAUM, 2010).

Outra vantagem da alocao contgua est na performance de leitura, sendo


permitido esta operao de uma nica vez para um arquivo. Para isso feito um
posicionamento para o primeiro bloco atravs de uma chamada seek. Depois no
tem necessidade de outras chamadas, ou ainda atrasos rotacionais
(TANENBAUM,2010).

No entanto, a alocao contgua ao longo do tempo tem problemas com


fragmentao em disco. Quando os arquivos so excludos, e estes espaos
preenchidos por outros menores, espaos vazios podem se propagar no disco
(TANENBAUM, 2010).

Alocao por lista encadeada

Neste mtodo, os arquivos so tratados como uma lista encadeada de


blocos no disco, conforme tratado na seo 2.3.3. A primeira palavra de cada bloco
usada como ponteiro para o prximo bloco. E o restante do bloco usado para
dados (TANENBAUM, 2010).

Este mtodo mostra uma soluo para o problema de fragmentao do


mtodo anterior, pois todos os blocos do disco podem ser usados. Para tanto isso
torna a leitura aleatria de arquivos lenta, pois para chegar a um bloco o sistema
operacional precisa ler os blocos que o antecedem (TANENBAUM, 2010).

Alocao por lista encadeada usando tabela de memria

Neste mtodo apresenta uma soluo para o mtodo anterior, pois este
coloca as palavras do ponteiro de cada bloco em uma tabela de memria. Esta
27

tabela fica contida na memria principal e chamada de FAT (file allocation table).
Desta forma o acesso aleatrio torna-se mais simples, devido os dados estar
alocado todo na memria principal, sem precisar fazer referncia ao disco
(TANENBAUM, 2010).

Apesar do acesso aos arquivos serem muito rpido por estar disponvel na
memria, isso passa a ser custoso, pois para este mtodo funcionar, toda a tabela
deve estar na memria. Exemplificando imagina-se um disco de 120 Gb, e blocos
de 1 Kb, a tabela precisara de 120 milhes de entradas uma para cada 120 milhes
de blocos do disco (TANENBAUM, 2010).

Alocao por lista indexada ou i-nodes

Neste tipo de mtodo consiste associar cada arquivo em uma estrutura de


dados denominada i-nodes ou n-ndice, relacionando os atributos e endereos em
disco dos blocos do arquivo. Ou seja, o endereo de todos os blocos de um arquivo
encontra-se em um nico lugar, i-node, tais vantagem sobre os arquivos
encadeados que usam tabela de memria, pode ser percebida, tendo em vista que
somente o i-node estar na memria ao abrir um arquivo (TANENBAUM,2010).

Diante disto pode-se perceber que o espao ocupado em memria deste


mtodo muito inferior ao mtodo anterior, pois para conter a lista encadeada de
todos os blocos, a tabela deve ser proporcional ao prprio disco, ou seja, se o disco
tiver x blocos, a tabela necessitara de x entradas. J para o mtodo indexado, este
requer um arranjo de memria no qual o tamanho proporcional ao nmero
mximo de arquivos que permite estar aberto ao mesmo tempo, sendo
problemtico caso um arquivo venha a estender alm dos limites mximo do disco
(TANENBAUM, 2010).

2.3.10. Diretrios

Os sistemas de arquivos utilizam o termo diretrio para descrever um


contenedor, que organiza e ordena os arquivos por nome, pois, alm de armazenar
arquivos como um fluxo de bytes, os mesmos providenciam maneiras de organizar
28

os arquivos. Logo a funo dos diretrios est em gerenciar uma lista de arquivos
fazendo um link do nome do diretrio aos arquivos associados (GIAMPAOLO,
1999).

Compreendendo melhor, diretrio um contedo virtual com sistema de


arquivo digital, no qual cada grupo de arquivo, considerando ainda subdiretrios,
podendo ser mantidos e organizados (MURACH, 2006).

O nome do arquivo a chave de busca quando um diretrio quer procurar


por um arquivo e o nmero do i-node a referncia que permite o sistema de
arquivos acessar o contedo do arquivo e outros metadados e atributos do mesmo
(GIAMPAOLO, 1999).

Para gerenciar os arquivos, os sistemas de arquivos tm em geral, diretrios,


que em muitos sistemas tambm so arquivos (TANENBAUM, 2010).

2.3.11. Hierarquia

Hierarquia continua sendo um conceito muito utilizado no meio social, como


forma de impor respeito ou limites para determinado meio. No muito distante desta
ideia no meio computacional segue o mesmo conceito, pois se trata de uma
estrutura na qual necessita de uma organizao, dos diversos tipos de dados
existentes em um sistema, sendo alguns mais importantes e restritos que outros.
Uma estrutura muito utilizada em computao na qual faz referncia a hierarquia
est no conceito de pai e filho, pois, um filho no existe sem um pai, no entanto um
pai existe sem um filho.

Outra forma de demonstrar hierarquia no meio computacional est na


estrutura de diretrios, pois basta criar uma pasta dentro de outra pasta, assim
quando abrir a primeira pasta e na sequncia a subpasta, far um deslocamento
hierrquico tendo como referncia sempre a anterior.
29

2.3.12. Sistemas de diretrios em nvel nico

Os primeiros sistemas de arquivos implementavam apenas o diretrio raiz,


que continha todos os arquivos do volume. Esquema utilizado nos primeiros
computadores, dentre eles o supercomputador do mundo o CDC 6600, possua em
seu sistema apenas um diretrio para todos os arquivos e usados por todos os
usurios ao mesmo tempo (TANENBAUM, 2010).

2.4. Implementao de sistemas de arquivos

Nesta seo o objetivo est em mostrar os diversos tipos de sistemas de


arquivos. Como cada sistema de arquivo surgiu, as funcionalidades de cada um, tal
como o suporte oferecido e o conhecimento cientfico aplicado.

2.4.1. Sistemas de arquivos usando tabelas

Este tipo de sistema de arquivo segue a ideia das listas encadeadas, no qual
os blocos ficam disponvel os dados em memria, sem fazer acesso ao disco. Os
dados neste, so alocados e acessados seguindo o encadeamento para encontrar
a sequncia de blocos do arquivo em memria (TANENBAUM, 2010).

O primeiro sistema de arquivo baseado em tabela surgiu em 1977


denominado FAT (File Allocation Table), e foi o desenvolvido para o sistema de
arquivo do MS-DOS, e usado nas verses do sistema operacional Microsoft
Windows at o Windows ME (MICROSOFT, 2006). O FAT funciona com base em
uma tabela que indica onde est a localizao dos arquivos. Isso torna-se
necessrio devido o espao estar dividido em blocos, sendo que um arquivo ou
documento pode ocupar um ou diversos blocos, no entanto esses blocos no
necessariamente estaro de forma sequencial.
30

O sistema de arquivo FAT ao longo dos anos teve diversas atualizaes


denominadas, FAT12, FAT16 e FAT32.

2.4.2. Sistemas de arquivos utilizando journaling

Journaling, traduo do ingls para dirio, sendo um registro de mudana,


recurso pelo qual se utiliza neste sistema de arquivo para armazenar as constantes
modificaes antes mesmo destas aes serem registradas em disco. Desta
maneira evita a corrupo de alguma informao em disco, alm de facilitar a
recuperao de possveis perdas de dados. E em casos de travamento, este recuso
tambm utilizado como um ponto de verificao e recuperao das informaes
com objetivo de preservar a integridades dos metadados (TANENBAUM, 2010).

O conceito de journaling baseado em um log onde so armazenadas as


alteraes feitas no arquivo. Estas informaes so de grande valia quando
acontece de corromper um arquivo ou um desligamento ocasional.

Existem diversos modos de journaling:

Modo Writeback neste modo apenas os metadados possuem


consistncia, ficando os blocos sem possibilidade de recuperao em
caso de desastres.

Modo Ordered neste modo os metadados so gravados no journal, mas


os dados so gravados como os metadados so escritos a partir do
journal.

Modo Data Journaling tanto os dados quanto os metadados so


escritos uma vez no journal e outra na localizao. Este ltimo modo
tende a ser o mais seguro, pois todos os dados so guardados, no
entanto possui desempenho questionvel em alguns casos.
31

2.4.3. Sistemas de arquivos baseado em log

Em 1988 John K. Ousterhout e Fred Douglis propuseram o primeiro sistema


de arquivo baseado em log, e implementado no sistema operacional Sprite em
1992. O sistema de arquivo baseado em log tem a viso dos sistemas de arquivos
como um log circular, sendo que novos dados e metadados so gravados no incio
do log e o espao livre reivindicado a partir do final (JONES, 2009).

Este sistema de arquivo baseado em log foi desenvolvido, pensando nos


avanos tecnolgicos de processadores, memrias e capacidade de
armazenamento dos discos. No entanto, o tempo de busca em discos o nico
parmetro que no est em desenvolvimento to acelerado. Pensando nessa
combinao de fatores muitos sistemas de arquivos tem perda de desempenho
(TANENBAUM, 2010).

Com base na ideia anterior o LFS (log-structured file system) conceitua a


suposio de que os arquivos so armazenados na memria principal e que
aumentando no tamanho da memria, far com que a leitura desses arquivos seja
mais eficiente. O sistema de arquivo escreve todas as informaes do arquivo no
disco, em uma estrutura sequencial denominada log (TEAM, 2008).

Os sistemas de arquivo que so baseados nesse mecanismo de log, tem o


objetivo de estruturar o disco inteiro em uma tabela de log, onde todas as
modificaes possam ser registradas. Este mecanismo visa auxiliar na recuperao
dos dados a partir de um log (JONES, 2009).

Todas as operaes de escrita so armazenadas na memria, de tempo em


tempo, gravadas ao final do log. Desta forma na abertura de um arquivo, faz-se o
uso do mapa de localizao de um n-i, para ser possvel localizar os demais blocos
que podem estar em alguma posio do log.

Os discos possuem tamanhos limitados, portanto um log poderia at ocupar


um disco inteiro, no entanto esse mecanismo faz um tratamento de compactao
para que informaes desnecessrias possam ser descartadas. A estrutura deste
sistema de arquivo visualiza o disco como um log circular onde novos dados e
metadados so alocados no incio do log e o espao livre reivindicado a partir do
final. Tendo em vista que os dados podem aparecer duas ou mais vezes no log,
32

mas como o log avana cronologicamente os dados recentes so considerados os


ativos.

2.4.4. Sistema de arquivos usando armazenamento baseado em objeto

Um dispositivo de armazenamento de objetos (OSD) permite a criao de


uma administrao, compartilhamento e segurana no armazenamento
independente. Tornando as funcionalidades de baixo nvel, como gerenciamento de
espao, sejam acessados de dentro do dispositivo atravs de uma interface
(JONES, 2009).

O OSD torna o nvel de abstrao mais elevado nos dispositivos de


armazenamento baseado em blocos, pois enquanto uma est estruturado em uma
matriz lgica de blocos independentes, outro aparece como coleo de objetos. Um
objeto, pode ser considerado um arquivo tambm chamado de metadado-objeto,
sendo uma matriz abstrata esparsa de bytes indexados, podendo indo de zero ao
infinito (FACTOR et al, 2005).

Os objetos podem ser criados e excludos diferentemente dos dispositivos


de armazenamento em blocos. Tendo a necessidade dos sistemas de arquivos de
manipular a alocao de blocos para que os dados sejam escritos em espaos
livres, e lendo os dados num instante adiante tendo como objetivo os endereos e
no os dados. No entanto, nos OSD, o objetivo est na criao do objeto antes de
ser escrito em disco, e que a leitura seja feita a partir do objeto e no de endereo
em disco. Os objetos esto endereados todos no mesmo nvel, cada objeto possui
seu identificador, permitindo ao servidor ou usurio recuperar um objeto sem ter a
necessidade de conhecer a localizao fsica dos dados (WELCH, 2013).

O sistema de armazenamento baseado em objeto, segue o padro T-10


OSD. Este tipo de sistema de arquivo, manipula objetos de tamanhos variveis e
metadados associados, enquanto os tradicionais, manipulam blocos de tamanhos
fixos. Este tipo de armazenamento tem a necessidade de um driver OSD, e de um
inicializador OSD para armazenar os dados (JONES, 2009).
33

2.5. Sistema de Arquivos EXT

A primeira edio do sistema de arquivo EXT teve incio em abril de 1992,


pelo seu criador Remy Card. Utilizava um comutador Sistema de Arquivo Virtual
(VFS) no Linux e com suporte a arquivos de at 2 gigabytes, implementado no
kernel 0.96c. Logo aps em janeiro de 1993 lanado a verso seguinte, EXT2 com
suporte a arquivos de at 32 terabytes, ainda sendo desenvolvido por seu criador
(CARD,).

No entanto, foi no EXT3 em novembro de 2001, implementado ento por


Stephen Tweedie, que houve os mais significativos avanos para o sistema de
arquivo, sendo introduzido o conceito de journaling. Ficou mais estvel,
aumentando a confiabilidade, quando o sistema sofria uma brusca queda.
Entretanto ficou aqum em desempenho a outros formatos de arquivos da poca,
como o X File System (XFS) da Silicon Graphics e o IBM Journaled File System
(JFS) (MORIMOTO, 2007).

Mesmo com journaling possvel a corrupo dos arquivos, caso sejam


inseridas entradas errneas. Para tanto esse problema foi enfrentado no EXT4 com
a implementao de verificaes dos checksum do jornal, certificando que as
alteraes validas sejam feitas nos no sistema de arquivo.

Para efetuar a migraes dos primeiros EXT para EXT2 e EXT2 para EXT3
sempre foi aconselhado efetuar backup, para evitar possveis desastres nos
arquivos. Aps a chegada do EXT3 a converso se dava sem risco de dados
perdidos ou corrompidos. Mas todo profissional na rea de suporte sempre tem por
primeira regra fazer backup (MATHUR, 2007).

O ltimo e mais recente Forth Extended File System (EXT4) foi desenvolvido
por uma equipe de desenvolvedores liderados por Theodore Tso, responsvel pela
manuteno do EXT3. O EXT4 foi apresentado com inmeras particularidades,
quanto a desempenho, escalabilidade e confiabilidade. E ainda suportando
arquivos de at 1 exabyte (JONES, 2007).

O EXT4 adicionou valores conceituais de outros sistemas de arquivos,


dentre eles: abordagem baseada em extenses para o gerenciamento de blocos
implementado no Journaling File System (JFS), e o gerenciamento de blocos com
34

atrasos implementado no XFS e ZettaByte File System (ZFS) da Sun Microsystems


(JONES, 2007).

A escalabilidade do EXT4 foi a parte mais importante da evoluo superando


visivelmente o EXT3. Tratando e revolucionando o gerenciamento dos metadados,
blocos e inode.

Os registros de data e hora no EXT3 era baseado em segundos. No entanto,


a medida que evolui os processadores, e o Linux parte dos computadores de alto
desempenho e o registro de data e hora baseado em segundos falha, foi necessrio
expandir de modo que resistisse ao tempo. O intervalo de tempo foi estendido com
adicionais de dois bits, aumentando a vida til dos arquivos mais quinhentos anos
(JONES, 2007).

2.6. Sistema de Arquivo BTRFS: B-Tree File System

O sistema de arquivo BTRFS comeou a ser desenvolvido no incio de 2007


na Oracle Corporation por Chris Mason na qual este trabalhava em outro sistema
de arquivo o ReiserFS na SUSE/Novell. A proposta foi desenvolver um novo
sistema de arquivo inovador no qual fosse capaz de suprir todas as necessidades
existentes dos demais sistemas de arquivos (MASON, RODEH, BACIK, 2012).

O BTRFS est sendo desenvolvimento por diversas grandes empresas


renomadas como IOTM, OracleTM, StratoTM, IntelTM, SUSETM, Red HatTM, FujitsuTM
entre outros. Em 2009 a partir do kernel Linux 2.6.29 vrias distribuies
comearam a oferecer o BTRFS na instalao do sistema de arquivo raiz, tais como
(MASON, RODEH, BACIK, 2012):

Arch Linux

Debian

Fedora 15

Linux Sabayon

Rad Hat Enterprise Linux 6


35

Oracle Enterprise Linux 6.1

OpenSUSE 11.3

MeeGo

Slackware 13.37

Ubuntu 10.10

SLES 11 SP1

Os recursos oferecidos no BTRFS tem objetivo de torna-lo eficaz em


tolerncia a falhas e erros, garantindo confiabilidade no sistema de arquivo. Muitos
recursos existiam no ZFS da Sun Microsystem proprietria da SO Solaris e Open
Solaris. Para tanto considera-se o BTRFS o ZFS do GNU/Linux.

O BTRFS usa o conceito de copy-on-write (COW), fazendo snapshots,


checksum e clones eficientes. A ideia principal por padro usa rvores-b no
desenvolvimento da estrutura de dados para o disco, emprego de procedimento
top-down para atualizao, remove o encadeamento das folhas e usa a referncia
de contagem para gerenciamento de espao (MASON, RODEH, BACIK, 2012).

COW so snapshots que no ocupa nenhum espao em armazenamento


em si. Os snapshots so ponteiros extras que apontam para os mesmos blocos que
contm os dados. A medida que so feitas alteraes nos dados, os snapshots se
mantm. Imagine que seja necessrio fazer algo arriscado em um ambiente de
produo. Para tanto antes de mais nada pode-se fazer um snapshots, se algo der
errado apenas reverta o ltimo snapshots (SALTER, 2014).

O BTRFS suporta balanceamento online com RAID 0, RAID 1, RAID 10 e


outros. Isso pode ser incrementado a partir de um ambiente em produo padro
com apenas um disco. Na sequncia, outros discos podem ser montados. Vejamos
na sequncia alguns passos.

Primeiro descobrimos qual o ponto de montagem da partio com o


comando a seguir:

$sudo btrfs filesystem show


36

Na sequncia faz uma cpia do layout da tabela de parties para a segunda


unidade de disco e instala o gerenciador de boot para que em caso de perda da
primeira unidade de disco posso ser inicializado.

$sudo sfdisk -d /dev/vda | sudo sfdisk /dev/vdb


$sudo grub-install /dev/vdb
Em seguida adicionamos a segunda unidade ao nosso sistema de arquivo
BTRFS.

$sudo btrfs device add /dev/vdb1/

E finalizamos balanceando o sistema de arquivo com um RAID 1.

$sudo btrfs balance start dconvert = raid1 mconvert = raid1 /

A finalizao da operao no retorna at que seja terminada, no entanto o


sistema operacional, sistema de arquivo e demais funes do computador podem
continuar em operao. O BTRFS ainda permitiria a adio de mais discos e
converter o RAID 1 em RAID 5 com um terceiro disco, ou RAID 10 ou RAID 6 com
um quarto disco (SALTER, 2014).

Compactao transparente permitindo a economia de espao em disco, e a


desfragmentao para melhorar o desempenho do sistema de arquivo. Suporta a
arquivos de at 16Eb. (MASON, RODEH, BACIK, 2012).

O processo de clonagem no BTRFS no cria um novo link apontando para


um i-node existente. Em vez disso cria um novo i-node que compartilha inicialmente
os mesmos blocos em disco com o arquivo original. Com o COW os blocos de
dados reais no so duplicados e as modificaes nos arquivos clonados no so
visveis um no outro e vice-versa (MASON, RODEH, BACIK, 2012).

$ cp --reflink=always 50GB_file.qcow2 clone_50GB_file.qcow2


Entendendo o recurso de clonagem no BTRFS, com o exemplo do comando
anterior pode-se fazer cpias de grandes volumes em milsimos de segundos no
sendo necessrio espao adicional no disco. Est parte 50GB_file.qcow2, o
arquivo original no disco e na sequncia a parte clonada
clone_of_50GB_file.qcow2. No decorrer do tempo o arquivo clonado pode sofrer
alteraes se necessrio (SALTER, 2014).

A desfragmentao no BTRFS faz um processo de realocao na rvore,


afim de reorganizar o sistema de arquivo. O COW na desfragmentao usa um
37

algoritmo que cria uma rvore de realocao especial, servindo como um rascunho
para os metadados afetados. Logo as extenses afetadas a serem realocada so
copiadas para o destino, e progressivamente atualizadas para novo apontamento.
Quando o processo de desfragmentao estiver concludo, ou seja, os itens da
rvore de realocao, forem reorganizados, a rvore de realocao descartada
(MASON, RODEH, BACIK, 2012).

2.7. Benchmark

Nesta seo tratara da mensurao de desempenho dos sistemas de


arquivos propostos de acordo com o padro e particularidades de cada software.

IOZone

Software que mede o desempenho de sistemas de arquivo e tem por padro


megabyte por segundo (MB/s) como mtrica padro. Usar-se- neste trabalho
apenas as operaes write e read, no entanto este programa disponibiliza muitas
outras operaes:

Write: este teste tem por finalidade medir o desempenho de escrever um


novo arquivo. Quando um novo arquivo gravado no disco, esta
operao mais lenta que as demais, pois necessrio efetuar a
gravao dos dados e seus metadados (NARCOTT).

Read: mede o desempenho de ler um arquivo existente no disco


(NARCOTT).

Re-write: mede o desempenho de sobrescrever um arquivo, pois quando


um arquivo j existe, a dificuldade de rescrever menor, pois os
metadados j existem (NARCOTT).

Re-read: mede o desempenho de reler um arquivo no qual em um curto


perodo de tempo foi lido. Em sistemas operacionais dos quais dispe de
armazenamento em cache tende a um desempenho superior
(NARCOTT).
38

Random read: mede o desempenho de ler partes aleatrias de um


arquivo (NARCOTT).

Random write: mede o desempenho de gravar dados em posies


aleatrias de um arquivo (NARCOTT).

Compilebench

Esta ferramenta tem por objetivo simular operaes de entradas e sadas I/O
de disco atravs da criao, anexao, compilao e leitura de rvores do ncleo
do kernel. O compilebench indiretamente mede como os sistemas de arquivos se
comportam para manter a localizao de um diretrio a medida que o disco se
enche e os diretrios se envelhecem.

Postmark

Esta ferramenta simula o comportamento dos servidores de e-mail. O


Postmark consiste em trs fases. A primeira fase est em reservar grande espao
em disco a fim de alocar arquivos. Na fase seguinte so executados quatro tipos
de transaes, os arquivos so criados, lidos, anexados e excludos. E na ltima
fase todos os arquivos so excludos e o espao reservado liberado.

Bonnie++

Esta ferramenta foi desenvolvida por Russel Coker, especifica para sistemas
de arquivos em sistemas operacionais baseados em Unix.

Bonnie++ visa simular a maneira que algumas aplicaes funcionam


testando o I/O. Alm de testar a criao leitura e excluso de arquivos pequenos.
O resultado destes testes e simulaes inclui a velocidade de leitura e escrita,
nmeros de busca que pode ser realizado por segundos e o nmero de operaes
em arquivos de metadados que so realizados por segundo.
39

2.8. Phoronix Test Suite

O Phoroxix Test Sute (PTS) uma coleo de software integrados de testes


e monitoramento, no entanto predefinidos. Disponveis para vrias plataformas
Unix, Solaris, Mac OS x e BSD, e se encontra sob licena Gnu GLP v3 (MEDIA).

O software PTS projetado para realizar benchmarks qualitativos e


quantitativos de maneira limpa e reprodutvel, fcil de usar e de ser compreendido.

Para este trabalho foi escolhido apenas alguns dos vrios softwares que o
PTS disponibiliza, dentre eles:

IOzone v3.405.

Compilebench v0.6.

PostMark v1.51.
40

3. AMBIENTE EXPERIMENTAL

Para a apresentao dos resultados de desempenho e comparao deste


trabalho, como parte dos requisitos dos objetivos especficos, foram usados os
seguintes equipamentos e softwares.

3.1. Hardware

Processador: Intel Core i3-4170 @ 3.70GHz (4 Cores);

Memria: 2x 4096MB DDR3-1600MHz Kingston KHX1600C10D3;

Hard Disk: Solid-State Drive 240GB Kingston SHSS37A;

Chipset: Intel 4th Gen Core DRAM

Motherboard: Asus H81M-C

Interface de rede cabeada: Realtek RTL8111/8168/8411

3.2. Software

Sistema Operacional: Fedora 25 kernel 4.8.6-300.fc25.x86_64

Benchmark: Phoronix Test Suite;

Gerenciador de mdulos de kernel: modprobe;

Criador de diretrios: mkdir;


41

3.3. IOzone

O IOzone permite a parametrizao para os testes, como tamanho de bloco


e arquivo para leitura e gravao. Como mostra os testes seguintes:

Figura 7 IOzone Teste 1

No teste 1 da figura 7 o BTRFS, obteve um resultado inferior ao EXT4 na


leitura de arquivos, na parametrizao de blocos de 4 Kb e com arquivos de at
512MB. O BTRFS leu em torno de 3899,18MB/s enquanto EXT4 em torno de
4031,70MB/s.

Figura 8 IOzone: Teste 2


42

No teste 2 da figura 8, o desempenho do BTRFS foi superior, lendo a uma


velocidade de 4340,02MB/s, enquanto EXT4 apenas 4191,00MB/s. Demonstrando
um resultado diferente do teste anterior.

Figura 9 IOzone: Teste 3 e 4 resultados semelhantes

Os resultados da figura 9 apresentam semelhana, o BTRFS e o EXT4


fazendo leituras em arquivos de at 8GB com velocidade ligeiramente superior ao
EXT4, com tamanho de blocos com 4 Kb e 1MB respectivamente.

Figura 10 IOzone: Teste 5

No teste 5 da figura 10 na performance de escrita sistema de arquivo EXT4


conseguiu um desempenho superior em relao ao BTRFS, com blocos de 4 Kb e
43

com arquivos de at 512MB. O EXT4 conseguindo escrever dados a velocidade em


torno de 418MB/s contra 370MB/s do BTRFS.

Figura 11 IOzone: Teste 6

Note no teste 6 da figura 11 o desempenho superior de escrita do BTRFS


em relao ao EXT4. Neste teste com tamanho dos blocos em 64 Kb e escrevendo
arquivo de at 512MB. O BTRFS escreveu arquivos a velocidade em torno de
466MB/s contra 413MB/s do EXT4.

Figura 12 IOzone: Teste 7


44

O teste 7 da figura 12 com blocos de 4 Kb e escrevendo arquivo de at 8 Gb.


O desempenho do BTRFS em relao ao EXT4 foi menor, sendo a escrita em torno
de 370MB/s e 389MB/s respectivamente.

Figura 13 IOzone Teste 8

O teste 8 da figura 13 com blocos de 1 Mb e escrevendo arquivo de at 8


GB. O desempenho dos sistemas de arquivos BTRFS e EXT4 foram em torno de
377MB/s e 507MB/s respectivamente.

Conclui-se com a sequncia de testes com o benchmark IOzone para


sistemas de arquivos demonstrado at ento:

O desempenho de leitura do BTRFS foi superior em relao ao EXT4.

Na escrita o desempenho do EXT4 foi superior em relao ao BTRFS.

3.4. Compilebench

O Compilebench simula o envelhecimento de sistemas de arquivos, junto


com as operaes comuns de I/O do disco na compilao de kernel, correo e
criao, identificao e leitura de uma rvore. Este teste ainda mede o quo um
sistema de arquivo pode manter a localizao de diretrios a medida que o disco
se enche e os diretrios envelhecem.
45

Na figura 14 do teste 9, o EXT4 teve um desempenho surpreendente na


criao inicial de uma rvore de kernel com uma velocidade em torno de
306,89MB/s contra 206,64MB/s do BTRFS.

Figura 14 Compile Bench: TESTE 9

Na figura 15 do teste 10 seguinte, na compilao de rvores, ambos os


sistemas de arquivos tiveram um bom desempenho. No entanto, o EXT4 foi
superior, compilando arquivos numa velocidade em torno de 719MB/s, contra
672MB/s no BTRFS.

Figura 15 Compilebench: TESTE 10

No teste 11 da figura 16 medido o desempenho de leitura da rvore


compilada do sistema de arquivo. Neste teste o BTRFS ainda teve seu
desempenho ligeiramente superado pelo EXT4. A medio de leitura da rvore
compilada no EXT4 foi de 1058,78MB/s contra 1032,09MB/s do BTRFS.
46

Figura 16 Compile Bench: Teste 11

3.5. Postmark

Este benchmark PostMark executa cerca de 25.000 transaes com


diferentes tamanhos de arquivos. Simulando testes equiparveis a de servidores
web e servidores de e-mail.

Figura 17 PostMark: Teste 12

No teste 12 da figura 17 mostrado acima, o desempenho do BTRFS foi muito


semelhante ao do EXT4. Apesar da ligeira performance do EXT4 neste teste, o
BTRFS mostrou-se que pode acompanhar muito bem os demais sistemas de
arquivos.
47

CONCLUSO

Em um passado no muito distante os computadores no faziam parte da


vida cotidiana das pessoas quanto nos dias atuais. E a vida das pessoas no eram
documentadas em sistemas de arquivos como nos dias de hoje. Isso se deve aos
avanos constante das tecnologias.

Com base nesse panorama histrico das tecnologias, neste trabalho foram
feitos testes e comparaes, para chegar as seguintes observncias:

O sistema de arquivo EXT4 se mostrou muito eficiente na grande maioria


dos testes de escrita realizados.

Devido ao BTRFS ser baseado em rvore-b+ as leituras de arquivos


tiveram maior eficincia, com desempenho superior ao EXT4, mesmo com
na combinao de diferentes tamanhos de blocos e arquivos.

Na escrita de arquivos o EXT4 em relao ao BTRFS, foi superior. Porm


o BTRFS na escrita e alteraes de arquivos tem o cuidado de fazer
diversas verificaes constantes, dentre elas os checksuns, e snapshots.

Os recursos oferecidos pelo BTRFS so muitos superiores aos demais


sistemas de arquivos, devido a grande soma de ideias e dinmica na qual
este est estruturado.

o Um destaque est nos recursos de RAID que oferece uma grande


dinmica na implementao de redundncias e desempenho nos
sistemas de armazenamento de dados.

o Outro destaque est na clonagem de arquivos e volumes, que devido


a forma que o algoritmo e estrutura de dados na qual o sistema de
arquivo se comporta, pode-se fazer enormes clonesem ocupar espao
extra em disco.

Ainda pode-se destacar o processo de desfragmentao do BTRFS, pelo


fato da reorganizao e da forma estrutural como so tratados os arquivos
nos sistemas de armazenamento.
48

A maturidade do sistema de arquivo EXT4 se constatou maior em aspectos


de desempenho em leituras, escritas, compilaes e criaes. No entanto, este
sistema de arquivo apesar das grandes melhorias acrescidas a ele no seu
desenvolvimento, continua usando tecnologias antigas.

J o jovem sistema de arquivo BTRFS vem sendo visto por diversas


empresas citadas no decorrer do trabalho e por pesquisadores como sendo o
sistema de arquivo da prxima gerao, devido ao grande interesse destes em
mant-lo em constante desenvolvimento e aperfeioamentos.

A constante dinmica da tecnologia permite que o BTRFS continue sendo


acrescido de novas ideias e melhorias de desempenho. Como podemos observar
nos testes realizados em muitos aspectos o BTRFS se mostrou mais eficiente que
o EXT4. Com isso acreditasse que em um futuro muito prximo o BTRFS ser o
sistema de arquivo padro de muitas distribuies Linux.
49

REFERNCIAS

CARD, Remy. DESIGN AND IMPLEMENTATION OF THE SECOND EXTENDED


FILESYSTEM. Laboratoire MASIInstitut Blaise Pascal. Disponvel em:
<http://web.mit.edu/ tytso/www/linux/ext2intro.html>. Acesso em 20 de Abril de
2017.

CARRIER, B. FILE SYSTEM FORENSIC ANALYSIS. [S.l.]: Addison Wesley


Professional, 2005. ISBN 0-32-126817-2.

COMER, D. THE UBIQUITOUS B-TREE, COMPUTING SURVEYS 11. West


Lafayette, Indiana: Computer Sctence Department, Purdue Untverstty, 1979.
Disponvel em: <http://people.cs.aau.dk/~simas/aalg06/UbiquitBtree.pdf>. Acesso
em: 10 de Abril de 2017.

FACTOR, M. et al. OBJECT STORAGE: THE FUTURE BUILDING BLOCK FOR


STORAGE SYSTEMS. IBM Haifa Research Laboratories, 2005.

GIAMPAOLO, D. PRACTICAL FILE SYSTEM DESIGN. 1. ed. Morgan Kaufmann


Publishers, 1999. ISBN 1-55860-497-9. Disponvel em: <http://www.nobius.org/
~dbg/practical-file-system-design.pdf>. Acesso em: 23 de Abril 2017.

JONES, T. ANATOMY OF EXT4. IBM Developer Works, 2007. Disponvel em:


<http:// www.ibm.com/developerworks/linux/library/l-anatomy-ext4/>. Acesso em: 13
Maio 2017.

JONES, T. NEXT-GENERATION LINUX FILE SYSTEMS: NILFS(2) AND EXOFS.


Emulex Corp, out 2009. < https://www.ibm.com/developerworks/linux/library/l-nilfs-
exofs/ >.Acesso em 17 de junho de 2017.
50

ROBERT S. CASEY, et al. Punched Cards: THEIR APPLICATIONS TO SCIENCE


AND INDUSTRY, 1952. < http://journals.lww.com/soilsci/Citation/ 1952/11000/
Punched_Cards,_Their_Applications_to_Science_and.19.aspx. Acesso em 28 de
junho de 2017.

MASON, CHRIS; RODEH, OHAD; BACIK, JOSEF. BTRFS: THE LINUX B-TREE
FILESYSTEM, IBM Research, 2012.

MATHUR, A. THE NEW EXT4 FILESYSTEM. 2007. Disponvel em: <http://pub.cs.


sunysb.edu/~prade/Teaching/Spring13/prez/L18/ols2007v2-pages-21-34.pdf>.
Acesso em: 23 Abril de 2017.

MAZIERO, C. A. SISTEMAS OPERACIONAIS: CONCEITOS E MECANISMOS.


DINF - UFPR 2013.

MEDIA, P. PHORONIX TEST SUITE v5.2.0 (khanino) user manual. Phoronix Test
Suite. Disponvel em: <http://www.phoronix-test-suite.com/documentation/phoronix
-test-suite.pdf>. Acesso em: 16 Maio de 2017.

MEE, C.; DANIEL, E. MAGNETIC STORAGE Handbook. McGraw-Hill, 1996.. ISBN


9780070412750. Disponvel em: <http://books.google.co.in/books?id=
b5i7AAAAIAAJ>. Acesso em: 27 Abril de 2017.

MICROSOFT. DESCRIO DO SISTEMA DE ARQUIVO FAT32. Microsoft, ago.


2006. Disponvel em: <https://support.microsoft.com/pt-br/help/154997/description-
of-the-fat32-file-system>. Acesso em: 28 de Maio de 2017.
51

MOORE, G. CRAMMING MORE COMPONENTS ONTO INTEGRATED CIRCUITS.


Electronics Magazine, v. 38, n. 8, abr. 1965.

MORIMOTO, C. E. EXT3. Club do Hardware, 2007.< http://www.hardware.


com.br/livros/hardware/ext3.html> Acesso 28 de maio de 2017.

MURACH, J. MURACHS C SHARP 2005. [S.l.]: Mike Murach and Associates.,


2006.

NORCOTT, W. D. IOZONE FILESYSTEM BENCHMARK. Disponvel em: <http://


www.iozone.org/docs/IOzone_msword_98.pdf>. Acesso em: 15 de Maio 2017.

SALTER, J. BITROT AND ATOMIC COWS: INSIDE NEXT-GEN FILESYSTEM.


2014. https://arstechnica.com/information-technology/2014/01/bitrot-and-atomic-
cows-inside-next-gen-filesystems/. Acesso em 30 de Maio de 2017.

TANENBAUM, A. S. SISTEMAS OPERACIONAIS MODERNOS. 3. ed. [S.l.]:


Pearson Prentice Hall, 2010.

TEAM, N. NILFS OVERVIEW, NTT CORP. THE NILFS version 1, jul 2008.

WELCH, B. OBJECT STORAGE. Panasas, 2013. Disponvel em: <http://


www.direitonet.com.br/artigos/exibir/8062/Da-lei-penal-no-tempo>. Acesso em: 19
Abril 2017.

Você também pode gostar