XFS: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
Funcionalidade de sugestões de hiperligações: 3 hiperligações adicionadas. Etiquetas: Editor Visual Edição via dispositivo móvel Edição feita através do sítio móvel Tarefa para recém-chegados Sugerida: adicionar hiperligações |
|||
(Há 43 revisões intermédias de 25 utilizadores que não estão a ser apresentadas) | |||
Linha 1:
{{Info/Sistema de Arquivos
| nome = XFS
| nome_completo = XFS
| desenvolvedor = {{ubl|[[Silicon Graphics]]|[[Red Hat]]}}
| data_do_lançamento = 1994
| SO_do_lançamento = [[IRIX]] 5.3
| id_da_partição = 0x83 ([[Master Boot Record]])
| estrutura_de_diretório = [[Árvore B+]]
| estrutura_de_arquivos = Árvore B+
| estrutura_de_blocos_ruins =
| tamanho_máximo_de_arquivo = 8 [[Exbibyte]]s - 1 byte
| número_máximo_de_arquivos = 2<sup>64</sup>
| tamanho_máximo_do_nome_de_arquivo = 255 [[byte]]s
| tamanho_máximo_do_volume = 8 Exbibytes - 1 byte
| conjunto_de_caracteres_do_nomes_de_arquivo = Todos os caracteres exceto NUL and "/"
| datas_salvas = atime, mtime, ctime, crtime
| faixa_de_datas =
| resolução_de_datas = 1ns
| bifurcações_correntes =
| atributos = Sim
| permissões_do_sistema_de_arquivos = Sim
| compressão = Não
| criptografia =
| armazenamento_de_caso_único =
| SO = [[IRIX]], [[Linux]], [[FreeBSD]] (somente leitura, suporte à escrita experimental)
}}
O '''XFS''' é um [[Journaling|sistema de arquivos com registro]] de [[64 bits]] de alto desempenho criado pela [[Silicon Graphics]], Inc (SGI) em 1993.
O XFS é excelente na execução de operações paralelas de [[entrada/saída]] (E/S) devido ao seu design, que é baseado em [[grupos de alocação]] (um tipo de subdivisão dos volumes físicos nos quais o XFS é usado - também abreviado para ''AGs''). Por causa disso, o XFS permite extrema [[escalabilidade]] de [[thread (computação)|thread]]s de E/S, largura de banda do [[sistema de arquivos]] e tamanho dos arquivos e do sistema de arquivos em si, ao abranger vários dispositivos de armazenamento físico. O XFS garante a consistência dos dados, empregando o [[Journaling|registro]] de [[metadados]] e suportando [[Barreira de gravação|barreiras de gravação]]. A alocação de espaço é realizada por meio de [[Extensão (sistema de arquivos)|extensões]] com estruturas de dados armazenadas em [[Árvore B+|árvores B +]], melhorando o desempenho geral do sistema de arquivos, especialmente ao lidar com arquivos grandes. A [[Alocação em descarga|alocação atrasada]] auxilia na prevenção da fragmentação do sistema de arquivos. [[Desfragmentação]] online também é suportada. Um recurso exclusivo do XFS é a pré-alocação da largura de banda de E/S a uma taxa pré-determinada. Isso é adequado para muitos aplicativos em tempo real, no entanto, esse recurso era suportado apenas no IRIX e somente com hardware especializado.
Um usuário notável do XFS, a [[Divisão de Supercomputação Avançada da NASA]], aproveitou esses recursos para implantar dois sistemas de arquivos XFS de 300+ terabytes em dois servidores de armazenamento de arquivamento SGI [[Altix]], cada um deles diretamente conectado a várias matrizes de disco [[Fibre Channel]].
O XFS foi originalmente projetado e criado pela SGI e usado no sistema operacional IRIX e posteriormente foi portado para o Linux. Foi explicitamente projetado para lidar com grandes conjuntos de dados, bem como para lidar com tarefas de I/O paralelo de forma muito eficaz.
O XFS pode lidar com:
Até 16 EB (exabytes) de tamanho total do sistema de arquivos
Até 8 EB de tamanho máximo para um arquivo individual
O alto desempenho é um dos elementos principais do projeto XFS, que implementa métodos para:
Potencializar o DMA (Acesso direto a memória)
Garantir uma taxa de I/O
Ter flexibilidade para ajustar o tamanho do bloco para casar com o tamanho do bloco da camada de nível de disco como RAID ou LVM.
Em contraste com os sistemas de arquivos tradicionais, o XFS também pode fazer journal das informações cota. Isso reduz o tempo de recuperação de um sistema de arquivos que usa cotas. Além disso, o journal pode ficar em um dispositivo externo.
Tal como acontece com os outros sistemas de arquivos UNIX e Linux, o XFS suporta atributos estendidos.
A manutenção de um sistema de arquivos XFS é facilitada pelo fato de que a maior parte das tarefas de manutenção podem ser feitas on-line (ou seja, com o sistema de arquivos montado).
Exemplos dessas operações:
Desfragmentar
Aumentar o tamanho do sistema de arquivos
Fazer Dump e Restore (Backup de baixo nível)
Backup e restauração de baixo nível podem ser feitos com os utilitários nativos do XFS:
xfsdump
xfsrestore
que podem ser convenientemente colocados em pausa para continuar depois.
Como esses utilitários também são multi-thread, as operações de dump e restore do XFS podem ser realizados muito rapidamente.
Enquanto o XFS não suporta diretamente snapshots, o utilitário xfs-freeze pode ser usado para suspender o sistema de arquivos, permitindo assim que um snapshot possa ser feito por uma ferramenta que opera no nível do disco como as ferramentas do Linux LVM. O LVM usará automaticamente o xfs-freeze para desativar o sistema de arquivos para fazer snapshots.
O XFS suporta cotas e os comandos tradicionais de cota podem ser usados. No entanto, se você usar o comando xfs-quota você pode usar as cotas por diretórios que o XFS suporta.
==História==
A SGI usava, no seu sistema operacional [[IRIX]], o sistema de arquivos [[EFS]] (''Extent File System''), o qual era baseado no FFS (''Fast File System'') de [[Berkeley]] (criado por Marshall McKusick [McKusick, 2004]). O EFS usava alocação por extensões, em vez da alocação por blocos do FFS.
As principais limitações do EFS eram: limite de 8 GiB para o volume, arquivos com tamanho máximo de 2 GiB, taxa de transferência menor que a disponibilizada pelo ''hardware''. Isso no início da década de 1990. Assim, o XFS foi projetado para substituir o EFS, visando escalabilidade e suporte a arquivos grandes. [SWEENEY ''et al'', 1996]
Em outubro de 1993 foram publicados alguns artigos descrevendo o projeto para um novo sistema de arquivos [ANDERSON ''et al'', 1993; DOUCETTE, 1993] — o nome do projeto era ''xFS''. O XFS foi disponibilizado em dezembro de 1994 no IRIX 5.3 [ELLIS e RAITHEL, 1994].
Em outubro de 1999, no ''3rd annual Atlanta Linux Showcase'', Mostek ''et al'' apresentaram um trabalho mostrando como adaptar o XFS para o Linux [MOSTEK, 1999]. Em maio de 2001 foi lançada a versão 1.0 para Linux, por meio de ''patches''. Finalmente, foi incorporado ao [[Linux (núcleo)|Linux]] 2.4.25, em fevereiro de 2004.
==Principais características==
* O XFS é um sistema de arquivos desenvolvido em 64 bits, compatível com sistemas de [[32 bits]]. Em plataformas de 64 bits, possui um limite de tamanho de 8 EiB para um volume e para cada arquivo; em 32 bits, usando page frame de 4 KiB, o tamanho máximo do volume ou de um arquivo é limitado a 16 TiB <ref group="nota">{{Citar web |url=http://oss.sgi.com/projects/xfs/index.html |titulo=Cópia arquivada |acessodata=2008-12-24 |arquivourl=https://web.archive.org/web/20130606024601/http://oss.sgi.com/projects/xfs/index.html |arquivodata=2013-06-06 |urlmorta=yes }}</ref>.
* Efetua alocação por extensões (v. abaixo) em vez de alocação por blocos.
* Usa alocação dinâmica de [[inode|nós-i]].
* É um sistema de arquivos com ''[[journaling]]''.
==Estrutura==
A descrição será baseada no texto de Naujok [2006]. Algumas particularidades atuais referem-se à implementação para Linux, pois a última versão do Irix é de 2006 <ref group="nota"> http://www.sgi.com/products/software/irix/releases/irix6530.html </ref>.
O tamanho do bloco deve ser menor ou igual ao tamanho da moldura de página; portanto pode ser de 512, 1.024, 2.048 ou 4.096 bytes (x86, x86-64), até 8.192 bytes (várias arquiteturas [[RISC]]), ou até 16.384 bytes (IA-64 — [[Itanium]]). Não utiliza mapa de bits para gerenciamento de blocos e nós-i.
Um volume XFS é dividido em grupos de alocação (AG: ''Allocation Group''), que são conjuntos de blocos (análogos aos grupos de blocos do Ext3 e grupos de cilindros do UFS1), cujo tamanho varia entre 16 MiB e 1 TiB. Por padrão são criados 8 grupos, exceto quando o tamanho da partição é maior que 8 GiB. A quantidade pode ser definida manualmente na formatação. Cada AG contém o superbloco (único, o superbloco em cada AG subseqüente é cópia do primeiro), os nós-i e informações dos blocos referentes ao próprio grupo.
Um nó-i tem um tamanho padrão de 256 bytes, podendo chegar a 2.048 bytes, desde que não exceda o tamanho do bloco. Os nós-i são criados dinamicamente, em grupos (''chunks'') de 64. Uma estrutura em árvore balanceada (''B-tree'') é usada para gerenciar esses grupos. Um nó-i é dividido em 3 partes: (i) o núcleo (''core''); (ii) área de dados (''data fork''); (ii) atributos estendidos (''extended attribute fork'').
O núcleo, cujo tamanho é 96 bytes, contém as seguintes informações, dentre outras: permissões e tipo do arquivo; dono (UID) e grupo (GID); número de referências (''nlink'', análogo ao ''hard link''); tempos (''atime'', ''ctime'', ''mtime''); tamanho do arquivo, em bytes; número de extensões.
A área de dados, quando o arquivo é regular, contém: (i) ponteiros para as extensões (no máximo 19, para nós-i de 256 bytes e sem o uso de atributos estendidos); ou (ii) ponteiro(s) para lista(s) de extensões (em árvores balanceadas). Neste caso, o ponteiro pode ser para um árvore em 2 níveis, onde o primeiro nível aponta para outra árvore, que finalmente irá conter os ponteiros para as extensões do arquivo. Cada árvore pode apontar para até 254 extensões.
A alocação é feita por extensões (''extents''), que são agrupamentos de blocos contíguos; cada extensão pode ter até 8 GiB, quando o tamanho do bloco é de 4 KiB (a estrutura que usa a extensão reserva 21 bits para o tamanho da extensão em blocos). Para cada AG são mantidas duas estruturas em árvore balanceada para gerenciar os blocos: uma ordenada (decrescentemente) pelo tamanho de cada extensão; outra pelo endereço do bloco inicial de cada extensão.
Possui ''journaling'' de [[metadados]] e um extenso conjunto de ferramentas para manutenção, otimização e recuperação de dados e metadados. Não possui ferramenta para recuperar arquivos apagados.
XFS(estrutura)
O XFS oferece suporte ao endereçamento de 64 bits e fornece desempenho bastante elevado utilizando árvores B+ tanto para a alocação de diretórios quanto de arquivos. O XFS também usa alocação baseada em extensão com suporte a tamanhos de blocos variáveis (de 512 bytes a 64KB). Junto com as extensões, o XFS usa alocação com atraso, na qual a alocação dos blocos do disco é atrasada até que os blocos sejam gravados no disco. Essa funcionalidade aprimora as opções de alocação de blocos sequenciais de discos, pois o número total necessário já será conhecido.
== Propriedades ==
Outras propriedades interessantes do XFS são a taxa garantida de entrada/saída (E/S —por meio de uma reserva de largura de banda para usuários do sistema de arquivos) e E/S direta, na qual os dados são copiados diretamente entre o disco e o buffer de espaço do usuário (em vez de serem armazenados por meio de vários buffers). O XFS usa a política com registro de mudanças no modo nova gravação.
==Referências==
DOUCETTE, Doug. '''xFS project description'''. Silicon Graphics, Inc. 1993. Disponível em <https://web.archive.org/web/20090927012959/http://oss.sgi.com/projects/xfs/design_docs/xfsdocs93_pdf/>. Acesso em 04 mar. 2009.
ELLIS, Susan; RAITHEL, John. '''Getting started with XFS filesystems'''. Silicon Graphics, Inc. 1994. Disponível em <https://web.archive.org/web/20091007171236/http://oss.sgi.com/projects/xfs/papers/getting_started_with_xfs.pdf>. Acesso em 06 jun. 2006.
MOSTEK, Jim ''et al''. '''Porting SGI XFS file system to Linux'''. Apresentado no ''3rd annual Atlanta Linux Showcase'' -- 1999. Disponível em <https://web.archive.org/web/20100215155425/http://oss.sgi.com/projects/xfs/papers/als/als.pdf>. Acesso em 24 maio 2006.
NAUJOK, Barry. '''XFS filesystem structure'''. 2.ed. rev.2. Silicon Graphics, Inc. 2006. Disponível em <https://web.archive.org/web/20071109071255/http://oss.sgi.com/projects/xfs/publications.html>. Acesso em 03 out. 2007.
SWEENEY, Adam ''et al''. '''Scalability in the XFS file system'''. ''Proceedings of the USENIX 1996 annual technical conference''. San Diego. 1996. Disponível em <https://web.archive.org/web/20070930235307/http://oss.sgi.com/projects/xfs/papers/xfs_usenix/index.html>. Acesso em 03 out. 2007.
==Ligações externas==
<references group="nota"/>
{{Sistema de ficheiros}}
[[
[[Categoria:Sistemas de arquivos de disco]]
[[Categoria:Sistemas de arquivos suportados pelo núcleo do Linux]]
[[Categoria:Software de 1994]]
|