Приложение A. Дополнительная информация об оборудовании

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

Настройка переключателей питания

Настройка переключателей питания RPS-10

Если в кластере используется переключатель питания RPS-10, следуйте приведенным указаниям:

  • Установите адрес на каждом переключателе, равным 0. Убедитесь в том, что колесо выбора адреса установлено ровно, а не между значениями.

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

    Таблица A-1. Настройка переключателей питания RPS-10

    Настроечный переключательФункцияВерхнее положениеНижнее положение
    1Скорость обмена данными X
    2Задержка переключения X
    3По умолчанию питание подаетсяX 
    4Зарезервирован X
  • Убедитесь в том, что имя специального файла устройства последовательного порта (например, /dev/ttyS1) указано в файле /etc/cluster.conf, и к этому порту подключен кабель переключателя питания.

  • Подсоедините кабель питания каждой кластерной системы к своему переключателю питания.

  • Для соединения последовательного порта каждой кластерной системы с переключателем питания другой системы используйте нуль-модемные кабели.

На Рисунке A-1 показан пример конфигурации переключателя питания RPS-10.

Рисунок A-1. Аппаратная конфигурация переключателя питания RPS-10

За дополнительной информацией по установке обратитесь к документации RPS-10, предоставленной производителем оборудования. Заметьте, что информация, касающаяся кластера, представленная в этом руководстве, является более важной, чем предоставленная производителем.

Настройка переключателей питания WTI NPS

Переключатели WTI NPS-115 и NPS-230 представляют собой переключатели питания с сетевым интерфейсом. По сути это щиток питания, управляемый по сети, позволяющий отключать/включать отдельные розетки. В кластере достаточно одного устройства NPS (в отличие от переключателя RPS-10, который требуется каждому узлу кластера).

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

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

При настройке самого переключателя питания:

  • Назначьте System Password (Системный пароль) (в меню General Parameters (Общие параметры)). Замечание: Этот пароль хранится в открытом виде в файле конфигурации кластера, поэтому выберите пароль, отличный от пароля системы. (Несмотря на то, что файл /etc/cluster.conf разрешено читать только пользователю root.)

  • Не назначайте пароль в меню Plug Parameters (Параметры розеток).

  • Назначьте системные имена розеткам, в меню Plug Parameters (Параметры розеток), (например, clu1 для первой розетки, clu2 для второй — если узлы кластера носят такие имена).

Настраивая в cluconfig параметры переключателя питания:

  • Укажите тип переключателя: WTI_NPS.

  • Укажите пароль, назначенный вами для переключателя NPS (как указано в первом пункте предыдущего раздела)

  • В ответ на вопрос о номере розетки/порта, укажите имя назначенное при выполнение 3 пункта предыдущего раздела.

ЗамечаниеЗамечание
 

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

Переключатель питания NPS-115 имеет очень полезную возможность - производить отключение/включение узлов кластера, имеющих два блока питания. Переключатель NPS-115 состоит из двух банков розеток питания, каждый из которых питается независимо и имеет 4 розетки. Каждая розетка питания переключателя NPS-115 включается в отдельный источник питания (предпочтительнее использовать раздельные системы UPS). Для узлов кластера с двумя блоками питания, включите их кабели питания в розетки двух банков. Затем, при настройке NPS-115 и назначении портов, просто назначьте одно название розеткам, в которые включен указанный узел кластера. Например, узлы кластера clu3 и clu4 подключены к NPS-115, причем clu3 включен в розетки 1 и 5 а clu4 включен в розетки 2 и 6:

Plug | Name           | Status  | Boot Delay | Password         | Default | -----+----------------+---------+------------+------------------+---------+ 
 1   | clu3           |   ON    |   5  sec   | (undefined)      |   ON    | 
 2   | clu4           |   ON    |   5  sec   | (undefined)      |   ON    | 
 3   | (undefined)    |   ON    |   5  sec   | (undefined)      |   ON    | 
 4   | (undefined)    |   ON    |   5  sec   | (undefined)      |   ON    | 
 5   | clu3           |   ON    |   5  sec   | (undefined)      |   ON    | 
 6   | clu4           |   ON    |   5  sec   | (undefined)      |   ON    | 
 7   | (undefined)    |   ON    |   5  sec   | (undefined)      |   ON    | 
 8   | (undefined)    |   ON    |   5  sec   | (undefined)      |   ON    | 
-----+----------------+---------+------------+------------------+---------+ 

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

Настройка переключателей питания Baytech

Следующая информация касается переключателей питания RPC-3 и PRC-5.

Переключатель питания Baytech представляет собой переключатель с сетевым интерфейсом. По сути это щиток питания, управляемый по сети, позволяющий отключать/включать отдельные розетки. В кластере достаточно одного устройства Baytech (в отличие от переключателя RPS-10, который необходим для каждого узла кластера).

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

ЗамечаниеЗамечание
 

Во всех устройствах, поставляемых производителем, все розетки переключателя Baytech отключены. Для включения розеток, к которым подключены узлы кластера, воспользуйтесь утилитой настройки Baytech, выбрав в основном меню Outlet Control (Управление розетками). В этом меню, вы можете включить отдельные розетки, например on 1 (вкл 1), on 2 (вкл 2) и т.д.

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

При настройке самого переключателя питания Baytech:

  1. Подключившись через последовательный порт, назначьте параметры IP адреса.

  2. В меню Access (Доступ) => Network access (Доступ по сети), убедитесь в том, что установлены оба параметра: Prompt for user name (Запрашивать имя пользователя) и Prompt for password (Запрашивать пароль).

  3. Определите имя пользователя и пароль в меню Manage Users (Управление пользователями) или назначьте пароль существующему пользователю "admin". Замечание: этот пароль хранится в файле конфигурации кластера в открытом виде, поэтому выберите пароль, отличный от пароля системы (несмотря на то, что право читать файл /etc/cluster.conf имеет только пользователь root).

  4. Для назначения имен систем соответствующим розеткам, перейдите в меню Configuration (Настройка), затем Outlets (Розетки) и, наконец, Name Outlets (Имена розеток) (например, clu1 для розетки 1, clu2 для розетки 2 — для каждого узла кластера).

Настраивая в cluconfig параметры переключателя питания:

  • Укажите тип переключателя питания: BAYTECH.

  • Укажите имя пользователя и пароль, назначенные вами для переключателя Baytech (как указано в третьем пункте предыдущего раздела).

  • В ответ на вопрос о номере розетки/порта, укажите имя, назначенное при выполнение 4 пункта предыдущего раздела.

Ниже приведен пример настройки переключателя, в котором розетки называются именами узлов кластера: clu1 и clu2.

Outlet Operation Configuration Menu
  Enter request, CR to exit.

    1)...Outlet Status Display: enabled
    2)...Command Confirmation : enabled
    3)...Current Alarm Level (amps):  4.1
    4)...Name Outlets
    5)...Outlet Power-up Delay
    6)...Display Outlet Users
	  Enter request>4

  Enter number of outlet to name, CR to exit.
    1)...clu1
    2)...clu2
    3)...Outlet 3
    4)...Outlet 4
    5)...Outlet 5
    6)...Outlet 6
    7)...Outlet 7
    8)...Outlet 8

Настройка сторожевых переключателей питания

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

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

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

# cd /dev
# ./MAKEDEV watchdog

При работе с утилитой cluconfig, на вопрос о типе переключателя питания укажите SW_WATCHDOG, вне зависимости от применяемого типа сторожевого таймера.

Настройка программного сторожевого таймера

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

Если кластер настроен на использование программного сторожевого таймера, кластерный демон кворума (cluquorumd) будет периодически сбрасывать таймер. Если демон cluqourumd не смог сбросить таймер, отказавший узел кластера самостоятельно перегрузится.

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

Включение сторожевого таймера c NMI

Если вы применяете программный сторожевой таймер, как средство сохранения целостности данных, рекомендуется включить сторожевой таймер, использующий немаскируемое прерывание (Non-Maskable Interrupt (NMI)) для большей гарантии сохранности целостности данных. Сторожевой таймер с NMI выполняет перезагрузку системы даже в случае заблокированных прерываний. Сторожевой таймер с NMI может использоваться вместе с программным сторожевым таймером.

В отличие от сторожевого таймера, который сбрасывается кластерным демоном кворума (cluquorumd), сторожевой таймер NMI учитывает системные прерывания. Обычно, в нормально работающей системе происходят сотни прерываний от устройств и таймеров. Если в течении 5 секунд не происходит ни одного прерывания, это означает что система "повисла" и сторожевой таймер NMI сработает, выполнив перезагрузку системы.

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

Для корректной работы механизма сторожевого таймера NMI требуется, чтобы на материнской плате кластерной системы находилась микросхема APIC. В большинстве современных систем компонент APIC отсутствует. В основном, поддержку NMI таймеров обеспечивают многопроцессорные системы Intel и однопроцессорные системы Intel с двухпроцессорными системными платами (2+ процессорных слотов/сокетов, но только одним CPU).

ЗамечаниеЗамечание
 

Кроме этого, другие типы серверов также поддерживают сторожевые таймеры NMI, наряду с описанными выше материнскими платами Intel. К сожалению, не существует простого способа определить наличие этой поддержки, кроме метода проб и ошибок.

Сторожевой таймер NMI в системах, где он поддерживается, включается добавлением параметра nmi_watchdog=1 в командную строку ядра. Ниже приведен пример файла /etc/grub.conf:

#
# grub.conf
#
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title HA Test Kernel (2.4.9-10smp)
        root (hd0,0)
        # This is the kernel's command line.
        kernel /vmlinuz-2.4.9-10smp ro root=/dev/hda2 nmi_watchdog=1

# end of grub.conf

В системах, использующих вместо grub загрузчик lilo, добавьте строку nmi_watchdog=1 в разделе "append" файла /etc/lilo.conf. Например:

#
# lilo.conf
#
prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
lba32

image=/boot/vmlinuz-2.4.9-10smp
        label=linux
        read-only
        root=/dev/hda2
        append="nmi_watchdog=1"

# end of lilo.conf

Чтобы определить, поддерживает ли сервер сторожевой таймер NMI, сначала попытайтесь добавить параметр "nmi_watchdog=1" в командную строку ядра как описано выше. После загрузки системы, зарегистрируйтесь под именем root и введите:

cat /proc/interrupts

При этом на экране должно отображаться примерно следующее:

           CPU0       
  0:    5623100          XT-PIC  timer
  1:         13          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  7:          0          XT-PIC  usb-ohci
  8:          1          XT-PIC  rtc
  9:     794332          XT-PIC  aic7xxx, aic7xxx
 10:     569498          XT-PIC  eth0
 12:         24          XT-PIC  PS/2 Mouse
 14:          0          XT-PIC  ide0
NMI:    5620998       
LOC:    5623358 
ERR:          0
MIS:          0

Обратите внимание, в левом столбце отображается метка NMI. Если значение переменной NMI (в среднем столбце) не равно нулю, сервер поддерживает сторожевой таймер NMI.

Если это не так, то есть NMI равен нулю, попробуйте передать ядру nmi_watchdog=2 вместо параметра nmi_watchdog=1, как было показано ранее. Выполнив это, также проверьте /proc/interrupts после загрузки системы. Если NMI не равен нулю, сторожевой таймер NMI настроен правильно. Если NMI и в этом случае равен нулю, ваша система не поддерживает сторожевой таймер NMI.

Настройка аппаратного сторожевого таймера

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

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

Ядро поддерживает основные виды аппаратных сторожевых таймеров, приведенные в Таблице A-2 :

Таблица A-2. Аппаратные сторожевые таймеры

Плата/ТаймерДрайвер
Acquire SBCacquirewdt
Advantech SBCadvantechwdt
Intel-810 TCO WDTi810-tco
Eurotech CPU-1220/1410 WDTeurotech
IB700 WDTib700
60xx SBC WDTsbc60xxwdt
W83877F WDTw83877f
Netwinder W83977AFwdt977
Industrial Computer WDT500wdt
Industrial Computer WDT501wdt
Industrial Computer WDT500PCIwdt_pci
Industrial Computer WDT501PCIwdt_pci

Чтобы включить в ядре поддержку одного из описанных выше сторожевых таймеров, необходимо добавить соответствующую запись в файл /etc/modules.conf. Например, если используется Intel-810 TCO WDT, в файл /etc/modules.conf нужно добавить строку:

alias watchdog i810-tco

Другие сетевые переключатели питания

Программное обеспечение кластера поддерживает самые разные типы переключателей питания. Набор модулей поддержки переключателей первоначально разрабатывался компанией Mission Critical Linux, Inc. как часть проекта с открытыми исходными текстами Linux-HA. Ограничения времени и ресурсов не позволили выполнить полную проверку полного диапазона типов переключателей. Поэтому модули поддержки переключателей питания, совместимых со STONITH, являются неявно поддерживаемыми. Примеры других модулей приведены ниже:

  • APC Master Switch: http://www.apc.com

    ЗамечаниеЗамечание
     

    Замечено, что переключатель питания Master Switch может перестать обрабатывать команды, если в сети где он находится наблюдается большое количество широковещательных и многоадресных пакетов. В таком случае, переместите переключатель питания в отдельную подсеть.

  • APC Serial On/Off Switch (partAP9211): http://www.apc.com

    ЗамечаниеЗамечание
     

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

Настройка кластера без переключателя питания

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

Если вы решили в конфигурации кластера не использовать средств переключения питания, просто укажите тип переключателя как NONE, при настройке кластера с помощью cluconfig.

ЗамечаниеЗамечание
 

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