Sistema de arquivos Linux para um grande servidor de arquivos

8

Gostaria de saber, de pessoas mais experientes, qual seria a melhor escolha de sistema de arquivos para um servidor de arquivos com mais de 20 TB de discos rígidos. Pessoalmente, sempre usei EXT3 (antigamente) e EXT4 (desde que disponíveis) [e uma vez o ReiserFS 3, apesar de causar muita corrupção de dados] em meus computadores pessoais e nos discos "pequenos servidores" BOOT e ROOT.

No entanto, como as ferramentas EXT4 (embora não a própria EXT4) estejam limitadas a partições de 16 TB, essa pode não ser a minha melhor aposta. A distribuição será Debian 6.0 (Squeeze) e / ou Gentoo (versão mais recente), portanto o kernel deve ser bem recente (no Debian pelo menos com backports), significando o kernel do linux> = 2.6.32.

O servidor de arquivos será usado para três propósitos principais (e também partições separadas, porque o objetivo é manter os dados "seguros" e realmente não se preocupam muito com a sobrecarga). Todos os discos devem ser criptografados usando LUKS :

  1. Mídia, downloads e repositório debian local [Eu tenho pelo menos 6 máquinas executando o Debian]> 20 TB (talvez uma separação adicional entre Mídia, Downloads e repositório Debian)
  2. Dados (documentos, fotos, ...) ~ 4 TB SAFE (ou seja, disco de backup raid1 ou raid6 +)
  3. Backups> = 20 TB para backups de outros computadores na minha LAN de gigabit (você pode sugerir um software que faça backup de todo o sistema operacional, mesmo que seja Windows, o BackupPC diz que faz isso, alguma alternativa?)

Velocidades rápidas não são realmente necessárias (acessos simultâneos: máximo de 2 ou 3 arquivos grandes, digamos vídeos), mesmo que sejam "apenas" 200 MB / s de leituras de um 10 HDD Raid6 que eu possa viver com isso.

Em resumo, procuro um sistema de arquivos confiável e escalonável (ou seja, facilmente expansível) que suporte mais de 20 TB / partição. Quanto mais seguro e confiável for o FS, melhor. O hardware empregado será de pelo menos um quad core (amd x4 630 ou intel i5-2500k) e muita RAM (> 8 GB, talvez> 16 GB), para que os requisitos de hardware sejam atendidos.

Meus PCs / servidores serão conectados a um no-break (fonte de alimentação ininterrupta) em caso de falta de energia Pode também fazer mídia e backups em máquinas separadas (ou seja, dois servidores).

user51166
fonte
7
Nesta escala, você realmente precisa avaliar seriamente o ZFS. Os tempos de reconstrução e as taxas de erro se tornam sérias preocupações com tantos discos quanto você está falando, e o zfs é o único fs estável disponível agora, com robusta verificação e correção de erros em toda a pilha.
afrazier
11
O ZFS não é suportado nativamente pelo linux (apenas com o FUSE) ou é suportado nativamente no estado pré-alfa inicial. Não considero o uso de solaris uma opção. Nunca tentou FreeBSD uma vez e pode estar interessado, no entanto eu não agora, se o seu apoio raid de software (e suporte de hardware geral) é tão bom quanto Linux da
user51166
11
Eu sei, mas o ZFS está sendo executado nativamente em outras plataformas. Embora o suporte a hardware não seja o mesmo que o Linux, essa deve ser a menor das suas preocupações. O ZFS é uma pilha de armazenamento completa; portanto, a invasão de software está fora da equação. Avalie como você vai armazenar, gerenciar, proteger e fazer backup de seus dados antes de escolher seu sistema operacional ou sistema de armazenamento. Não desconte o ZFS apenas porque não é nativo no Linux, é provavelmente a solução de armazenamento mais avançada disponível gratuitamente no momento.
precisa saber é o seguinte
Obrigado por suas respostas, mas não entendo: mesmo que eu pudesse usar o FreeBSD sem problemas (não tenho tanta certeza disso), existe algo como invasão de software implementada? Alguma coisa como LUKS (Linux Encryption) para FreeBSD? Obrigado. Eu estou familiarizado com o Gentoo e Debian GNU / Linux principalmente. O servidor é um servidor doméstico .
user51166
Ou você está sugerindo outro sistema operacional que não seja o FreeBSD?
user51166

Respostas:

3

Muitas pessoas estão sugerindo o ZFS. Mas o ZFS não está disponível nativamente no Linux, exceto através do fusível. Eu não recomendaria isso para sua situação em que o desempenho provavelmente é importante.

Infelizmente, o ZFS nunca estará disponível como um módulo nativo do kernel, a menos que os problemas de licenciamento sejam resolvidos de alguma forma.

O XFS é bom, mas algumas pessoas relataram problemas de corrupção e não posso comentar sobre isso. Eu brinquei com pequenas partições XFS e não tive esses problemas, mas não em produção.

O ZFS possui muitas vantagens e recursos úteis que não podem ser ignorados. Em resumo, eles são (consulte a Wiki do ZFS para obter uma descrição completa do que eles significam):

  • Integridade de dados
  • Pools de armazenamento
  • L2ARC
  • Alta capacidade
  • Copiar na gravação
  • Instantâneos e clones
  • Striping dinâmico
  • Tamanhos de bloco variáveis
  • Criação de sistema de arquivos leve
  • Gerenciamento de cache
  • Endianness adaptável
  • Desduplicação
  • Criptografia

Então, como podemos contornar isso? Minha alternativa sugerida, que pode se adequar à sua situação, é considerar nexenta . Este é um kernel do Open Solaris com as ferramentas da terra do usuário GNU em execução. Ter um kernel do Open Solaris significa ter o ZFS disponível nativamente.

Matt H
fonte
No site "Community Edition: versão ilimitada e gratuita para até 18 TB de armazenamento". Parece que eu teria outra limitação como do EXT4
user51166
E eu entendi que o ZFS é simplesmente o "melhor", como quase todos vocês estão dizendo. Apenas tentando descobrir o "melhor" sistema operacional / distribuição solaris capaz de executá-lo.
user51166
O Debian GNU / kFreeBSD parece suportar o ZFS e eu gosto da maneira Debian, mas não sei se posso usá-lo, pois parece haver uma pequena comunidade de suporte e ainda possui alguns bugs importantes.
user51166
@ user51166 - Você também deve considerar o FreeBSD ou o FreeNAS se o seu servidor for apenas para armazenamento. Ambos têm suporte a ZFS.
Matt H
4

Você deve tentar o XFS, se encaixar bem nos seus requisitos:

O XFS é um sistema de arquivos de 64 bits. Ele suporta um tamanho máximo do sistema de arquivos de 8 exbibytes menos um byte, embora isso esteja sujeito a limites de bloqueio impostos pelo sistema operacional host. Nos sistemas Linux de 32 bits, isso limita os tamanhos de arquivo e sistema de arquivos a 16 tebibytes.

aleroot
fonte
Ouvi dizer que isso pode causar perda de dados ao enfrentar quedas de energia e seu diário não cobre dados (apenas diário com metadados). Tinha usado uma vez na minha área de trabalho, mas gerou muitos erros de fsck, portanto, preferi não usá-lo mais. Repito: o desempenho não é o escopo (principal) desta escolha: a estabilidade é.
user51166
Eu não acho que XFS é instável, eu usá-lo em vários servidores de arquivos e eu não tive nenhum problema ...
aleroot
Não, é estável no sentido de ter uma versão estável. Isso implica que não terei perdas de dados ao longo dos anos? O XFS certamente é bom se você procura desempenho, embora eu lembre-se de ler na rede problemas de perda de dados (embora não tantos quanto o reiser 3, felizmente). Esqueci de especificar, mas estou olhando para uma configuração LUKS, portanto, o LVM será usado , se isso puder ajudar.
user51166
Não existe um sistema de arquivos perfeito ... Eu acho que para seus requisitos o XFS é o melhor ajuste. Não deve haver nenhum problema ao usar o LVM no XFS.
aleroot
Certamente não. Alguma "restrição" / "características" especiais? Problemas de fsck e / ou desfragmentação on-line, como os problemas do ext4?
user51166
4

Sua opção mais fácil é usar o XFS. Muitas das más experiências em torno do XFS são baseadas em versões antigas e problemas de hardware de desktop que não considero realmente relevantes para novas implantações em hardware de servidor de qualidade padrão. Eu escrevi um post sobre este assunto que pode ajudá-lo a resolver a situação atual. Existem várias instalações de banco de dados XFS ocupadas com centenas de usuários e terabytes de dados que eu ajudo a gerenciar. Eles estão todos no kernel do Debian Lenny (2.6.26) ou posterior e eu não ouvi uma dica de problema com eles há anos. Eu não usaria o XFS com nenhum kernel anterior a isso. Eu ouvi alguns relatos diretos de pessoas que ainda veem um comportamento XFS estranho quando o sistema fica sem memória ou espaço em disco; Eu ainda não vi isso ainda.

A única outra opção razoável é usar o ext4 com alguns hackers para oferecer suporte a sistemas de arquivos maiores. Eu não esperaria que isso tivesse um nível de confiabilidade muito diferente. Eu tive que recuperar dados de vários sistemas ext4 quebrados que funcionavam com bugs do kernel, até agora todos corrigidos a montante, mas não no kernel do distribuidor naquele momento. O ext4 tem seu próprio conjunto de problemas de metadados, como perda de dados de alocação atrasada , coisas que eram menos prováveis ​​de acontecer no ext3. Eu estimaria que as chances de você encontrar um bug ext4 seriam ainda mais altas do que o normal se você o forçar acima do limite de tamanho normal, simplesmente porque parece mais provável que você esteja encontrando um novo caminho de código menos testado em algum momento .

A idéia alternativa é usar apenas o ext3 mais seguro e chato, aceitar o limite de 16 TB e particionar as coisas melhor para que nenhum sistema de arquivos precise ser tão grande.

Uma extremidade solta relacionada a edições do diário. Você não falou sobre como todas essas unidades serão conectadas. Certifique-se de entender a implicação de qualquer cache de gravação que esteja em sua cadeia de armazenamento aqui. Desative-o ou verifique se o sistema de arquivos está liberando o cache. Eu guardei alguns recursos sobre isso em Reliable Writes, se isso não é algo que você está verificando ainda.

Drives sugam. Matrizes RAID são péssimas. Os sistemas de arquivos são péssimos. Várias falhas acontecem. Fico feliz em ver que você já está pensando em backups; passar de boa a ótima confiabilidade no armazenamento requer mais do que apenas RAID e algumas unidades sobressalentes. A redundância custa algo em todos os níveis, e o dinheiro para a complexidade de hardware versus software é difícil de navegar. E observe suas expectativas de desempenho. Enquanto uma matriz RAID como a que você está pensando pode facilmente executar centenas de MB / s, basta dois leitores simultâneos que procuram o disco constantemente para reduzir esse número para apenas alguns MB / s. Posso facilmente esmagar uma matriz RAID10 de 24 discos, de forma que ela ofereça apenas <5MB / s contra uma carga de trabalho de referência . Uma coisa que ajuda é garantir que você ajude o readahead para cima, se vários leitores de streaming forem possíveis.

Greg Smith
fonte
Vou usar isso em casa, portanto, planejo usar o hardware convencional. Posso usar o hardware do servidor, mas ainda tenho que ver o que o SB-E oferecerá no próximo ano no departamento xeon (eu também gostaria de brincar um pouco com a virtualização). Se não for muito caro, planejo usar hardware de servidor barato e memória ECC (muito). Em termos de desempenho, não quero nada de excepcional.
user51166
E sim, estou pensando em backups, mas ainda não os implementamos ainda. Ainda estou procurando uma solução de backup capaz de criar uma imagem do sistema e / ou facilmente tar / zip / ... pastas necessárias com uma interface de gerenciamento que permita restaurações automáticas. O BackupPC parece um pouco limitado e não tenho certeza se eu confiaria no Crashplan (use-o para fazer backup de dados em local remoto, gostaria de redundância, portanto, outro sistema). Eu tenho que escrever uma GUI web mim ou algo assim já existem (software open source, ou pelo menos de forma gratuita para uso)
user51166
2

A implantação no ZFS usando o FreeBSD pode acontecer aqui usando o gbde para criptografia. O próprio ZFS seria o provedor de RAID de software, via RAIDZ . A complexidade do gerenciamento de armazenamento da construção de zpools não é significativamente diferente do que o Linux fará com o mdadm e, em alguns casos, será realmente mais fácil. Minha primeira instalação do ZFS (no Solaris 10 há cerca de 3 anos) tinha um sistema de arquivos de 17 TB em 48 unidades. Eu sobrevivi a várias falhas sem problemas, aprendendo o gerenciamento do ZFS à medida que avançava.

A principal vantagem é que a soma de verificação do ZFS fornece melhor detecção de erros do que o Linux, o que é uma defesa contra hardware ruim que vale a pena considerar. As principais desvantagens são que o FreeBSD é menos popular. Você ainda não sabe como administrá-lo, o suporte a hardware é um pouco mais fraco que o Linux e, como é uma plataforma menos popular, não há tantas pessoas para pedir ajuda se você encontrar problemas.

Uma matriz de armazenamento de muitos terabytes realmente destaca no que o ZFS é bom. Vale a pena considerar seriamente se você estiver disposto a mergulhar em algo novo. Se você quiser explorar a verdadeira paranóia de backup, construa servidores de backup Linux e FreeBSD, para reduzir as chances de erros do SO como um único ponto de causa de falha.

Greg Smith
fonte
Já tenho o Linux como servidor de arquivos e ainda preciso começar a usá-lo (comecei apenas alguns testes do software RAID-6 + LUKS em 6 discos). O único problema é que tenho muito pouco tempo para brincar. Eu gosto da sua resposta. Então, o que você sugere como sistema operacional se seguir o caminho do ZFS? FreeBSD e opensolaris (não são mais mantidos), OpenIndiana (OpenSolaris opensource como eu o vi) e Solaris Express 11 (Oracle: S) parecem ser as únicas opções. Eu não uso isso no trabalho, é o meu hobby em casa, mas eu gostaria de algo estável de qualquer maneira e que seja fácil de usar também.
user51166
Eu realmente me acostumei a usar o aptitude e emergir. Meu entendimento de como você compila / gerencia / atualiza portas no freebsd (cd / usr / ... && make install) é que isso simplesmente não parece "certo" (espero que o purista me perdoe pelo uso desse termo , mas me parece estranho que, se você deseja atualizar um pacote, precisa fazer isso, nenhuma dependência automática é resolvida [apenas dei uma pequena olhada no manual do FreeBSD]). Ou existe um sistema simples de gerenciamento de pacotes como o debian ou o gentoo?
user51166
Eu já sei que poderia simplesmente sincronizar o que eu quero ou tar / diff etc, mas gostaria de saber se já existe algo mais prático. Graças
user51166