ECC sembra correggere solo errori a bit singoli.
Corretta. Per correggere più errori richiederebbe più bit. Allo stato attuale, si utilizzano già 10 bit per memorizzare 8 bit di informazioni, "sprecando" il 20% dei chip di memoria per consentire una correzione a singolo bit e fino a due bit di rilevamento degli errori.
Funziona come segue. Immagina un 0
o un 1
. Se leggo entrambi, devo solo sperare di leggere la cosa giusta. Se uno 0 viene lanciato su un 1 da una radiazione cosmica o da un chip difettoso, non lo saprò mai.
In passato abbiamo cercato di risolverlo con la parità. La parità stava aggiungendo un nono bit per 8 bit memorizzati. Abbiamo verificato quanti zeri e quanti 1 erano nel byte. Il nono è stato impostato per renderlo un numero pari. (per parità pari) Se hai mai letto un byte e il numero era sbagliato, allora sapevi che qualcosa non andava. Non sai quale parte sbagliata però.
ECC si è espanso su questo. Utilizza 10 bit e un algoritmo complesso per scoprire quando un singolo bit è stato capovolto. Sa anche quale fosse il valore originale. Un modo molto semplice per spiegare come potrebbe essere questo:
Sostituisci tutti 0
con 000
. Sostituisci tutti 1
con 111
.
Ora puoi leggere sei combinazioni:
000
001
010
100
101
111
Non siamo mai sicuri al 100% di ciò che è stato originariamente archiviato. Se leggessimo 000
allora potrebbe essere stato proprio quello 000
che ci aspettavamo, oppure tutti e tre i bit potrebbero essere stati capovolti. Quest'ultimo è molto improbabile. I bit non si capovolgono casualmente, anche se succede. Diciamo che succede una volta su dieci per alcuni semplici calcoli (la realtà è molto meno). Questo risolve le seguenti possibilità di leggere il valore corretto:
000
-> O 000
(sicuro al 99,9%) o una tripla (possibilità 1/1000)
001
-> Sappiamo che qualcosa è andato storto. Ma o era
000
e un po 'capovolto (possibilità 1:10), oppure lo era
111
e due bit sono stati capovolti (una possibilità 1: 100). Quindi trattiamolo come se leggessimo 000
ma registriamo l'errore.
010
-> Come sopra.
100
-> Come sopra.
011
-> Come sopra, ma supponendo che fosse un 111
101
-> Come sopra, ma supponendo che fosse un 111
110
-> Come sopra, ma supponendo che fosse un 111
111
-> O 111
(sicuro al 99,9%) o una tripla (possibilità 1/1000)
111
-> O 000
(sicuro al 99,9%) o una tripla (possibilità 1/1000)
Gli ECC eseguono trucchi simili ma lo fanno in modo più efficiente. Per 8 bit (un byte) usano solo 10 bit per rilevare e correggere.
La RAM registrata ECC è utilizzabile solo con schede workstation / server ECC senza buffer è utilizzabile su Intel Xeon lga1155 o AMD AM3 + su schede Asus.
Ho già menzionato quale fosse la parte ECC, ora la parte registrata rispetto a quella non bufferizzata.
Nelle moderne CPU il controller di memoria è sul die della CPU, a partire da molto tempo fa per i chip AMD Opteron e con la serie Core i per Intel. La maggior parte delle CPU desktop quindi comunica direttamente con i socket DIMM che contengono la RAM. Funziona e non è necessaria alcuna logica aggiuntiva. È economico da costruire e la velocità è elevata perché non ci sono ritardi dal controller di memoria alla RAM.
Ma un controller di memoria può pilotare solo una corrente limitata a velocità elevate. Ciò significa che esiste un limite al numero di socket di memoria che è possibile aggiungere a una scheda madre. (E per renderlo più complesso, per quanto i DIMM possono usare, il che porta a livelli di memoria. Lo salterò dal momento che questo è già lungo).
Sulle schede server spesso si desidera utilizzare più memoria rispetto a un sistema desktop. Pertanto un buffer "registro" viene aggiunto alla memoria. Le letture dai chip sul modulo DIMM vengono prima copiate in questo buffer. Un ciclo di clock più tardi questo buffer si collega al controller di memoria per trasferire i dati.
Questo buffer / registro ritarda le cose, rallentando la memoria. Ciò è indesiderabile e quindi viene utilizzato / necessario solo su schede con molti banchi di memoria. La maggior parte delle schede consumer non ne ha bisogno e la maggior parte delle CPU consumer non la supporta.
La RAM direttamente collegata, senza buffer e la RAM buffer / registrata non è un caso in cui uno è migliore o peggiore dell'altro. Hanno solo diversi compromessi in termini di quanti slot di memoria puoi avere. La RAM registrata consente più RAM al costo di una certa velocità (e possibilmente spesa). Nella maggior parte dei casi in cui è necessaria quanta più memoria possibile, quella memoria aggiuntiva compensa più la RAM in esecuzione a una velocità leggermente inferiore.
Il dubbio che sto avendo è (principalmente riguardante la scheda ASUS AM3 +): la RAM senza buffer ECC è buona quanto la RAM registrata ECC (dal punto di vista della sicurezza e dell'affidabilità)? O è una scelta peggiore. Non mi interessa molto per la velocità. **
Dal punto di vista della sicurezza e della stabilità, ECC senza buffer e ECC registrati sono gli stessi.
Maggiori dettagli: il server utilizzerà un case server con un massimo di 24 x 3 unità da ½ '' e dovrebbe consumare il meno possibile.
24 unità consumeranno molta energia. Quanto dipende dalle unità. La mia unità SAS da 15 GB RPM da 140 GB assorbe solo 10 watt al minimo, lo stesso del disco SATA 7k2 da 1 TB. All'uso entrambi disegnano di più.
Moltiplicare quello per 24. 24x10 Watt al minimo significa 240 watt solo mantenendo i dischi rotanti, superando la resistenza dell'aria. Doppio ish che per in uso.
LGA1155 sembra essere in questo senso una scommessa migliore (TDP ~ 20-95 W) rispetto alle altre (> 80 W) per il doppio del prezzo.
Intel è migliore nelle CPU a bassa potenza, al momento della stesura e per le CPU che hai citato.
Qualsiasi suggerimento è il benvenuto. Diciamo meno di 120 W al minimo (~ con 10 dischi rigidi su 24).
Se scegli FreeBSD, guarda ZFS. Può essere fantastico Molte delle sue funzionalità più avanzate (ad es. Deduplicazione e / o compressione) utilizzano una notevole potenza della CPU e richiedono molta memoria. ZFS per l'uso di base con ZRAID andrà bene su entrambi i set di CPU menzionati e con 16 GB, ma se si attivano funzionalità come la deduplicazione, è necessario esaminare attentamente la memoria consigliata necessaria per la capacità del disco; alcune guide consigliano fino a 5 GB per TB di spazio di archiviazione .
Altre due cose:
- Non ho visto nulla sul collegamento delle unità. Alcune schede possono andare fino a 10 porte SATA. Ma per tutto ciò, avrai bisogno di schede aggiuntive. Se si considera il RAID hardware, potrebbe essere meglio pianificarlo dall'inizio.
- Guasto dell'unità : se si utilizzano moltiplicatori di porte SATA, osservare attentamente come agiscono in caso di guasto di un'unità SATA. Spesso non è carino. Non è un grosso problema per un'installazione domestica, ma non molto di livello aziendale. Potrebbe essere necessario considerare come anche le singole unità gestiscono gli errori. Il motivo per cui alcune unità sono etichettate come "NAS" o "RAID" è che gestiscono gli errori in modo diverso rispetto alle unità normali. Senza RAID, si desidera riprovare l'unità il maggior numero di volte possibile. Con RAID, vuoi che l'unità si guasta rapidamente , in modo da poter leggere da un'altra copia.