logo

Горячее резервированиезамещением

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

При первоначальном включении резервного процессора из выключенного состояния или после горячей замены он должен получить от основного следующую информацию:

После первоначальной синхронизации она повторяется в каждом контроллерном цикле. Это позволяет иметь уверенность, что резервный контроллер всегда готов к замещению основного. В этом заключается суть термина "горячий резерв".

Процедура перехода на резерв обычно занимает один контроллерный цикл. В течение этого времени выходные состояния всех модулей вывода сохраняются неизменными. Процедуру перехода на резерв выполняет специальный драйвер резервирования, который:

Переключение процессора обычно выполняется без коммутатора, с помощью изменения в сетевых устройствах адреса процессора. Например, если по умолчанию основной процессор имеет адрес 31, но после отказа драйвер резервирования указал, что основной процессор изменил адрес на 30, то модули вывода не принимают данные с адреса 31, но принимают с адреса 30. Если данные не поступают ни с адреса 31, ни с адреса 30, то модули вывода переводят свои выходы в безопасные состояния.

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

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

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

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

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

Недостатком систем с резервированием замещением является наличие нерезервированных подсистем: канала синхронизации, программного драйвера резервирования и процессора, на котором этот драйвер исполняется. Отказ этих элементов приводит к отказу всей резервированной системы.