Teremos uma máquina em funcionamento, que, com desempenho máximo, deve poder enviar 50 ("cabeças de gravação") x 75 GB de dados por hora. Esse é o desempenho máximo da velocidade de gravação de ~ 1100MB / s. Para obter isso da máquina, são necessárias duas linhas de 10 GBi. Minha pergunta é que tipo de servidor + tecnologia pode manipular / armazenar esse fluxo de dados?
Atualmente, para armazenamento de dados, trabalhamos com o ZFS, embora a velocidade de gravação nunca tenha sido uma questão. (não estamos nem perto dessas velocidades) O ZFS (zfs no linux) seria uma opção? Também precisamos armazenar muitos dados, o "guia de TI" sugere algo entre 50-75 TB no total. Portanto, provavelmente não podem ser todos os SSDs, a menos que desejemos oferecer nosso primeiro filho.
Algumas adições baseadas nas excelentes respostas:
- o máximo é de 50x75GB / hora durante o pico inferior a 24h (provavelmente <6h)
- Não esperamos que isso aconteça em breve, provavelmente executaremos de 5 a 10 x 75 GB / hora
- é uma máquina pré-alfa, no entanto, os requisitos devem ser atendidos (mesmo que muitos pontos de interrogação estejam em jogo)
- usaríamos NFS como a conexão da máquina para o servidor
- layout: máquina geradora -> armazenamento (este) -> (ataque seguro 6) -> cluster de computação
- portanto, a velocidade de leitura não é essencial , mas seria bom usá-la no cluster de computação (mas isso é completamente opcional)
- o mais provável é que sejam grandes arquivos de dados (não muitos pequenos)
fonte
Respostas:
Absolutamente ... O ZFS no Linux é uma possibilidade se arquitetado corretamente. Existem muitos casos de design ruim do ZFS , mas bem feito, seus requisitos podem ser atendidos.
Portanto, o principal determinante será como você está se conectando a esse sistema de armazenamento de dados. É NFS? CIFS? Como os clientes estão se conectando ao armazenamento? Ou o processamento etc. é feito no sistema de armazenamento?
Preencha mais alguns detalhes e podemos ver se podemos ajudar.
Por exemplo, se este é NFS e com montagens síncronas, é definitivamente possível escalar o ZFS no Linux para atender às necessidades de desempenho de gravação e ainda manter o requisito de capacidade de armazenamento a longo prazo. Os dados são compactáveis? Como cada cliente está conectado? Gigabit Ethernet?
Editar:
Ok, eu vou morder:
Aqui está uma especificação que custa aproximadamente US $ 17 mil a US $ 23 mil e cabe em um espaço de rack de 2U.
Essa configuração forneceria espaço útil de 80 TB usando o hardware RAID6 ou o ZFS RAIDZ2.
Como o foco é o desempenho baseado em NFS (assumindo gravações síncronas), podemos absorver tudo isso facilmente com as unidades P3608 NVMe (SLOG listrado). Eles podem acomodar 3 GB / s em gravações seqüenciais e possuem uma classificação de resistência alta o suficiente para lidar continuamente com a carga de trabalho que você descreveu. As unidades podem ser superprovisionadas facilmente para adicionar algumas proteções em um caso de uso SLOG.
Com a carga de trabalho do NFS, as gravações serão combinadas e liberadas para o disco giratório. No Linux, ajustávamos isso para liberar a cada 15 a 30 segundos. Os discos giratórios podem lidar com isso e podem se beneficiar ainda mais se esses dados forem compactáveis.
O servidor pode ser expandido com mais 4 slots PCIe abertos e uma porta adicional para adaptadores FLR de 10GbE de porta dupla. Então você tem flexibilidade de rede.
fonte
Para uma velocidade de gravação extrema, sugiro o ZFS, BTRFS ou qualquer sistema de arquivos CoW. Eu usaria o XFS, que é extremamente eficiente em transferências grandes / de streaming.
Há muitas informações ausentes (como você planeja acessar esses dados? A velocidade de leitura é importante? Você vai escrever em grandes partes? Etc.) para fornecer conselhos específicos, no entanto, alguns conselhos gerais são:
fonte
A Ethernet de 25 Gbps já é da fronteira principal, enquanto o NVMe à base de PCIe aumenta esse tráfego facilmente.
Para referência, criei recentemente uma pequena solução de 'captura de log' usando quatro servidores xeon duplos regulares (HPE DL380 Gen9s neste caso), cada um com 6 unidades NVMe, usei IP sobre Infiniband, mas essas placas de rede de 25 / 40Gbps seriam as mesmas e estamos capturando até 8 GBps por servidor - é um prazer.
Basicamente, não é barato, mas é muito factível atualmente.
fonte
Não parece grande coisa. Nosso fornecedor de hardware local tem isso como um produto padrão - aparentemente ele pode empurrar 1400MB / s sustentados no modo de gravação de CFTV, o que deve ser mais difícil do que os requisitos de pico.
(O link é a configuração padrão de 12 GB, mas eles observam que 20x4 TB também é uma opção. Nenhuma experiência pessoal com esse servidor de modelo específico.)
fonte
Gravações seqüenciais a 1100 MB / s não são um problema no hardware moderno. Curiosamente, minha configuração doméstica com unidades de laptop 8x5900 RPM, unidades 2x15000 RPM e unidades 2x7200 RPM sustenta 300 MB / s com uma carga útil única de 16 GB.
A rede é de 10GbE com cabos de fibra, 9000 MTU na Ethernet, e a camada de aplicação é o Samba 3.0. O armazenamento é configurado no raid50 com três faixas em três volumes raid5 de 4 unidades. O controlador é o LSI MegaRAID SAS 9271-8i com até 6 Gb / s por porta (eu tenho um multiplicador de portas adicional e mais lento).
Converse com qualquer administrador de sistema experiente e eles deverão informar exatamente quais controladores e unidades atenderiam aos seus requisitos.
Eu acho que você pode tentar com qualquer controlador de 12 Gb / se configurar duas faixas espelhadas de oito unidades de 7200 RPM cada (quase todas as unidades devem fazer). Inicie as conexões TCP 3-4 para saturar o link e, se um único par de placas de 10GbE não puder lidar com isso, use quatro placas.
fonte
É algo tangente, mas considere usar o InfiniBand em vez de links duplos de 10GbE. Você pode obter placas Infiniband de 56 Gbps muito baratas, ou placas de 100 Gbps por muito pouco, e no Linux é fácil usar o NFS com RDMA sobre IB, o que lhe dará latência extremamente baixa e taxa de transferência de velocidade da linha quase teórica (se o armazenamento subjacente puder lidar com isso). Você não precisa de um switch, apenas duas placas InfiniBand e um cabo de conexão direta (ou um cabo de fibra InfiniBand, se você precisar de distâncias maiores).
Uma placa Mellanox de 56Gbps de porta única (8x PCIe 3.0) como o MCB191A-FCAT custa menos de 700 dólares e um cabo de conexão direta de cobre de 2 metros custa 80 dólares.
O desempenho geralmente expulsará 10 GbE da água em todos os casos de uso. Não há desvantagens, a menos que você precise acessar o servidor de vários clientes diferentes que nem todos podem usar o InfiniBand (e mesmo assim, os switches da Mellanox podem conectar 10GbE e 40GbE ao IB, mas isso é um pouco mais de investimento, claro).
fonte
É possível fazer isso com o ZFS, no entanto, considere usar o FreeBSD, pois o FreeBSD tem a pilha de rede mais rápida. Isso permitiria possivelmente 100 GBit em uma única máquina.
1100 MBps parece muito, mas você pode conseguir isso realisticamente usando apenas discos rígidos comuns. Você diz que precisa de 75 TB de espaço, para poder usar 24 discos rígidos de 8 TB em espelhos. Isso daria a você velocidade de gravação de 12x de uma única unidade e velocidade de leitura de unidade de 24x. Como essas unidades têm mais velocidade de gravação do que 100 MBps, isso deve ser capaz de lidar facilmente com a largura de banda. Certifique-se de não receber unidades SMR, pois elas têm velocidades de gravação extremamente mais lentas.
O ZFS cria somas de verificação para cada bloco. Isso é implementado com thread único. Como tal, você deve ter uma CPU com uma taxa de clock razoavelmente rápida para não bloquear.
No entanto, os detalhes exatos da implementação dependem enormemente dos detalhes.
fonte
Vinculamos os dados de despejo de 10G NIC a um cluster Gluster sobre seu cliente de fusível. Demora um pouco de ajuste que você não acreditaria no desempenho que pode alcançar desde o 3.0.
fonte