Память без ECC с ZFS: глупая идея?

16

У меня новый сервер, и я планирую обновить до 2 ГБ памяти до максимум 16 ГБ. (Теоретически это 8 ГБ, но эмпирически показано, что 16 ГБ работают). Некоторые руководства рекомендуют, что память ECC не так важна, но я не уверен, что верю в это.

Я установил FreeNAS и планирую добавить тома ZFS, как только появятся мои новые жесткие диски. Было бы глупо экономить и получать не-ECC память для NAS на базе ZFS? Если это необходимо, то я укушу пулю, но если это просто паранойя, то я, вероятно, пропущу это.

Есть ли какая-то причина, по которой ZFS или FeeeNAS специально требуют память ECC или особенно страдают при работе в системе, использующей память не-ECC?

иконоборец
источник
11
Вообще говоря, для любого производственного / серверного приложения, которое вы хотите заплатить за оперативную память ECC. Руководства, которые предполагают, что память ECC "не так важна", в лучшем случае являются подозрительными - я бы рискнул сказать, что они написаны кем-то, кто никогда не имел ни единой ошибки в производственной системе.
voretaq7
1
Что бы вы делали с микросервером, которому требуется 16 ГБ оперативной памяти?
tombull89
ZFS с самого начала нуждается в оперативной памяти, и я планирую установить ESXi и запустить FreeNas. Таким образом, когда мне нужен какой-то другой сервер, я просто создаю новую виртуальную машину, избегая разрастания коробок и шнуров. (Если есть какое-то решение для домашней автоматизации, которое не сосет, как X-10, у меня есть коробка для него. Если я хочу использовать Git Lab для частных репозиториев, у меня есть коробка для него. И т.д.)
iconoclast
2
Я думаю, что если он уберет контекст о своей мини-башенной установке, которая может показаться чем-то вроде безумной сборки в производстве, вопрос о том, использовать ли ECC-память для установки ZFS или нет, действительно важная часть.
Кент Фредрик
1
Мэтт Аренс, соучредитель ZFS в 2001 году, говорит :There's nothing special about ZFS that requires/encourages the use of ECC RAM more so than any other filesystem.
Янус Троелсен

Ответы:

7

Я бы сказал, что запускать FreeNAS с ОЗУ, не относящимся к ECC, - глупая идея, равно как и запускать его в качестве виртуализированного гостя, когда важны данные, хранящиеся на томе ZFS.

Джошуа Паетцель, один из разработчиков FreeNAS, имеет хорошую рецензию на эту тему: http://www.freenas.org/whats-new/2015/02/a-complete-guide-to-freenas-hardware-design -part-i-target-and-best-practice.html .

TL; DR

ZFS делает то, чего не делает никакая другая файловая система: контрольные суммы ваших данных, контрольные суммы метаданных, используемых ZFS, и контрольные суммы контрольных сумм. Если ваши данные повреждены в памяти до их записи, ZFS с радостью запишет (и проверит контрольную сумму) поврежденные данные. Кроме того, в ZFS нет средства проверки согласованности или инструмента, который может исправить повреждение файловой системы. [...] Если модуль памяти не-ECC выходит из строя, это может нанести непоправимый ущерб вашему пулу ZFS, что может привести к полной потере памяти.

Рональд
источник
Благодарю. Я убежден. Это именно то, что мне нужно было знать.
иконоборчество
@iconoclast Я надеюсь, вы не ждали этого ответа 2 года.
2015 г.
13

ZFS защищает только ваши вложения в данные на диске. Если сервер должен быть в рабочем состоянии, то вы хотите максимально возможное время безотказной работы, и ECC помогает этому, позволяя серверу допускать ошибку ОДНОГО БИТА при сбое памяти. Это может дать вам время запланировать и заменить неисправную память без паники.

Якорь,
источник
@iconoclast Зависит от того, какой бит перевернут. Если это зашифрованные данные или ключ шифрования, то вы просто все потеряли ...
Майкл Хэмптон
1
@MichaelHampton: другими словами, шифрование данных на моем сервере фактически увеличивает вероятность их потери из-за сбоя памяти.
иконоборчество
2
@iconoclast Encryption не заменяет резервные копии. Хотя если вы шифруете свои диски, вам почти наверняка нужно также зашифровать свои резервные копии.
Майкл Хэмптон
3
@ewwhite Наличие одного блока питания - это проблема доступности. ОЗУ без ECC может повлиять как на доступность, так и на целостность . Нетрудно представить сценарии, в которых целостность важнее доступности.
Скайхок
2
Как я уже отмечал ранее. Этот сервер поставляется с ECC RAM. Весь этот аргумент глуп, потому что нет никакой причины использовать что-то кроме благословенных производителем комплектов оперативной памяти .
ewwhite
12

ECC RAM это хорошая вещь, но давайте посмотрим на контекст ...

Для вашего предполагаемого использования, ProLiant Microserver - это хороший небольшой сервер с низким уровнем воздействия. В нем отсутствуют некоторые атрибуты, обычно связанные с системами производственного качества (только четыре отсека для дисков, один блок питания, более слабый процессор). Поэтому я думаю, что вы столкнетесь с проблемами, связанными с этими недостатками, гораздо раньше, чем с последствиями отсутствия оперативной памяти с исправлением ошибок. Руководства, которые вы прочитали, верны ... Оперативная память ECC не так важна в этой конкретной системе ...

Это не относится к высококачественным системам производства.

Я добавлю: Microserver специально для ECC RAM . Почему бы тебе не использовать это?

ewwhite
источник
1
Я предполагаю, что под «качеством продукции» вы подразумеваете качество предприятия ? Я буду иметь это в производстве (это не для QA, UAT или разработки), только в очень очень маленьком масштабе. Но данные на нем будут реальными , а не мусорными данными, сгенерированными для разработки или клонированными с рабочего сервера. Это будут реальные производственные данные. (Между прочим, спасибо за очень полезный ответ, чтобы помочь поместить вещи в контекст!)
iconoclast
1
@iconoclast нет, качество продукции остается качеством продукции. Одиночный блок питания не подходит для любого типа сервера, который важно поддерживать, если только вы не хотите купить запасной блок питания для хранения, что было бы глупо, поскольку вы могли просто подключить этот запасной блок питания и иметь два бла-бла с двумя блоками питания. Быть в безопасности - это не «предприятие»
Пауска
3
@iconoclast Люди обычно думают, что производственный сервер работает круглосуточно и без выходных. Последнее, безусловно, представляет собой шкалу затрат / выгод, варьирующуюся от простого наличия двух блоков питания до избыточности уровня центра обработки данных. Однако в вашей настройке нет ничего из этого
Дэн
1
Этот разговор БП является мусором, при всем уважении. Моя сеть привязана к двум серверам, которые имеют пользовательскую сборку. DNS, DHCP, Active Directory. Запустите плату Micro-ATX в соответствующем корпусе, 8 дисков SAS + 2 SSD, контроллер Raid, SINGLE PSU. Вы бы назвали это не ГА? Что ж, сделайте это - у меня все еще есть зависание сетки HPC и виртуализации в качестве опорных точек (т.е. одна из них ДОЛЖНА быть включена).
TomTom
2
У некоторых компаний есть серверы, которые они выключают, когда возвращаются домой в конце дня! Я бы не стал делать это в своей домашней сети, но некоторые компании, похоже, не особо заботятся о доступности внутренних ресурсов.
Кент Фредрик