ECC terdaftar vs ECC tidak dibuat-buat

15

Saya ingin membangun server penyimpanan (berdasarkan GNU / Linux atau FreeBSD) yang akan selalu ada. Untuk mencegah korupsi data (yang tidak mungkin terjadi karena saya tidak pernah memiliki masalah seperti itu, tetapi lebih baik aman daripada menyesal) Saya ingin menggunakan RAM ECC.

Meskipun tidak sebagus EDD (?) (Yang jauh lebih mahal) dan memberikan perlindungan tambahan. ECC tampaknya hanya mengoreksi kesalahan bit tunggal.

RAM terdaftar ECC hanya dapat digunakan dengan papan workstation / server seperti Intel Xeon atau AMD interlagos / magny-cours / valencia g34 atau c32.

ECC unbuffered dapat digunakan pada Intel Xeon lga1155 atau AMD AM3 + pada papan Asus.

Pilihan kedua akan jauh lebih murah di sisi prosesor dan motherboard, dan saya ragu saya akan membutuhkan lebih dari 16GB RAM (4x4 GB ECC unbuffered adalah tongkat dengan harga terjangkau terbesar).

Keraguan yang saya alami adalah (terutama mengenai asus am3 + board): apakah ECC-unbuffered RAM dan ECC-terdaftar RAM (dari sudut pandang keselamatan dan keandalan)? Atau itu pilihan yang lebih buruk. Saya tidak terlalu peduli dengan kecepatan.

Lebih detail: server akan menggunakan case server dengan drive hingga 24 x 3.5 '' dan harus mengkonsumsi sesedikit mungkin. LGA1155 tampaknya dalam arti itu taruhan yang lebih baik (TDP ~ 20-95W) dibandingkan yang lain (> 80W) dengan harga dua kali lipat. Setiap saran diterima. Katakanlah kurang dari 120W saat idle (~ dengan 10 hard disk dari 24).

pengguna51166
sumber
1
Bertanya tentang Pengguna Super akan memberi Anda jawaban Pengguna Super. Tanya pada ServerFault akan memberi Anda jawaban ServerFault. Dapatkan maksud saya?
Chad Harrison
FAQ menyatakan pertanyaan perangkat keras dapat diajukan pada pengguna
super
@hydroparadise Periksa FAQ - kami mengizinkan semua pertanyaan perangkat keras.
Simon Sheehan
Sry, saya pikir itu dianggap. Hanya menyebutkan bahwa dari sisi OS mungkin ada pertimbangan yang berbeda dalam bagaimana ECC ditangani karena ini akan menjadi aplikasi server.
Chad Harrison
1
Nyaris tidak. Sebagian besar waktu chipset akan menangani koreksi ECC (jika ada). Anda tidak perlu memanfaatkan yang dari OS sama sekali. (Namun Anda dapat, menggunakan DMI untuk mendapatkan informasi tentang kesalahan ECC atau QPI.)
Hennes

Jawaban:

-2

Nah, jika Anda hanya menggunakan 16GB RAM - yang bukan rentang RAM server - Anda akan baik-baik saja dengan standar RAM / sys desktop apa pun.

Jika itu hanya server penyimpanan, Anda bahkan tidak akan membutuhkan kinerja CPU sebanyak itu.

Seperti yang Anda katakan, pergi dengan Sandy bridge, itu akan memberi Anda sistem yang keren, performan dan dapat diandalkan.

Berbicara tentang rentang RAM 16GB, Anda tidak perlu khawatir tentang hal-hal ECC.

inf
sumber
Terima kasih atas balasan cepat Anda. Saya pikir di atas 4GB RAM Anda akan membutuhkan ECC. Pasti untuk RAM 256GB atau setengah TB RAM ECC adalah HARUS. Tapi saya pikir 16GB adalah batasnya ... Pokoknya itu aneh ... Xeon 4C / 8T Sandybridge harganya 100 $ lebih murah (di tempat saya) daripada CPU desktop yang setara. Total biaya ~ sama. Tidak ada kekurangan pada ECC di sini. Apakah Anda yakin ECC tidak diperlukan ???
user51166
@ user51166 100% pasti. 16GB seperti standar saat ini di rig menengah / atas.
inf
2
Kenyataannya itu adalah standar de facto tidak selalu berarti bahwa itu cukup dapat diandalkan. Sudah membaca tentang kasus di internet di mana semua data pada disk menjadi rusak pada HDD bukan karena pengontrol SATA, tetapi karena RAM (non-ecc) yang buruk.
user51166
1
@ user51166 Katakan pada orang yang mengatakan itu, bahwa non-ECC jelas bukan masalahnya.
inf
1
"ECC Terdaftar> ECC Tidak Dibuffered" Tidak / terkadang. ECC yang tidak dibuat-buat / tidak terdaftar sebenarnya akan lebih cepat. Buffered / ECC terdaftar akan setidaknya satu tindakan mendaftar lebih lambat tetapi Anda dapat menambahkan lebih banyak DIMM ke saluran memori. (Dan lebih banyak memori BISA membuat sistem Anda lebih cepat, bahkan jika latensi meningkat). Jadi daripada "Ya / tidak" jawaban yang sulit adalah "itu tergantung".
Hennes
45

ECC tampaknya hanya mengoreksi kesalahan bit tunggal.

Benar. Untuk memperbaiki lebih banyak kesalahan akan membutuhkan lebih banyak bit. Seperti itu, Anda sudah menggunakan 10 bit untuk menyimpan 8 bit informasi, 'membuang' 20% dari chip memori untuk memungkinkan koreksi bit tunggal dan hingga dua bit deteksi kesalahan.

Ini berfungsi sebagai berikut. Bayangkan a 0atau a 1. Jika saya membaca keduanya maka saya hanya harus berharap saya membaca hal yang benar. Jika 0 dibalik ke 1 oleh beberapa radiasi kosmik atau oleh chip yang buruk maka saya tidak akan pernah tahu.

Di masa lalu kami mencoba menyelesaikannya dengan paritas. Parity menambahkan bit kesembilan per 8 bit yang disimpan. Kami memeriksa berapa nol dan berapa 1 dalam byte. Kesembilan ditetapkan untuk membuat angka genap. (untuk paritas genap) Jika Anda pernah membaca byte dan angkanya salah, maka Anda tahu ada yang salah. Anda tidak tahu bit mana yang salah.

ECC memperluasnya. Ini menggunakan 10 bit dan algoritma yang kompleks untuk menemukan ketika bit tunggal telah membalik. Ia juga tahu apa nilai aslinya. Cara yang sangat sederhana untuk menjelaskan bagaimana hal itu terjadi adalah:

Ganti semua 0dengan 000. Ganti semua 1dengan 111.

Sekarang Anda dapat membaca enam kombinasi:
000
001
010
100
101
111

Kami tidak pernah 100% yakin apa yang awalnya disimpan. Jika kita membaca 000maka itu mungkin hanya 000yang kita harapkan, atau ketiga bit itu mungkin terbalik. Yang terakhir sangat tidak mungkin. Bit tidak terbalik secara acak, meskipun itu terjadi. Katakanlah itu terjadi satu dari sepuluh kali untuk beberapa perhitungan yang mudah (kenyataannya jauh lebih sedikit). Itu berhasil dengan peluang berikut untuk membaca nilai yang benar:

000-> Baik 000(99,9% yakin), atau flip tiga (peluang 1/1000)

001-> Kami tahu ada yang salah. Tapi entah itu 000dan satu bit terbalik (peluang 1:10), atau itu 111dan dua bit terbalik (peluang 1: 100). Jadi mari kita perlakukan seolah-olah kita membaca 000tetapi mencatat kesalahannya.

010 -> Sama seperti di atas.

100 -> Sama seperti di atas.

011 -> Sama seperti di atas, tetapi dengan asumsi itu adalah 111

101 -> Sama seperti di atas, tetapi dengan asumsi itu adalah 111

110 -> Sama seperti di atas, tetapi dengan asumsi itu adalah 111

111-> Baik 111(99,9% yakin), atau flip tiga (peluang 1/1000)

111-> Baik 000(99,9% yakin), atau flip tiga (peluang 1/1000)

ECC melakukan trik serupa tetapi melakukannya dengan lebih efisien. Untuk 8 bit (satu byte) mereka hanya menggunakan 10 bit untuk mendeteksi dan memperbaiki.


RAM yang terdaftar ECC hanya dapat digunakan dengan papan workstation / server ECC unbuffered dapat digunakan pada Intel Xeon lga1155 atau AMD AM3 + pada papan Asus.

Saya sudah menyebutkan apa bagian ECC itu, sekarang bagian yang terdaftar vs yang tidak dibangun.

Pada CPU modern, pengontrol memori ada pada die CPU, dimulai sejak lama untuk chip AMD Opteron dan dengan seri Core i untuk Intel. Sebagian besar CPU desktop kemudian berbicara langsung ke soket DIMM yang memegang RAM. Ini bekerja dan tidak ada logika tambahan yang diperlukan. Itu murah untuk dibuat, dan kecepatannya tinggi karena tidak ada penundaan dari pengontrol memori ke RAM.

Tetapi pengontrol memori hanya dapat menggerakkan arus terbatas pada kecepatan tinggi. Ini berarti ada batasan berapa banyak soket memori yang dapat ditambahkan ke motherboard. (Dan untuk membuatnya lebih kompleks, seberapa banyak DIMM dapat digunakan, yang mengarah ke peringkat memori. Saya akan melewatkan itu karena ini sudah lama).

Pada papan server Anda sering ingin menggunakan lebih banyak memori daripada sistem desktop. Oleh karena itu buffer "register" ditambahkan ke memori. Membaca dari chip pada DIMM pertama kali disalin ke buffer ini. Siklus clock kemudian buffer ini terhubung ke pengontrol memori untuk mentransfer data.

Buffer / register ini menunda banyak hal, membuat memori lebih lambat. Itu tidak diinginkan dan karenanya hanya digunakan / dibutuhkan pada papan yang memiliki banyak bank memori. Sebagian besar papan konsumen tidak membutuhkan ini, dan sebagian besar CPU konsumen tidak mendukungnya.

RAM yang terhubung langsung, tidak terbuffer vs RAM yang disangga / terdaftar bukan merupakan kasus di mana yang satu lebih baik atau lebih buruk daripada yang lain. Mereka hanya memiliki trade-off yang berbeda dalam hal berapa banyak slot memori yang dapat Anda miliki. Registered RAM memungkinkan lebih banyak RAM dengan mengorbankan beberapa kecepatan (dan mungkin biaya). Dalam kebanyakan kasus di mana Anda membutuhkan memori sebanyak mungkin, memori ekstra itu lebih dari mengimbangi RAM yang berjalan pada kecepatan yang sedikit lebih lambat.

Keraguan yang saya alami adalah (terutama mengenai asus am3 + board): apakah ECC-unbuffered RAM dan ECC-terdaftar RAM (dari sudut pandang keselamatan dan keandalan)? Atau itu pilihan yang lebih buruk. Saya tidak terlalu peduli dengan kecepatannya. **

Dari sudut pandang keselamatan dan stabilitas, ECC-unbuffered dan ECC-terdaftar adalah sama.


Lebih detail: server akan menggunakan kasing server dengan drive hingga 24 x 3 ½ 'dan harus mengkonsumsi sesedikit mungkin.

24 drive akan mengkonsumsi banyak daya. Berapa banyak tergantung pada drive. Drive 140GB 15K RPM SAS saya hanya menghasilkan 10 watt saat idle, sama dengan disk 1TB SATA 7k2. Saat digunakan keduanya lebih menarik.

Lipat gandakan dengan 24. 24x10 Watt saat idle berarti 240 watt hanya menjaga piringan piringan berputar, mengatasi hambatan udara. Double-ish untuk digunakan.


LGA1155 tampaknya dalam arti itu taruhan yang lebih baik (TDP ~ 20-95W) dibandingkan yang lain (> 80W) dengan harga dua kali lipat.

Intel lebih baik pada CPU berdaya rendah, pada saat penulisan dan untuk CPU yang Anda sebutkan.

Setiap saran diterima. Katakanlah kurang dari 120W saat idle (~ dengan 10 hard disk dari 24).

Jika Anda menggunakan FreeBSD, perhatikan keras pada ZFS. Itu bisa bagus. Banyak fitur yang lebih canggih (mis. Deduplikasi dan / atau kompresi) menggunakan daya CPU yang serius, dan ingin banyak memori. ZFS untuk penggunaan dasar dengan ZRAID akan baik-baik saja pada kedua set CPU yang Anda sebutkan dan dengan 16 GB, tetapi jika Anda mengaktifkan fitur seperti deduplikasi, Anda harus melihat dengan hati-hati ke memori yang direkomendasikan yang diperlukan untuk kapasitas disk Anda; direkomendasikan hingga 5GB per TB penyimpanan oleh beberapa panduan .

Dua hal lagi:

  1. Saya tidak melihat apa-apa tentang menghubungkan drive. Beberapa papan mungkin mencapai hingga 10 port SATA. Tetapi untuk apa pun yang lebih dari itu, Anda akan membutuhkan kartu tambahan. Jika Anda mempertimbangkan RAID perangkat keras, mungkin yang terbaik adalah merencanakannya sejak awal.
  2. Kegagalan drive: Jika Anda menggunakan pengganda port SATA, kemudian perhatikan dengan cermat bagaimana mereka bertindak jika drive SATA gagal. Seringkali tidak cantik. Bukan masalah besar untuk pengaturan rumah, tetapi sangat tidak kelas perusahaan. Anda mungkin perlu mempertimbangkan bagaimana masing-masing drive menangani kesalahan juga. Alasan beberapa drive diberi label untuk penggunaan "NAS" atau "RAID" adalah karena mereka menangani kesalahan secara berbeda dari drive biasa. Tanpa RAID, Anda ingin drive mencoba sebanyak mungkin. Dengan RAID, Anda ingin drive gagal dengan cepat , sehingga Anda dapat membaca dari salinan lain.
Hennes
sumber
5
Terpilih karena ini sebenarnya menjawab pertanyaan, sedangkan yang lain lebih praktis / anekdot. Kami akan mengabaikannya sedikit berkelok-kelok sebelum sampai ke bagian register vs unbuffered;)
ernie
1
Ya, itu berliku-liku. Saya mencoba untuk teliti tetapi saya seharusnya tidak menjadi seorang penulis. (baik fiksi atau manual).
Hennes
Heh, kami juga akan mengabaikan bahwa saya awalnya berhenti membaca ketika Anda mulai membahas kekuatan dan masalah lainnya. . . ;)
ernie
1
Ini adalah jawaban yang sangat baik, tidak bisa lebih pendek dan masih menjawab semua pertanyaan dengan baik. Saya baru saja melakukan pengeditan moderat yang membersihkan teks Anda yang akan membantu setelah diterapkan. Bahkan menghapus permintaan maaf Anda untuk memotong dua baris - jawaban yang diterima di sini tidak terlalu membantu. Saya melakukan ekspansi singkat tentang masalah deduplikasi ZFS dan mendorong penanganan kesalahan saat saya di sana. Memutuskan untuk tidak masuk ke getaran, meskipun itu akan menjadi masalah dengan 24 drive juga.
Greg Smith
Terima kasih telah mengklarifikasi yang terdaftar vs yang tidak dibangun, dan alasan untuk menggunakan RDIMM.
Mahmoud Al-Qudsi
1

Dua masalah terpisah.

ECC Vs non-ECC

  • gunakan ECC di mana pun waktu aktif penting
  • biaya lebih banyak - perlu (kelipatan) 9 chip, bukan 8
  • motherboard harus mendukungnya untuk menggunakannya

Vs Terdaftar Tidak Dibuat:

  • Dapat memiliki (lebih banyak) total RAM yang diinstal dengan DIMM Terdaftar
    • Lebih sedikit ketegangan listrik pada antarmuka pengontrol memori
  • Tetapi semua DIMM yang diinstal harus terdaftar atau tidak
    • harus menghapus DIMMS yang tidak dibangun jika meningkatkan ke Terdaftar
  • Juga lebih mahal, dan siklus lebih lambat untuk diakses
    • Unbuffered adalah latensi yang sedikit lebih rendah, jika itu penting
    • semua akses acak mengambil banyak siklus
    • Catatan latensi akses absolut (waktu dalam nanodetik) belum banyak meningkat selama sejarah penggunaan DRAM di PC
      • biaya, kapasitas dan bandwidth jauh lebih baik
      • cache memori menyembunyikan latensi untuk sebagian besar akses memori
    • Latensi yang lebih lama paling menyakitkan kinerja single-thread 'real-time'
      • biasanya tidak terlalu mempengaruhi kasus penggunaan 'server'
    • Tidak ada / perbedaan minimal dalam bandwidth dan kinerja keseluruhan
      • bandwidth akses sekuensial tidak terpengaruh
      • Tembolok L2 / L3 berarti pola akses aktual sebagian besar menggantikan baris pada satu waktu dalam cache, jadi biasanya pula 'burst' diakses
RGD2
sumber