ECC registrado vs ECC sem buffer

15

Eu gostaria de construir um servidor de armazenamento (baseado no GNU / Linux ou FreeBSD) que esteja sempre ativo. Para evitar corrupção de dados (o que é improvável que aconteça, como nunca tive esse problema, mas é melhor prevenir do que remediar), eu gostaria de usar a ECC RAM.

Embora não seja tão bom quanto o EDD (?) (Que é muito mais caro) e fornece proteção adicional. O ECC parece corrigir apenas erros de bits únicos.

A RAM registrada no ECC é utilizável apenas em placas de estação de trabalho / servidor, como Intel Xeon ou AMD interlagos / magny-cours / valencia g34 ou c32.

O ECC sem buffer é utilizável nas placas Intel Xeon lga1155 ou AMD AM3 + nas placas Asus.

A segunda opção será muito mais barata no lado do processador e da placa-mãe, e duvido que precise de mais de 16 GB de RAM (o ECC 4x4 GB sem buffer é o maior gravador disponível).

A dúvida que estou tendo é (principalmente em relação à placa asus am3 +): a RAM sem buffer do ECC é tão boa quanto a RAM registrada no ECC (do ponto de vista da segurança e confiabilidade)? Ou é uma escolha pior. Eu não ligo muito para a velocidade.

Mais detalhes: o servidor usará um gabinete de servidor com unidades de até 24 x 3,5 '' e deve consumir o mínimo possível. LGA1155 parece ser, nesse sentido, uma aposta melhor (TDP ~ 20-95W) versus as demais (> 80W) pelo dobro do preço. Qualquer sugestão é bem vinda. Digamos que menos de 120W em modo ocioso (~ com 10 discos rígidos em 24).

user51166
fonte
1
Ao solicitar o SuperUser, você receberá a resposta do SuperUser. Pergunte no ServerFault você receberá a resposta do ServerFault. Entendeu minha deriva?
Chad Harrison
As perguntas FAQ estados de hardware podem ser feitas no superusuário ...
user51166
@hydroparadise Verifique as Perguntas frequentes - permitimos todas as perguntas sobre hardware.
23412 Simon Simon Sheehan
Sry, pensei que fosse assumido. Apenas mencionava que, do lado do sistema operacional, poderia haver considerações diferentes sobre como o ECC é tratado, porque isso se tornará um aplicativo de servidor.
Chad Harrison
1
Mal. Na maioria das vezes, o chipset manipula a correção ECC (se houver). Você não precisa acessar os do sistema operacional. (Você pode, porém, usando DMI para obter informações sobre erros ECC ou QPI.)
Hennes

Respostas:

-2

Bem, se você usar apenas 16 GB de RAM - o que não é um intervalo de RAM do servidor - você ficará bem com qualquer RAM / sistema de desktop padrão.

Se for apenas um servidor de armazenamento, você nem precisará de tanto desempenho da CPU.

Como você disse, vá com o Sandy Bridge, ele fornecerá um sistema legal, com desempenho e confiável.

Falando em faixas de 16 GB de RAM, você não precisa se preocupar com coisas de ECC.

inf
fonte
Obrigado pela sua resposta rápida. Embora acima de 4 GB de RAM, você precisaria de ECC. É certo que 256 GB de RAM ou meio TB de RAM ECC é uma obrigação. Mas eu acho que 16GB era meio que o limite ... De qualquer forma, é estranho ... um Xeon 4C / 8T Sandybridge custa 100 $ menos (na minha casa) do que uma CPU de desktop equivalente. O custo total é o mesmo. Não há desvantagens no ECC aqui. Tem certeza de que o ECC não é necessário ???
precisa saber é o seguinte
@ user51166 100% certo. Hoje em dia, 16GB é como o padrão em plataformas de médio / alto padrão.
inf 24/01
2
O fato de ser o padrão defacto não significa necessariamente que seja confiável o suficiente. Já li sobre casos na Internet em que todos os dados no disco foram corrompidos no disco rígido, não por causa do controlador SATA, mas por causa da RAM ruim (não ecc).
precisa saber é o seguinte
1
@ user51166 Diga ao cara que disse isso que definitivamente não fazer parte do ECC definitivamente não era problema dele.
inf 24/01
1
"ECC registrado> ECC sem buffer" Não / às vezes. O ECC sem buffer / sem registro será realmente mais rápido. O ECC em buffer / registrado será pelo menos uma ação de registro mais lenta, mas você poderá adicionar mais DIMMs a um canal de memória. (E mais memória PODE tornar seu sistema mais rápido, mesmo que a latência aumente). Então, em vez de um "sim / não" rígido, a resposta correta é "depende".
Hennes
45

O ECC parece corrigir apenas erros de bits únicos.

Corrigir. Para corrigir mais erros, seria necessário mais bits. Como já é, você já usa 10 bits para armazenar 8 bits de informação, 'desperdiçando' 20% dos chips de memória para permitir uma correção de bit único e até dois bits de detecção de erros.

Funciona da seguinte maneira. Imagine um 0ou um 1. Se eu leio, só espero ter lido a coisa certa. Se um 0 foi convertido em 1 por alguma radiação cósmica ou por um chip defeituoso, nunca saberei.

No passado, tentamos resolver isso com paridade. Parity foi adicionar um nono bit por 8 bits armazenados. Verificamos quantos zeros e quantos havia 1 no byte. O nono foi definido para tornar esse número par. (para paridade uniforme) Se você leu um byte e o número estava errado, sabia que algo estava errado. Você não sabe qual parte estava errada.

O ECC expandiu isso. Ele usa 10 bits e um algoritmo complexo para descobrir quando um único bit foi invertido. Também sabe qual era o valor original. Uma maneira muito simples de explicar como isso seria:

Substitua todos os 0s por 000. Substitua todos os 1s por 111.

Agora você pode ler seis combinações:
000
001
010
100
101
111

Nunca temos 100% de certeza do que foi originalmente armazenado. Se lemos 000, isso pode ter sido exatamente o 000que estávamos esperando, ou os três bits podem ter mudado. O último é muito improvável. Os bits não mudam aleatoriamente, embora isso aconteça. Digamos que isso aconteça uma em dez vezes para alguns cálculos fáceis (a realidade é muito menor). Isso funciona com as seguintes chances de ler o valor correto:

000-> 000(99,9% de certeza) ou um flip triplo (chance de 1/1000)

001-> Sabemos que algo deu errado. Mas foi 000e foi um pouco invertido (chance de 1:10), ou foi 111e dois bits foram invertidos (uma chance de 1: 100). Então, vamos tratá-lo como se lêssemos, 000mas registrássemos o erro.

010 -> Mesmo que acima.

100 -> Mesmo que acima.

011 -> O mesmo que acima, mas supondo que fosse um 111

101 -> O mesmo que acima, mas supondo que fosse um 111

110 -> O mesmo que acima, mas supondo que fosse um 111

111-> 111(99,9% de certeza) ou um flip triplo (chance de 1/1000)

111-> 000(99,9% de certeza) ou um flip triplo (chance de 1/1000)

Os ECCs fazem truques semelhantes, mas com mais eficiência. Para 8 bits (um byte), eles usam apenas 10 bits para detectar e corrigir.


A RAM registrada no ECC é utilizável apenas com placas de estação de trabalho / servidor. O ECC sem buffer é utilizável nas placas Intel Xeon lga1155 ou AMD AM3 + nas placas Asus.

Eu já mencionei qual era a parte do ECC, agora a parte registrada vs sem buffer.

Nos processadores modernos, o controlador de memória está no processador, começando há muito tempo pelos chips AMD Opteron e pela série Core i da Intel. A maioria das CPUs de desktop fala diretamente com os soquetes DIMM que contêm a RAM. Funciona e nenhuma lógica extra é necessária. Isso é barato de construir, e a velocidade é alta porque não há atraso entre o controlador de memória e a RAM.

Mas um controlador de memória pode apenas conduzir uma corrente limitada em altas velocidades. Isso significa que há um limite para quantos soquetes de memória podem ser adicionados a uma placa-mãe. (E, para torná-lo mais complexo, quanto os DIMMs podem usar, o que leva a classificações de memória. Vou pular isso, já que isso já é longo).

Nas placas para servidor, você geralmente deseja usar mais memória que um sistema de desktop. Portanto, um buffer de "registro" é adicionado à memória. As leituras dos chips no DIMM são primeiro copiadas para esse buffer. Um ciclo de clock mais tarde, esse buffer se conecta ao controlador de memória para transferir os dados.

Esse buffer / registro atrasa as coisas, tornando a memória mais lenta. Isso é indesejável e, portanto, é usado / necessário apenas em placas com muitos bancos de memória. A maioria das placas de consumidor não precisa disso e a maioria das CPUs de consumidor não suporta.

A RAM sem buffer diretamente conectada versus a RAM com buffer / registrada não é um caso em que uma é melhor ou pior que a outra. Eles apenas têm vantagens e desvantagens em termos de quantos slots de memória você pode ter. A RAM registrada permite mais RAM ao custo de alguma velocidade (e possivelmente despesa). Na maioria dos casos, em que você precisa de tanta memória quanto possível, essa memória extra compensa mais do que a RAM sendo executada em uma velocidade um pouco mais lenta.

A dúvida que estou tendo é (principalmente em relação à placa asus am3 +): a RAM sem buffer do ECC é tão boa quanto a RAM registrada no ECC (do ponto de vista da segurança e confiabilidade)? Ou é uma escolha pior. Eu não ligo muito para a velocidade. **

Do ponto de vista de segurança e estabilidade, o ECC sem buffer e o registro no ECC são os mesmos.


Mais detalhes: o servidor usará um gabinete de servidor com unidades de até 24 x 3 ½ '' e deve consumir o mínimo possível.

24 unidades vão consumir muita energia. Quanto depende das unidades. Minha unidade SAS de 140 GB e 15 K RPM está consumindo apenas 10 watts no modo inativo, o mesmo que o disco de 1 TB SATA 7k2. No uso ambos desenham mais.

Multiplique isso por 24. 24x10 Watt em modo inativo significa 240 watts, mantendo os pratos dos discos girando, superando a resistência do ar. Double-ish isso para uso.


LGA1155 parece ser, nesse sentido, uma aposta melhor (TDP ~ 20-95W) versus as demais (> 80W) pelo dobro do preço.

A Intel é melhor em CPUs de baixo consumo de energia, no momento da redação e nas CPUs mencionadas.

Qualquer sugestão é bem vinda. Digamos que menos de 120W em modo ocioso (~ com 10 discos rígidos em 24).

Se você usa o FreeBSD, observe bem o ZFS. Isso pode ser ótimo. Muitos de seus recursos mais avançados (por exemplo, desduplicação e / ou compactação) consomem muita energia da CPU e desejam muita memória. O ZFS para uso básico com o ZRAID funcionará bem nos conjuntos de CPU mencionados e com 16 GB, mas se você ativar recursos como a desduplicação, deverá examinar cuidadosamente a memória recomendada necessária para a capacidade do disco; Alguns guias recomendam até 5 GB por TB de armazenamento .

Mais duas coisas:

  1. Não vi nada sobre como conectar as unidades. Algumas placas podem ter até 10 portas SATA. Mas para qualquer coisa além disso, você precisará de cartões adicionais. Se você considerar o RAID de hardware, talvez seja melhor planejar isso desde o início.
  2. Falha na unidade: Se você usar multiplicadores de portas SATA , observe cuidadosamente como eles agem se uma unidade SATA falhar. Muitas vezes não é bonito. Não é um grande problema para uma instalação doméstica, mas muito pouco para empresas. Pode ser necessário considerar como as unidades individuais também lidam com erros. O motivo pelo qual algumas unidades são rotuladas como para uso em "NAS" ou "RAID" é que elas tratam os erros de maneira diferente das unidades comuns. Sem RAID, você deseja que a unidade tente novamente tantas vezes quanto possível. Com o RAID, você deseja que a unidade falhe rapidamente , para poder ler de outra cópia.
Hennes
fonte
5
A votação positiva, na verdade, responde à pergunta, enquanto o outro é um conselho mais prático / anedótico. Vamos ignorar que serpenteia um pouco antes de chegar ao registo vs parte sem buffer;)
Ernie
1
Sim, é sinuoso. Tentei ser completo, mas realmente não deveria me tornar um escritor. (de ficção ou de manuais).
Hennes 10/09
Heh, também vamos ignorar que originalmente parei de ler quando você começou a abordar o poder e outras preocupações. . . ;)
ernie
1
Essa é uma excelente resposta, não pode ser mais curta e ainda atende a todas as perguntas tão bem. Acabei de fazer uma edição moderada que limpou o seu texto que ajudará uma vez aplicado. Até removeu seu pedido de desculpas para cortar duas linhas - a resposta aceita aqui não foi muito útil. Expandi brevemente as preocupações com desduplicação do ZFS e conduzi o tratamento de erros enquanto estava lá. Decidiu não entrar em vibração, mesmo que isso também seja um problema com 24 unidades.
Greg Smith
Obrigado por esclarecer os dados registrados versus sem buffer e os motivos para usar o RDIMM.
Mahmoud Al-Qudsi
1

Duas questões separadas.

ECC vs não-ECC

  • use o ECC sempre que o tempo de atividade for importante
  • custa mais - precisa (múltiplos de) 9 chips em vez de 8
  • placa-mãe deve suportá-lo para usá-lo

Registrado vs sem buffer:

  • Pode ter (muito) mais RAM total instalado com DIMMs registrados
    • Menos tensão elétrica na interface do controlador de memória
  • Mas todos os DIMMs instalados devem ser registrados ou não
    • deve remover DIMMS sem buffer se estiver fazendo upgrade para Registered
  • Também é mais caro e um ciclo mais lento para acessar
    • Sem buffer é uma latência ligeiramente menor, se isso importa
    • todos os acessos aleatórios levam muitos ciclos de qualquer maneira
    • Observe que a latência absoluta de acesso (tempo em nanossegundos) não melhorou muito ao longo do histórico de uso de DRAM nos PCs
      • custo, capacidade e largura de banda melhoraram bastante
      • caches de memória ocultam a latência para a maioria dos acessos à memória de qualquer maneira
    • A latência mais longa prejudica o desempenho em tempo real de thread único
      • geralmente não afeta muito os casos de uso do 'servidor'
    • Nenhuma / diferença mínima na largura de banda e no desempenho geral
      • largura de banda de acesso seqüencial não afetada
      • Os caches L2 / L3 significam que os padrões de acesso reais geralmente substituem linhas por vez no cache, portanto, geralmente são acessos 'burst' de qualquer maneira
RGD2
fonte