14

Я хотел бы построить сервер хранения (на основе 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).

3 ответа3

40

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

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

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

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

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

Заменить все 0 с на 000 . Заменить все 1 с на 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 вы хотите, чтобы диск быстро выходил из строя, чтобы вы могли читать из другой копии.
0

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

ECC против не-ECC

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .