[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Принципы управления системой: Операционная система и устройства


Динамическое отключение процессоров

Начиная с систем типа 7044, модели 270, аппаратное обеспечение всех многопроцессорных систем может обнаруживать устранимые ошибки, сведения о которых собираются встроенным программным обеспечением. Если число таких ошибок невелико, то они не представляют серьезной опасности и их можно игнорировать. Однако, если число ошибок какого-либо процессора постоянно возрастает, то это может указывать на возможность скорого отказа этого процессора. Такой прогноз формируется на основании анализа частоты возникновения неполадок и заданных пороговых значений.

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

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

Возможное влияние на приложения

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

Интерфейс связывания процессов и нитей с процессорами использует логические номера CPU. Логические номера CPU лежат в диапазоне от 0 до N-1, где N - это общее число CPU. Во избежание возникновения неполадок в приложениях и расширениях ядра, не предполагающих наличия пропусков в нумерации CPU, операционная система динамически изменяет максимально возможный номер доступного CPU. Например, в 8-процессорной системе SMP применяются логические номера CPU [0..7]. В случае сбоя одного из процессоров общее число доступных CPU снизится до 7, а их номера будут лежать в диапазоне [0..6]. С точки зрения внешнего наблюдателя это выглядит как исчезновение CPU 7, независимо от того, какой именно физический процессор оказался неисправным. В связи со сказанным, в данной главе словом CPU обозначается логический ресурс, а словом процессор - физический.

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

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

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

Отключение процессоров

Обычно отключение процессоров происходит следующим образом:

  1. Встроенное программное обеспечение обнаруживает превышение одним из процессоров допустимого числа устранимых ошибок.
  2. Встроенное программное обеспечение направляет отчет об ошибке в системный протокол ошибок и, при работе в системе с поддержкой отключения процессоров, начинает отключение.
  3. Данная операционная система уведомляет процессы и нити, связанные с последним логическим CPU.
  4. Операционная система ожидает переключения всех связанных нитей с последнего логического CPU. Если после десяти минут в системе остаются связанные нити, то отключение процессора отменяется.
  5. В противном случае вызываются зарегистрированные обработчики событий HAEH. HAEH должен вернуть сообщение об ошибке, приводящее к отмене отключения.
  6. В противном случае отключение продолжается и использование неисправного процессора прекращается.

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

Управление системой

Включение и выключение функции отключения процессора

Функция динамического включения и отключения процессора может быть включена или отключена путем изменения значения атрибута cpuguard в объекте ODM sys0. Возможные значения атрибута: enable и disable.

По умолчанию динамическое отключение процессора запрещено (атрибуту cpuguard присвоено значение disable). Системные администраторы, которые хотят применять эту функцию, должны включить ее с помощью Web-администратора системы, SMIT или команды chdev.

Примечание: Если отключение процессора выключено, то сообщения об ошибках по-прежнему заносятся в протокол ошибок и вы все равно сможете увидеть сообщение о том, что операционная система получила уведомление о неполадке CPU (CPU_FAILURE_PREDICTED, см. описание формата ниже).

Перезапуск отмененного отключения процессора

Иногда отключение процессора отменяется из-за того, что приложение не переключило все нити с последнего логического CPU. После устранения неполадки путем отмены связывания нитей с CPU (если это возможно) или завершения работы приложения системный администратор может перезапустить отключение процессора командой ha_star.

Синтаксис команды:

ha_star -C

где -C обозначает прогнозируемое событие сбоя CPU.

Сведения о состоянии процессоров

Физическим процессорам в базе данных ODM соответствуют объекты с именами procn, где n - это физический номер процессора n десятичное). Как и у любых других "устройств" в базе данных ODM, у объектов процессоров есть атрибуты и состояния (определено/доступно).

Для объектов proc всегда указывается состояние Доступен, несмотря на то, возможна работа с соответствующим процессором или нет. В атрибуте state объекта proc указывается, используется ли процессор, и если нет, то почему. Этому атрибуту могут быть присвоены следующие три значения:


enable Процессор используется.
disable Процессор динамически отключен.
faulty Процессор объявлен неисправным при загрузке.

Если в случае ошибок CPU процессор, для которого встроенное программное обеспечение сообщало о наличии ошибок, был успешно отключен, то его состояние изменяется с enable на disable. Независимо от операционной системы, отключенный процессор помечается встроенным программным обеспечением как неисправный. После перезагрузки он будет недоступным, а в атрибуте состояния будет указано значение faulty (неисправен). При этом объект ODM proc по прежнему будет помечен как доступный. Состояние объекта proc будет изменено на defined только после того, как неисправный CPU будет физически удален с системной карты или карты CPU (если это возможно).

Примеры:

Процессор proc4 работает правильно и используется операционной системой:

 # lsattr -EH -l proc4
 attribute value   description  user_settable
 
 state  enable   Processor state  False
 type  PowerPC_RS64-III Processor type  False
		#	
 

Для процессора proc4 поступает сообщение о возможном сбое и этот процессор отключается операционной системой:

 # lsattr -EH -l proc4
 attribute value   description  user_settable
 
 state  disable   Processor state  False
 type  PowerPC_RS64-III Processor type  False
		#	
 

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

 # lsattr -EH -l proc4
 attribute value   description  user_settable
 
 state  faulty   Processor state  False
 type  PowerPC_RS64-III Processor type  False
		#	

Во всех трех случаях для процессора proc4 указывается состояние Доступен:

 # lsdev -CH -l proc4
 name  status   location  description
	
 proc4  Available  00-04   Processor
	#

Записи протокола ошибок

Ниже приведены примеры записей протокола ошибок с комментариями:

краткий формат errpt - обзор
С отключением CPU связаны три сообщения протокола ошибок. Ниже приведен пример записей, показанных командой errpt (без опций):

        # errpt
        ИДЕНТИФИКАТОР      ВРЕМЯ              T      C      ИМЯ РЕСУРСА          ОПИСАНИЕ
        804E987A           1008161399         I      O      proc4                CPU ОТКЛЮЧЕН
        8470267F           1008161299         T      S      proc4                ОТКЛЮЧЕНИЕ CPU ОТМЕНЕНО
        1B963892           1008160299         P      H      proc4                ПРОГНОЗ ОТКАЗА CPU
        #

полный формат errpt - подробное описание
Ниже приведен пример вывода команды errpt -a:


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]