Showing posts with label ODM. Show all posts
Showing posts with label ODM. Show all posts

Friday, February 6, 2015

AIX: используем smit

   Итак, загрузка ОС произошла, но у вас остались задачи, который требуют взаимодействия с ядром системы, или устройствами. Например, хотите добавить ip-адрес (или добавить статический маршрут с помощью route), это можно сделать с помощью ifconfig'a или с помощью текстового ассистента smit'a.
   Smit или smitty (smit tty) - тестовый помощник, как yast в Suse linux, он взаимодействует напрямую с ядром, изменяя драйвера устройств и записывая новые значения в ODM. Продолжая пример, вы изменили значение айпи с помощью ifconfig'a, но после перезагрузки у вас остался прежний адрес, потому, что новые значения не записались в ODM. Как раз помощь с этой "проблемой" и готов smit.
   Основное меню Smit'a выглядит таким образом
   По умолчанию, smit в корне создает 3 файла:
1. smit.log
Основной файл лога, куда пишутся все действия данной утилиты. Пути не заданы жестко, поэтому поток можно перенаправить в любую другую директорию с использованием ключа:
#smit -l /tmp/smit.log
2. smit.script
В отличие от yast'a smit представляет собой "хранилище" скриптов, и любое действие smit'a - это заранее подготовленный скрипт, который запустится с определенными параметрами. Этот скрипт мы можем посмотреть с помощью команды f6 в smit'e, а также отследить с помощью файла smit.script. Например, посмотрим все маршруты.
Для этого заходим в smit tcpip: Further Configuration: Static Routes : List All Routes
Нажмем F6, чтобы посмотреть команду.
С помощью smit.script вы можете самостоятельно подготовить свой собственный скрипт. Например, если нужно добавить 10 пользователей на разных машинах. 
Поток можно перенаправить по желанию:
#smit -s /tmp/smit.script
3. smit.transaction
Этот лог файл, похож на smit.script и занимается логированием всех действий. Отличие заключается в том, что smit.transaction логирует только "команды-действия" (command to execute).
Основные команды smit'a:
F1 ( Esc + 1) - вызов справки.
F2 ( Esc + 2) - обновить экран.
F3 ( Esc + 3) - отмена, возвращение в предыдущее меню. 
F4 ( Esc + 4) - выбор возможного значения.
F5 ( Esc + 5) - сброс, восстановление значения по умолчанию.
F6 ( Esc + 6) - показать выполненную smit'ом команду. 
F7 ( Esc + 7) - позволяет выбрать множественные значения.
F8 ( Esc + 8) - позволяет посмотреть короткий путь для вызова smit (например, smit tcpip).
F9 ( Esc + 9) - вызывает суб-шелл, вы проваливаетесь в еще один шелл, выполняетем там, команды, а затем по команде exit возвращаетесь обратно в smit.
F10 ( Esc + 0) - покинуть smit.

Успехов! Комментарии приветствуются.

Saturday, January 31, 2015

AIX: devices (устройства)

Основные категории устройств (терминология устройств):
Physical Devices - физические устройства, которые подключены к системе.
Ports (Порты) - физические адаптеры системы, к которой подключены физические устройства. Большинство портов - это программируемое системное ПО, которое позволяет подключать устройства различных типов.
Device Drivers (драйвера устройства) - ПО, которое находится в ядре системы, и управляет активностью порта, а также форматом данных, которые отправляются к устройству.
Logical Devices (логические устройства) - программные интерфейсы (или специальные файлы), которые используются пользователями и программами, как физические устройства.
/dev - директория содержит все логические устройства, которые напрямую доступны пользователям (некоторые устройства находятся в состоянии определено (defined) и следовательно не доступны для использования).
Виртуальные устройства (Virtual devices) - это Ethernet и SCSI устройства, которые выделяются под клиентскую партицию (lpar), и используются соответственно для доступа к сети и под нухды хранилища.

Типы устройств:
- Блочное устройство (Block device) - структурированное устройство рандомного доступа. Буферизация используется для осуществляения блочного метода доступа (block-at-a-time). Обычно применяется для дисковых файловых системе. Примеры блочный устройств:
cd0 CD-ROM
hd1, lv00 Logical volume
hdisk0 Physical volume 
- Символьное устройство Character (raw)  - последовательное устройство (потоко-ориентированное), не поддерживает буферизацию. Большинство блочных устройств имеют эквивалентное символьное устройство. Например, блочное устройство /dev/hd1 обеспечивает буферный доступ к логическому тому, в то время как /dev/rhd1 обеспечивает последовательный доступ к тому же самому логическому тому. Примеры символьных устройств:

lp0 Printer
rmt0 Tape drive
Для более детального вывода информации об устройствах используется команда lsdev.
Подробнее про команду lsdev можно почитать тут.
Посмотрим предобределенные значения устройств в ODM:
lsdev -PH
Теперь посмотрим определенный класс устройств, например, класс adapter
lsdev -Pc adapter 
Так теперь перейдем к просмотру устройств в кастомизированной базе ODM. Подробнее про устройство ODM.
lsdev -CH ( параметр H выводит заголовки столбцов)

Практически у каждого устройства есть свои собственные параметры (атрибуты). Чтобы посмотреть параметры устройства используется команда lsattr. Нас интересуют только устройства, которые находятся в состоянии Available, т.к. уже уже может использоваться в системе. Выберем, например, сетевой интерфейс
lsattr -El en2 
-Е данная опция говорит, что мы смотрим эффективные аттрибуты устройства.
-а с помощью данного параметра можно посмотреть только один аттрибут

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

Теперь чуть подробнее про статусы устройств.
- Undefined (неопределено) - устройство поддерживается системой, но оно не сконфигурировано (например, с помощью команды cfgmgr). Плюс, запись об устройстве не занесено в кастомизированную базу данных ОДМ.
- Defined (определено)- устройство добавлено в систему, но еще не готово к использованию. Запись об устройстве есть в кастомизированной ОДМ, определен локационный код (location code) и все аттрибуты.
- Available (доступно) - устройство полностью сконфигурировано и готово к использованию.

Как правило, большинство устройств находящихся в состоянии Defined, это результат того, что при загрузке устройство не было включено (т.е. на него не подано питание).
Перевод устройства в рабочее состояние осуществляется с помощью команды mkdev.
#mkdev -l en0
Обратный перевод устройства из состояния Available в Defined осуществляется с помощью команды  
#rmdev -l en0
#cfgmgr

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

Успехов! Комментарии приветствуются!  

Monday, October 13, 2014

ODM - object data manager

ODM  - это бинарная база данных (реестр всех программ), в которой хранится вся системная информация, используемая для конфигурации как физических, так и логических устройств:
1. Конфигурационные данные устройств
2. SWVPD - Software Vital Product Data
3. Данные контроллера управления ресурсами  (SRC - System Resource Controller)
4. Конфигурационные данные стека TCP/IP
5. Информацию лога с ошибками ( Error log and dump)
6. Информацию NIM'а ( Network Installation Manager)
7. Меню и команды SMIT'a.

Данные в ODM содержатся в бинарном виде, поэтому для работы с ODM используются команды командной строки.

Predefined device information (PdDv)описывает все поддерживаемые устройства.
Customized device information (CuDv)описывает все устройства, которые уже подключены к системе.
В процессе загрузки ОС происходит конфигурации с помощью команды cfgmgr.
сfgmgr производит инициализацию устройств, используя класс Config_rules из ODM. Данный класс ODM содержит различные методы, которые используются для управления устройствами системы (define, configure, change, unconfigure, undefine).

Репозитории ODM
1. /etc/objrepos Данный репозиторий содержит классы кастомизированных устройств (customized devices) и 4 объектных класса, используемых SWVPD. Для доступа к другим репозиториям используются символьные ссылки.
2. /usr/lib/objrepos Данный репозиторий содержит классы всех поддерживаемых устройств (Predefined devices), объекты из меню СМИТа, и 4 объектных класса, используемых SWVPD для ПО инсталлируемого в директорию /usr.
3. /usr/share/lib/objrepos  Данный репозиторий используется SWVPD для части проинсталлированных приложения в /usr/share. /usr/share - данная директория содержит файлы, которые не являются железо-зависивыми и могут быть расшарены на несколько серверов, даже если у них разные архитектуры.


Тут возникает вопрос: какая разница между состояниями "defined" и "available"?
Устройство в состоянии  "defined" имеет запись в классе CuDv. И ничего более. А когда устройство в состоянии "available", то значит драйвер для устройства был успешно загружен. Драйвер устройства должен иметь запись в директории /dev.

Одна из важных команд, которая работает с ODM -  lsdev (подробнее тут)
Посмотрим все устройства, которые определены в ODM (т.е. работаем с классом PdDv).
lsdev -PH | pg

Теперь перейдем к классу CuDv и посмотрим, что у нас есть "рабочее" в системе:

Более детально вытащим аттрибуты из ОДМ:

Точно также обстоит дело и с аттрибутами устройств. например, посмотрим атрибуты диска:
lsattr -El hdisk0
 
Вытащим аттрибуты из ODM:
odmget CuAt | grep -p hdisk0
 

Комментарии приветствуются. Успехов!