Компания IBM
Опубликован: 01.02.2008 | Доступ: свободный | Студентов: 612 / 22 | Оценка: 4.60 / 4.40 | Длительность: 43:55:00
Специальности: Разработчик аппаратуры
Лекция 12:

Настройка событий

< Лекция 11 || Лекция 12: 123 || Лекция 13 >
Аннотация: Эта лекция содержит информацию о настраиваемых событиях и использовании функции уведомления об ошибках в AIX для обнаружения аппаратных или программных ошибок вне области действия HACMP. Мы рассмотрим два способа обнаружения и обработки ошибок, не связанные с кластером: Команды пред- и постобработки событий HACMP. Предназначены для управления дополнительными аспектами, которые HACMP не обрабатывает по умолчанию, Уведомление об ошибках HACMP. Использует функцию журналов ошибок AIX для перехвата ошибок и соответствующего реагирования.

Написание скриптов для настраиваемых событий

Настраиваемые события HACMP и средство уведомления об ошибках требуют написания скриптов.

Необходимо учитывать следующее:

  • нужно протестировать все возможные входные параметры;
  • надо протестировать условные переходы, т. е. все переходы if и case ;
  • необходимо выполнить обработку кодов завершения и возвращаемых значений для всех внешних команд;
  • следует обеспечить правильное возвращаемое значение: 0 для успешного выполнения, любое другое число для неуспешного выполнения;
  • выполнение скрипта должно занимать разумное количество времени;
  • необходимо протестировать максимально возможное количество сценариев;
  • при отказе скрипта происходит отказ кластера;
  • программа восстановления должна быть способна выполнить восстановление после отказа события, в противном случае произойдет отказ кластера;
  • нужно сохранять свои скрипты в отдельном каталоге, например в каталоге /usr/ha.
Важно! Кластер не будет продолжать обработку событий, пока не завершится выполнение настраиваемых скриптов пред- и постобработки событий.

Команды пред- и постобработки событий HACMP

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

Для всех предопределенных событий HACMP можно определить скрипт предобработки, скрипт постобработки, метод уведомления и команду восстановления:

  • Скрипт предобработки событий. Выполняется перед выполнением события HACMP.
  • Скрипт постобработки событий. Выполняется после выполнения события HACMP.
  • Метод уведомления. Выполняется до и после события HACMP. Он отправляет системному администратору сообщение о начале или завершении события.
  • Команда восстановления. Выполняется только при отказе события HACMP.
  • При успешном выполнении метода восстановления событие также будет считаться успешным, независимо от результата скрипта обработки события1Здесь ошибка: при успешном выполнении команды восстановления основной скрипт события запускается повторно. .

HACMP передает несколько аргументов в скрипты событий, которые вы можете использовать в своей программе. Табл. 12.1 содержит аргументы скриптов преди постобработки событий.

Таблица 12.1. Аргументы скриптов пред- и постобработки событий
Скрипт Аргументы
Предобработки события Имя события, завершающие аргументы
Постобработки события Имя события, код завершения события, завершающие аргументы
Метод уведомления Имя события, ключевое слово: start или complete; код завершения (для ключевого слова complete), завершающие аргументы
Команда восстановления Имя события, завершающие аргументы

Завершающие аргументы. Аргументы предопределенного скрипта обработки события HACMP. Они определяются в заголовке командного файла события. Предопределенные командные файлы событий HACMP хранятся в каталоге /usr/es/sbin/ cluster/events. Например, просмотрим файл события swap_adapter ( пример 12.1 ):

/usr/es/sbin/cluster/events# nwre swap_adapter
#	 
#  Arguments:  nodename network ip_addressl ip_address2	 
#	 
#    ip_addressl   the new available address	 
#    this script swaps the service adapter to	 	
#    ip_address2 - the failed address
Пример 12.1. Файл события /usr/es/sbin/cluster/events/swap_adapter

Как видим, событие имеет следующие аргументы:

  • nodename – имя узла;
  • network – имя сети;
  • ip_address1 – новый доступный адрес;
  • ip_address2 – отказавший адрес.

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

Внимание! Не изменяйте встроенные файлы событий: это не поддерживается и небезопасно. Всегда используйте скрипты пред- и постобработки событий.

Выбор события

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

Некоторые события выполняются, только если для группы ресурсов установлен последовательный режим обработки. Мы рекомендуем выполнить несколько тестов запуска/остановки кластера и перемещения при сбое и просмотреть файл /tmp/ hacmp.out. Это даст вам представление о конфигурации/сценарии, в которых выполняется событие, которое вы собираетесь изменить.

Установка скриптов пред- и постобработки

Мы покажем, как установить скрипт пред- и постобработки событий, на примере. У нас имеется дисковая подсистема стороннего производителя, которая требует дополнительного конфигурирования, прежде чем мы сможем активизировать группу томов. Нам требуется выполнить скрипт предобработки события get_disk_vg_fs. Также нужно отправить уведомление системному администратору при запуске или завершении события.

Замечание. HACMP поддерживает конфигурирование скриптов пред-/постобработки событий в подключенном состоянии.
  1. Напишите и тщательно протестируйте скрипт обработки события. Скопируйте файлы на все узлы с использованием одинакового пути и имени. Рекомендуется также поместить созданные файлы под контроль наборов файлов HACMP (5.2 и выше). В нашем примере мы создали два shell-скрипта: скрипт предобработки события ( / usr/ha/pre_get_disk_vg_fs, см. пример 12.2 ) для выполнения конфигурирования OEMдисков и команды уведомления ( /usr/ha/notify_get_disk_vg_fs, пример 12.3 ).
    fl/bin/ksh
    #	Checking the arguments
    # Event name
    EVENT=$1
    #	Check the event name
    if [ "SEVENT" != Mget_disk_vg_fsH ] then
    echo Ops! We were not supposed to 
     run in event SEVENT!
    exit 0 
    fi
    /  Run the OEM disk setup 
     command /oem_setup disk if [ $ ?!- 0 ] then
    echo Error setting up OEM disk!
    exit -1 fi exit 0
    Пример 12.2. Образец скрипта предобработки события (/usr/ha/pre_get_disk_vg_fs)
    Этот скрипт выполняет проверку аргументов события, после чего вызывает программу конфигурирования дисковой подсистемы стороннего производителя.
    #!/bin/ksh
    #	Sample event notification command
    #	Processing the arguments
    #	Event name EVENT=$1
    #Event status: start or complete STATUS=$2
    #	Result of the event, if status=complete RESULT=$3
    #	Notify root that the has event started if [ "SSTATUS" == "start" ]
    then
    mail -s "Event notification" root "E0F1
    Event $EVENT started.
    E0F1
    fi
    #	Notify the root that the event has completed and send the return code
    if [ "$STATUS" == "complete" ]
    then
    mail -s "Event notification" root <<E0F2
    Event SEVENT completed, the result is SRESULT
    E0F2
    fi
    exit 0
    Пример 12.3. Образец метода уведомления (/usr/ha/notify_get_disk_vg_fs)
    Этот образец программы уведомления отправляет сообщение электронной почты пользователю root с кодом завершения события get_disk_vg_fs.
  2. Определите команды пред- и постобработки события:
    1. Выполните smit hacmp.
    2. Выберите Extended Configuration (Расширенное конфигурирование).
    3. Выберите Extended Event Configuration (Расширенное конфигурирова ние событий).
    4. Выберите Configure Pre/Post-Event Commands (Конфигурирование ко манд пред- и постобработки событий).
    5. Выберите Add a Custom Cluster Event (Добавление настраиваемого со бытия кластера).
    6. Введите следующую информацию:
      • Cluster Event Name (Имя события кластера). Короткое имя события; в даль нейшем используется это имя, а не имя файла. Наш образец предобработки собы тия имеет название pre_get_disk_vg_fs.
      • Cluster Event Description (Описание события кластера). Краткое описание вашего скрипта.
      • Cluster Event Script Filename (Имя файла скрипта обработки события кластера). Имя файла скрипта пред-/постобработки события с полным путем. См. экран SMIT на рис. 12.1.
        Добавление настраиваемого события кластера

        Рис. 12.1. Добавление настраиваемого события кластера
        Здесь можно определить только скрипты пред- и постобработки событий. Скрипты уведомления и восстановления должны определяться отдельно через панель SMIT Change/Show Pre-Defined HACMP Events (Изменить/вывести предопределенные события HACMP). Дополнительные сведения см. на этапе 3.
  3. Свяжите скрипт пред-/постобработки с предопределенным событием HACMP:
    1. Запустите smit hacmp.
    2. Выберите Extended Configuration (Расширенное конфигурирование).
    3. Выберите Extended Event Configuration (Расширенное конфигурирование событий).
    4. Выберите Change/Show Pre-Defined HACMP Events (Изменить/вывести предопределенные события HACMP).
    5. Выберите событие, которое требуется изменить (рис. 12.2).
    6. Введите следующие значения (рис. 12.3):
      • Notify Command (Команда уведомления). (Необязательно). Полное имя (включая путь) скрипта уведомления, если он имеется. В нашем примере используется /usr/ha/notify_get_disk_vg_fs.
      • Pre-event Command (Команда предобработки события). (Необязательно). Имя настраиваемого события кластера, которое требуется выполнить в качестве скрипта предобработки события. Нажмите F4 для вывода списка уже определенных настраиваемых событий кластера. В нашем примере используется pre_get_ disk_vg_fs.
      • Post-event Command (Команда постобработки события). (Необязательно). Имя настраиваемого события кластера, которое требуется выполнить в качестве скрипта постобработки события. Нажмите F4 для вывода списка уже определенных настраиваемых событий кластера.
        Выбор изменяемого события

        Рис. 12.2. Выбор изменяемого события
        Изменение предопределенного события кластера

        Рис. 12.3. Изменение предопределенного события кластера
      • Recovery Command (Команда восстановления). (Необязательно). Полное имя (включая путь) скрипта восстановления.
      • Recovery Counter (Счетчик восстановления). Количество попыток выполнения команды восстановления. По умолчанию установлено значение 0. Если установлено значение больше нуля, то при успешном выполнении команды восстановления событие запускается повторно.
  4. Выполните верификацию и синхронизацию кластера.
Замечание. При настройке автоматического обновления набора файлов HACMP_Files автоматически выполняется распространение настраиваемых файлов событий по узлам кластера. Дополнительные сведения о наборах файлов см. в разделе 8.2, "Наборы файлов".
< Лекция 11 || Лекция 12: 123 || Лекция 13 >