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!
fonte
Respostas:
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
fonte
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.
fonte
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.
fonte
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
--mirrors
opçã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.
fonte
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
fonte
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.
fonte
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.
fonte