XFS: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Dorito voador20 (discussão | contribs)
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
{{esboço-informática}}
| 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. paraEra o seusistema de arquivos padrão no [[sistema operacional.]] Foi[[IRIX]] disponibilizadoda emSGI, dezembrocomeçando decom 1994sua no IRIXversão 5.3. FoiO XFS foi disponibilizadoportado para o [[núcleo do Linux]] em março2001. deA 2000partir (aberturade dojunho códigode fonte)2014, como XFS passou a versãoser 1.0suportado parapela Linuxmaioria lançadadas em[[Distribuição maioLinux|distribuições deLinux]], 2001;algumas foidas incorporadoquais aoo kernelusam 2.4.25como (fevereiroo sistema de 2004)arquivos padrão.
 
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.
==A partir daqui, precisa de revisão==
Possui [[journaling]] de [[metadados]] que vem com um robusto conjunto de funções e é otimizado para escalabilidade. Entretanto é recomendado usar este sistema de arquivos em sistemas rodando [[Linux]] com equipamento [[SCSI]] de ponta e/ou armazenamento em canais de fibra e fonte de energia sem interrupção.
 
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]].
Pelo fato de o XFS criar [[cache |cachês]] agressivamente de dados em uso na memória [[RAM]], programas mal desenhados (que não tomam precauções na hora de escrever os arquivos em disco, e existem muitos deles) podem perder uma grande quantidade de dados se o sistema for desligado sem aviso.
 
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 Sistema Operacional X K Ubuntu, traz no seu particionador, dentro de seu instalador, a opção de utilizar este método de alocação. De fato o desempenho com relação à velocidade é evidente se comparado ao EXT3 ou ReiserFS. O sistema Ubuntu famoso pelo boot demorado, utilizando o sistema de arquivos XFS, passa a carregar ligeiramente como o Microsoft Windows XP.
 
O XFS pode lidar com:
É necessário salientar, que a escolha o sistema de arquivos XFS, implica em o usuário obrigatoriamente, pelo menos no Ubuntu Linux, precisar utilizar o [[LILO]] (Linux Loader) ao invés do GRUB. Existe portanto uma imcompatibilidade para o arranque de sistema quando se opta pelo XFS. Um erro detectado no Ubunto Linux, na sua versão 7.04 foi que o LILO, não detectou automaticamente outros sistemas operacionais no Disco rígido, o que deverá ser feito manualmente.
 
&nbsp; &nbsp; Até 16 EB (exabytes) de tamanho total do sistema de arquivos
 
&nbsp; &nbsp; 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:
 
&nbsp; &nbsp; Potencializar o DMA (Acesso direto a memória)
 
&nbsp; &nbsp; Garantir uma taxa de I/O
 
&nbsp; &nbsp; 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:
 
&nbsp; &nbsp; Desfragmentar
 
&nbsp; &nbsp; Aumentar o tamanho do sistema de arquivos
 
&nbsp; &nbsp; 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:
 
&nbsp; &nbsp; xfsdump
 
&nbsp; &nbsp; 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] &mdash; 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 &mdash; [[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==
 
* [1] SWEENEYANDERSON, Adam; e outros.Curtis ''Scalability in the XFS fileet systemal''. ''Proceedings of the USENIX 1996 annual'xFS technicalproject conferencearchitecture'''. SanSilicon Graphics, DiegoInc. 19961993. Disponível em <https://web.archive.org/web/20090927012959/http://oss.sgi.com/projects/xfs/papersdesign_docs/xfs_usenixxfsdocs93_pdf/index.html>. Acesso em 0304 de outubro demar. 20072009.
 
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"/>
[[Categoria:Sistemas de ficheiros]]
 
{{Sistema de ficheiros}}
[[cs:XFS]]
[[daCategoria:XFSIRIX]]
[[Categoria:Sistemas de arquivos de disco]]
[[de:XFS (Dateisystem)]]
[[Categoria:Sistemas de arquivos suportados pelo núcleo do Linux]]
[[en:XFS]]
[[Categoria:Software de 1994]]
[[es:XFS]]
[[eu:XFS]]
[[fr:XFS]]
[[gl:XFS]]
[[hu:XFS]]
[[it:XFS]]
[[ja:XFS]]
[[lt:XFS]]
[[nl:XFS]]
[[pl:XFS]]
[[ru:XFS]]
[[sk:XFS]]
[[sv:XFS]]