Atualizei este post desde que substituí o processador, mas o núcleo da minha pergunta (e infelizmente os resultados também) são os mesmos.
Construí minha primeira caixa do FreeNAS e queria usar a RAM do ECC, pois desejo armazenar dados críticos. Por estar com um orçamento limitado, queria buscar a solução mais acessível que ainda suportasse a RAM do ECC.
Depois de fazer algumas pesquisas, descobri que preciso de uma placa-mãe, memória e uma CPU que suporte ECC. Minha placa-mãe preferida é o "Gigabyte X150M-Pro ECC", que possui o chipset C232, DDR4 e um soquete LGA1151.
Também comprei um kit de dois DIMMs fabricados pela Kingston com o número do modelo "KVR21E15S8K2 / 8" ( folha de especificações ). A Gigabyte publicou uma lista de módulos de memória testados e meus módulos parecem ser suportados pelo ECC ( lista de módulos suportados ) em funcionamento.
Como estou com um orçamento, precisava de uma CPU Skylake acessível que suporte ECC. Segundo a Intel, o Celeron G3900 suporta ECC, então eu fui com esse.
Depois de montar o computador, queria verificar se meu sistema está realmente funcionando com memória ECC e entrei no BIOS da placa-mãe. Em vários sites da Internet, descobri que algumas placas-mãe têm uma seção especial que informa se o ECC está funcionando, mas minha placa-mãe parece não ter isso. Verifiquei todos os menus e não consegui encontrar uma seção semelhante.
Depois de fazer mais algumas pesquisas e encontrei um post sobre a troca de pilha Unix e Linux que não resolveu meu problema. Eu tentei o mais recente memtest86+
que, pelo que pude dizer, nem mostra o valor "ECC". Eu tentei a versão 4.20 mais antiga que os sistemas Puget usavam, que mostrava "ECC: off". No entanto, depois de ler o post mencionado anteriormente, duvido que ele diga a verdade (talvez seja por isso que o recurso foi removido?). Ambas as versões também não leram a velocidade e latência corretas do DIMM, o que aumenta minhas dúvidas memtest86+
.
Outra maneira popular de descobrir, se o ECC está funcionando, era emitir o dmidecode -t memory
comando e ler o Total Width
e Data Width
. Meus resultados foram 128 Bits
e 64 Bits
respectivamente. Uma parte da saída mostrou detalhes sobre a matriz de memória com um par de valores-chave Error Correction Type: Single-bit ECC
.
Eu esperava 72 bits
o Total Width
, então pensei que poderia estar relacionado ao canal duplo e movi os módulos de memória para dois slots adjacentes, o que deveria impedir o canal duplo, mas o resultado foi o mesmo. Aqui está a saída completa de dmidecode -t memory
.
Eu até tentei o interessante programa C publicado pelos sistemas Puget, mas o resultado foi que 0
não indicava suporte ao ECC.
Agora, estou começando a duvidar que os dados no site da Intel estejam corretos e minha CPU não suporte realmente o ECC. Tanto a memória quanto a placa-mãe são marcadas especificamente com "ECC", para que eu possa descartá-las.
É possível que a versão do BIOS precise de uma atualização (atualmente não existe) para ativar o ECC ou o ECC já está funcionando e eu simplesmente não consegui verificar? Ou minha escolha de CPU está errada, se eu quiser executar a memória ECC e o site da Intel estiver errado / enganoso?
Se minha CPU for a escolha errada, qual seria a próxima melhor opção para uma "CPU ECC de orçamento"?
ATUALIZAÇÃO: Vi algumas novas indicações de que meu sistema pode estar em execução com o ECC ativado e a dmidecode
ferramenta apenas relata dados estranhos. No fórum do FreeNAS, o usuário Dusan está usando hardware de servidor (SuperMicro MB, CPU Xeon, Kingston DIMM) e possui uma saída semelhante 128 Bits
. Mas ele escreveu que não tem certeza, se realmente funciona.
ATUALIZAÇÃO 2: Como yagmoth555 mencionou em sua resposta a esta pergunta, parece que minha placa-mãe suporta apenas ECC com processadores Xeon, embora eu pensasse que essa anotação era uma relíquia de manuais anteriores que foram copiados. Eu acho que isso significa que eu preciso procurar em um processador Xeon ..: - /
ATUALIZAÇÃO 3: Comprei um Xeon E3-1220v5 agora que, obviamente, suporta ECC e deve atender aos requisitos do manual. Eu executei todos os testes novamente para verificar a funcionalidade do ECC e os resultados são basicamente idênticos:
Pelos comentários da Puget Systems, também parece que o ecc_check.c
programa não funciona nos processadores Xeon e Core i7 ..: - /
memtest86+
Dessa vez, fiz um check-out mais e tenho certeza de que ele não suporta DDR4 ou o chipset C232, pois relata não apenas a velocidade e os horários errados, mas também o DDR3 em vez do DDR4 instalado. No entanto, ele detectou o processador muito bem, mas ainda assim obtive o mesmo resultado final nas duas versões do memtest86+
:
A versão 4.20 nem detecta meu processador corretamente.
Todas as idéias sobre como mais posso testar o ECC são muito bem-vindas.