Введение

Локстеп-системы — это отказоустойчивые компьютерные системы, выполняющие один и тот же набор операций одновременно и параллельно. Избыточность (дублирование) обеспечивает обнаружение и исправление ошибок: результаты работы локстеп-систем могут сравниваться для выявления сбоев, если имеется как минимум две системы (двойная модульная избыточность), а ошибка может быть автоматически исправлена, если имеется как минимум три системы (тройная модульная избыточность) посредством голосования большинства. Термин "lockstep" происходит из военной практики, где он обозначает синхронный шаг, при котором марширующие стремятся двигаться максимально согласованно. Для работы в режиме "lockstep" каждая система настроена на последовательный переход из одного чётко определённого состояния в следующее. Когда в систему поступает новый набор входных данных, она обрабатывает их, генерирует новые выходные данные и обновляет своё состояние. Этот набор изменений (новые входные данные, новые выходные данные, новое состояние) определяет один шаг и должен рассматриваться как атомарная транзакция; то есть либо все изменения происходят, либо ни одно из них, но не что-то промежуточное. Иногда между системами вводится временной сдвиг (задержка), что повышает вероятность обнаружения ошибок, вызванных внешними факторами (например, скачками напряжения, ионизирующим излучением или реверс-инжинирингом).

Память Lockstep

Некоторые производители, включая Intel, используют термин "lockstep memory" для описания многоканальной конфигурации памяти, в которой кэш-линии распределяются между двумя каналами памяти таким образом, что одна половина кэш-линии хранится в DIMM на первом канале, а вторая половина – в DIMM на втором канале. Комбинируя возможности однократной коррекции и двойного обнаружения ошибок (SECDED) двух DIMM с поддержкой ECC в конфигурации lockstep, их способность к коррекции данных одного устройства (SDDC) может быть расширена до коррекции данных двух устройств (DDDC), обеспечивая защиту от отказа любого отдельного чипа памяти. К недостаткам конфигурации lockstep memory от Intel относятся уменьшение фактически доступного объема оперативной памяти (в случае трехканальной конфигурации памяти максимальный объем памяти снижается до одной трети от физически доступного максимума) и снижение производительности подсистемы памяти.

Двойная модульная избыточность

Если вычислительные системы дублированы, но обе активно обрабатывают каждый шаг, трудно определить, какая из них верна, если их результаты различаются в конце шага. По этой причине для систем DMR обычно используется конфигурация "главный/ведомый", где ведомый выступает в роли "горячего резервного", а не синхронная работа (lockstep). Поскольку ведомой системе нет смысла активно обрабатывать каждый шаг, распространенным методом является копирование главным устройством своего состояния в ведомый по окончании обработки каждого шага. В случае отказа главного устройства, ведомый готов продолжить работу с предыдущего корректного шага. Хотя подходы lockstep или DMR (в сочетании с какими-либо средствами обнаружения ошибок в главном устройстве) могут обеспечить резервирование от аппаратных сбоев главного устройства, они не защищают от ошибок программного обеспечения. Если главный модуль выходит из строя из-за программной ошибки, весьма вероятно, что ведомый, пытаясь повторить выполнение неудачного шага, просто воспроизведет ту же ошибку и потерпит неудачу тем же образом – это пример общей причины отказа.

Трехкратная модульная избыточность

Когда вычислительные системы используются в тройном экземпляре, их можно рассматривать как системы голосования. Если выход одного из блоков не совпадает с выходами двух других, это обнаруживается как отказ. Согласованный выход двух других блоков принимается за верный.