Опубликован: 12.11.2008 | Уровень: специалист | Доступ: платный
Лекция 4:

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

Аннотация: В лекции описано, как добавлять, модифицировать и удалять порты и терминалы из системы.

4.1. Управление средством доступа к сервису (SAF)

После добавления сетевого сервиса к UNIX System V появились нестандартные методы доступа к сервису системы, давшие непоследовательные интерфейсы и среду выполнения, затрудняющие работу пользователей. SAF (средство доступа к сервису) обеспечивает механизм унифицированного доступа к сервису. Управляющие компоненты этого средства - это команды инсталяции, создания конфигурации и поддержки мониторов порта и сервиса, а также файлов, в которых хранится сервисная информация и информация монитора порта.

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

С точки зрения SAF сервис - это процесс, который запускается. Ограничений функций, которые предоставляет сервис, не существует.

SAF состоит из управления процессом - контроллера доступа к сервису (SAC), а также двух управляющих уровней, соответствующих двум уровням в поддерживаемой структуре каталогов. Верхний управляющий уровень соотносится с управлением монитором порта, нижний уровень - с управлением сервисом.

SAF состоит из следующих компонентов:

  • контроллер доступа к сервису;
  • командный файл конфигурации системы;
  • управляющий файл SAC;
  • команда администратора SAC sacadm ;
  • мониторы портов;
  • необязательные файлы конфигурации мониторов портов;
  • управляющий файл для каждого монитора порта;
  • команда администратора pmadm ;
  • необязательные файлы конфигурации сервиса.

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

4.1.1. Контроллер доступа к сервису

Контроллер доступа к сервису (SAC) управляет механизмом обслуживания. Это процесс управления средством доступа к сервису (SAF). SAC запускается с помощью команды init (1M) посредством входа в /sbin/inittab. Его функция - поддерживать мониторы порта системы в состоянии, которое вы указываете. Эти состояния включают: STARTING, ENABLED, DISABLED, STOPPING, NOTRUNNING и FAILED (Монитор порта вводит состояние FAILED, когда SAC не может запустить его после указанного числа попыток).

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

Управляющий файл SAC содержит уникальный тег для каждого монитора порта, известного SAC, и полное имя команды, используемой для запуска каждого монитора порта.

SAC:

  • настраивает свою собственную среду;
  • запускает требуемые мониторы портов;
  • опрашивает свои мониторы порта и инициирует процедуры восстановления при необходимости.

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

После запуска мониторов портов SAC периодически опрашивает их для получения информации о состоянии. Параметр командной строки sac (1M), -t, позволяет администратору системы управлять частотой опроса. Когда монитор порта получает запрос о состоянии из SAC, он должен ответить сообщением, содержащим его текущее состояние (например, ENABLED ). Если SAC не получит ответа, он предполагает, что монитор порта не запущен. Если монитор порта, который должен прогоняться, остановился, SAC предполагает, что он допустил сбой и предпринимает требуемое действие восстановления.

SAC повторно запустит монитор порта с отказом, если для этого монитора порта был указан ненулевой счетчик повторного запуска, когда он создавался.

SAC представляет собой административную точку управления для всех мониторов портов, (а, следовательно, для всех портов системы). Команды администратора sacadm (1M) и pmadm (1M) передают запросы в SAC, который в свою очередь устанавливает связь с мониторами портов. Эти запросы включают разрешение запрещенного монитора порта, и тот начинает прием запросов сервиса в свои порты, запуск мониторов портов, которые до этого были остановлены, а также просмотр текущего состояния всех мониторов порта системы.

4.1.2. Файл конфигурации системы

Файл конфигурации системы - /etc/saf/_sysconfig> - поставляется пустым. Его может использовать администратор системы, чтобы настроить среду для всего сервиса системы, написав командный файл на интерпретированном языке. Командный файл конфигурации системы интерпретируется контроллером доступа к сервису после запуска SAC. SAC запускается, когда система переходит в многопользовательский режим.

4.1.3. Командные файлы конфигурации мониторов порта

Командные файлы конфигурации мониторов порта ( /etc/saf/pmtag/_config ) являются необязательными. Они позволяют администратору системы настраивать среду на любой заданный монитор порта и сервис, который есть в наличии, благодаря точкам доступа, за которые этот монитор порта несет ответственность. Командные файлы конфигурации мониторов портов написаны на том же языке, который используется для файлов конфигурации системы.

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

4.1.4. Командные файлы конфигурации сервиса

Файлы конфигурации сервиса позволяют вам настраивать среду для конкретного сервиса. Например, сервис может потребовать каких-то специальных привилегий, которые не доступны обычному пользователю. Используя язык, описанный на странице руководства doconfig (3N), вы можете написать командный файл, который предоставит или ограничит такие специальные привилегии конкретного сервиса, предложенные через конкретный монитор порта.

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

4.1.5. Управляющий файл SAC

Управляющий файл SAC содержит информацию о всех мониторах порта, за которые несет ответственность SAC. Этот файл существует в поставляемой системе. Изначально он является пустым, за исключением одной строки комментария, которая содержит номер версии контроллера доступа к сервису. Администратор системы добавляет мониторы портов к системе, осуществляя вводы в управляющий файл SAC. Эти вводы осуществляются с помощью команды sacadm с параметром -a. Команда sacadm также используется для удаления вводов из управляющего файла SAC.

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

Каждый ввод в управляющий файл SAC содержит следующую информацию:

  • PMTAG - уникальный тег, который идентифицирует конкретный монитор порта. Этот тег затем используется контроллером доступа к сервису (SAC) для идентификации монитора порта при всех целях администрирования. PMTAG может включать до 14 буквенных символов;
  • PMTYPE - тип монитора порта. В добавок к своему уникальному тегу, каждый монитор порта имеет указатель типа. Указатель типа идентифицирует группу мониторов портов, которые являются различными вызовами одного и того же объекта. ttymon и listen являются примерами действительных типов мониторов портов. Указатель типа используется, чтобы облегчить администрирование групп соответственных мониторов портов. Без указателя типа у вас нет возможности узнать какие теги мониторов портов соответствуют мониторам портов того же типа. PMTYPE может включать до 14 буквенных символов;
  • FLGS - флаги, которые определяются в текущий момент, это: d - если запускается, не разрешайте монитор порта; x - не запускайте монитор порта. Если флаг не указывается, предпринимается безусловное действие. Монитор порта запускается и разрешается по умолчанию;
  • RCNT - число раз, которое монитор порта может допустить сбой, прежде чем будет помещен в состояние отказа. После того как монитор порта ввел состояние отказа, SAC не будет пытаться повторно его запустить. Если счет не указан при создании ввода, это поле устанавливается на 0. Счет повторного запуска 0 указывает, что монитор порта не следует повторно запускать, если он дает отказ;
  • COMMAND - символьная строка, представляющая команду, которая будет запускать монитор порта. Первый компонент символьной строки, сама команда, должен представлять собой полное имя пути.

Листинг 4.1 показывает содержимое образца управляющего файла SAC так, как он просматривается с помощью команды sacadm. Символ # в конце каждой строки является ограничителем комментария.

Вывод sacadm -1
------------------------------------------------------------
PMTAG   PMTYPE  FLGS  RCNT  STATUS   COMMAND
starlan listen  -     0     ENABLED  /usr/lib/saf/listen -x
                                          slan starlan \
                                      # starlan liatener
ttymon1 ttymon  d     0     DISABLED /usr/lib/saf/ttymon
                                           # ttymon1
ttymon3 ttymon  -     0     ENABLED  /usr/lib/saf/ttymon
                                          # ports board
------------------------------------------------------------
Листинг 4.1.
Михаил Байков
Михаил Байков
Россия, Москва, Московский Авиационный Институт, 2009
Зарина Каримова
Зарина Каримова
Казахстан, Алматы, Гимназия им. Ахмета Байтурсынова №139, 2008