Смекни!
smekni.com

Администрирование локальных сетей (стр. 19 из 39)

# пользователь user1 может останавливать систему systemA и systemB

systemA user1

systemB user1

# администратор может останавливать все системы

+ root

# любой пользователь может остановить систему systemC

systemC +

Отсутствие файла /etc/shutdown.allow или отсутствие в нем администратора (root) не может помешать администратору остановить систему.

После запуска, shutdown выполняет:

· сброс на диск всех суперблоков файловых систем находящихся в памяти

· установку real UID в 0

· широковещательную посылку сообщения всем пользователям

· запуск /sbin/rc для выполнения корректного завершения всех основных системных и пользовательских программ

· выполнение пргораммы reboot для реальной остановки или перезагрузки системы.

Так же как и при старте, во время остановки системы используется скрипт /etc/rc . Если стартовый скрипт линк (например /sbin/rcN.d/S123test) в последовательности N имеет стоп действие, соответствующий остановочный скрипт должен быть помещен в последовательность

N-1 (/sbin/rcN-1.d/K200test). Действия запущенные на уровне N должны быть остановлены на уровне N-1. Поэтому остановка системы (т.е., переход с уровня 3 напрямую в уровень 0) приведет к корректному завершению всех подсистем путем вызова соответствующих остановочных скриптов.

Помомо команды shutdown существует команда rebooot которая выполняет похожие действия. Например reboot –h вызывает остановку системы а reboot без параметров перезагрузку. Между командами reboot и shutdown есть принципиальная разница. reboot всем процессам в системе (кроме самой себя -) посылает 9-й сигнал, который процесс не может перехватить или обработать и после этого вызывает остановку или перезагрузку системы. Поэтому не рекомендуется использовать эту команду в системах где есть критически важные приложения (например сервера баз данных) которые требуют корректной остановки.

Конфигурирование ядра системы

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

· Добавление или удаление периферии (драйверов устройств) а также псевдодрайверов. В случае удаления периферии удалять драйвер устройства из ядра совсем не обязательно, но крайне желательно, т.к. в этом случае ядро будет меньше по обьему и будет работать более эффектино. Прежде чем удалять драйвер устройства убедитесь не зависят ли от него драйвера других устройств проверив файлы в директории /usr/conf/master.d в таблицах зависимости в секции DRIVER_DEPENDENCY. Особое внимание следует обратить на файл core-hpux.

· Изменение системных параметров (tunable parameters). В тех случаях когда система работает с большим количеством пользователей часто возникает необходимость изменения стандартных системных параметров. Эти параметры определяются в секции TUNABLE в файлах /usr/conf/master.d. Большинство из них находится в файле core-hpux.

· Инсталирование специализированного програмного обеспечения HP (подсистем). Если вы добавляете в систему специализированное програмное обеспечение например поддержку LAN, ATM, FDDI и.т.п в этом случае также требуется модификация ядра.

· Добавление файловых систем отлдичных от HFS.

· Добавление, удаление или модификация swap и (или) dump областей, устройства консоли или корневой файловой системы.

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

· Символьные драйвера. Работа с этими драйверами происходит в побайтном режиме без использования буферного кэша. К таким драйверам можно отнести драйвера таких устройств как драйвера последовательных портов, терминалов, магнитных лент …

· Блочные драйвера. Этот тип драйверов позволяет проводить обмен блоками данных. Так например обмен с диском происходит фиксироваными блоками (секторами), даже в том случае если идет операция с данными количество которых меньше размера блока всеравно физически будет прочитан или записан один блок. При работе эти драйвера используют системный буферный кэш.

· Драйвера низкого уровня (raw drivers) Этот тип драйверов производит обмен с блочными устройствами напрямую минуя буферный кэш с ситемы.

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

/dev/kmem обеспечивает доступ к физической памяти компьютера

/dev/mem обеспечивает доступ к виртуальной памяти ядра

/dev/null нулевое устройство. Призаписи в него данные удаляются, а при чтении считывается 0 байт

lvm (Logical Volume Manager) обеспечивает построение и доступ к логическим дискам

Драйвера адресуются старшим номером устройства (major number). Помимо него также существует младший номер (minor number) для адресации одного из клонов драйвера. Например в случае с драйвером диска младший номер может означать номер диска.

$ ls -l /dev/dsk/

total 0

brw-r--r-- 1 root sys 31 0x002000 Jun 10 1996 c0t2d0

brw-r--r-- 1 root sys 31 0x005000 Jun 10 1996 c0t5d0

brw-r--r-- 1 root sys 31 0x006000 Jun 10 1996 c0t6d0

$ ls -l /dev/rdsk/

total 0

crw-r----- 1 root sys 188 0x002000 Jun 10 1996 c0t2d0

crw-r----- 1 root sys 188 0x005000 Jan 3 16:47 c0t5d0

crw-r----- 1 root sys 188 0x006000 Jun 10 1996 c0t6d0

Первая команда выводит файлы блочных дисковых устройств, вторая файлы raw дисковых устройств. Как создаются файлы устройств будет показано чуть позже. Доступ к драйверу осуществляется через специальную структуру данных называемою коммутатором устройств каждый элемент которой содержит указатели на соответствующие функции драйвера (d_open(), d_close(), d_strategy(), d_read(), d_write(), d_ioctl, d_xpoll(), d_intr(), …), так называемые точки входа. Старший номер является указателем на элемент коммутатора устройств. Блочные и символьные устройства имеют свои собственные коммутаторы. Список драйверов можно посмотреть воспользовавшись программой lsdev.

9. Изменение системных параметров

К одним из основных системных параметров относится параметр MAXUSERS который является макросом на основании которого вычисляются множество других параметров (например nproc вычисляется как 20+8*MAXUSERS). Этот параметр не указывает, как может показаться на первый взгляд на максимальное число пользователей в системе. На системах с небольшим количеством пользователей (рабочие станции) он обычно равен 32, на больших системах (T500) его значение может превышать 200. Перечислим краткий список основных системных параметров:

Параметр Значение по умолчанию Описание
dbc_max_pct 50 Максимальный размер буферного кэша в процентах от обьема RAM
maxdsiz 67108864 Максимальный размер сегмента данных
maxssiz 8388608 Максимальный размер стека
maxtsiz 67108864 Максимальный размер сегмента кода
maxfiles 60 Максимальное количество открытых файлов на процесс
maxuprc 75 Максимальное число процессов пользователя
maxusers 32 Макрос через который определяются большинство других параметров
nfile 2172 Максимальное число открытых файлов в системе
nflock 200 Максимальное количество заблокированных файлов
npty 60 Максимальное количество псевдотерминалов в системе
semmns 128 Максимальное количество семафоров
shmmax 67108864 Максимальный обьем разделяемой памяти
shmmni 200 Максимальное количество идентификаторов разделяемой памяти
shmseg 120 Максимальное количество сегментов разделяемой памяти на процесс

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

· Открыть меню “SAM Kernel Configuration”

· Выбрать “Configurable parameters”

· Выбрать нужный параметр из списка

· Активировать пункт меню “Actions->Modify Configurable Parameter”

· Ввести новое значения параметра

После выхода из раздела “Configurable parameters” SAM предложит создать новое ядро и перезагрузить систему.

Конфигурирование ядра с использованием команд HP-UX.

Для этого необходимо выполнить следующую последовательность действий:

· cd /stand/buil

· /usr/lbin/sysadm/system_prep –v –s system

Этот скрипт сосздает файл system являющийся шаблоном конфигурационного файла ядра

· vi system

Редактируем файл ядра

· mk_kernel –s system

Компилируем ядро. Новое ядро будет содержаться в файле /stand/build/vmunix_test

· mv /stand/vmunix /stand/vmunix.prev

mv /stand/system /stand/system.prev

Создаем резервные копии старого ядра и конфигурационного файла

· mv /stand/build/vmunix_test /stand/vmunix

mv /stand/build/system /stand

Перемещаем ядро в директорию из которой идет загрузка

· shutdown –r now

выполняем перезагрузку системы

Инсталирование периферии

Файлы устройств

Обычно файлы устройств располагаются в каталоге /dev и cуществует специальное соглашение по поводу их имен. Имена файлов устройств как правило маркируются в соответствии со следующим соглашением: c#t#d#[s#] :

c# представляет класс интерфейса или интерфейсной карты.

t# адрес устройства на шине. Обычно он выставляется физически

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

d# номер устройства. (для SCSI устройств это логический номер устройства LUN)

s# необязательный параметр показывающий номер секции устройства. Например для дисков он показывает номер портиции, 0 – указывает на целый диск.

Утилиты lssf и ioscan могут помочь в определении интерфейса к которому подключено то или иное устройство. Например: