Que sistema de arquivos para grandes LVM de discos (8 TB)?

19

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 muitas vezes eu recebo erros em meus discos, e mesmo se eu substituir (isto é, eu copio o disco antigo para um novo com dd, então eu coloco o novo no servidor) eles assim que erros aparecem, muitas vezes recebo cerca de 100 MB de dados corrompidos nele. Isso faz com que o e2fsck enlouqueça sempre, e geralmente leva uma semana para voltar ao sistema de arquivos ext4 novamente.

Então a pergunta é: O que você recomendaria que eu usasse como um 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, algumas totalizando 100 MB)
  • quase 200.000 arquivos com tamanhos diferentes (3/4 deles cerca de 10 MB, 1/4 entre 100 MB e 4 GB; atualmente não consigo mais estatísticas sobre arquivos, pois minha partição ext4 está completamente destruída por alguns dias )
  • muitas leituras, mas poucas escritas
  • e preciso de tolerância a falhas (parei de usar mdadm RAID porque não gosto de ter um erro em todo o disco, e às vezes tenho discos com falha, que substituo assim que posso, mas isso significa que consigo dados corrompidos no meu sistema de arquivos)

O principal problema é a falta de discos; Eu posso perder alguns arquivos, mas não posso perder tudo ao mesmo tempo.

Se eu continuar a usar 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 que o btrfs seria legal, mas não consigo encontrar pistas sobre como ele gerencia a perda de uma parte de um disco (ou de um disco inteiro), quando os dados NÃO são replicados ( mkfs.btrfs -d single ?).

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

    
por alphatiger 08.10.2012 / 19:54

7 respostas

21

Não é problema do sistema de arquivos, são limitações físicas dos discos. Veja alguns dados:

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

Isso significa que sem RAID você perderá dados mesmo se nenhuma unidade falhar - 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 de 6 x 2TB HDD, você terá 20% de chance de falha de uma unidade por ano e com falha de um único disco, devido a URE você terá 50% de chance de reconstruir RAID5 com sucesso e recuperar 100% dos seus dados.

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

Leia isto: link

    
por 08.10.2012 / 22:15
12

Faça um favor a si mesmo e use um RAID para seus discos, pode até ser um software RAID com o mdadm. Pense também em por que você "frequentemente obtém erros em seus discos" - isso não é normal, exceto quando você usa discos SATA de classe desktop baratos em vez de discos de classe RAID.

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

    
por 08.10.2012 / 19:58
7

Eu tive boa sorte com o ZFS, você pode verificar se está disponível em qualquer distro que você usar. Aviso justo, isso provavelmente significará reconstruir todo o seu sistema, mas oferece um desempenho realmente bom e tolerância a falhas.

    
por 08.10.2012 / 20:36
7

I add new disks of greater sizes progressively

Como você é interessante em usar o LVM e deseja manipular várias unidades, a resposta simples seria apenas usar o recurso de espelho que faz parte do LVM. Basta adicionar todos os volumes físicos ao seu LVM. Quando você estiver criando um volume lógico, passe a opção --mirrors . 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 você quiser expandir seu armazenamento, compre apenas um par de discos.

    
por 08.10.2012 / 22:04
6

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

informações básicas sobre RAIDs

& & do howto configuração

Confira meus links deliciosos para obter links RAID adicionais: link

    
por 08.10.2012 / 20:17
3

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

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

    
por 09.10.2012 / 01:28
0

Como @ c2h5oh diz , o Unrecoverable é crítico - significa que o disco já tentou e não releu o setor.

Na minha experiência, quando 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 o backup imediatamente de todos os dados usando GNU ddrescue , que pode repetir os setores com falha, bem como pular os irrecuperáveis.

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

As outras respostas que recomendam o ZFS merecem ser lidas, pois seus recursos contínuos de limpeza de dados e RAID ajudarão a manter seus dados mais seguros no futuro - embora ainda não sejam substitutos dos backups, que também protegem contra erros de usuários e administradores.

Eu só usaria o LVM se você não precisasse de snapshots - ele não se integra tão bem com o RAID, não inclui somas de verificação de dados / scrubbing, e você ainda precisa de backups, então algo como o ZFS é provavelmente melhor opção. Veja esta resposta sobre problemas e riscos de LVM para mais.

    
por 17.04.2016 / 09:21