Введение в РАН (1)
Введение в РАН (1)

Введение в РАН (1)

написано до начала

Недавно я получил от компании большой подарочный пакет и захотел разобраться в Linux RAS и написать серию статей, пока ищу работу. В конце концов, как ответственное лицо и разработчик ОС RAS, я реализовал множество усовершенствований и решений RAS для Alibaba Cloud X86 и Etian 710 RAS, внося некоторый вклад в стабильность серверов Alibaba Cloud. В этот период многие другие команды приходили за советом по вопросам RAS, поэтому я подумал о том, чтобы записать их, чтобы помочь энтузиастам Linux, которые планируют понять и изучить RAS в будущем. Кроме того, мой личный взгляд в основном начинается с ядра Linux, разбирая компоненты, функции и возможности, задействованные в Linux RAS, а также знакомлю с аппаратным обеспечением, задействованным в ядре RAS.

История РАН

С наступлением эры облачных технологий различные компании переносят продукты и услуги в облако. Облако обеспечивает большое удобство для цифрового строительства. Как грибы после дождя выросли отечественные и зарубежные производители облачных серверов, такие как Google Cloud, Alibaba Cloud, Tencent Cloud и др. В последние годы облачные сервисы неоднократно сталкивались с сбоями в работе по всему миру, а стабильность облака привлекает все больше и больше внимания. Согласно «Белой книге индустрии аварийного восстановления данных Китая и отчету об исследованиях в области строительства аварийного восстановления данных», одна минута простоя бизнеса приведет к средним потерям в размере 150 000 долларов США для транспортной отрасли, 270 000 долларов США для банковской отрасли, 350 000 долларов США для связи. промышленность и 350 000 долларов США для обрабатывающей промышленности. Промышленность понесла убытки в размере 420 000 долларов США, а индустрия ценных бумаг понесла убытки в размере 450 000 долларов США. В то же время потеря нематериальных активов, таких как репутация компании, была неоценимой.

В области встраиваемых систем все больше и больше отечественного оборудования собственной разработки выпускается на коммерческой основе, включая память, жесткий диск, графический процессор, процессор и т. д., которые используются в хост-компьютерах, автомобильной электронике, промышленном управлении и других рынках. С быстрым ростом использования этого оборудования постепенно начали проявляться проблемы со стабильностью. Например, автор отвечает за стыковку бизнеса по встраиваемым продуктам ARM в основной команде Huawei. При использовании модулей памяти отечественного производства я обнаружил, что вероятность аппаратных проблем при использовании модулей памяти отечественного производства намного выше, чем у крупного зарубежного производителя. .

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

определение РАН

Стабильность серверного оборудования в основном отражается на RAS. RAS относится к надежности машины (Reliability), доступности (Availability) и исправности (Serviceability). Ядро Linux определяет надежность, доступность и удобство обслуживания следующим образом:

Reliability

is the probability that a system will produce correct outputs.

Generally measured as Mean Time Between Failures (MTBF)

Enhanced by features that help to avoid, detect and repair hardware faults

Availability

is the probability that a system is operational at a given time

Generally measured as a percentage of downtime per a period of time

Often uses mechanisms to detect and correct hardware faults in runtime;

Serviceability (or maintainability)

is the simplicity and speed with which a system can be repaired or maintained

Generally measured on Mean Time Between Repair (MTBR)

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

Аппаратное обеспечение, задействованное в RAS, включает, помимо прочего: ЦП, память, ввод-вывод, PCIe, жесткий диск и другие периферийные устройства.

CPU – detect errors at instruction execution and at L1/L2/L3 caches;

Memory – add error correction logic (ECC) to detect and correct errors;

I/O – add CRC checksums for tranfered data;

Storage – RAID, journal file systems, checksums, Self-Monitoring, Analysis and Reporting Technology (SMART).

Вообще говоря, аппаратные ошибки делятся на CE, UE, фатальную ошибку и нефатальную ошибку, которые определяются следующим образом.

Correctable Error (CE) - the error detection mechanism detected and corrected the error. Such errors are usually not fatal, although some Kernel mechanisms allow the system administrator to consider them as fatal.

Uncorrected Error (UE) - the amount of errors happened above the error correction threshold, and the system was unable to auto-correct.

Fatal Error - when an UE error happens on a critical component of the system (for example, a piece of the Kernel got corrupted by an UE), the only reliable way to avoid data corruption is to hang or reboot the machine.

Non-fatal Error - when an UE error happens on an unused component, like a CPU in power down state or an unused memory bank, the system may still run, eventually replacing the affected hardware by a hot spare, if available.

Но фактическое определение относительно широкое и простое, например, отложенная ошибка (DE).

Deferred error

The error was detected, was not corrected, and was deferred. The error has not been silently propagated. The error might be latent in the system. It is IMPLEMENTATION DEFINED whether the error continues to infect the state of the node or whether it has been deferred to the consumer. The node continues to operate. If the error might have been silently propagated, it must be reported as an Uncorrected error.

Другой пример: Intel определяет программно-восстанавливаемую ошибку UC как ошибку UCR (неисправимую восстанавливаемую ошибку), которая далее делится на SRAR, SRAO, UCNA и т. д.

Базовая блок-схема RAS

Основная блок-схема RAS показана выше. После возникновения аппаратного сбоя функция аппаратного RAS вызывает прерывание или исключение и уведомляет прошивку/ОС. После получения уведомления программное обеспечение применяет соответствующие стратегии, такие как паника, выполнение восстановления. действия или уведомить пользователя.

Благодаря непрерывному обновлению функций RAS и различным архитектурам система RAS начала демонстрировать разнообразие, которое различается из-за разных сценариев использования, что отражено в:

1. Различные способы уведомления

Методы уведомления разбиты на IRQ, Exception, Poll, SEA, SDEI, GPIO и другие методы.

2. Разнообразные режимы

аппаратное обеспечение Сначала сообщите о неисправностиFirmware,Затем прошивка обрабатывает это вне диапазона или снова уведомляет об этом ОС.,называетсяFirmware First Mode

аппаратное уведомление об отказе программного обеспечения для ОС, ОС обрабатывает аппаратное обеспечениепуть неудачи,называетсяKernel First Mode

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

3. Архитектура чипа и разнообразие аппаратного обеспечения

С развитием индустрии микросхем в последние годы архитектуры чипов становятся все более разнообразными, включая Intel, AMD, ARM, RISC и т. д. Также существуют небольшие различия в составе аппаратного обеспечения разных архитектур чипов.

4. Разнообразие программного обеспечения

Для драйверов Linux, включая драйвер mce, драйвер apei, драйвер edac и т. д.;

Для служб RAS пользовательского режима, включая mcelog, rasdaemon, уведомление о событиях производительности и т. д.;

Вообще говоря, RAS представляет собой сложную систему. Различные архитектуры микросхем и разное оборудование имеют разные функции RAS. Разработка RAS требует соответствующих решений RAS в соответствии с различными бизнес-сценариями.

Процесс устранения неполадок RAS

Взяв в качестве примера сервер Intel,

1. После того, как в памяти сервера Intel происходит сбой CE, аппаратное обеспечение запускает прерывание CMCI и выполняет функцию обработки прерывания, зарегистрированную ОС;

2. Эта функция вызывает код драйвера EDAC и считывает регистр состояния MCA для получения информации о неисправности оборудования, такой как уровень неисправности, местоположение неисправного оборудования, адрес неисправности и т. д. Драйвер EDAC сохранит информацию в /dev/mcelog;

3.Mcelog — это сервисная программа пользовательского режима, которая анализирует информацию /dev/mcelog и сохраняет ее в /var/log/mcelog. Пользователи могут проверить этот файл, чтобы узнать, произошел ли сбой оборудования на этом сервере, а также ключевую информацию, такую ​​как время сбоя, информацию об оборудовании и было ли оно восстановлено;

Примеры аппаратных сбоев RAS

Ниже приведен журнал неисправности CE памяти, введенной в сервер x86. Драйвер EDAC распечатает аппаратное обеспечение (память), адрес, процессор, тип (CE), канал памяти/размер и другую информацию, в которой произошла ошибка.

C++[22715.830801] EDAC sbridge MC3: HANDLING MCE MEMORY ERROR[22715.834759] EDAC sbridge MC3: CPU 0: Machine Check Event: 0 Bank 7: 8c00004000010090[22715.834759] EDAC sbridge MC3: TSC 0[22715.834759] EDAC sbridge MC3: ADDR 12345000 EDAC sbridge MC3: MISC 144780c86[22715.834759] EDAC sbridge MC3: PROCESSOR 0:306e7 TIME 1422553404 SOCKET 0 APIC 0[22716.616173] EDAC MC3: 1 CE memory read error on CPU_SrcID#0_Channel#0_DIMM#0 (channel:0 slot:0 page:0x12345 offset:0x0 grain:32 syndrome:0x0 - area:DRAM err_code:0001:0090 socket:0 channel_mask:1 rank:0)

Источник изображения: v2-8e4986144a6a70301ee1a30c60c5ffad_720w.webp (720×378) (zhimg.com)

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose