ZFS vs XFS


62

Estamos pensando em construir um servidor de armazenamento de ~ 16 TB. No momento, estamos considerando o ZFS e o XFS como sistema de arquivos. Quais são as vantagens, desvantagens? O que precisamos procurar? Existe uma terceira opção melhor?


7
Nem os compare. O ZFS é um sistema de arquivos de nível empresarial moderno, como jfs2, wafl. O XFS era bom há 10 anos, mas hoje é apenas um fs da idade da pedra.
disserman

De certa forma, você não pode compará-los: XFS é um sistema de arquivos; O ZFS é um sistema de arquivos e muito mais: ele substitui o sistema de arquivos, o gerenciador de volume (como LVM) e o RAID. No entanto, o JFS não é mais mantido se a memória servir: no entanto, o XFS está ativo, mantido e robusto. De qualquer maneira - ZFS ou XFS - você não pode dar errado na minha opinião.
Mei

11
Eu ainda acho que essa pergunta é relevante, então escreverei nossa experiência aqui: XFS é simples, você instala, executa, é rápido, funciona. (HW ataque abaixo). O ZFS é salvo, possui compactação, mas é muito trabalho para ser ajustado para funcionar tão rápido quanto o XFS. Portanto, isso também depende da situação em que você espera que o servidor seja executado. (back-end do cluster. armazenamento do usuário, arquivamento, ...)
SvennD 15/10/16

Há também Hammer2 dragonflybsd.org/hammer
skan

Respostas:


44

Eu achei o XFS mais adequado para sistemas de arquivos extremamente grandes com possivelmente muitos arquivos grandes. Eu tenho um sistema de arquivos XFS de 3,6 TB em funcionamento há mais de 2 anos sem problemas. Definitivamente funciona melhor que o ext3, etc. nesse tamanho (especialmente quando se lida com muitos arquivos grandes e muita E / S).

O que você obtém com o ZFS é pool de dispositivos, striping e outros recursos avançados incorporados no próprio sistema de arquivos. Não posso falar com detalhes (deixarei que outros comentem), mas pelo que sei, você gostaria de usar o Solaris para obter o máximo benefício aqui. Também não está claro para mim o quanto o ZFS ajuda se você já estiver usando RAID de hardware (como eu).


33
O principal recurso do ZFS que você (geralmente) não encontra em outro lugar é o CRC em nível de bloco, que deve detectar (e impedir que) a corrupção de dados silenciosos. A maioria dos sistemas de arquivos assume que, se uma gravação for concluída com êxito, os dados serão realmente gravados no disco. Isso nem sempre é o caso, especialmente se um setor está começando a ficar "marginal". O ZFS detecta isso verificando o CRC na gravação resultante.
Avery Payne

3
E sim, eu gosto muito de XFS. :) O único problema que você deve ter em mente é a propensão a zerar setores que eram "ruins" durante uma recuperação de diário. Em alguns casos (raros), você pode acabar perdendo alguns dados ... Encontrado este documento com o termo de pesquisa do Google "xfs zeros fora de setores após a recuperação" pages.cs.wisc.edu/~vshree/xfs.pdf
Avery Payne

3
Uma das coisas de que gosto no XFS é o programa xfs_fsr"desfragmentação".
Cristian Ciupitu 21/06/2009

11
O utilitário dos CRCs no nível de bloco do ZFS é questionável. Discos rígidos e SSDs usam o código ECC Hamming para corrigir erros de um bit e relatar erros de dois bits. Se o ECC não puder corrigir de forma transparente o erro de leitura física, os dados serão perdidos de qualquer maneira e uma falha de leitura será relatada ao sistema operacional. Os CRCs não corrigem erros. Esse recurso é considerado um dos principais benefícios do ZFS, mas a verdade é que é redundante e não tem valor. Quanto ao bug do zero após falha de energia do XFS, que foi corrigido há muito tempo e não é relevante hoje.
Jody Lee Bruchon

@JodyLeeBruchon o que você escreveu está incorreto: embora seja verdade que os dispositivos de armazenamento já possuem código de paridade anexado aos dados, isso não significa que eles são capazes de proteger dados de ponta a ponta. Para atingir esse objetivo sem um sistema de arquivos de chechsumming, você precisa a) de uma pilha de armazenamento SAS T10 / DIF / DIX ou b) usar integridade de dispositivomapper dm .
shodanshok

75

O ZFS oferece vantagens além do RAID de software. A estrutura de comando é muito cuidadosa e intuitiva. Também possui dispositivos de compactação, snapshots, clonagem, envio / recebimento de sistema de arquivos e cache (aquelas novas unidades SSD sofisticadas) para acelerar a indexação de metadados.

Compressão:

#zfs set compression=on filesystem/home

Ele suporta instantâneos de cópia na gravação que podem ser montados ao vivo:

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

Clonagem do sistema de arquivos:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

Sistema de arquivos enviar / receber:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Envio / recebimento incremental:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Dispositivos de armazenamento em cache:

# zpool add filesystem cache ssddev

Tudo isso é apenas a ponta do iceberg, eu recomendo que você instale uma instalação do Open Solaris e tente isso.

http://www.opensolaris.org/os/TryOpenSolaris/

Edit : Isso é muito antigo, o Open Solaris foi descontinuado, a melhor maneira de usar o ZFS é provavelmente no Linux ou no FreeBSD .


Divulgação completa: eu costumava ser um arquiteto de armazenamento da Sun, mas não trabalhava para eles há mais de um ano, apenas estou empolgado com este produto.


Esse link não funcionou para mim com o www. Usehttp://opensolaris.org/os/TryOpenSolaris/
agregate1166877

Na verdade, eu diria que a melhor aposta para o zfs ainda é o FreeBSD. Faz parte do sistema há alguns anos. Então, meu palpite é que há a menor possibilidade de surpresas desagradáveis. Embora sejam apenas meus $ 0,02.
Fox

18

o uso de snapshots e xfs do lvm em sistemas de arquivos ativos é uma receita para o desastre, especialmente ao usar sistemas de arquivos muito grandes.

Estou executando exclusivamente LVM2 e xfs nos últimos 6 anos em meus servidores (em casa, mesmo que o zfs-fuse seja muito lento) ...

No entanto, não posso mais contar os diferentes modos de falha que encontrei ao usar os instantâneos. Eu parei de usá-los completamente - é muito perigoso.

A única exceção que vou fazer agora é meu backup pessoal de servidor de correio / servidor da web, onde faço backups noturnos usando um instantâneo efêmero, que é sempre igual ao tamanho da fonte fs e é excluído logo depois.

Aspectos mais importantes a serem lembrados:

  1. se você tem um sistema de arquivos grande (ish) que possui um instantâneo, o desempenho de gravação é terrivelmente degradado
  2. se você tiver um sistema de arquivos grande (ish) que possui uma captura instantânea, o tempo de inicialização será atrasado em literalmente dezenas de minutos, enquanto o disco estiver agitando e agitando durante a importação do grupo de volumes. Nenhuma mensagem será exibida. Esse efeito é especialmente horrível se o root estiver no lvm2 (porque a espera pelo dispositivo raiz expirará e o sistema não inicializar)
  3. se você tiver um instantâneo, é muito fácil ficar sem espaço. Depois de ficar sem espaço, o instantâneo fica corrompido e não pode ser reparado.
  4. Snapshots não podem ser revertidos / mesclados no momento (consulte http://kerneltrap.org/Linux/LVM_Snapshot_Merging ). Isso significa que a única maneira de restaurar dados de um instantâneo é realmente copiá-los (rsync?). PERIGO PERIGO: você não deseja fazer isso se a capacidade do instantâneo não for pelo menos o tamanho da fonte fs; Caso contrário, em breve você atingirá a parede de tijolos e acabará com a fonte fs e o instantâneo corrompidos. (Eu estive lá!)

11
Por acaso, hoje mesmo alguém confirmou que o vg com o snapshot - incapable-boot-linux ainda é atual: bugs.launchpad.net/lvm2/+bug/360237
Vejahe

Revisitando esse bug, eles ainda pensam que os problemas abismais de inicialização com os instantâneos são "comportamento normal para o lvm": bugs.launchpad.net/lvm2/+bug/360237/comments/7 (em 2012-01-07)
veja

11
Atualização: Mesmo estado. Só agora já faz mais 7 anos.
sehe

14

Algumas coisas adicionais em que pensar.

  • Se uma unidade morre em uma matriz RAID de hardware, independentemente do sistema de arquivos que está no topo, todos os blocos no dispositivo precisam ser reconstruídos. Mesmo os que não mantinham nenhum dado. O ZFS, por outro lado, é o gerenciador de volumes, o sistema de arquivos e gerencia a redundância e distribuição de dados. Portanto, ele pode reconstruir inteligentemente apenas os blocos que continham dados. Isso resulta em tempos de reconstrução mais rápidos, exceto quando o volume está 100% cheio.

  • O ZFS possui uma limpeza em segundo plano, que garante que seus dados permaneçam consistentes no disco e conserte os problemas encontrados antes de resultar na perda de dados.

  • Os sistemas de arquivos ZFS estão sempre em um estado consistente, portanto não há necessidade de fsck.

  • O ZFS também oferece mais flexibilidade e recursos com seus snapshots e clones, em comparação com os snapshots oferecidos pelo LVM.

Tendo executado grandes pools de armazenamento para produção de vídeo de grande formato em uma pilha Linux, LVM, XFS. Minha experiência foi que é fácil cair no microgerenciamento de seu armazenamento. Isso pode resultar em grandes quantidades de espaço alocado não utilizado e tempo / problemas com o gerenciamento de seus volumes lógicos. Isso pode não ser um grande problema se você tiver um administrador de armazenamento em tempo integral, cuja tarefa é microgerenciar o armazenamento. Mas descobri que a abordagem de armazenamento em pool do ZFS remove esses problemas de gerenciamento.


8

O ZFS é absolutamente incrível. Estou usando-o como meu servidor de arquivos doméstico para um servidor de arquivos HD de 5 x 1 TB e também em produção com quase 32 TB de espaço no disco rígido. É rápido, fácil de usar e contém algumas das melhores proteções contra corrupção de dados.

Estamos usando o OpenSolaris neste servidor, em particular porque queríamos ter acesso a novos recursos e porque fornecia o novo sistema de gerenciamento de pacotes e a maneira de atualizar.


7

Qual SO você planeja executar? Ou isso é outra parte da consideração? Se você estiver executando o Solaris, o XFS nem é uma opção, até onde eu sei. Se você não está executando o Solaris, como planeja usar o ZFS? O suporte é limitado em outras plataformas.

Se você está falando de um servidor Linux, eu continuaria com o Ext3 pessoalmente, apenas porque ele recebe a maior quantidade de testes. O zfs-fuse ainda é muito jovem. Além disso, tive problemas com o XFS uma vez, quando um bug causou corrupção de dados após uma atualização do kernel. As vantagens do XFS sobre o Ext3 definitivamente não superam os custos envolvidos na restauração da máquina, localizada em um datacenter remoto.


6
FreeBSD tem uma porta nativa madura de ZFS
Brian Gianforcaro

7
wiki.freebsd.org/ZFSKnownProblems Acho que sua definição de maduro pode ser diferente da minha :-) Talvez eu considere isso depois do lançamento do 8.0.
Kjetil Limkjær

9
ext3 com 16TB? Não não não. Não faça isso. Você vai chorar. ZFS ou XFS são os melhores sistemas de arquivos existentes na minha opinião. Use o ZFS, se puder (não execute no Linux). Digo isso com muita experiência em grandes volumes no Linux e Solaris há mais de 5 anos.
Thomas

3
O FreeBSD 7.2 após 20090601 tornou a maioria dos problemas do ZFSKnownProblems. Se você estiver executando a versão AMD64 do sistema operacional, agora ela é estável. Na 8.0, o FreeBSD marcou o ZFS como estável o suficiente para a produção.
Walter Walter

3
O ZFS no Linux já está disponível ( zfsonlinux.org )
James Moore

7

Eu não acho que você deva se concentrar no desempenho. Seus dados estão seguros com XFS, ext4, etc? Não. Leia estas teses de doutorado e trabalhos de pesquisa:

O XFS não é seguro contra corrupção de dados: pages.cs.wisc.edu/~vshree/xfs.pdf

E também não é o ext3, JFS, ReiserFS, etc.: zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent "Encontrei a fascinante tese de doutorado de Vijayan Prabhakaran, IRON File Systems, que analisa como cinco sistemas de arquivos de registro em diário de mercadorias - NTFS, ext3, ReiserFS, JFS e XFS - lidam com problemas de armazenamento.

Em poucas palavras, ele descobriu que todos os sistemas de arquivos têm

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "

Mas o ZFS protege seus dados com sucesso. Aqui está um artigo de pesquisa sobre isso: zdnet.com/blog/storage/zfs-data-integrity-tested/811


5

Não é uma resposta orientada para o FS, desculpe, mas saiba que vários controladores de disco não lidam com> 2 TB LUNS / discos lógicos - isso pode limitar a maneira como você organiza seu armazenamento. Eu só queria que você estivesse ciente para poder verificar seu sistema de ponta a ponta para garantir que ele lide com 16 TB por toda parte.


1

Depende dos recursos que você deseja ..., as duas opções razoáveis ​​são xfs e zfs, como você disse, o código xfs é muito bem testado Eu o usei pela primeira vez há 8 anos sob o IRIX

É possível obter instantâneos do xfs (usando lvm e xfs_freeze)

É possível ter um dispositivo de registro separado, por exemplo, SSD

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

Tradicionalmente, xfs grandes precisam de muita memória para verificar

O problema com zeros aparecendo era um recurso de "segurança", que acho que desapareceu há um tempo.


1

Além do que já foi mencionado, do ponto de vista do desempenho, o xfs no MD base raid tem um desempenho melhor que o zfs na mídia de streaming. Eu usei exatamente o mesmo hardware por meia década com xfs e quase a mesma quantidade de tempo com zfs no meu servidor de mídia. No Intel Atom 330 com xfs eu nunca experimentei stuter, no zfs em cenas complexas o mesmo hardware não consegue acompanhar e começa a soltar quadros.


0

Em vez de criar o seu próprio, uma alternativa é o Sun 7410, também conhecido como Toro. Possui algum software muito útil que acompanha a solução.


0

Bem pessoal, não vamos esquecer a mais recente adição ao zfs: deduplication. E vamos falar sobre o compartilhamento iscsi, nfs ou smb em tempo real. Como já foi dito, exportações de sistemas de arquivos zfs, snapshots, soma de verificação de bloco raidz (= raid5), largura de faixa dinâmica, gerenciamento de cache e muitos outros. Eu voto no zfs.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.