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
 

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