본문 바로가기

AIX

[퍼옴] AIX안의 DB, ODM(Object Data Manager)

반응형

ODM은 IBM의 유닉스 운영체제인 AIX의 kernel 다음으로 중요한 부분입니다.
ODM이 망가지게 되면 주로 시스템의 백업에서 복구를 해야 할 정도로 민감한 부분이며, 이 ODM의 정보는 참고만 할 뿐이지 직접 수정되어서는 안 되는 어려운 부분입니다.

이번 뉴스레터에서는 있기는 하되, 만지기는 무서운 ODM에 대한 간단한 설명과 ODM의 정보를 보는 명령에 대해 알아보겠습니다.
ODM의 목적은 IBM pSeries의 구성과 여기에 연동될 장치에 대한
 
 
정보, 그리고 각 장치별 DB (vital product database)를 관리하는 것입니다.

예를 들어 말씀드리면, AIX는 ODM에서 pSeries에 지원되는 많은 하드웨어 장비의 정보를 미리 가지고 있습니다. ODM의 각 항목은 크게 Pd와 Cu로 나뉘는데, 시스템이 이 장비에 대해 꼽기만 하면 인식할 준비가 되어 있는 상태인 Pre-Defined(pd),
시스템에서 이 장치를 인식해서 현재 사용가능 하다는 상태가 되면 Customized
 
 
 
(cu)에 정보가 기록되게 됩니다.

일반적으로 internal 4mm DAT와 같은 경우, 별도의 SW를 설치하지 않아도 cfgmgr만 돌리면 바로 사용이 가능한데 이와 같이 장비를 바로 인식할 수 있는 이유가 AIX의 ODM에 internal DAT 장치의 정보가 이미 있어서 DAT에 대한 정보가 시스템이 장비를 발견한 즉시 적절한 항목들을 Pd에서 Cu로 복사해 주기 때문입니다.

만약 이와 같이 ODM의 정보가 없다면, 필수 fileset(사용중인 OS CD내에서 찾을 수 있습니다.)을 설치한 후, 해당 fileset을 최신 level로 update하고 cfgmgr을 구동해야만 새로운 장치를 사용할 수 있게 됩니다.
cfgmgr은 윈도에서의 새 하드웨어 검색 정도의 기능으로 이해하시면 되겠습니다.


가. ODM의 기능
ODM이 제어하는 시스템 부분은 약 5가지로 요약할 수 있습니다.
1. Device configuration information : 장치 구성 정보.
2. Display information for SMIT (menus, selectors, and dialogs) :
SMIT에 표시되는 메뉴의 순서 등이 미리 저장되어 있습니다.
3. Vital product data for installation and update procedures :
설치와 update 과정에서의 실제 제품의 소프트웨어 등의 설치 data
4. Communications configuration information : IP등 통신의 구성 정보
5. System resource information : 시스템의 디스크, 볼륨그룹과 같은 자원 정보

나. ODM의 정보가 저장되는 장소
1. /usr/lib/objrepos ? 주로 class와 object 가 저장됩니다.
 


2. /usr/share/lib/objrepos
 

3. /etc/objrepos
 
입니다. 이 부분들은 vi 등으로 수정하는 부분이 아니라 반드시 ODM의 명령어를 통해서만 수정이 가능합니다.


시스템의 장치의 특성과 같은 부분을 확인하는 방법으로 odm의 정보를 확인하는 odmget이라는 명령어를 아주 간혹 사용합니다.
 
이게 hdisk0에 대한 장치의 Customized ( 현재 시스템에서 인식하고 있는 ) Device 정보를 보여줍니다.

status : 현재 장치의 상태 - 0 Defined 1 Available 2 Stopped
chgstatus : 지난 부팅과 비교했을 때의 장치 변동 상태
0 New device 1 Don't care 2 Same 3 Device is missing
ddins : PdDv의 Device driver name과 같은 값. AIX kernel에 load되는 device driver의 이름
location : 장비의 물리적 위치
parent : 부모 장치의 물리적 이름, rmt0의 경우 parent는 scsi0 또는 fcs0.
connwhere : parent device에서 인식하는 지정 위치
PdDvLn : device instance의 predefine(이미 정의)된 link

위의 CuDv의 정보가 장치의 물리적인 것에 대해서 주로 나타내 준다면,
CuAt는 장치가 어떤 특성을 가지고 있는지에 대해서 알려줍니다.
 


이 결과를 보면 hdisk0의 경우 pvid (OS가 인식하는 물리적인 디스크의 ID) 정보와 4.5G HDD임을 알 수 있습니다.

ODM의 어떤 정보가 사용자의 실수로 지워지는 경우, 시스템이 이 정보를 다시 인식하는 것은 굉장히 어렵게 됩니다. 따라서 간혹 ODM의 정보를 한번쯤 저장해 두는 작업이 필요하기도 합니다.

아래는 ODM의 정보를 저장해 두는 명령입니다.

#!/bin/ksh
########################################################### AIX의 OS DB인 ODM 정보를 저장하는 스크립트입니다.
# ODM은 사용자가 절대로 접근해서는 안 되는 시스템 영역입니다.
# 미래에 ODM의 정보가 엉켰을 경우 정보를 확인하기 위해서만 사용하십시오.
##########################################################mkdir /tmp/odm_`date +%m%d%h`
cd /tmp/odm_`date +%m%d%h`
for i in PdDv PdAt PdCn CuDv CuAt CuDep CuDvDr CuVPD Config_Rules \
history inventory lpp product sm_menu_opt sm_name_hdr sm_cmd_hdr \
sm_cmd_opt SWservAt SRCsubsys SRCsubsvr
do odmget $i > ./$i.txt
done

위의 스크립트는 /tmp/odm_월일시간 이라는 폴더를 만들어서 odmget 명령으로 각 odm의 class를 불러서 각 이름.txt라는 파일에 저장하게 하는 스크립트입니다.

이것으로 odm의 간단히 훑어 보았습니다.
odm의 명령어중 odm의 직접적인 수정을 가하는 명령어는 이번 뉴스레터에 넣지 않았습니다. 그 이유는 odm 조작의 실수는 바로 시스템의 재부팅이 되지 않게 할 수 있기 때문입니다. 저도 그 경험자중 한명이기도 합니다.
그러니 odm의 정보를 확인하는 명령어인 odmget을 제외하고는 다른 명령어는 시스템에서 test로도 사용하시지 않기를 권해 드립니다.

반응형

'AIX' 카테고리의 다른 글

Fiber채널과 Fibre채널의 차이??  (0) 2014.03.14
DIMM이란?  (0) 2014.03.14
System Management Tool  (0) 2014.02.20
LVM (Logical Volume Manager)  (0) 2014.02.20
AIX의 특징  (0) 2014.02.20