Технологии обеспечения максимальной надежности (RAS) для оперативной памяти в серверах HPE ProLiant и HPE Synergy Gen10 Plus с процессорами Intel Xeon Scalable

Сбои в оперативной памяти, могут привести к возникновению существенных инцидентов и даже сбоям сервера. Современные серверы оснащаются всё большими объемами оперативной памяти и вероят­ность отказа устройств памяти увеличивается пропорционально. Поскольку отказы устройств оперативной памяти являются одними из наиболее частых типов отказов серверов (помимо отказов устройств хранения), серверы HPE ProLiant Gen10 Plus с современными процессорами Intel Xeon Scalable предоставляют наиболее полный набор функций обеспечения надежности, доступности и удобства обслуживания (RAS) памяти, разделенных на следующие категории:

  • обнаружение и исправление ошибок;

  • резервирование и отказоустойчивость;

  • техническое обслуживание.

В этом документе представлен краткий обзор некоторых технологий обеспечения максимальной надёжности (RAS – Reliability, Availability, Serviceability) для оперативной памяти в серверах HPE ProLiant Gen10 Plus, ключевых характеристик этих технологий, минимальных требований и способов их активации. Данная информация поможет вам выбрать наиболее подходящие технологии RAS для оперативной памяти, чтобы обеспечить необходимый уровень предоставления услуг центра обработки данных (ЦОД) для требовательных рабочих нагрузок, и в особенности для критически важных для бизнеса рабочих нагрузок.

Примечание

Этот документ посвящен исключительно функциям RAS для оперативной памяти сервера. В нем не рассматривается полный набор других технологий RAS в портфелях HPE ProLiant и HPE Synergy.

Зачем нужны технологии RAS для оперативной памяти

Время безотказной работы серверов по-прежнему остается одним из наиболее важных аспектов обслуживания ЦОД. К сожалению, при эксплуатации серверов могут возникать различные проблемы, например, с программным обеспечением, перебои в подаче электроэнергии или ошибки в оперативной памяти. Мы отслеживаем и управляем тремя основными категориями ошибок памяти: исправимыми (correctable errors), неисправимыми (uncorrectable errors) и восстановимыми (recoverable errors) ошибками. Определение того, какие ошибки можно исправить, а какие нет, полностью зависит от возможностей контроллера памяти.

Исправимые ошибки — это ошибки, которые могут быть обнаружены и исправлены набором микросхем. Исправимые ошибки являются однобитовыми. Все серверы HPE могут обнаруживать и исправлять однобитовые ошибки с помощью расширенного кода исправления ошибок (ECC). В системах HPE пользователь получает предупреждение о том, что в модуле DIMM превышен порог исправимых ошибок (максимальное количество исправимых ошибок, допустимое за определенный период времени), посредством индикаторов на передней панели, на системной плате (при наличии) или с помощью журнала HPE Integrated Management Log (IML).

Неисправимые ошибки — это ошибки, которые могут быть обнаружены, но не могут быть исправлены набором микросхем. Это всегда многобитовые ошибки памяти, они обязательно регистрируется в HPE IML. Неисправимые ошибки обычно можно изолировать до одного модуля DIMM. Как правило, неисправимые ошибки сразу приводят к сбою или отключению системы. Но в некоторых случаях благодаря поддержке ОС и процессорам с расширенными возможностями (Intel Xeon Platinum и Intel Xeon Gold) сбоя системы удается избежать. Мы называем это восстановимыми ошибками. Для получения дополнительных сведений о восстановлении работы после таких ошибок, необходима также поддержка со стороны операционной системы.

Ошибки памяти бывают двух типов: аппаратные (hard) и программные/случайные (soft).

  • Аппаратные ошибки обычно указывают на проблему с самим модулем DIMM. Хотя аппаратные исправимые ошибки исправляются системой и не приводят к простою системы или повреждению данных, они указывают на проблему с оборудованием. Из-за аппаратных ошибок в модуле DIMM может быть превышен допустимый для систем HPE порог ошибок и пользователь получит предупреждение об этих ошибках.

    Программные/случайные ошибки не указывают на какие-либопроблемы с DIMM. Они возникают, когда биты данных и (или) биты ECC в DIMM неверны, но исчезают после исправления этих битов данных.

  • Программные/Случайные ошибки, как правило, не приводят к тому, что в модуле DIMM превышается пороговое значение исправимых ошибок, установленное для систем HPE, поэтому никаких признаков аппаратной проблемы не отображается.

    Любая ошибка, если ее неправильно обработать, может в конечном итоге вызвать отключение системы. На заре появления серверов базового набора механизмов корректировки ошибок памяти (ECC) было достаточно для устранения большинства сбоев DRAM. Однако современные серверы существенно сложнее, поэтому для обеспечения ожидаемой стабильности и времени безотказной работы сервера необходимы дополнительные функции RAS. Важно отметить, что, избежав критического отказа памяти, можно избежать сбоя системы. Замена вышедших из строя устройств памяти осуществляется в рамках периодического обслуживания. Кроме того, технологии памяти RAS способны обнаруживать в слоте DIMM устройство памяти, в котором возникло много программных/случайных ошибок, и рекомендовать его замену до того, как произойдет аппаратный отказ.

RAS технологии для оперативной памяти в серверах HPE ProLiant и HPE Synergy

HPE Fast Fault Tolerance

Обзор

HPE Fast Fault Tolerance — новая технология обеспечения бесперебойной работы оперативной памяти, впервые представленная в серверах HPE ProLiant Gen10 Plus с процессорами Intel Xeon Scalable. Серверы с модулями памяти HPE SmartMemory и технологией HPE Fast Fault Tolerance предлагают дополнительный уровень защиты от простоев и сбоев серверов. HPE Fast Fault Tolerance, усовершенствованная версия адаптивной двойной коррекции ошибок (adaptive double device data Correction – ADDDC), является результатом сотрудничества Hewlett Packard Enterprise и Intel. По сравнению с ADDDC, технология HPE Fast Fault Tolerance имеет больший размер резервных областей (то есть части памяти, выделенной только для замены поврежденных участков памяти) и больше возможностей для определения дефектных секторов. Это позволяет обеспечить значительно большую надежность и доступность памяти по сравнению с остальными поставщиками, использующими только ADDDC.

Характеристики

В прошлых поколениях серверов HPE ProLiant самой передовой технологией защиты памяти была двойная коррекция данных устройства (DDDC). Основным недостатком было то, что эту функцию нужно было включать при загрузке и она значительно уменьшала пропускную способность памяти. Заказчикам приходилось выбирать между отказоустойчи­востью и производительностью. HPE Fast Fault Tolerance обеспечивает значительное улучшение по сравнению с DDDC, поскольку объединяет преимущества производительности одинарной коррекции данных (SDDC) с доступностью двойной коррекции (DDDC). HPE Fast Fault Tolerance позволяет системе загружаться с полной производительностью памяти и блокирует только небольшие области (банки) памяти, когда это необходимо для исправления сбоев, что приводит к значительно более высокой производительности, чем у DDDC. Когда неисправный раздел больше банка, может наблюдаться несколько большее негативное влияние на производительность.

Краткие выводы

  • HPE Fast Fault Tolerance выдерживает до двух отказов DRAM (обнаружение и устранение).

  • Эта функция RAS сочетает в себе отказоустойчивость DDDC с производительностью SDDC.

Минимальные требования

На каждом заполненном канале должна использоваться как минимум одноранковая память. Кроме того, поддерживается только HPE SmartMemory с организацией x4.

Как включить HPE Fast Fault Tolerance

Функция HPE Fast Fault Tolerance по умолчанию включена для всех профилей рабочих нагрузок, кроме профиля с низкой задержкой.

HPE Fast Fault Tolerance можно включить или отключить на любом сервере HPE Gen10 Plus с
помощью

RBSU или HPE RESTful API. Чтобы изменить настройку по умолчанию в профиле
рабочей нагрузки, сначала необходимо выбрать нужный профиль рабочей нагрузки, а
затем изменить его на «Пользовательский» (Custom). На этом этапе функция HPE
Fast Fault Tolerance может быть соответственно включена или отключена в меню «Параметры памяти — расширенная защита памяти» (Memory Options — Advanced
Memory Protection).

Требования к конфигурации HPE Fast Fault Tolerance для каждой серии серверов могут отличаться, но поддержка ОС или специального программного обеспечения, помимо базовой системы ввода-вывода (BIOS), не требуется.

Функция HPE Fast Fault Tolerance активирована в RBSU
Функция HPE Fast Fault Tolerance активирована в RBSU

Технические требования

При выходе из строя области оперативной памяти DRAM будет наблюдаться минимальное снижение производительности, но лишь в небольшой части (наиболее распространенный размер — банк) модуля памяти. Никаких значительных потерь для нагрузок с произвольным доступом к памяти не ожидается, поскольку доступ к области памяти, находящейся в режиме блокировки, будет осуществляться нечасто. Потеря производительности может быть значительной только при наличии виртуальной блокировки всего ранка памяти (rank level virtual lockstep), или если приложение часто обращается к данной области памяти до замены модуля DIMM. Ожидается, что общее снижение пропускной способности при работе HPE Fast Fault Tolerance будет минимальным для подавляющего большинства заказчиков, однако это зависит от приложения, размера затронутой области и конфигурации памяти.

Поддержка расширенного ЕСС

Обзор

Стандартные механизмы ECC могут исправлять однобитовые и обнаруживать многобитовые ошибки памяти. При обнаружении многобитовых ошибок при использовании ECC, сигнал об ошибке передаётся серверу и сервер останавливается.

Расширенный ECC уже более двух десятилетий является схемой исправления ошибок по умолчанию в серверах HPE. Он защищает серверы не только от однобитовых, но и некоторых многобитовых ошибок памяти, в особенности возникающих в пределах одной микросхемы DRAM.

Расширенный ECC может исправить как однобитовые, так и 4-битовые ошибки памяти, если все вышедшие из строя биты находятся на одном устройстве DRAM в модуле DIMM. Расширенный ECC обеспечивает более высокий уровень защиты по сравнению со стандартным ECC, поскольку позволяет исправить определенные ошибки памяти, которые в противном случае не были бы исправлены и привели к сбою сервера. Когда модуль DIMM подаёт признаки скорого возможного выхода из строя или возрастает вероятность возникновения неисправимых ошибок в памяти, сервер отправляет уведомление, используя передовую технологию обнаружения ошибок памяти HPE.

Минимальные требования

Для поддержки расширенного ECC нет никаких особых правил заполнения памяти или настроек RBSU. Она включена по умолчанию на платформах, использующих процессоры Intel Xeon Scalable.

Как включить поддержку расширенного ЕСС

Поддержка расширенного ECC — это режим расширенной защиты памяти по умолчанию в RBSU > «Параметры памяти» (Memory Options).

Поддержка расширенного ECC — функция RBSU по умолчанию
Поддержка расширенного ECC — функция RBSU по умолчанию

Технические сведения

Хотя расширенный ECC обеспечивает защиту от сбоев, он способен надежно исправлять многобитовые ошибки, только если они возникают в пределах одной микросхемы DRAM. Расширенный ECC не обеспечивает возможности переклю­чения (failover) при отказе. Если происходит отказ памяти, перед ее заменой систему необходимо выключить. Последние поколения серверов HPE ProLiant и HPE Synergy с процессорами Intel Xeon Scalable предлагают три уровня расширенной защиты памяти (включая HPE Fast Fault Tolerance), которые обеспечивают повышенную отказоустойчивость для приложений, требующих наивысшего уровня доступности.

Зеркалирование памяти с поддержкой расширенного ECC

Обзор

Зеркалирование памяти с поддержкой расширенного ECC обеспечивает защиту от некоторых неисправимых ошибок, которые в противном случае привели бы к отказу системы. Доступны два режима: поддержка полностью и частично зеркалированной памяти.

  • В режиме полностью зеркалированной памяти используется половина объема системной памяти для хранения одной копии всех данных.

  • Режим частично зеркалированной памяти дает возможность пользователю назначить меньший объем системной памяти для зеркалирования. Эта функция поддерживается продвинутыми версиями процессоров Intel Xeon Platinum и Gold.

Если в защищенной области зеркалированной памяти возникает неисправимая ошибка, система автоматически получает правильные данные из резервной копии. Система продолжает нормально работать без вмешательства пользователя. Обеспечивая дополнительное резервирование в подсистеме памяти, зеркалирование памяти гарантирует максимальную защиту от сбоев памяти, которые не исправляются с помощью ECC, SDDC, DDDC, ADDDC и Online Spare Memory.

Характеристики

При включении полностью зеркалированной памяти только половина установленной памяти может исполь­зоваться в качестве видимой для системы оперативной памяти. Поскольку полное зеркалирование памяти занимает 50 % объема установленной памяти, оно предназначено для серверных рабочих нагрузок, которым требуется наивысший уровень защиты от сбоев устройств памяти. Зеркалирование памяти имеет смысл рассматривать для тех рабочих нагрузок, где недопустим риск простоя и остановки сервера для плановой замены вышедших из строя модулей памяти.

Частичное зеркалирование памяти может быть настроено пользователем и поддерживает различные режимы:

  • настройка в ОС;

  • первые 4 ГБ памяти сервера.

Дополнительные сведений о поддержке частичного зеркалирования памяти можно получить у поставщика ОС.

Влияние зеркалирования памяти на производительность обычно невелико. Поскольку при частичном зеркалировании используется меньше памяти, стоимость его внедрения будет значительно ниже, чем у полного зеркалирования.

Минимальные требования

Третье поколение семейства процессоров Intel Xeon Scalable поддерживает четыре контроллера памяти на процессор. Каждый контроллер управляет двумя каналами памяти. При включении режима зеркалирования памяти, два канала, подключенные к одному контроллеру памяти, становятся зеркальной парой. Чтобы включить зеркалирование, эти каналы должны быть заполнены одинаково. Если модули DIMM установлены на нескольких парах каналов, заполнение каждой пары может отличаться от остальных — при условии, что оно является допустимым. Обратите внимание, что неоднородное заполнение будет иметь негативные последствия для производительности.

Схемы зеркалирования памяти для серверов HPE Proliant GEN 10 Plus

Серверы HPE DL360/DL380 Gen10 Plus
Передняя часть сервер
Серверы HPE DL360/DL380 Gen10 Plus Передняя часть сервер
Серверы HPE Apollo 4200 Gen10 Plus
Передняя часть сервера
Серверы HPE Apollo 4200 Gen10 Plus Передняя часть сервера

К частичному зеркалированию памяти применяются те же правила установки модулей памяти, что и к полному зеркалированию, поддерживаемому платформой.

Как включить зеркалирование памяти

Поддержку зеркалирования памяти с расширенным ECC можно включить в RBSU, выбрав этот параметр в меню «Расширенная защита памяти». Для полностью зеркалированной памяти заказчик назначает половину банков памяти как системную память, а остальные банки — как зеркальное отображение. Все банки памяти должны быть настроены идентично.

Функция зеркалированной памяти — включена в RBSU
Функция зеркалированной памяти — включена в RBSU

Для настройки частичного зеркалирования в вариантах расширенной защиты памяти следует выбрать зеркальную память с расширенным ECC (Mirrored Memory with Advanced ECC), а в режимах зеркального отображения памяти — соответствующий параметр, как показано на рисунке ниже.

Частичное зеркалирование памяти — расширенная функция включена в RBSU
Частичное зеркалирование памяти — расширенная функция включена в RBSU
Примечание

Опция Partial Mirror (OS Configured) поддерживается только некоторыми ОС. За дополнительной информацией необходимо обращаться к поставщику ОС.

Технология Memory scrubbing (чистка памяти, патрульная и по требованию)

Обзор

Технология Memory scrubbing (чистка памяти) — это стандартная функция памяти RAS, которая предотвращает накопление случайных ошибок и, в конечном итоге, превращение их в неисправленную ошибку. Это достигается за счет упреждающей записи правильных данных обратно в память при каждом обнаружении ошибки. Иногда достаточно крупные области памяти подолгу остаются невостребованными, поскольку к ним не происходит обращения, и этом случае и возникает необходимость использования дополнительной чистки памяти. В современных системах есть два типа чистки: патрульная и по требованию. Оба варианта делают одно и то же, при обнаружении ошибки они исправляют ее в памяти. Существенная разница в том, как обнаруживается ошибка. Патрульная чистка — это, скорее, упреждающий поиск ошибок, постоянно возникающих в фоновом режиме, в то время как чистка по требованию происходит только тогда, когда память считывается ОС или приложением.

Характеристики

Когда функция патрульной чистки включена, она проактивно ищет в системной памяти исправимые ошибки и исправляет их. Это предотвращает накопление однобитовых ошибок, которые становятся неисправимыми, когда пороговое количество исправимых ошибок превышено или преобразовано в многобитовые ошибки. На каждый интегрированный контроллер памяти (IMC) приходится один механизм патрульной чистки.

Минимальные требования

Для патрульной чистки нет никаких особых правил заполнения памяти или настроек RBSU. Она включена по умолчанию на платформах процессоров Intel Xeon Scalable и может быть отключена пользователем. Чистка по запросу всегда включена по умолчанию и не может быть отключена.

Как включить патрульную чистку

Она включена по умолчанию в любом режиме расширенной защиты памяти, выбираемом в RBSU > «Параметры памяти» (Memory Options).

Патрульная чистка — включена в RBSU
Патрульная чистка — включена в RBSU

Технические требования

BIOS активирует механизм патрульной чистки во время загрузки и устанавливает интервал чистки. Чистка включает в себя следующее.

  • Один раз в день выполняется чтение каждой строки кэша для проверки ошибок.

  • При обнаружении ошибок правильные данные записываются обратно в память.

Патрульная чистка предназначена для того, чтобы исправимые ошибки не оставались в DRAM слишком долго и не могли объединиться с временной ошибкой, вызвав в результате неисправимую ошибку. Патрульная чистка работает во всех режимах памяти RAS, таких как расширенный ECC, зеркалирование или резервирование ранков, и помогает уменьшить количество неисправимых событий.


Спрос на серверы с большей емкостью памяти неуклонно растет. Это обусловлено все более сложными и требовательными к памяти приложениями и более мощными процессорами. Увеличение плотности и емкости памяти повышает вероятность ошибок, поэтому перед производителями серверов стоит задача не только удовлетворять потребность в большем объеме системной памяти, но и поддерживать ее надежность.

Компания Hewlett Packard Enterprise решает эту задачу, предлагая отказоустойчивые технологии защиты памяти, такие как Online Spare Memory (динамическое переключение в случае сбоя), зеркалирование памяти и HPE Fast Fault Tolerance. Функция Online Spare Memory полезна для заказчиков, которые не могут позволить себе простои из-за ошибок памяти, но могут дожидаться запланированной остановки сервера для замены вышедших из строя модулей памяти. Зеркалированная память обеспечивает более высокий уровень доступности и отказоустойчивости, гарантируя полную защиту от однобитовых и многобитовых ошибок. HPE Fast Fault Tolerance, новейшая технология, представленная в серверах HPE ProLiant и HPE Synergy Gen10 Plus с процессорами Intel Xeon Scalable, сочетает в себе значительно улучшенную надежность памяти и доступность для заказчика.

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


Официальный сайт HPE ⬝ Группа ВКонтакте ⬝ Telegram-канал    

Комментарии (25)


  1. LeshaRB
    12.01.2022 10:40
    +13

    На клавиатуре слева есть кнопка CapsLock...

    Когда пишите заголовки, ее можно нажать (выключить)


  1. netch80
    12.01.2022 11:02
    +1

    Какая частота проблем с памятью (хотя бы одиночных ошибок) в типовых случаях? От чего она зависит (локация и т.п.)?
    Почему зеркало, а не level 5 (хотя бы)?
    Почему только для Xeon Scalable? Как насчёт AMD?
    Где почитать про алгоритмы этой ADDDC, кто их проверял математически?
    Наконец, ПРЕКРАТИТЕ КРИЧАТЬ, пожалуйста.


  1. Sensimilla
    12.01.2022 12:15

    Действительно, а кто-нибудь реально сталкивался с этими пресловутыми однобитными ошибками памяти? Насколько часто это происходит и от чего зависит, от вспышек на солнце?


    1. amarao
      12.01.2022 13:03
      +1

      У меня на десктопе ECC'шная память (спасибо, райзен), и я несколько раз в dmesg'е ловил их. На серверах тоже иногда происходят. Если эти ошибки редкие, то их игнорируют, если рейт ошибок выше определённого уровня, то память меняется.


      1. edo1h
        12.01.2022 20:37

        На серверах тоже иногда происходят

        у меня не так много серверов, ситуации «ошибка памяти встречается один/несколько раз в год» я не встречал.
        или за год встречается 0 ошибок (>>90% серверов), или ошибки идут пачками и исчезают после замены памяти.


        1. amarao
          13.01.2022 11:36

          А где вы смотрите ошибки памяти? В зависимости от того, где смотрите, их будет, или их не будет.


          1. edo1h
            13.01.2022 14:48

            в мониторинге (из dmesg) и в ipmi


            1. amarao
              13.01.2022 15:02

              mce надо ещё смотреть. В целом, странно, что вы не видите, потому что одиночные отказы памяти таки происходят. Если бы они не происходили, то потребности в multibit ecc не было бы.


              1. edo1h
                13.01.2022 17:37

                ну вот вам пример с одного сервера:


                root@someserver:~# edac-util -v
                mc0: 0 Uncorrected Errors with no DIMM info
                mc0: 0 Corrected Errors with no DIMM info
                mc0: csrow0: 0 Uncorrected Errors
                mc0: csrow0: mc#0csrow#0channel#0: 0 Corrected Errors
                mc0: csrow0: mc#0csrow#0channel#1: 0 Corrected Errors
                mc0: csrow1: 0 Uncorrected Errors
                mc0: csrow1: mc#0csrow#1channel#0: 0 Corrected Errors
                mc0: csrow1: mc#0csrow#1channel#1: 0 Corrected Errors
                mc0: csrow2: 0 Uncorrected Errors
                mc0: csrow2: mc#0csrow#2channel#0: 0 Corrected Errors
                mc0: csrow2: mc#0csrow#2channel#1: 0 Corrected Errors
                mc0: csrow3: 0 Uncorrected Errors
                mc0: csrow3: mc#0csrow#3channel#0: 0 Corrected Errors
                mc0: csrow3: mc#0csrow#3channel#1: 0 Corrected Errors
                edac-util: No errors to report.
                root@someserver:~# uptime
                 17:26:23 up 352 days, 19:16,  1 user,  load average: 0.69, 0.69, 0.77


                1. amarao
                  13.01.2022 18:43

                  Ну, для одного сервера это нормально. Я говорю про большое количество. Я ткнулся в мониторинг, за последний месяц больше 300 серверов имело срабатывания.


                  1. edo1h
                    13.01.2022 19:11

                    Ну, для одного сервера это нормально. Я говорю про большое количество.

                    да, у меня перед глазами немного серверов, десятка 2-3.
                    но этого количества уже достаточно чтобы оценить ошибки ecc — это норма или же нет.


                    Я ткнулся в мониторинг, за последний месяц больше 300 серверов имело срабатывания.

                    из какого количества?


                    мне встречалось два исследования, от гугла 2009 года:
                    https://research.google.com/pubs/archive/35162.pdf
                    и от fb 2014 года:
                    https://users.ece.cmu.edu/~omutlu/pub/memory-errors-at-facebook_dsn15.pdf


                    в первом, ещё с ddr1 и ddr2, хостов с ошибками достаточно много (примерно треть), но есть явная корреляция между моделью платформы (читай материнской платы) и количеством ошибок, что намекает на то, что эти ошибки всё-таки вызваны аппаратными недоработками, а не являются свойствами памяти как таковой.


                    во втором, более свежем, более 90% хостов не встретили за год ни одной ошибки:


                    To compare against prior work, we measured the correctable error incidence rate over the course of twelve months (7/13 up to and including 7/14, excluding 1/14) and found that, cumulatively across all months, around 9.62% of servers experience correctable memory errors

                    хотя даже второе исследование не согласуется с моими ощущениями, у fb получается, что половина из сбойных серверов (то есть ≈5% от общего числа) за год встречалась с 1-10 ошибками в месяц, на моей практике таких не встречалось вовсе.
                    все случаи машин с ошибками ecc, с которыми я встречался (а таких было буквально 4-5 штук) были связаны с массовыми ошибками и решались заменой железа.


                    1. amarao
                      14.01.2022 11:32

                      Серверов много. Часть из ошибок - реальные отказы памяти, но есть и флуктуации (единичные отказы).


                      1. edo1h
                        14.01.2022 15:18

                        тут порядок важен. если ориентироваться на статистику fb, то это должно быть порядка 10к серверов.


                        в общем-то, раз у вас есть статистика как минимум сотен серверов, то можно провести своё исследование, какие-то идеи можно почерпнуть в приведённых выше исследованиях fb и google, что-то своё тоже можно придумать (например, попробовать оценить корреляцию загруженности сервера и числа ошибок).
                        я бы на вашем месте занялся, интересно же.


                      1. amarao
                        14.01.2022 16:43

                        Осталось найти свободного времени во всём этом копаться. Увы.


                      1. edo1h
                        15.01.2022 02:31

                        ну так хотя бы намекните порядок количества серверов, среди которых обнаружились эти 300 с ошибками.
                        если это 1 000 — то у вас прямо беда-беда.
                        если 10 000 — хоть и согласуется с данными fb, но по мне всё-таки многовато ошибок.
                        если 100 000 — всё отлично.


                  1. edo1h
                    13.01.2022 19:16

                    вдогонку, сейчас подумал, что бо́льшая встречаемость ошибок у вас и у fb/google, чем у меня, может объясняться:
                    a. тем, что у вас больше памяти на хост (у меня на многих хостах 4 планки памяти);
                    b. большей нагрузкой на сервера, у меня многие сервера недозагружены (ecc обнаруживает ошибки при чтении; чем сильнее нагружена память, тем больше вероятность обнаружения ошибок).


    1. edo1h
      12.01.2022 20:34

      Действительно, а кто-нибудь реально сталкивался с этими пресловутыми однобитными ошибками памяти? Насколько часто это происходит и от чего зависит, от вспышек на солнце?

      на исправной памяти — фактически никогда.


      но «битая» память — это, наверное, самая частая неисправность в компьютере.


      моё мнение:
      ecc — это в первую очередь механизм обнаружения ошибок.
      без ecc тесты памяти изнурительны (длятся много часов и не позволяют использовать компьютер).
      а то, что в большинстве случаев эти ошибки получается исправлять, я расцениваю как приятный бонус.


  1. amarao
    12.01.2022 13:02

    Я очень хочу послушать про программные ошибки в памяти на серверах HP. Либо там случилась технологическая революция, которую я пропустил, либо переводчик не до конца понимал, что переводит и назвал soft errors "программными ошибками".


  1. amarao
    12.01.2022 13:05

    Да, к технологии зеркалирования памяти у меня главный вопрос: а что делать, если расхождение между планками? Я вижу один вариант - падать. Нет ни одной причины доверять DIMM1A больше, чем DIMM1B.

    А вот тройное зеркалирование я пока в серверах не видел.


    1. ktod
      12.01.2022 14:21

      Ну, это просто. Планка А "говорит" при чтении: "неисправимая ошибка", Планка Б "говорит": "ошибок не имею/исправимая ошибка". ECC же. Выбор очевиден.


      1. amarao
        12.01.2022 14:37

        А, окей, в таком сценарии понятно. Жертвуем 50% памяти ради +1 бита ECC. Но что делать в ситуации, когда обе планки уверены, что правы, но цифра различается?

        В целом, memory mirroring выглядит как недоделанная технология. Она была бы куда полезнее, если бы при этом был hotswap memory. Тогда было бы круто. Одна планка вылетела, в это время её дублирует другая, заменили, полёт проходит без сбоев.


        1. ktod
          12.01.2022 17:00

          Вероятность такого события, при отсутсвии аппаратных неисправностей, я оцениваю в порядок 1е-111. Т.е. событие, которое вероятно НЕ произойдет до тепловой смерти вселенной. =) Если две планки показывают разные значения при отсутсвии ошибок - это аппаратная неисправность. Тут уж извольте как вам угодно плясать.


          1. amarao
            12.01.2022 17:35

            У вас multibit ecc, и она всё-таки бьётся. Вместо того, чтобы добавить ещё один бит для коррекции ошибки, вы добавляете вторую планку памяти?


            1. ktod
              12.01.2022 22:47

              Именно мультибит. Но, чтоб этот мультибит обозначился как безошыбочный, ошибочных битов должнобыть минимум 5, если я правильно помню ecc. Вот и считайте вероятность случайной ошибки в 5 разрядов на одной планке и более одного разряда на второй по тому же адресу.

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


        1. Sensimilla
          12.01.2022 17:06

          Предположение. Вероятность возникновения одинаковой ошибки в двух разных модулях очень мала. Вероятность возникновения разных ошибок с совпадающими результирующими кодами ЕСС исчезающе мала. Это все равно, что изменить символ в тексте, так чтобы контрольная сумма не изменилась