Eu tenho 40 anos em computação, mas nunca tive que construir um servidor como este, então essa pode ser uma pergunta n00b.
Eu tenho um cliente que oferecerá arquivos de música com altíssima definição para download. Nesse caso, significa 24 / 192Khz compactado em FLAC = ~ 10GB / álbum. (Não, não quero discutir a conveniência do produto, apenas a configuração do servidor.) O catálogo terá cerca de 3.000 álbuns, com versões de altíssima e baixa definição (para os iPods, eu acho), dando 35-40 TB ou mais de dados primários.
Como esse é um produto muito especializado, o tamanho do mercado é relativamente pequeno (pense: pessoas que gastam mais de US $ 20.000 em seus sistemas de áudio), o que significa que na maioria das vezes o servidor ficará 100% ocioso (ou próximo a ele). Eu tenho o que parece ser uma boa oferta de colocação da ColocationAmerica com uma conexão de 1 Gbps e largura de banda de cerca de US $ 20 / TB, então agora só preciso construir uma caixa para entregar as mercadorias.
O caso de uso de acesso a dados é de gravação única / leitura múltipla, portanto, estou pensando em usar o software RAID 1 para pares de unidades. Isso me permitiria ( acho ) reconfigurar unidades sobressalentes para unidades com falha on-the-fly, assim, sendo capaz de iniciar a reconstrução da segunda unidade antes que algum administrador do sistema perceba a luz vermelha no sistema (eles trocam gratuitamente). Seria ótimo se eu conseguisse que a maioria das unidades dormisse / diminuísse se elas não fossem necessárias, o que será a maior parte do tempo na maioria das unidades.
Eu não preciso de muito em termos de energia de computação - isso só está empurrando objetos gordos pelo cano - e assim a CPU / placa-mãe pode ser bastante modesta, desde que possa suportar esse número de unidades.
Atualmente, estou considerando a seguinte configuração:
Chasis: Supermicro CSE-847E26-RJBOD1
Drives: 30 4TB SAS drives (Seagate ST4000NM0023 ?)
MB: SUPERMICRO MBD-X10SAE-O w/ 8GB
CPU: Xeon E3-1220V3 3.1GHz LGA 1150 80W Quad-Core Server
Então, estou indo na direção certa, ou essa é uma maneira completamente n00b / dinossauro de abordar o problema?
Atualize para esclarecer alguns pontos:
- Não tenho experiência com o ZFS, pois o último produto da Sun que possuía estava no final dos anos 80. Vou fazer um pouco de RTFMing para ver se parece certo.
- Eu realmente não preciso que o sistema de arquivos faça algo espetacular, pois os nomes dos arquivos serão UUIDs simples e os objetos serão equilibrados nas unidades (como um grande sistema de cache). Então, eu realmente estava pensando neles como 40 sistemas de arquivos separados, e isso fez o RAID 1 parecer certo (mas admito aqui a ignorância).
- Como nossas expectativas atuais são de que é improvável que baixemos mais de uma dúzia de arquivos a qualquer momento e, na maioria dos casos, haverá exatamente uma pessoa baixando um determinado arquivo, não sei se precisamos de muita memória para buffers. Talvez 8 GB seja um pouco leve, mas acho que 128 GB não fará nada além de consumir energia.
- Existem duas máquinas separadas não mencionadas aqui: sua loja virtual atual e um Download Master quase completamente dissociado que lida com toda autenticação, gerenciamento de ingestão de novos produtos, aplicação de políticas (afinal, esse é o playground da RIAA), criação efêmera de URL (e possivelmente entregar downloads para mais de uma dessas bestas se o tráfego exceder nossas expectativas), rastreamento de uso e geração de relatórios. Isso significa que essa máquina quase pode ser construída usando gerbils no Quaaludes.
ZFS? Onde está o benefício?
OK, estou me arrastando por vários guias, perguntas frequentes, etc. do ZFS, perdoe-me por parecer estúpido, mas estou realmente tentando entender o benefício do uso do ZFS sobre minha noção antediluviana de pares N RAID1. Nesta página de Boas Práticas (de 2006), eles até sugerem não fazer um ZFS de 48 dispositivos, mas 24 espelhos de 2 dispositivos - soa como o que eu estava falando sobre fazer. Outras páginas mencionam o número de dispositivos que precisam ser acessados para entregar 1 (um) bloco ZFS. Além disso, lembre-se, com 10 GB por objeto e com 80% de utilização de disco, estou armazenando um total geral de 320 arquivos por unidade de 4 TB . Meu tempo de reconstrução com N RAID 1s, para qualquer falha de unidade, é uma gravação de 4 TB de um dispositivo para outro.Como o ZFS melhora isso?
Eu admito ser um dinossauro, mas o disco é barato, RAID 1 eu entendo, minhas necessidades de gerenciamento de arquivos são triviais e o ZFS no Linux (meu sistema operacional preferido) ainda é meio jovem. Talvez eu seja muito conservador, mas quando estou olhando para um sistema de produção, é assim que eu rolo.
Agradeço a todos por seus comentários que me fizeram pensar sobre isso. Ainda não estou completamente decidido e talvez precise voltar e fazer mais algumas perguntas sobre o n00b.