ECC, ECC arabelleksiz olarak kaydedildi


15

Ben her zaman olacak bir depolama sunucusu (GNU / Linux veya FreeBSD dayalı) oluşturmak istiyorum. Veri bozulmasını önlemek için (böyle bir sorun yaşamadığım gibi olma ihtimali düşüktür, ancak üzgünümden daha iyi olabilirim) ECC RAM kullanmak istiyorum.

EDD (?) Kadar iyi olmasa da (ki bu çok daha pahalıdır) ve ek koruma sağlar. ECC yalnızca tek bit hatalarını düzeltiyor gibi görünüyor.

ECC kayıtlı RAM yalnızca Intel Xeon veya AMD interlagos / magny-cours / valencia g34 veya c32 gibi iş istasyonu / sunucu kartlarıyla kullanılabilir.

Tamponsuz ECC, Intel Xeon lga1155 veya Asus kartlarında AMD AM3 + 'da kullanılabilir.

İkinci seçenek işlemci ve anakart tarafında çok daha ucuz olacak ve 16GB'dan fazla RAM'e ihtiyacım olacağından şüpheliyim (4x4 GB ECC arabelleksiz en uygun fiyatlı çubuklardır).

Şüphe duyuyorum (esas olarak asus am3 + board ile ilgili): ECC tamponlanmamış RAM ECC kayıtlı RAM kadar iyi (güvenlik ve güvenilirlik açısından)? Yoksa daha kötü bir seçim mi? Hız umurumda değil.

Ek bilgi: sunucu, 24 x 3,5 inç sürücüye kadar bir sunucu çantası kullanır ve mümkün olduğunca az tüketmelidir. LGA1155 bu anlamda diğerlerine (> 80W) kıyasla iki kat daha iyi bir bahis (TDP ~ 20-95W) gibi görünüyor. Herhangi bir öneri açığız. Rölantide 120W'tan az diyelim (~ 24 sabit diskin 10'unda).


1
SuperUser sormak size SuperUser cevabı verecektir. ServerFault üzerinde sor size ServerFault cevap alırsınız. Driftimi mi aldın?
Chad Harrison

SSS, donanım sorularının süper kullanıcı üzerinde yapılabileceğini belirtiyor ...
user51166

@hydroparadise SSS bölümüne bakın - tüm donanım sorularına izin veriyoruz.
Simon Sheehan

Sry, bunun varsayıldığını düşündüm. Sadece OS tarafında ECC'nin nasıl ele alındığı konusunda farklı hususlar olabileceğinden bahsediyordum, çünkü bu bir sunucu uygulaması haline gelecektir.
Chad Harrison

1
Zar zor. Çoğu zaman yonga seti ECC düzeltmesini (varsa) ele alır. İşletim sisteminden bunlara dokunmanız gerekmez. (Yine de, ECC veya QPI hataları hakkında bilgi almak için DMI'yi kullanabilirsiniz.)
Hennes

Yanıtlar:


-2

Eğer sadece bir sunucu RAM aralığı değil - sadece 16 GB RAM kullanıyorsanız, oldukça standart herhangi bir masaüstü RAM / sys ile iyi olacak.

Yalnızca bir depolama sunucusuysa, bu kadar CPU performansına bile ihtiyacınız olmayacak.

Dediğiniz gibi, Sandy köprüsüyle gidin, size serin, performans ve güvenilir bir sistem verecektir.

16GB RAM aralığından bahsetmişken, ECC şeyler hakkında endişelenmenize gerek yok.


Hızlı cevabınız için teşekkürler. 4GB RAM'in üstünde olsa da ECC'ye ihtiyacınız olacak. 256GB RAM veya yarım TB RAM ECC'nin bir zorunluluk olduğundan emin olabilirsiniz. Ama 16GB'ın biraz sınırı olmasına rağmen ... Her neyse tuhaf ... Bir Xeon 4C / 8T Sandybridge, eşdeğer bir masaüstü işlemciden 100 $ daha az (benim yerimde). Toplam maliyet ~ aynıdır. Burada ECC'de dezavantaj yok. ECC'nin gerekli olmadığından emin misiniz ???
user51166

@ user51166% 100 emin. 16GB günümüzde orta / üst seviye platformlarda standart gibidir.
inf

2
Defacto standardı olması, yeterince güvenilir olduğu anlamına gelmez. Zaten internetteki HDD'deki tüm verilerin SATA denetleyicisi nedeniyle değil, kötü (ecc olmayan) RAM nedeniyle bozulduğu vakaları okuyun.
user51166

1
@ user51166 Bunu söyleyen adama, ECC olmayanların kesinlikle onun sorunu olmadığını söyleyin.
inf

1
"Kayıtlı ECC> Tamponsuz ECC" Hayır / bazen. Tamponsuz / kayıtsız ECC aslında daha hızlı olacaktır. Arabellek / kayıtlı ECC en az bir kayıt eylemi daha yavaş olacaktır, ancak bellek kanalına daha fazla DIMM ekleyebilirsiniz. (Ve daha fazla bellek CAN dahi gecikme artar bile, daha hızlı sistem olun). Bu yüzden daha ziyade zor bir "Evet / hayır", doğru cevap "duruma bağlıdır" dır.
Hennes

45

ECC yalnızca tek bit hatalarını düzeltiyor gibi görünüyor.

Doğru. Daha fazla hatayı düzeltmek için daha fazla bit gerekir. Olduğu gibi, 8 bit bilgi depolamak için 10 bit kullanıyorsunuz, tek bir bit düzeltmesine ve iki bit hata tespitine izin vermek için bellek yongalarının% 20'sini 'harcıyor'.

Aşağıdaki gibi çalışır. Bir 0veya bir düşünün 1. Eğer ikisini de okursam doğru olanı okuduğumu umuyorum. Eğer 0 bir kozmik radyasyon veya kötü bir çip ile 1'e çevrilirse, asla bilemeyeceğim.

Geçmişte bunu parite ile çözmeye çalıştık. Eşlik, depolanan 8 bit başına dokuzuncu bir bit ekliyordu. Baytta kaç tane sıfır ve kaç tane olduğunu kontrol ettik. Dokuzuncu bunu eşit bir sayı yapacak şekilde ayarlandı. (hatta parite için) Hiç bayt okuduysanız ve sayı yanlışsa, bir şeyin yanlış olduğunu biliyordunuz. Hangi parçanın yanlış olduğunu bilmiyorsunuz.

ECC bunu genişletti. Tek bir bitin ne zaman çevrildiğini keşfetmek için 10 bit ve karmaşık bir algoritma kullanır. Ayrıca orijinal değerin ne olduğunu da bilir. Bunun nasıl olacağını açıklamanın çok basit bir yolu:

Hepsini 0s ile değiştirin 000. Hepsini 1s ile değiştirin 111.

: Artık altı kombinasyon okuyabilir
000
001
010
100
101
111

Asla nelerin saklandığından% 100 emin değiliz. Eğer 000okursak, bu sadece 000bizim beklediğimiz şey olabilirdi ya da üç bitin tümü ters çevrilmiş olabilirdi. İkincisi çok olası değildir. Bitler rastgele olmasına rağmen gerçekleşmez. Diyelim ki bazı kolay hesaplamalar için her on kez bir oluyor (gerçeklik çok daha az). Bu, aşağıdaki doğru değeri okuma şansı ile sonuçlanır:

000-> Ya 000(% 99,9 emin) veya üçlü bir flip (1/1000 şans)

001-> Bir şeylerin yanlış gittiğini biliyoruz. Ama ya ya 000bir bit çevrildi (1:10 şans), ya da 111iki bit çevrildi (1: 100 şans). Öyleyse 000hatayı okur gibi kaydederiz, ancak hatayı kaydederiz.

010 -> Yukarıdaki ile aynı.

100 -> Yukarıdaki ile aynı.

011 -> Yukarıdaki ile aynı, ancak bir 111

101 -> Yukarıdaki ile aynı, ancak bir 111

110 -> Yukarıdaki ile aynı, ancak bir 111

111-> Ya 111(% 99,9 emin) veya üçlü bir flip (1/1000 şans)

111-> Ya 000(% 99,9 emin) veya üçlü bir flip (1/1000 şans)

ECC'ler benzer numaralar yapar, ancak daha verimli bir şekilde yapar. 8 bit (bir bayt) için, algılamak ve düzeltmek için yalnızca 10 bit kullanırlar.


ECC kayıtlı RAM yalnızca iş istasyonu / sunucu kartlarıyla kullanılabilir ECC arabelleksiz, Intel Xeon lga1155 veya Asus kartlarında AMD AM3 + ile kullanılabilir.

ECC bölümünün ne olduğundan bahsettim, şimdi kayıtlı ve tamponlanmamış bölüm.

Modern CPU'larda bellek denetleyicisi, çok uzun zaman önce AMD Opteron yongaları ve Intel için Core i serisi ile başlayarak CPU kalıbında. Çoğu masaüstü işlemcisi daha sonra doğrudan RAM'i tutan DIMM yuvalarıyla konuşur. Çalışır ve ekstra bir mantık gerekmez. Bu inşa etmek ucuzdur ve hız yüksektir, çünkü bellek denetleyicisinden RAM'e kadar gecikme yoktur.

Ancak bellek denetleyicisi yüksek hızlarda yalnızca sınırlı bir akım sürebilir. Bu, bir anakarta kaç bellek soketi eklenebileceğinin bir sınırı olduğu anlamına gelir. (Ve daha karmaşık hale getirmek için, DIMM'lerin ne kadar kullanabileceği, bu da bellek sıralamalarına yol açar. Bunu zaten uzun olduğu için atlayacağım).

Sunucu anakartlarında genellikle bir masaüstü sistemden daha fazla bellek kullanmak istersiniz. Bu nedenle belleğe bir "kayıt" tamponu eklenir. DIMM üzerindeki yongalardan okunan değerler önce bu arabelleğe kopyalanır. Bir saat döngüsü sonra bu arabellek veri aktarımı için bellek kontrolörüne bağlanır.

Bu arabellek / kayıt işleri geciktirir, hafızayı yavaşlatır. Bu istenmeyen bir durumdur ve bu nedenle sadece çok fazla bellek bankası olan kartlarda kullanılır / gereklidir. Çoğu tüketici kartı buna ihtiyaç duymaz ve çoğu tüketici işlemcisi bunu desteklemez.

Doğrudan bağlı, ara belleğe alınmamış RAM ve arabelleğe alınmış / kayıtlı RAM'e kıyasla biri diğerinden daha iyi veya daha kötü bir durum değildir. Kaç bellek yuvasına sahip olabileceğiniz konusunda farklı takaslara sahipler. Kayıtlı RAM, bir miktar hızda (ve muhtemelen masrafta) daha fazla RAM'e izin verir. Mümkün olduğunca fazla belleğe ihtiyaç duyduğunuz çoğu durumda, bu ekstra bellek biraz daha yavaş bir hızda çalışan RAM'i telafi eder.

Şüphe duyuyorum (esas olarak asus am3 + board ile ilgili): ECC tamponlanmamış RAM ECC kayıtlı RAM kadar iyi (güvenlik ve güvenilirlik açısından)? Yoksa daha kötü bir seçim mi? Hız umurumda değil. **

Güvenlik ve istikrar açısından ECC tamponlu ve ECC kayıtlı aynıdır.


Ek bilgi: sunucu, 24 x 3 '' sürücüye kadar bir sunucu çantası kullanır ve mümkün olduğunca az tüketmelidir.

24 sürücü çok fazla güç tüketecek. Ne kadar sürücüler bağlı. 140 GB'lık 15K RPM SAS sürücüm, 1 TB SATA 7k2 diskiyle aynı rölantide sadece 10 watt çekiyor. Kullanımda her ikisi de daha fazla çizin.

Bunu 24 ile 24x10 Watt boşta çarptığınızda, 240 watt anlamına gelir, sadece disklerin plakaları dönerek hava direncini aşın. Kullanımda olan çift-ish.


LGA1155 bu anlamda diğerlerine (> 80W) kıyasla iki kat daha iyi bir bahis (TDP ~ 20-95W) gibi görünüyor.

Intel, düşük güçlü CPU'larda, yazma sırasında ve bahsettiğiniz CPU'lar için daha iyidir.

Herhangi bir öneri açığız. Rölantide 120W'tan az diyelim (~ 24 sabit diskin 10'unda).

FreeBSD için giderseniz, ZFS'ye çok bakın. Harika olabilir. Daha gelişmiş özelliklerinin çoğu (örneğin veri tekilleştirme ve / veya sıkıştırma) ciddi CPU gücü kullanır ve bol miktarda bellek ister. ZRAID ile temel kullanım için ZFS, hem bahsettiğiniz hem de 16 GB'lık CPU setlerinde iyi sonuç verir, ancak veri tekilleştirme gibi özellikleri açarsanız, disk kapasiteniz için önerilen önerilen belleğe dikkatlice bakmalısınız; Bazı kılavuzlar için TB depolama başına 5 GB'a kadar önerilir .

İki şey daha:

  1. Sürücüleri bağlamakla ilgili hiçbir şey görmedim. Bazı kartlar 10 adede kadar SATA bağlantı noktasına gidebilir. Ancak bunun üzerindeki her şey için eklenti kartlarına ihtiyacınız olacak. Donanım RAID'i düşünüyorsanız, bunu en baştan planlamak en iyisi olabilir.
  2. Sürücü hatası: SATA bağlantı noktası çarpanlarını kullanırsanız , bir SATA sürücüsü arızalanırsa nasıl davrandıklarına dikkat edin. Genellikle hoş değil. Bir ev kurulumu için büyük bir sorun değil, ama kurumsal sınıfta değil. Tek tek sürücülerin de hataları nasıl ele aldığını düşünmeniz gerekebilir. Bazı sürücülerin "NAS" veya "RAID" kullanımı olarak etiketlenmesinin nedeni, hataları normal sürücülerden farklı şekilde ele almalarıdır. RAID olmadan, sürücünün mümkün olduğunca çok kez yeniden denemesini istersiniz. RAID ile sürücünün hızlı bir şekilde arızalanmasını istersiniz , böylece başka bir kopyadan okuyabilirsiniz.

5
Bu aslında soruyu cevapladığı için oylama yapılırken, diğeri daha pratik / anekdot tavsiyesidir. Tamponsuz parçaya karşı kayıt yapmadan önce biraz kıvrıldığını görmezden geleceğiz;)
ernie

1
Evet, dolambaçlı. Kapsamlı olmaya çalıştım ama gerçekten yazar olmamalıyım. (kurgu ya da el kitapları).
Hennes

Heh, iktidarı ve diğer endişeleri ele almaya başladığınızda okumaya başladığımı da görmezden geleceğiz. . . ;)
ernie

1
Bu mükemmel bir cevap, daha kısa olamaz ve yine de tüm soruları çok iyi ele alıyor. Sadece metninizi temizleyen, uygulandıktan sonra yardımcı olacak ılımlı bir düzenleme yaptım. İki çizgiyi kesmek için özür bile kaldırıldı - burada kabul edilen cevap çok yardımcı olmadı. Ben oradayken ZFS veri tekilleştirme endişeleri kısaca genişletilmiş ve hata işleme sürücü. Titreşime girmemeye karar verdim, bu 24 sürücüyle de bir sorun olacak.
Greg Smith

Kayıtlı ve arabellekli olmayanları ve RDIMM'ye gitme nedenlerini açıkladığınız için teşekkür ederiz.
Mahmoud Al-Qudsi

1

İki ayrı konu.

ECC ve ECC dışı

  • çalışma süresinin önemli olduğu yerlerde ECC kullanın
  • daha fazla maliyet - 8 yerine 9 cips gerekir (katları)
  • anakart kullanmak için desteklemelidir

Kayıtlı vs Arabelleğe Alınmamış:

  • Kayıtlı DIMM'lerle (çok) daha fazla toplam RAM yüklü olabilir
    • Bellek denetleyicisi arabiriminde daha az elektrik yükü
  • Ancak kurulu tüm DIMM'ler kaydedilmeli veya kaydedilmemelidir
    • Kayıtlı sürümüne yükseltme yapıyorsanız arabelleksiz DIMMS'i kaldırmalıdır
  • Ayrıca daha pahalıdır ve erişim için daha yavaş bir döngü
    • Arabelleğe alınma, eğer önemliyse, biraz daha düşük gecikme süresidir
    • tüm rastgele erişimler yine de birçok döngü gerektirir
    • Mutlak erişim gecikmesinin (nanosaniye cinsinden süre) PC'lerde DRAM kullanım geçmişi üzerinde çok fazla iyileşmediğine dikkat edin
      • maliyet, kapasite ve bant genişliği büyük ölçüde iyileştirildi
      • bellek önbellekleri, çoğu bellek erişimi için gecikmeyi gizler
    • Daha uzun gecikme, tek iş parçacıklı 'gerçek zamanlı' performansa en çok zarar verir
      • genellikle 'sunucu' kullanım durumlarını fazla etkilemez
    • Bant genişliği ve genel performansta minimum / minimum fark
      • etkilenmeyen sıralı erişim bant genişliği
      • L2 / L3 önbellekleri, gerçek erişim kalıplarının çoğunlukla önbellekteki bir seferde satırların yerini aldığı anlamına gelir, bu nedenle genellikle 'seri çekim' erişimi yine de
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.