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).
fonte
Respostas:
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.
fonte
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
0
ou um1
. 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
0
s por000
. Substitua todos os1
s por111
.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 o000
que 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 foi000
e foi um pouco invertido (chance de 1:10), ou foi111
e dois bits foram invertidos (uma chance de 1: 100). Então, vamos tratá-lo como se lêssemos,000
mas registrássemos o erro.010
-> Mesmo que acima.100
-> Mesmo que acima.011
-> O mesmo que acima, mas supondo que fosse um111
101
-> O mesmo que acima, mas supondo que fosse um111
110
-> O mesmo que acima, mas supondo que fosse um111
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.
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.
Do ponto de vista de segurança e estabilidade, o ECC sem buffer e o registro no ECC são os mesmos.
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.
A Intel é melhor em CPUs de baixo consumo de energia, no momento da redação e nas CPUs mencionadas.
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:
fonte
Duas questões separadas.
ECC vs não-ECC
Registrado vs sem buffer:
fonte