글
2장. 시스템 가동과 종료
먹고는 살아야지;;;
2008/11/07 23:49
1. HP-UX 시스템 가동
유닉스 시스템이 처음 개발되었을 때와는 달리 상업 서버가 보급되면서 유닉스도 각 회사마다 각자의 특징을 가지면서 발전하기 시작.
Solaris(SUN), AIX(IBM), Digital Unix(DEC), IRIX(Silicon Graphics), SCO Unix(SantaCruzOperation), Linux(Linus Torvalds), HP-UX(HP) 등이 현재 보편적으로 많이 사용하는 유닉스 시스템이다.
시스템의 가동 상태
Multi-user Mode : 대부분의 시스템 기동 상태. 대부분의 서비스와 디몬들이 구동되어 사용가능한 상태.
Halt State : 모든 파일 시스템이 언마운트, 수행중인 모든 프로세스는 중지. 시스템의 이동 및 하드웨어 교체 및 설치 작업에 사용
Single-user Mode : root 이외의 사용자 로그인 불가능. 관리상 불필요한 파일 시스템은 마운트 되지 않음. 시스템 백업이나 파일 시스템 수정 및 복구 등에 사용
HP-UX의 부트 프로세스
1단계:시스템 PowerOn > 부트 ROM 상의 PDC(Processor Dependent Code)에 의해 시스템 초기화 > 하드웨어 체크 실시 > Stable Storage 설정된 부트 경로와 콘솔 경로 체크
2단계:PDC에서 ISL 읽기 > 부팅 모드 결정 메시지 출력
"primary path 를 통해서 부팅을 시도할 것이나 중지하려면 10초 이내에 아무 키나 누르시오"
3단계:관리자가 부트 모드를 결정하면 HP-UX 유틸리티가 커널을 메모리에 로딩
자동 부팅
1. 시스템 전원을 켜면 Boot ROM 인 PDC가 시스템을 테스트하고 초기화
PDC는 하드웨어를 테스트하고 콘솔 경로를 읽어 들이며, 디바이스들을 초기화. PDC에 기억되어 있는 디스크의 Boot Area1 에 있는 ISL(Initial System Loader)를 메모리로 읽고 실행.
2. PDC에 의해 기동된 ISL은 AUTO 파일을 사용하여 거기서 발견된 실행 문자열의 문법을 분석하여 2차 loader인 HPUX를 실행
3. ISL에 의해 HPUX 유틸리티가 메모리로 로드
4. 이후 ISL은 AUTO 파일의 실행 문자열에 있는 나머지 인수들을 HPUX에 전달
5. HPUX가 나머지 실행 문자열 인수를 사용하여 루트 디스크에서 커널(/stand/vmunix)를 찾고 그 커널을 메모리로 로드.
6. 커널이 정상적으로 메모리에 로드되면, HPUX는 시스템의 제어권을 커널로 넘김. (커널은 시스템 초기화 수행)
7. 커널은 하드웨어를 검색, 루트 파일 시스템 마운트, 멀티유저 모드로 전환을 위해 initd를 시작.
수동 부팅
상기와 같이 PDC에서 ISL로 제어권이 넘어가는 순간 임의 키를 누르면 하단의 수동 부팅 모드로 전환
수동 부팅을 하기위해서는 우선 상기의 ISL 메뉴 화면에서 SEA를 입력하여 부팅 가능 경로를 검색한다. (테이프, CDROM 부팅의 경우 현상태에서는 해당 디바이스를 인지못하기 때문에 검색이 필요함)
현재 시스템에 부착된 모든 장비를 검색해서 부팅가능한 장치를 찾았음을 알 수 있다.
ISL(Initial System Loader)
싱글 유저 모드2 진입, 특정 커널을 지정해서 부팅이 필요한 경우에 사용함.
예비 커널로 진입
ISL 모드에서 사용하는 hpux 명령
hpux install [from devicefile][to devicefile] : 설치 이미지를 수행
hpux ll [devicefile](hpux ls -aFln 과 동일) : HFS 파일시스템 디렉토리의 내용 리스팅
hpux ls -aFln [device] : HP-UX 디렉토리 내용 리스팅
hpux show autofile [devicefile] : autoexecute 파일의 내용을 보여줌
hpux set autofile <devicefile> <string> : autoexecute 파일 내용을 지정 문자열로 변경
hpux -v : 버전 정보 출력
hpux -lm [device file] : LVM 관리 모드로 부팅. 루트 볼륨만으로 구성 싱글 유저 모드.
hpux -lq [device file] : 시스템에서 정의된 정족수를 무시하고 부팅 시도.
disc# : 루트 이미지가 있는 디스크의 유형에 따라 값 분류
path : 디스크 드라이브의 하드웨어 경로
유닉스 시스템이 처음 개발되었을 때와는 달리 상업 서버가 보급되면서 유닉스도 각 회사마다 각자의 특징을 가지면서 발전하기 시작.
Solaris(SUN), AIX(IBM), Digital Unix(DEC), IRIX(Silicon Graphics), SCO Unix(SantaCruzOperation), Linux(Linus Torvalds), HP-UX(HP) 등이 현재 보편적으로 많이 사용하는 유닉스 시스템이다.
시스템의 가동 상태
Multi-user Mode : 대부분의 시스템 기동 상태. 대부분의 서비스와 디몬들이 구동되어 사용가능한 상태.
Halt State : 모든 파일 시스템이 언마운트, 수행중인 모든 프로세스는 중지. 시스템의 이동 및 하드웨어 교체 및 설치 작업에 사용
Single-user Mode : root 이외의 사용자 로그인 불가능. 관리상 불필요한 파일 시스템은 마운트 되지 않음. 시스템 백업이나 파일 시스템 수정 및 복구 등에 사용
HP-UX의 부트 프로세스
1단계:시스템 PowerOn > 부트 ROM 상의 PDC(Processor Dependent Code)에 의해 시스템 초기화 > 하드웨어 체크 실시 > Stable Storage 설정된 부트 경로와 콘솔 경로 체크
2단계:PDC에서 ISL 읽기 > 부팅 모드 결정 메시지 출력
"primary path 를 통해서 부팅을 시도할 것이나 중지하려면 10초 이내에 아무 키나 누르시오"
3단계:관리자가 부트 모드를 결정하면 HP-UX 유틸리티가 커널을 메모리에 로딩
자동 부팅
1. 시스템 전원을 켜면 Boot ROM 인 PDC가 시스템을 테스트하고 초기화
PDC는 하드웨어를 테스트하고 콘솔 경로를 읽어 들이며, 디바이스들을 초기화. PDC에 기억되어 있는 디스크의 Boot Area1 에 있는 ISL(Initial System Loader)를 메모리로 읽고 실행.
2. PDC에 의해 기동된 ISL은 AUTO 파일을 사용하여 거기서 발견된 실행 문자열의 문법을 분석하여 2차 loader인 HPUX를 실행
3. ISL에 의해 HPUX 유틸리티가 메모리로 로드
4. 이후 ISL은 AUTO 파일의 실행 문자열에 있는 나머지 인수들을 HPUX에 전달
5. HPUX가 나머지 실행 문자열 인수를 사용하여 루트 디스크에서 커널(/stand/vmunix)를 찾고 그 커널을 메모리로 로드.
6. 커널이 정상적으로 메모리에 로드되면, HPUX는 시스템의 제어권을 커널로 넘김. (커널은 시스템 초기화 수행)
7. 커널은 하드웨어를 검색, 루트 파일 시스템 마운트, 멀티유저 모드로 전환을 위해 initd를 시작.
수동 부팅
상기와 같이 PDC에서 ISL로 제어권이 넘어가는 순간 임의 키를 누르면 하단의 수동 부팅 모드로 전환
수동 부팅을 하기위해서는 우선 상기의 ISL 메뉴 화면에서 SEA를 입력하여 부팅 가능 경로를 검색한다. (테이프, CDROM 부팅의 경우 현상태에서는 해당 디바이스를 인지못하기 때문에 검색이 필요함)
현재 시스템에 부착된 모든 장비를 검색해서 부팅가능한 장치를 찾았음을 알 수 있다.
ISL(Initial System Loader)
싱글 유저 모드2 진입, 특정 커널을 지정해서 부팅이 필요한 경우에 사용함.
예비 커널로 진입
ISL 모드에서 사용하는 hpux 명령
hpux 명령 구문 : ISL> hpux disk#(path;/section/)kernel
hpux boot [devicefile] : 파일시스템, raw 장치에서 object 파일을 읽어 제어권 전달hpux install [from devicefile][to devicefile] : 설치 이미지를 수행
hpux ll [devicefile](hpux ls -aFln 과 동일) : HFS 파일시스템 디렉토리의 내용 리스팅
hpux ls -aFln [device] : HP-UX 디렉토리 내용 리스팅
hpux show autofile [devicefile] : autoexecute 파일의 내용을 보여줌
hpux set autofile <devicefile> <string> : autoexecute 파일 내용을 지정 문자열로 변경
hpux -v : 버전 정보 출력
hpux -lm [device file] : LVM 관리 모드로 부팅. 루트 볼륨만으로 구성 싱글 유저 모드.
hpux -lq [device file] : 시스템에서 정의된 정족수를 무시하고 부팅 시도.
disc# : 루트 이미지가 있는 디스크의 유형에 따라 값 분류
path : 디스크 드라이브의 하드웨어 경로
- bus_converter/hp-bp_slot.bus_address
- hp-pb_slot.bus_address
- cell#/system_bus_adapter/lower_bus_adapter/pci_device/pci_function.device_specific_portion
- hp-pb_slot.bus_address
- cell#/system_bus_adapter/lower_bus_adapter/pci_device/pci_function.device_specific_portion
section : 루트 분할 영역이 들어있는 섹션의 번호.
kernel : 부트할 커널의 이름. 기본값은 /stand/vmunix
2. 커널에 의한 OS 기동
커널이 메모리로 올라운뒤 OS가 기동됨으로써 비로서 unix 가 부팅된다고 할 수 있음. 커널은 하드웨어 장치를 검색해서 구성하고 루트 파일 시스템을 찾고 시스템의 초기화 파일들을 읽어 들여 정상적인 작업 조건이 되도록 시스템을 구성
시스템의 startup script 가 올바르게 시작되었는지 확인할 수 있도록 결과 출력
커널의 시작 단계
1단계 : 메모리로 읽혀진 커널은 하드웨어 장치를 찾아서 구성하고 루트 파일시스템을 찾음
2단계 : 시스템에서 swapper 디몬을 수행 (메모리와 디스크상 OS 기동에 필요한 영역을 할당)
3단계 : 이후 커널은 /sbin/pre_init_rc 스크립트를 호출하여 루트 파일 시스템의 정합성 여부를 확인3. 이상없을 경우 /sbin/init 프로세스를 호출
4단계 : init 프로세스는 /etc/inittab 파일에 있는 내용을 읽어 들여 ioinit, bcheckrc, rc, getty 4등을 차례로 수행
5단계 : 시스템 부팅 완료후 startup checklist 출력. 시스템 환경을 구성하는 스크립트가 수행
6단계 : startup checklist 완료 후 login 프롬프트 출력
Run Level
특정 프로세스들이 실행될 수 잇는 시스템의 상태. 프로세스의 집합은 /etc/inittab에 정의.
※1~6 런레벨은 사용자가 구성가능하지만 그외에는 고정임.
특정 사용자의 현재 런레벨 확인을 하기위해서는 who -r 를 이용
'현재 런레벨/현재 런레벨의 시작 시간/현재 런레벨/부팅후 현재 런레벨 수행수/이전 런레벨' 순서로 정보를 표현
시스템에서 런레벨의 변경을 위해서는 init 명령어를 사용한다. 대부분의 유닉스의 경우 run level 3를 다중 사용자 모드로 사용하고, 단일 사용자 모드에서 다중 사용자 모드로 전환을 위해서는 init 3을 수행한다.
init 프로세스 절차
initdefault 의 run level 읽기 > 커널의 data structure 초기화 > action 필드의 boot, bootwait 항목 수행 > initdefault run level 정의 항목 모두 수행 > initdefault run level 로 시스템 구성
3. 시스템 종료
시스템을 shutdown 하는 경우는 일반적으로 업그레이드, 장애 발생시 불가피 할 경우이다.
shutdown -ry 0 명령으로 시스템을 재부팅하는 경우
시스템을 shutdown하거나 reboot 하는데 사용하는 명령어와 이들 두 명령의 차이점
shutdown : 시스템 활동을 질서 정연하고 일관된 방법으로 정지. 시스템이 활동을 멈춘뒤에는 하드웨어적인 관리 작업이나 재부팅, 종료가 가능
reboot : 단일 사용자 모드에서 관리자가 작업 종료후 시스템 부팅시에 사용한다.
shutdown 과 reboot 차이점 비교
kernel : 부트할 커널의 이름. 기본값은 /stand/vmunix
2. 커널에 의한 OS 기동
커널이 메모리로 올라운뒤 OS가 기동됨으로써 비로서 unix 가 부팅된다고 할 수 있음. 커널은 하드웨어 장치를 검색해서 구성하고 루트 파일 시스템을 찾고 시스템의 초기화 파일들을 읽어 들여 정상적인 작업 조건이 되도록 시스템을 구성
시스템의 startup script 가 올바르게 시작되었는지 확인할 수 있도록 결과 출력
커널의 시작 단계
1단계 : 메모리로 읽혀진 커널은 하드웨어 장치를 찾아서 구성하고 루트 파일시스템을 찾음
2단계 : 시스템에서 swapper 디몬을 수행 (메모리와 디스크상 OS 기동에 필요한 영역을 할당)
3단계 : 이후 커널은 /sbin/pre_init_rc 스크립트를 호출하여 루트 파일 시스템의 정합성 여부를 확인3. 이상없을 경우 /sbin/init 프로세스를 호출
4단계 : init 프로세스는 /etc/inittab 파일에 있는 내용을 읽어 들여 ioinit, bcheckrc, rc, getty 4등을 차례로 수행
5단계 : 시스템 부팅 완료후 startup checklist 출력. 시스템 환경을 구성하는 스크립트가 수행
6단계 : startup checklist 완료 후 login 프롬프트 출력
Run Level
특정 프로세스들이 실행될 수 잇는 시스템의 상태. 프로세스의 집합은 /etc/inittab에 정의.
※1~6 런레벨은 사용자가 구성가능하지만 그외에는 고정임.
특정 사용자의 현재 런레벨 확인을 하기위해서는 who -r 를 이용
'현재 런레벨/현재 런레벨의 시작 시간/현재 런레벨/부팅후 현재 런레벨 수행수/이전 런레벨' 순서로 정보를 표현
시스템에서 런레벨의 변경을 위해서는 init 명령어를 사용한다. 대부분의 유닉스의 경우 run level 3를 다중 사용자 모드로 사용하고, 단일 사용자 모드에서 다중 사용자 모드로 전환을 위해서는 init 3을 수행한다.
init 프로세스 절차
/etc/inittab 파일 형태 : id:rstate:action:process
initdefault 의 run level 읽기 > 커널의 data structure 초기화 > action 필드의 boot, bootwait 항목 수행 > initdefault run level 정의 항목 모두 수행 > initdefault run level 로 시스템 구성
수행되는 스크립트
ioinitrc, bcheckrc(파일 시스템 체크), rc(런레벨 실행), getty(프롬프트 생성)
ioinitrc, bcheckrc(파일 시스템 체크), rc(런레벨 실행), getty(프롬프트 생성)
3. 시스템 종료
시스템을 shutdown 하는 경우는 일반적으로 업그레이드, 장애 발생시 불가피 할 경우이다.
shutdown -ry 0 명령으로 시스템을 재부팅하는 경우
시스템을 shutdown하거나 reboot 하는데 사용하는 명령어와 이들 두 명령의 차이점
shutdown : 시스템 활동을 질서 정연하고 일관된 방법으로 정지. 시스템이 활동을 멈춘뒤에는 하드웨어적인 관리 작업이나 재부팅, 종료가 가능
reboot : 단일 사용자 모드에서 관리자가 작업 종료후 시스템 부팅시에 사용한다.
shutdown 과 reboot 차이점 비교
더보기
unixsys_02.pdf