ECC зарегистрирован против ECC без буферизации

15

Я хотел бы построить сервер хранения (на основе GNU / Linux или FreeBSD), который будет работать постоянно. Чтобы предотвратить повреждение данных (что вряд ли произойдет, поскольку у меня никогда не было такой проблемы, но лучше быть в безопасности, чем сожалеть), я хотел бы использовать ECC RAM.

Хотя не так хорошо, как EDD (?) (Что намного дороже) и обеспечивает дополнительную защиту. ECC, кажется, исправляет только ошибки одного бита.

Зарегистрированная ECC RAM может использоваться только с платами рабочих станций / серверов, такими как Intel Xeon или AMD Interlagos / Magny-Cours / Valencia G34 или C32.

ECC без буферизации можно использовать на Intel Xeon lga1155 или AMD AM3 + на платах Asus.

Второй вариант будет намного дешевле со стороны процессора и материнской платы, и я сомневаюсь, что мне понадобится более 16 ГБ ОЗУ (4x4 ГБ ECC без буферизации - самые большие доступные стики).

У меня возникло сомнение (в основном относительно платы asus am3 +): ОЗУ без буферизации ECC так же хорошо, как ОЗУ, зарегистрированное ECC (с точки зрения безопасности и надежности)? Или это худший выбор. Меня не волнует скорость.

Более подробная информация: сервер будет использовать серверный корпус с дисками до 24 x 3,5 дюйма и должен потреблять как можно меньше. LGA1155 кажется в этом смысле лучшей ставкой (TDP ~ 20-95 Вт) по сравнению с остальными (> 80 Вт) при удвоении цены. Любое предложение приветствуется. Скажем, на холостом ходу менее 120 Вт (~ с 10 жесткими дисками из 24).

user51166
источник
1
Если вы спросите SuperUser, вы получите ответ SuperUser. Спросите ServerFault, чтобы получить ответ ServerFault. Получите мой дрейф?
Чад Харрисон
В FAQ указано, что вопросы об аппаратном обеспечении могут быть
заданы
@hydroparadise Проверьте FAQ - мы разрешаем все аппаратные вопросы.
Симон Шихан
Sry, я думал, что это предполагалось. Я только упомянул, что со стороны ОС могут быть разные соображения относительно адресации ECC, потому что это в конечном итоге станет серверным приложением.
Чад Харрисон
1
Не прошло. Чаще всего чипсет будет обрабатывать коррекцию ECC (если есть). Вам не нужно подключаться к ним из ОС вообще. (Однако вы можете использовать DMI для получения информации об ошибках ECC или QPI.)
Hennes

Ответы:

-2

Что ж, если вы используете только 16 ГБ ОЗУ - что не является диапазоном ОЗУ сервера - вам будет вполне достаточно стандартного ОЗУ / sys для настольных ПК.

Если это всего лишь сервер хранения, вам даже не понадобится такая высокая производительность процессора.

Как вы сказали, идите с Sandy Bridge, он даст вам классную, производительную и надежную систему.

Говоря о диапазонах 16 ГБ ОЗУ, вам не нужно беспокоиться о ECC.

инф
источник
Спасибо за ваш быстрый ответ. Я, хотя выше 4 ГБ оперативной памяти вам понадобится ECC. Это обязательно для 256 ГБ ОЗУ или половины ТБ ОЗУ, ECC ОБЯЗАТЕЛЬНО. Но я думаю, что 16 ГБ было своего рода пределом ... Во всяком случае, это странно ... Xeon 4C / 8T Sandybridge стоит на 100 долларов (у меня дома) меньше, чем аналогичный настольный процессор. Общая стоимость ~ такая же. Никаких недостатков на ECC здесь. Вы уверены, что ECC не нужен ???
user51166
@ user51166 100% уверен. 16 ГБ - это как стандарт в наши дни для установок среднего / высокого класса.
инф
2
Тот факт, что это стандарт defacto, не обязательно означает, что он достаточно надежен. Уже читали о случаях в Интернете, когда все данные на диске были повреждены на жестком диске не из-за контроллера SATA, а из-за плохой (не-ecc) оперативной памяти.
user51166
1
@ user51166 Скажите парню, который сказал это, что не-ECC определенно не была его проблемой.
инф
1
"Registered ECC> Unbuffered ECC" Нет / иногда. Небуферизованный / незарегистрированный ECC будет на самом деле быстрее. Буферизованный / зарегистрированный ECC будет как минимум на одно действие регистра медленнее, но вы можете добавить больше модулей DIMM в канал памяти. (И больше памяти МОЖЕТ сделать вашу систему быстрее, даже если задержка увеличивается). Таким образом, вместо точного «да / нет» правильный ответ - «это зависит».
Hennes
45

ECC, кажется, исправляет только ошибки одного бита.

Верный. Для исправления большего количества ошибок потребуется больше битов. На самом деле, вы уже используете 10 бит для хранения 8 бит информации, «тратя» 20% микросхем памяти на коррекцию одного бита и до двух бит обнаружения ошибок.

Работает следующим образом. Представьте себе 0или 1. Если я читаю либо, то я просто надеюсь, что прочитал правильно. Если 0 переворачивается на 1 из-за какого-то космического излучения или плохого чипа, я никогда не узнаю.

В прошлом мы пытались решить это с паритетом. Четность добавляла девятый бит на 8 сохраненных битов. Мы проверили, сколько нулей и сколько 1 в байте. Девятое было установлено, чтобы сделать это четное число. (для четного контроля) Если вы когда-либо читали байт, а число было неправильным, значит, вы знали, что что-то не так. Вы не знаете, какой бит был неправильным, хотя.

ECC расширил это. Он использует 10 бит и сложный алгоритм, чтобы обнаружить, когда один бит перевернулся. Он также знает, каково было первоначальное значение. Очень простой способ объяснить, как это происходит:

Заменить все 0s на 000. Заменить все 1s на 111.

Теперь вы можете прочитать шесть комбинаций:
000
001
010
100
101
111

Мы никогда не уверены на 100%, что было изначально сохранено. Если мы читаем, 000то это могло быть именно тем, 000что мы ожидали, или все три бита могли перевернуться. Последнее очень маловероятно. Биты случайно не переворачиваются, хотя это случается. Допустим, это случается один раз в десять для некоторых простых вычислений (в действительности это намного меньше). Это дает следующие шансы на чтение правильного значения:

000-> Либо 000(уверен на 99,9%), либо в три раза (шанс 1/1000)

001-> Мы знаем, что что-то пошло не так. Но это либо было, 000и один бит перевернулся (шанс 1:10), либо так и было, 111и два бита перевернулись (шанс 1: 100). Итак, давайте относимся к этому, как будто мы читаем, 000но регистрируем ошибку.

010 -> То же, что и выше.

100 -> То же, что и выше.

011 -> То же, что и выше, но при условии, что это 111

101 -> То же, что и выше, но при условии, что это 111

110 -> То же, что и выше, но при условии, что это 111

111-> Либо 111(уверен на 99,9%), либо в три раза (шанс 1/1000)

111-> Либо 000(уверен на 99,9%), либо в три раза (шанс 1/1000)

ECCs делает подобные трюки, но делает это более эффективно. Для 8 бит (один байт) они используют только 10 бит для обнаружения и исправления.


Зарегистрированная ECC RAM может использоваться только с платами рабочих станций / серверов. ECC без буферизации может использоваться на Intel Xeon lga1155 или AMD AM3 + на платах Asus.

Я уже упоминал, что часть ECC была, теперь зарегистрированная часть против небуферизованной части.

В современных процессорах контроллер памяти находится на кристалле процессора, начиная с давних пор для чипов AMD Opteron и с серией Core i для Intel. Большинство процессоров для настольных ПК взаимодействуют напрямую с разъемами DIMM, содержащими оперативную память. Это работает, и никакой дополнительной логики не требуется. Это дешево для сборки, и скорость высока, потому что нет никаких задержек при переходе от контроллера памяти к оперативной памяти.

Но контроллер памяти может управлять ограниченным током только на высоких скоростях. Это означает, что существует ограничение на количество сокетов памяти, которые можно добавить к материнской плате. (И чтобы сделать его более сложным, к тому, сколько модулей DIMM можно использовать, что приводит к разрядам памяти. Я пропущу это, так как это уже долго).

На серверных платах вы часто хотите использовать больше памяти, чем настольные системы. Поэтому буферный регистр добавляется в память. Чтения из микросхем DIMM сначала копируются в этот буфер. Через несколько часов этот буфер подключается к контроллеру памяти для передачи данных.

Этот буфер / регистр задерживает вещи, делая память медленнее. Это нежелательно, и поэтому оно используется / требуется только на платах с большим количеством банков памяти. Большинство потребительских плат не нуждаются в этом, и большинство потребительских процессоров не поддерживают это.

Непосредственно подключенная небуферизованная ОЗУ по сравнению с буферизованной / зарегистрированной ОЗУ не является случаем, когда одно лучше или хуже другого. У них просто есть различные компромиссы с точки зрения того, сколько слотов памяти вы можете иметь. Зарегистрированная RAM позволяет больше оперативной памяти за счет некоторой скорости (и, возможно, за счет). В большинстве случаев, когда вам нужно как можно больше памяти, эта дополнительная память более чем компенсирует работу ОЗУ с несколько меньшей скоростью.

У меня возникло сомнение (в основном относительно платы asus am3 +): ОЗУ без буферизации ECC так же хорошо, как ОЗУ, зарегистрированное ECC (с точки зрения безопасности и надежности)? Или это худший выбор. Меня не волнует скорость. **

С точки зрения безопасности и стабильности ECC-небуферизованные и ECC-зарегистрированные одинаковы.


Более подробная информация: сервер будет использовать серверный корпус с дисками до 24 x 3 ½ '' и должен потреблять как можно меньше.

24 накопителя потребляют много энергии. Сколько зависит от дисков. Мой диск SAS 140 ГБ 15K RPM потребляет всего 10 Вт на холостом ходу, так же как и диск SATA 7k2 1 ТБ. При использовании оба рисуют больше.

Умножьте это на 24. 24x10 Вт на холостом ходу означает 240 Вт, просто поддерживая вращение дисков и преодолевая сопротивление воздуха. Двойной, что для использования.


LGA1155 кажется в этом смысле лучшей ставкой (TDP ~ 20-95 Вт) по сравнению с остальными (> 80 Вт) при удвоении цены.

Intel лучше справляется с процессорами с низким энергопотреблением, на момент написания и с процессорами, о которых вы упомянули.

Любое предложение приветствуется. Скажем, на холостом ходу менее 120 Вт (~ с 10 жесткими дисками из 24).

Если вы работаете с FreeBSD, присмотритесь к ZFS. Это может быть здорово. Многие из его более продвинутых функций (например, дедупликация и / или сжатие) используют серьезную мощность процессора и требуют много памяти. ZFS для базового использования с ZRAID отлично подойдет как для упомянутых вами наборов процессоров, так и для 16 ГБ, но если вы включите такие функции, как дедупликация, вам следует внимательно изучить рекомендуемую память, необходимую для вашей емкости диска; в некоторых руководствах рекомендуется использовать до 5 ГБ на ТБ памяти .

Еще две вещи:

  1. Я не видел ничего о подключении дисков. Некоторые платы могут иметь до 10 портов SATA. Но для всего этого вам понадобятся дополнительные карты. Если вы рассматриваете аппаратный RAID, то лучше спланировать это с самого начала.
  2. Отказ диска. Если вы используете множители портов SATA, внимательно посмотрите, как они работают в случае отказа диска SATA. Это часто не красиво. Не большая проблема для домашней установки, но не для корпоративного уровня. Возможно, вам придется подумать о том, как отдельные диски обрабатывают ошибки тоже. Причина, по которой некоторые диски помечены для использования в качестве «NAS» или «RAID», заключается в том, что они обрабатывают ошибки иначе, чем обычные диски. Без RAID вы хотите, чтобы диск повторялся столько раз, сколько это возможно. С RAID вы хотите, чтобы диск быстро выходил из строя , чтобы вы могли читать из другой копии.
Hennes
источник
5
Проголосование, поскольку это фактически отвечает на вопрос, в то время как другой - более практический / анекдотический совет. Мы проигнорируем, что это немного извилистое, прежде чем попасть в регистр против небуферизованной части;)
Эрни
1
Да, это меандр. Я пытался быть тщательным, но я действительно не должен становиться писателем. (либо из художественной литературы, либо из учебников).
Hennes
Хех, мы также будем игнорировать то, что я изначально прекратил читать, когда ты начал заниматься вопросами власти и другими проблемами. , , ;)
Эрни
1
Это отличный ответ, он не может быть короче и все же так хорошо решать все вопросы. Я только что сделал умеренное редактирование, которое очистило ваш текст и поможет после его применения. Даже снял ваши извинения, чтобы урезать две строки - принятый ответ здесь не очень помог. Я кратко остановился на проблемах дедупликации ZFS и обработке ошибок диска, пока был там. Решили не впадать в вибрацию, хотя это будет проблемой и с 24 приводами.
Грег Смит
Спасибо за разъяснение зарегистрированных и небуферизованных, а также причин, по которым стоит использовать RDIMM.
Махмуд Аль-Кудси
1

Два отдельных вопроса.

ECC против не-ECC

  • используйте ECC там, где важно время безотказной работы
  • стоит дороже - нужно (кратно) 9 фишек вместо 8
  • материнская плата должна поддерживать его, чтобы использовать его

Зарегистрированные против небуферизованных:

  • Может иметь (намного) больше общего объема оперативной памяти, установленной с зарегистрированными модулями DIMM
    • Меньшая электрическая нагрузка на интерфейс контроллера памяти
  • Но все установленные модули DIMM должны быть зарегистрированы или нет
    • необходимо удалить небуферизованные DIMMS при обновлении до зарегистрированного
  • Также дороже, и цикл медленнее для доступа
    • Небуферизованный - немного более низкая задержка, если это имеет значение
    • все случайные обращения в любом случае занимают много циклов
    • Обратите внимание, что абсолютная задержка доступа (время в наносекундах) не сильно улучшилась за историю использования DRAM в ПК.
      • вместо этого значительно улучшились стоимость, емкость и пропускная способность
      • кэши памяти в любом случае скрывают задержку для большинства обращений к памяти
    • Более длительная задержка больше всего влияет на однопоточную производительность в режиме реального времени.
      • обычно не сильно влияет на «серверные» варианты использования
    • Нет / минимальная разница в пропускной способности и общей производительности
      • пропускная способность последовательного доступа не изменяется
      • Кэши L2 / L3 означают, что фактические шаблоны доступа в большинстве случаев заменяют строки в кэше за раз, поэтому в любом случае это обычно «пакетный» доступ
RGD2
источник