ZFS: O sistema de arquivos do futuro - Por Fernando Massen

Post on 17-May-2015

5.262 views 0 download

Transcript of ZFS: O sistema de arquivos do futuro - Por Fernando Massen

1 / 34

ZFS: O Sistema de Arquivos do Futuro

Fernando Massen

30 de novembro de 2007

Historico dos sistemas de arquivo

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

2 / 34

● Sistema de arquivo comecaram armazenando arquivosnum unico diretorio.

● Sem garantias de armazenagens.● Em alguns sistemas de arquivos, com 6 caracteres de

nome. Outros mais sofisticados, 8.3. O luxo era ter 34caracteres.

● Depois nao tinha sistema que nao possuısse as arvoresde diretorios.

● 2 Gigabytes devem ser suficientes para todo mundo.

Meu cenario

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

3 / 34

HDs vao e vem

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

4 / 34

Figura 1: ... e deveriam ficar os dados.

Meu problema: “x” arquivos

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

5 / 34

● Eu tenho um problema: armazeno alguns milhoes dearquivos em HDs.

● Em casa, primariamente, HTMLs e JPGs; No trabalho,.docs e .xmls, dumps de bancos de dados diversos.

● Dispositivos diferentes: de pen-drives a HDs de 300+gigabytes.

● Falhas de energia podem ocorrer, de forma aleatoria. Oscomputadores tambem nao sao confiaveis.

● Imagine um mini-“internet archive”.

Ja tentei UFS (OpenBSD)

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

6 / 34

● O UFS e bom. Relativamente rapido, conta com aseguranca de operacao do OpenBSD.

● O problema e que ele tem algumas limitacoes de espaco;como FFS2 eu ja nao as atingirei dentro de 3 anos.

● Ele e relativamente seguro contra perda de arquivos.Nunca perdi um filesystem com ele.

● So que o fsck demora muito por HD. Quando eu tinha umHD de 120 Gbytes, demorava 15 minutos para fazer ofsck.

● Eliminar o fsck nao faz parte do plano do OpenBSD (porenquanto).

Ja tentei HFS+ (Mac OS X)

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

7 / 34

● O HFS+ e incrivelmente maduro, um dos sistemas maisantigos em uso.

● Rapido.● Funciona bem com infinidades de arquivos.● Ainda nao perdi nenhuma particao com ele.● Tem as facilidades de uso do MacOS X. Isso garante que

nao ha administracao de filesystem com ele.● Spotlight ajuda horrores.● O problema e que so funciona bem no MacOS X.

Ja tentei ReiserFS

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

8 / 34

● Ja perdi mais de 7 sistemas de arquivos com ReiserFS.● Nuff said.

Ja tentei XFS

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

9 / 34

● O XFS e bom demais.● Administracao praticamente zero.● Se eu tenho que usar Linux, uso XFS.

Nunca tentaria: Ext2, FAT e NTFS

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

10 / 34

Na verdade, ja tentei e ja me dei muito mal com essessistemas de arquivo de brinquedo.

Minhas necessidades

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

11 / 34

Alem de um bom sistema de arquivos, preciso que o host mede:

● Administracao zero.● Rapidez para arquivos pequenos. Nao precisa ser tao

rapido assim em transferencias absurdas.● NFS.● SMB (para o legado, sabe?).● Pesquisa via ht.dig, pelo menos.● Tem que garantir que, depois duma falha eletrica, as

coisas estejam la.

Encontrei o ZFS.

❖ Historico dossistemas de arquivo

Meu cenario

❖ HDs vao e vem❖ Meu problema: “x”arquivos

❖ Ja tentei UFS(OpenBSD)

❖ Ja tentei HFS+(Mac OS X)

❖ Ja tentei ReiserFS

❖ Ja tentei XFS❖ Nunca tentaria:Ext2, FAT e NTFS

❖ Minhasnecessidades

❖ Encontrei o ZFS.

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

12 / 34

● Um dia eu resolvi instalar o OpenSolaris, depois dealguns anos sem usar Solaris em casa (apesar de ter deusar no trabalho).

● Incrıvel como o Solaris 10 mudou em relacao ao 9. Epraticamente outro sistema operacional.

● Li as duas manpages que compreendem 99● Como o sistema ja instalou um “pool” ZFS por padrao,

resolvi criar novos sistemas de arquivo com ele.● Que barbada.

Caracterısticas

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

❖ Onde o ZFS roda?❖ Caracterısticas doZFS❖ Curiosidades doZFS❖ Manutencaorevoltantementesimples

❖ O que e um“pool”?

❖ Criando sistemasde arquivo

❖ Buscandoinformacoes

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

13 / 34

Onde o ZFS roda?

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

❖ Onde o ZFS roda?❖ Caracterısticas doZFS❖ Curiosidades doZFS❖ Manutencaorevoltantementesimples

❖ O que e um“pool”?

❖ Criando sistemasde arquivo

❖ Buscandoinformacoes

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

14 / 34

Atualmente, o ZFS roda nos seguintes sistemasoperacionais:

● Linux, via FUSE (dizem que e lento, mas e divertido usar)● FreeBSD 7 (primeiro porte extra-Sun que funcionaria

100%)● OpenSolaris● Solaris 10● MacOS X (read-only)

Caracterısticas do ZFS

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

❖ Onde o ZFS roda?❖ Caracterısticas doZFS❖ Curiosidades doZFS❖ Manutencaorevoltantementesimples

❖ O que e um“pool”?

❖ Criando sistemasde arquivo

❖ Buscandoinformacoes

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

15 / 34

● Vem com gerenciamento de volumes embutido.● Vem com gerenciamento de particoes embutido.● Gerencia sozinho quase todos os aspectos.● E um filesystem de 128 bits.● Portavel.● Versionado manualmente (bom para automacoes!)● Tenta garantir o maximo possıvel contra a corrupcao dos

dados.● Compressao automatica.● Encriptacao em andamento.● Pode armazenar outros filesystems, mas daı perde-se

algumas vantagens.

Curiosidades do ZFS

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

❖ Onde o ZFS roda?❖ Caracterısticas doZFS❖ Curiosidades doZFS❖ Manutencaorevoltantementesimples

❖ O que e um“pool”?

❖ Criando sistemasde arquivo

❖ Buscandoinformacoes

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

16 / 34

● Suporta tantos dados que seria impossıvel reunir materialfısico para representa-los (com as tecnologias atuais).

● O nome inicial era “ZettaByte Filesystem”.● As ideias do ZFS nao sao novas, apenas nao foram

implementadas num produto so, duma so vez, querodasse sobre Unix e custasse $0.

Manutencao revoltantemente simples

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

❖ Onde o ZFS roda?❖ Caracterısticas doZFS❖ Curiosidades doZFS❖ Manutencaorevoltantementesimples

❖ O que e um“pool”?

❖ Criando sistemasde arquivo

❖ Buscandoinformacoes

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

17 / 34

● A manutencao pode ser feita atraves de dois comandos:zpool (gerencia dispositivos) e zfs (gerencia os sistemasde arquivo).

● Nao precisa desfragmentar (doh!).● Nao precisa particionar / formatar / etc.● Gerencia automaticamente espaco disponıvel.● Na verdade foi desenhado para nao precisar de

manutencao.

O que e um “pool”?

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

❖ Onde o ZFS roda?❖ Caracterısticas doZFS❖ Curiosidades doZFS❖ Manutencaorevoltantementesimples

❖ O que e um“pool”?

❖ Criando sistemasde arquivo

❖ Buscandoinformacoes

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

18 / 34

● E uma unidade de armazenamento em massa.● Pode ser um HD, um dispositivo iSCSI, uma unidade

flash (pendrive, por exemplo).● Pode ser um Drive Zip, ate.● E adicionado via comando zpool (zpool add ...).● Passa a fazer parte do conjunto de ”memorias em disco”,

tal qual fosse memoria RAM.● Os dispositivos dentro dum pool podem ser adicionados

como “RAM” adicional ou como “estepes” dum conjuntoRAID.

● Os dados sao parelhados logo que o dispositivo entra noar.

● Um pool por controladora, pelo menos, e no maximo umpor particao ”DOS”(quatro ao total) por disco, se for emx86.

Criando sistemas de arquivo

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

❖ Onde o ZFS roda?❖ Caracterısticas doZFS❖ Curiosidades doZFS❖ Manutencaorevoltantementesimples

❖ O que e um“pool”?

❖ Criando sistemasde arquivo

❖ Buscandoinformacoes

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

19 / 34

● Ao adicionar um novo dispositivo no pool, o filesystem jaesta criado.

● Depois de criado, basta digitar

zpool create -m <mountpoint> pool/<nome_do_fs>

● E so isso. Alias, o -m e opcional.● Sim, da para criar quantos quiser. Ha limitacoes praticas

no numero de sistemas de arquivos, mas da para ter uns5000 sistemas de arquivos tranquilamente em discoscomuns.

● Recomenda-se criar um filesystem por usuario, porexemplo.

Buscando informacoes

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

❖ Onde o ZFS roda?❖ Caracterısticas doZFS❖ Curiosidades doZFS❖ Manutencaorevoltantementesimples

❖ O que e um“pool”?

❖ Criando sistemasde arquivo

❖ Buscandoinformacoes

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

20 / 34

Os comandos zpool e zfs tambem informam as condicoesatuais dos discos.(hora de mostrar os resultados)

Coisas que ele nao tem

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem❖ Nao haparticionamento

❖ Nao haformatacao

❖ Nao hadesfragmentacao

❖ Nao ha fsck /chkdsk❖ Nao ha corrupcaode dados

Y Otras Cositas Mas

Niet alles zijn rozen

21 / 34

Nao ha particionamento

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem❖ Nao haparticionamento

❖ Nao haformatacao

❖ Nao hadesfragmentacao

❖ Nao ha fsck /chkdsk❖ Nao ha corrupcaode dados

Y Otras Cositas Mas

Niet alles zijn rozen

22 / 34

Voce particiona RAM?

Nao ha formatacao

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem❖ Nao haparticionamento

❖ Nao haformatacao

❖ Nao hadesfragmentacao

❖ Nao ha fsck /chkdsk❖ Nao ha corrupcaode dados

Y Otras Cositas Mas

Niet alles zijn rozen

23 / 34

● A criacao de novos sistemas de arquivo e instantanea.Ocorre ao digitar o comando zpool.

● Alias, como o sistema de arquivos possui copy-on-write(COW), ele so copia os dados quando sao modificados.Entao, copias de arquivos para o mesmo filesystem saoinstantaneas e nao ocupam dois “inodes” diferentes.

Nao ha desfragmentacao

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem❖ Nao haparticionamento

❖ Nao haformatacao

❖ Nao hadesfragmentacao

❖ Nao ha fsck /chkdsk❖ Nao ha corrupcaode dados

Y Otras Cositas Mas

Niet alles zijn rozen

24 / 34

Todo FS fragmenta; vale a pena lembrar que quase todos osFSs de Unix se auto desfragmentam ou nao sofrem dessemal.

Nao ha fsck / chkdsk

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem❖ Nao haparticionamento

❖ Nao haformatacao

❖ Nao hadesfragmentacao

❖ Nao ha fsck /chkdsk❖ Nao ha corrupcaode dados

Y Otras Cositas Mas

Niet alles zijn rozen

25 / 34

Como todo o dado e gravado e posteriormente gravadoatraves de mecanismos de checksum (que podem serconfigurados ou, em casos de loucura, desligados), nao haporque executar fsck depois de uma queda de energia.Mas isso acontece porque...

Nao ha corrupcao de dados

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem❖ Nao haparticionamento

❖ Nao haformatacao

❖ Nao hadesfragmentacao

❖ Nao ha fsck /chkdsk❖ Nao ha corrupcaode dados

Y Otras Cositas Mas

Niet alles zijn rozen

26 / 34

● ... o sistema de arquivos sempre esta ıntegro. Essatalvez seja a maior proeza do ZFS.

● A prioridade do sistema de arquivos e manter asestruturas de disco intactas.

● Se voce construir um RAID-Z, com redundancias eestepes suficientes, da para dizer (na teoria) que vocenunca vai ter um sistema de arquivos corrompido.

● Pessoalmente acho impossıvel fora de laboratorios, masate agora nao ocorreu.

● A Sun tinha um ambiente de testes onde um sistema dearquivo sofria milhoes de desligamentos e reinıcios, enao houve nenhuma falha nos builds pre-release.

● De qualquer forma...

Y Otras Cositas Mas

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

❖ Backups

❖ Snapshots

❖ Compatıvel

Niet alles zijn rozen

27 / 34

Backups

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

❖ Backups

❖ Snapshots

❖ Compatıvel

Niet alles zijn rozen

28 / 34

● Fazer backups e tao facil quanto um zfs send.● As ferramentas de backup continuam funcionando. Uso

tar e rsync, e estou feliz com eles.● Por mais que eu goste do ZFS, eu continuo fazendo

backups fanaticamente.

Snapshots

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

❖ Backups

❖ Snapshots

❖ Compatıvel

Niet alles zijn rozen

29 / 34

● Ja devem ter ouvido falar do “Time Machine”, do Mac OSX novo. E praticamente isso, so que o proprio sistema dearquivos ja o tem.

● O comando, como era de se esperar, e zfs snapshot.● Esses “snapshots” sao read-only, e podem ser

becapeados / restaurados / deletados / clonados com ocomando zfs.

● Como tem o conceito COW, so ocupam espaco se saomodificados.

Compatıvel

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

❖ Backups

❖ Snapshots

❖ Compatıvel

Niet alles zijn rozen

30 / 34

● Quase nenhuma (aquele 0,1%) aplicacao precisa sermodificada para rodar sob ZFS. Ate agora, ja rodeipraticamente tudo em cima.

● Ha quedas de performance em certos problemas. Ja hatambem certas praticas a se remediar essas questoes; acada build do OpenSolaris o ZFS tambem esta ficandomais robusto.

● NFS, SMB e outros protocolos funcionam identicamente;porem o ZFS tem seu proprio mecanismo paracompartilhar FSs via NFS (que e muito bom por sinal).

● Certas aplicacoes precisam ter um tamanho de clusterespecıfico para obter melhor performance (Postgres vema cabeca, embora eu nao tenha mudado nada). Isso sefaz ao digitar um zfs create.

Niet alles zijn rozen

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

❖ Problemas quetive

❖ Utopias

❖ So...

31 / 34

Problemas que tive

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

❖ Problemas quetive

❖ Utopias

❖ So...

32 / 34

● Supomos que voce tenha criado um FS chamado/mnt/datum, e outro para um diretorio-filho, chamado/mnt/datum/html. Ao montar via NFSv3, so o pai emontado. O filho requer um mount adicional. Issoenfurece.

● Em drives USB, a minha versao de OpenSolaris travava acada 8 horas (ja que ela “reseta” as portas USB, e ele daum “kernel panic” se nao ha spares em pools comdefeitos desse tipo). Espero que ja tenha sido corrigido oproblema; minha versao de OS e 62, e atualmente o buildesta em 70+.

● Um dia um HD apresentou defeito. Era um HD novo.Descobri que nao havia defeito nenhum: era oOpenSolaris que nao gostava de drives em “cable select”para meu chipset. Foi mal, aı. Nenhum animal ou FS saiuferido do experimento.

Utopias

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

❖ Problemas quetive

❖ Utopias

❖ So...

33 / 34

● Que o Linux e o OpenBSD tenham nativo esse FS.● Que o problema que reportei do kernel panic tenha sido

resolvido.● Que o OpenSolaris seja portado para PowerPC, para eu

poder aproveitar 50● Que alguem o porte para SPARC32, ja que o

OpenSolaris so funciona em SPARC64 (UltraSPARC).

So...

❖ Historico dossistemas de arquivo

Meu cenario

Caracterısticas

Coisas que ele naotem

Y Otras Cositas Mas

Niet alles zijn rozen

❖ Problemas quetive

❖ Utopias

❖ So...

34 / 34

That’s all folks!plan9ner@gmail.comhttp://slowhome.org/ferhr/tchelinux/http://juliobiason.net/ferhr/tchelinux/