Qual sistema de arquivos para LVM grande de discos (8 TB)?

21

Eu tenho um servidor Linux com muitos discos de 2 TB, todos atualmente em um LVM, resultando em cerca de 10 TB de espaço. Eu uso todo esse espaço em uma partição ext4 e atualmente tenho cerca de 8,8 TB de dados.

O problema é que geralmente recebo erros nos meus discos e, mesmo que eu os substitua (ou seja, copio o disco antigo para um novo com o dd, coloco o novo no servidor), assim que os erros aparecem, Costumo receber cerca de 100 MB de dados corrompidos. Isso faz o e2fsck enlouquecer toda vez e geralmente leva uma semana para colocar o sistema de arquivos ext4 em um estado saudável novamente.

Portanto, a pergunta é: O que você recomendaria que eu usasse como sistema de arquivos no meu LVM? Ou o que você recomendaria que eu fizesse (eu realmente não preciso do LVM)?

Perfil do meu sistema de arquivos:

  • muitas pastas de diferentes tamanhos totais (algumas totalizando 2 TB, outras totalizando 100 MB)
  • quase 200.000 arquivos com tamanhos diferentes (3/4 deles com cerca de 10 MB, 1/4 entre 100 MB e 4 GB; atualmente não posso obter mais estatísticas sobre arquivos, pois minha partição ext4 está completamente destruída por alguns dias)
  • muitas leituras, mas poucas gravações
  • e preciso de tolerância a falhas (parei de usar o mdadm RAID porque não gosta de ter UM erro em todo o disco e às vezes tenho discos com falha, que substituo o mais rápido possível, mas isso significa que posso obter dados corrompidos em meu sistema de arquivos)

O principal problema são os discos com falha; Posso perder alguns arquivos, mas não posso perder tudo ao mesmo tempo.

Se eu continuar usando o ext4, ouvi dizer que eu deveria tentar criar sistemas de arquivos menores e "mesclá-los" de alguma forma, mas não sei como.

Ouvi dizer que o btrfs seria bom, mas não consigo encontrar nenhuma pista sobre como ele consegue perder uma parte de um disco (ou um disco inteiro), quando os dados NÃO são replicados ( mkfs.btrfs -d single?).

Qualquer conselho sobre a questão será bem-vindo, desde já, obrigado!

alphatiger
fonte
1
Exatamente quais erros de disco você recebe. Isso deve dar uma pista
Soham Chakraborty
Bad sectores, muitas vezes é apenas um ou dois setores defeituosos no disco inteiro ...
alphatiger
Isso significa que seu disco está com problemas. Quase nada a ver com o sistema de arquivos. Se o disco estiver com defeito, não importa qual fs você use, será útil. Como outros já mencionaram, opte por discos RAID e / ou compre discos empresariais. Além disso, procure controladores de qualidade também.
Soham Chakraborty
Sim, eu sei, é por isso que substituo discos que estão ficando ruins. Desculpe se minha pergunta não estava clara. Mas ainda assim, eu pensei que alguns sistemas de arquivos iria se comportar melhor com dados corrompidos ...
alphatiger
Você realmente deve substituir as peças defeituosas do seu hardware. É como olhar para um manequim de teste de colisão após um carro ter sido dirigido contra a parede a 200 km / h. "Oh, olhe! A perna esquerda está quase boa! ​​O teste foi bem-sucedido!" ... nenhum sistema de arquivos pode ajudá-lo se o hardware subjacente apodrecer. O XFS possui um fsck mais rápido que o ext * e, após um tempo suficiente e o sistema de arquivos amadurecer um pouco mais, talvez o btrfs funcione também. Depois, há o ZFS, mas no Linux, seu estado é um pouco triste.
Janne Pikkarainen

Respostas:

22

Não é um problema no sistema de arquivos, são as limitações físicas dos discos. Aqui estão alguns dados:

As unidades SATA são geralmente especificadas com uma taxa de erro de leitura irrecuperável (URE) de 10 ^ 14. Isso significa que 1 byte por 12 TB será perdido de maneira irrecuperável, mesmo que os discos funcionem bem.

Isso significa que, sem RAID, você perderá dados, mesmo que nenhuma unidade falhe - o RAID é sua única opção.

Se você escolher RAID5 (capacidade total n-1, onde n = número de discos) ainda não é suficiente. Com 10TB RAID5 consistindo em 6 x 2TB HDD, você terá 20% de chance de uma falha de unidade por ano e com um único disco, devido ao URE, você terá 50% de chance de reconstruir o RAID5 com êxito e recuperar 100% dos seus dados .

Basicamente, com a alta capacidade de discos e o URE relativamente alto, você precisa que o RAID6 esteja seguro, mesmo novamente, em falha de disco único.

Leia isto: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162

c2h5oh
fonte
3
Espere, URE significa irrecuperável Leia erro, mas isso não significa que o disco realmente TEM o erro. A próxima leitura pode (e provavelmente irá) retornar o bit correto. O sistema operacional provavelmente apenas relerá o setor e obterá os dados corretos. Você também esqueceu de falar sobre o SMART: antes que um setor seja danificado permanentemente, o SMART tentará ler / gravar dados dele. Se detectar muitas falhas, a SMART simplesmente move o conteúdo do setor para outro lugar e marca o setor como MAU e ninguém poderá escrevê-lo novamente.
Avio
Então, você está simplesmente sugerindo a compra de toneladas de discos sem perguntar POR QUE seus discos estão com defeito. Poderia ser um problema de calor, que poderia ser um problema com um controlador SATA com defeito, poderia ser um problema de conectores SATA ruins, etc. etc. etc.
Avio
@Avio O que estou dizendo é que, com 10 TB de dados, você terá erros de leitura devido a limitações do disco rígido, mesmo que todos os discos, controlador SATA, conectores SATA etc estejam em perfeitas condições e funcionando de acordo com as especificações. Também estou dizendo que, mesmo se você decidir usar o RAID para atenuar, deve usar o RAID6 porque a capacidade do disco + URE torna o RAID5 ainda não confiável o suficiente. Mesmo uma falha de unidade única no RAID5 tem uma alta chance de perda de dados (50% FFS!).
C2h5oh 9/10/12
1
@Avio U no URE significa Irrecuperável, pois se foi para sempre.
C2h5oh 9/10/12
Pode ser o problema do sistema de arquivos. Se você usar uma cópia em um sistema de arquivos de gravação como btrfs ou xfs, provavelmente poderá recuperar uma versão anterior do arquivo, perdendo apenas a última alteração no arquivo. (se ele nunca foi alterado)
Jens Timmerman
13

Faça um favor a si mesmo e use um RAID para seus discos, pode até ser RAID de software com mdadm. Pense também no motivo pelo qual você "costuma ter erros nos discos" - isso não é normal, exceto quando você usa unidades SATA de classe de desktop baratas em vez de discos de grau RAID.

Depois disso, o sistema de arquivos não é mais tão importante - ext4, xfs são boas opções.

Sven
fonte
1
Concordo que devo;) mas não uso RAID por vários motivos. O principal é o preço, pois são 2-3 vezes mais caros, e eu realmente não posso pagar por isso. O segundo motivo é que, na última vez em que usei o RAID 5, tive a sorte de obter dois discos defeituosos antes de conectar um novo e sincronizá-lo novamente (não havia discos sobressalentes na época, tive que esperar por um novo; concordo que com os discos de classe RAID, eu teria esse problema). A terceira razão é que, à medida que os dados que tenho para armazenar aumentam, adiciono progressivamente novos discos de tamanhos maiores, o que não posso fazer com uma configuração RAID.
alphatiger
Então, estou tentando ver se existe um sistema de arquivos que alguém me recomendaria para usar em uma configuração em que não posso confiar em dados não corrompidos. Ainda assim, obrigado pela sua resposta!
alphatiger
4
Então você está dizendo que seus dados não valem a despesa adicional? Se você não pode ter ao menos duas cópias de seus dados, considere-os perdidos. Você está certo de que o RAID5 provavelmente não é uma boa escolha, você provavelmente deve olhar para o RAID6 ou RAID10.
Zoredache
@alphatiger: Os discos são muito caros se seu tempo e seus dados forem muito baratos.
Reinstate Monica - M. Schröder
8

Eu tive boa sorte com o ZFS, você pode verificar se ele está disponível em qualquer distro usada. Aviso justo, provavelmente significará a reconstrução de todo o sistema, mas oferece desempenho realmente bom e tolerância a falhas.

TMN
fonte
Atualmente, uso o Debian GNU / Linux, parece que há uma implementação do FUSE, mas nenhum pacote (devido a problemas de licenciamento). Provavelmente tentarei (depois de compilar a partir de fontes, como usar o FUSE não é muito bom para alta saída), não me preocupo em ter que reconstruir todo o meu sistema de arquivos. Obrigado !
alphatiger
+1 para o ZFS. O RAID tradicional corrompe silenciosamente os dados porque não é inteligente o suficiente para saber quando os blocos estão errados ou como repará-los. O ZFS, por outro lado, detectará blocos corrompidos (por meio de somas de verificação) e os reparará de boas cópias espelhadas conhecidas. A execução do ZFS no FUSE, embora não seja o ideal, terá um desempenho suficiente para muitas cargas de trabalho. Dito isto, você deve carregar o teste do seu aplicativo antes de usá-lo em um ambiente de produção.
bahamat
1
Outro +1 para o ZFS. Praticamente todos os servidores aqui estão executando Linux e eu sou um grande fã dele, mas o ZFS provou ser tão útil para mim nos últimos 3 anos que realmente passei pelo esforço de aprender e configurar o FreeBSD no máquina de armazenamento grande para poder usar o ZFS sem problemas de licenciamento ou desempenho.
05
Estou executando-o no Solaris em minha antiga estação de trabalho Sun, e o desempenho é incrível, considerando o hardware (Opteron de núcleo único a 2.2GHz com 3G de memória e um par de unidades SATA de 250G).
TMN
8

Eu adiciono novos discos de tamanhos maiores progressivamente

Como você é interessante no uso do LVM e deseja lidar com várias unidades, a resposta simples seria usar apenas o recurso de espelho que faz parte do LVM. Basta adicionar todos os volumes físicos ao seu LVM. Ao criar um volume lógico, passe a --mirrorsopção Isso duplica seus dados.

Outra opção pode ser apenas configurar vários pares RAID1. Em seguida, adicione todos os volumes RAID1 como PVs ao seu VG. Então, sempre que quiser expandir seu armazenamento, basta comprar um par de discos.

Zoredache
fonte
7

Você realmente deve usar um RAID 5, 6, 10, 50 ou 60. Aqui estão alguns recursos para você começar:

informações de segundo plano sobre RAIDs

instruções e configuração

Confira meus deliciosos links para obter mais links RAID: http://delicious.com/slmingol/raid

slm
fonte
Veja meus comentários na resposta do SvenW para ver por que realmente não quero RAID. (Na verdade, eu já configurei vários RAIDs de software em uma empresa que podia pagar isso ...) Ainda assim, obrigado!
alphatiger
Eu sempre usei unidades de commodities para RAIDs, nunca usei unidades classificadas para uso RAID e nunca tive problemas com isso, desde que você escolha um RAID com redundância suficiente (RAID 6 ou RAID 60). Usando um RAID 6, você precisa de um número par. Você pode aumentar os RAIDs facilmente, substituindo os membros existentes por discos maiores e, em seguida, expandindo o espaço para os discos mais novos.
Slm
4

Se você está realmente preocupado com a corrupção de dados, eu recomendaria um sistema de arquivos com soma de verificação, como zfs e btrfs - embora observe que o btrfs ainda é considerado em desenvolvimento e não está pronto para produção.

Não há garantia de que os dados lidos (mesmo lidos com êxito) de um disco estejam corretos. Os blocos têm somas de verificação, mas são somas de verificação simples que nem sempre detectam erros. Sistemas de arquivos mais recentes, como o ZFS, anexam somas de verificação mais capazes aos arquivos e podem (e supostamente fazem) capturar e reparar erros de dados não percebidos pelo disco rígido ou pelo controlador RAID.

tylerl
fonte
1

Como @ c2h5oh diz , o Irrecuperável é crítico - significa que o disco já tentou e falhou em reler o setor.

Na minha experiência, uma vez que um disco começa a produzir erros de leitura irrecuperáveis ​​(UREs), alguns dados são perdidos para sempre, e sua única esperança é fazer backup imediato de todos os dados usando o GNU ddrescue , que pode tentar novamente os setores defeituosos e pular os irrecuperáveis.

Supondo que você tenha backups, eles podem ter falhado devido aos UREs e certamente terão alguns arquivos corrompidos; portanto, você precisará reunir um conjunto completo de dados de vários backups do mesmo sistema de arquivos.

Vale a pena ler as outras respostas que recomendam o ZFS, pois seus recursos de depuração contínua de dados e RAID ajudarão a manter seus dados mais seguros no futuro - embora ainda não substituam os backups, que também protegem contra erros de usuário e administrador.

Eu usaria o LVM apenas se você não precisar de snapshots - ele não se integra tão bem ao RAID, não inclui verificação de dados / somas de verificação de dados e ainda precisa de backups; portanto, algo como o ZFS é provavelmente uma opção melhor. Veja esta resposta sobre problemas e riscos de LVM para obter mais.

RichVel
fonte