본문 바로가기
IT 이야기 - About IT

HP-UX Admin 1 (Chapter 6-8)

by 회사원 주씨 2008. 7. 31.
반응형

------------------------------------------------------------------------------
Module 6 Connecting Pheripherals
-----------------------------------------------------------------------------

# ioscan

-k 옵션 : 시스템의 커널이 가지고 있는 값을 보여주도록 하는 것입니다.
-f 옵션 : 보여줄 수 있는 모든 내용을 출력하라는 뜻입니다.
-n 옵션 : 출력할 때 디바이스 파일명을 출력하라는 뜻(/dev/dsk/c3t8d0, /dev/rdsk/c3t8d0)
-C 옵션 : 클래스가 disk 인 내용을 모두 출력하라는 뜻입니다.


# ioscan -f : 페이지 단위로 보여줌
# ioscan -fH 8/12.2.0 : 하드웨어 버전이 8/12.2.0인것만 보여줌
# ioscan -fC disk : 디스크의 정보만 보여줌(C는 class)
# ioscan -kfnC disk : 현재 커널이 가지고 있는 디바이스명중에서 disk를 보여줌
(디바이스를 재구성하는 것이 아니므로 속도가 빠름)


disk -sdisk(workstation)
-disc3(Server)

tape -stape(workstation)
-tape2(Server)

printer -CenIF(workstation)
-lpr2(Server)


Class I H/W Path Driver S/W State H/W Type Description
disk 0 8/12/2.0 sdisk CLAIMED DEVICE SEAGATE


Class : 구분이름(사람들이 인식하는 I/O 장치 이름)
I : 식별자 Interface Number
Driver : 외부 디바이스 실행 p/g
S/W State : 인식상태(CLAIMED : 정상 인식 상태, UNCLAIMED : 커널중에 이 디바이스의 드라이버가 없음)

* 8/12/2.0
8 : 내부버스 번호
/ : 어댑터 카드가 있다는 뜻(컨버터)
12 : 슬롯위치(나누기 4하면 됨) 3번째 슬롯
2 : 장치 딥 스위치
0 : SCSI하드디스크의 경우 0


-------------------------------------------------------------------------------------
Module 7 Configuring Device Files
-------------------------------------------------------------------------------------

< What is Device File? >

- HP-UX는 Device File이라는 것을 통해서 Periperals devices(주변장치- tape drivers,
disk drivers, printers, terminals, modems)와 통신한다.
- A device file does not contain data.
- Device file are stored in the /dev directory
- 경우에 따라서는 처음으로 새로운 주변장치를 연결할 때 그 디바이스 파일이
시스템에 존재하지 않는다면 직접 이 파일을 생성


< Listing Device ll /dev >

- ll 커맨드를 사용하여 /dev 디렉토리를 리스팅할수 있다.

# ll /dev

total 62
drwxrwxrwx 3 root root 1024 Nov 24 19:03 OpenTP1
crw-rw-rw- 1 root root 72 0x00004e Nov 24 19:00 arp
crw-rw-rw- 2 bin bin 66 0x000000 Mar 7 2001 audio
crw-rw-rw- 2 bin bin 66 0x000002 Mar 7 2001 audioBA
crw-rw-rw- 2 bin bin 66 0x000002 Mar 7 2001 audioBA_0
crw-rw-rw- 2 bin bin 66 0x000003 Mar 7 2001 audioBL
crw-rw-rw- 2 bin bin 66 0x000003 Mar 7 2001 audioBL_0
crw-rw-rw- 2 bin bin 66 0x000001 Mar 7 2001 audioBU
crw-rw-rw- 2 bin bin 66 0x000001 Mar 7 2001 audioBU_0

- crw-rw-rw- 에서 c는 device file type중에서 character file임을 나타낸다.
b는 block file이며 -는 일반 파일이다.
- 77의 숫자부분은 major number이며 HP-UX가 주변기기와 통신할 때 사용하는 커널 드라이버이다.
- 0x000001는 minor number이며 장치 주소와 몇몇 장치용 정보를 간결하게 나타낸다.


< Listing Device File with ioscan >

- ll command doest not indicate which device each device file accesses
- ioscan -fun 커맨드는 시스템과 연관된 모든 디바이스 파일을 출력해준다.
- ioscan can list multiple device files for a single device

# ioscan -fun : list all devices and device files
# ioscan -funC disk : Only list all disk devices and device files( C : class)
# ioscan -funH 2/0/1.6.0 : Only list device files for the device at 2/0/1.6.0


< Listing Device File with lssf >

- List characteristics of device files
- ioscan 명령어는 각 디바이스에 대한 상세 정보는 보여주지 않는다.
- lssf명령어는 각 디바이스의 제공하는 상세한 정보를 표현해 준다.
* 어느 디바이스 드라이버가 사용되는지
* 디바이스 하드웨어 주소정보
* 디바이스 파일에 사용되는 어느 특정 디바이스 액세스 옵션

# /usr/sbin/lssf 디바이스패스명
# /usr/sbin/lssf /dev/rdsk/c2t2d0

sdisk card instance 2 SCSI target 2 SCSI LUN 0 section 0 at address 10/0/15/0.2.0 /dev/rdsk/c2t2d0


< Device File Naming Convention >

- c#t#d#

c# : Instance number of the interface card( 몇번째 어댑터 카드인지...)
t# : SCSI target address
d# : Device-dependent information(0는 SCSI만, 1은 array, 2는 mirroring)


< Disk Device File Names >

- A block device file in /dev/dsk
- A character device file in /dev/rdsk

< tape Device File Names >

- /dev/rmt/c#t#d#[access option]


# tty
/dev/pts/th : 모니터를 가르키는 device file

# banner hi > /dev/pts/tj : 상대방 모니터 file을 알면 다른 모니터로 뿌릴수 있다.


< 디바이스 파일을 생성하는 방법 >

# diskinfo /dev/rdsk/c3t6d0 : 디스크 제품에 관련된 정보를 보는 명령.
SCSI describe of /dev/rdsk/c3t6d0:
vendor: SEAGATE
product id: ST39102LC
type: direct access
size: 8886762 Kbytes
bytes per sector: 512

(1) Autoconfiguration

전제 조건 : 드라이버가 존재하고 있어야 한다.

1) 커널은 자동으로 구성될 수 있는 모든 장치를 구별하고, 해당 드라이버를 특정 하드웨어
주소에서 탐지된 각 장치에 결합. 자동으로 구성할 수 있는 장치에 대해서만 이루어짐.

2) 하드웨어 조사 등의 시스템 초기화 작업이 끝나면, 커널은 init 명령을 호출.

3) init 프로세스는 /etc/inittab 파일을 읽어 들이고 /sbin/ioinitrc 등 그 파일에
나열된 여러 시스템 시작 명령을 호출.
/sbin/ioinitrc 명령은 대개 ioinit을 시작시켜서 여러 가지 일을 수행.

4) ioinit은 먼저 /etc/ioconfig 파일의 내용을 읽어 들이고, 거기서 발견된 장치 대응 정보를
커널 데이터 구조인 io_tree로 전송.

5) ioinit은 이어 insf를 실행
ioinit은 /etc/inittab에 -i 선택 항목이 있는 상태에서 실행되므로 insf가 호출


# file /etc/ioconfig
/etc/ioconfig: data

# strings /etc/ioconfig
!"IA
0btlan3
audio
.....

< insf명령어 >

- insf 명령은 장치가 아직 할당되지 않았을 경우에 디바이스 파일을 만들기 위해 사용.
- 한꺼번에 여러개 device 생성

# /sbin/insf [-C class][-H h/w path][-d driver][-I card instance][-D directory][-k|-e]

# /sbin/insf -e -C disk : C는 class
insf : Installing special files for disk3 instance 0 address 56/52.5.0
insf : Installing special files for disk3 instance 1 address 56/52.6


-d 드라이버 이름에 의해 특정 장치를 선택합니다.
-d, -H, -C 선택 항목은 지정된 드라이버, 장치등급, 또는 하드웨어 경로 주소를 가진
장치를 선택하기 위해 사용.
-C 디스크와 같이 주어진 등급에 속한 장치를 대조합니다.
-H 주어진 하드웨어 경로에 있는 장치를 대조합니다.
-I 카드 예를 선택합니다.
-k 카드 예 번호를 할당하지만 디바이스 파일 이름을 만들지 않음.
-e 기존 장치용 디바이스 파일을 만들거나 다시 설치.
-f 디바이스 파일을 강제로 만듭니다.
-D 기본 장치 설치 디렉토리를 대체하고 디렉토리에 특수 파일을 설치.
디렉토리는 반드시 있어야 됨.


# insf : 시스템의 장치에 필요한 모든 디바이스 파일을 설치.
# insf -e : 기존 장치용 디바이스 파일을 만들거나 다시 설치(모든 것 업데이트)
# insf -d disc2 -I 3 : 카드 번호 3을 가진 추가디스크를 설치.
# insf -d mux1 -I 1 : 카드 번호 2를 가진 멀티플렉서를 설치.
# insf -C tty : 클래스 tty 에 해당되는 모든 디바이스 파일을 만들 때 사용.
# insf -H 4.2.0 : 주소 4.2.0에 있는 장치의 디바이스 파일을 만들 때 사용.


< mksf 명령어 >

- mksf 명령은 시스템이 해당 장치를 이미 인식한 상태에서 디바이스 파일을 만들 때 사용
- 한번에 한개의 device생성(detail하게...)

# /sbin/mksf [-C class|-d driver][-H h/w path][-I card instance][-D directory][driver-option][special file]

-C : 디스크와 같이 주어진 등급에 속한 장치를 대조.
-d : 특정 장치를 그 드라이버 이름에 의해 선택.
-I : 카드 예를 선택.
-H : 주어진 하드웨어 경로에 있는 장치를 대조.
-D : 기본 장치 설치 디렉토리를 무시하고 다른 디렉토리에 특수파일을 설치.
driver-option : 드라이버 이름에 따라 다릅니다.
special file : 대체 디바이스 파일 이름을 선택. 선택된 대체 파일이름은 절대 파일 이름.

# mksf -C disk -I 0 /dev/rdsk/c0t6d0 : 디스크 정보 커널 업데이트
# mksf -C disk -I 1 -D /home/gwchoi : 내 홈 밑에 디바이스 파일
# mksf -C tape -I 0 -D /home/gwchoi : 내 홈 밑에 디바이스 파일


------------------------------------------------------------------------------
Module 8 Configuring Disk Devices
------------------------------------------------------------------------------

Whole Disk : 디스크를 통채로 쓴다.
5가지의 방법으로만 사용가능. 거의 안씀.
- file system
- swap
- raw data
- file system과 swap
- boot area과 file system 그리고 swap

Whole Disk단점

- A file system cannot span multiple disks.
- There can only be one file system partition per disk(디스크 당 하나의 파일 시스템 파티션만 가능)
- It is difficult to extend a file system if more space is needed.(디스크 확장불가)


LVM Disk : HP UX는 주로 LVM을 사용

- Create logical volumes that span multiple disks.
- Create multiple logical volumes on a single disk.
- Extend and reduce logical volumes as necessary.
- Software Disk Striping을 지원하여 디스크의 성능향상을 위해
하나의 데이터를 여러 디스크에 분산하여 저장 가능.


LVM구성 방법

1) 물리 포맷팅(물리볼륨)
2) 물리 볼륨을 논리적으로 합친다(볼륨그룹)
3) 불륨그룹을 논리적으로 목적에 맞게 다시 나눈다(논리볼륨)


Physical Volumes

- LVM에서 관리하는 전체 디스크. LVM 시스템에서는 하나의 물리적인 디스크를 전체 디스크로 관리.
- LVM에 의해서 디스크가 관리되려면, 디스크에 LVM 관리를 위한 정보를 생성 후
--> 이 데이터 구조가 생성되면 LVM은 디스크를 하나의 물리볼륨으로 간주하게 되고 볼륨그룹에 포함


Volume Groups

- 하나 또는 그 이상의 물리볼륨들로 구성.
- vg00은 부트디스크와 OS를 포함하는 특별한 루트 볼륨그룹(/dev/vg00)


Logical Volumes

- 하나 이상의 물리볼륨으로 구성된 볼륨그룹의 분할.
- 볼륨그룹에 포함되어 있는 물리볼륨 전체 또는 일부 공간을 사용
- 공간이 부족할 경우 볼륨그룹에 속해 있는 또 다른 물리볼륨을 사용하여 물리적인 디스크보다
더 큰 크기로 확장이 가능
- lvoln 은 논리 볼륨을 파일시스템이나 swap, dump영역으로 할당할 경우에 사용하는 block device
- rlvoln 은 논리볼륨을 raw data영역으로 할당할 경우에 사용하는 character device 파일
- 물리 볼륨의 시작부분에 바로 LVM 관리를 위한 정보들(물리볼륨정보, 부트데이터, 볼륨그룹정보, 그리고 LVM을 구축하기 위해 필요한 다른 정보들)을 데이터 구조화하여 저장하고 pvcreate나 vgcreate 명령어를 사용하여 생성


LVM Extents

- LVM 방식으로 디스크를 구성하고 나면 디스크는 동일한 크기의 여러 개의 Extent로 나뉘어 진다.


* Extent
- 디스크와 같은 직접 접근 기억 장치에서 운영체제에 의하여 특별한 프로그램과 파일이
저장될 수 있도록 예약되어 있는 영역입니다


* PE(Physical Extent)

- 논리볼륨에 공간을 할당하는 기본 할당 단위. 초기값은 4MB
- 하나의 물리볼륨에 포함된 연속적인 디스크 블록. 하나의 볼륨그룹에서는 그 크기가 항상 같음.


* LE(Logical Extent)

- 하나의 논리볼륨에 포함된 연속적인 논리블록
- 볼륨그룹이 mirror되지 않았을 경우 PE와 항상 일치
- 루트 디스크의 LE는 반드시 contiguous. 그러나 데이터만 저장되는 디스크의 경우 그렇지 않아도 됨.


Creating Physical Volume


1) 미디어(디스크)의 초기화

- 제조사에서 미리 미디어가 초기화되어 나옴.
- 디스크를 이전에 한번 사용했거나 디스크의 무결성이 의심스러울 때.
- 이 명령어를 사용할 경우 현재 디스크에 있는 데이터들이 모두 완전히 삭제
- 시간이 많이 걸림.(4G에 약77분...)

# mediainit /dev/rdsk/c0t3d0

2) 물리 볼륨 생성

# pvcreate [-f|-B] /dev/rdsk/c0t3d0

-f 옵션 : 이전 볼륨의 LVM정보를 무시하고 새로운 정보를 덮어씀.
-B 옵션 : LIF 헤더정보와 BDRA(Boot Data Reserved Area), LIF 디렉토리 영역을 생성하여
부팅 가능한 디스크로 만들어 준다.


* LIF Header : 여러 가지 HP 시스템 간에 파일 교환을 위한 표준 mass storage format.
root, swap, dump 디바이스의 물리볼륨에 존재.
LIF Header정보는 mkboot명령어로 만들어집니다.

* BDRA(Boot Data : root, primary swap, dump 논리볼륨을 구성하기 위한 정보뿐만 아니라
Reserved Area) root 파일시스템을 mount 하고 root 볼륨그룹에 속하는
LVM 디스크의 위치와 크기를 가지고 있습니다.


* LIF Directory Area : HPUX, LABEL, ISL, AUTO 파일 등을 포함하고 있는 영역
mkboot 명령어로 생성.
# lifls -v -l /dev/dsk/c0t0d0 와 같은 명령으로 이 영역의 내용을 볼수 있음.

* PVRA(Physical Volume : 물리볼륨에 관한 고유정보를 포함
Reserved Area) pvcreate 명령으로 생성되는 영역

* VGRA(Volume Group : 전체 볼륨그룹에 대한 정보 볼륨그룹에 속해
Reserved Area) 있는 각각의 물리 볼륨에는 VGRA의 복사본이 들어가게 됩니다.
VGRA는 볼륨그룹의 정족수(quorum)정보를 가지고 있는 VGSA(Volume Group Status Area)와
볼륨그룹을 구성하기 위해 필요한 device driver 정보를 가지고 있는
VGDA(Volume Group Descriptor Area)영역이 있습니다. LE의 map은 이 VGRA 영역에 있음.

* User Data Area : 모든 사용자 데이터가 저장되는 곳으로서 파일시스템, swap, 사용자 application들이 들어있음
볼륨그룹이 만들어질 때 이 영역은 고정크기의 PE(Physical Extent)와
LE(Logical Extent)의 map으로 나뉘어진다.

* BBRA(Bad Block : 이 영역은 손상된 블록에 대한 복구 방법에 관한 정보가 저장되어 있는 곳.
Relocation Area)


- LIF Header, BDRA, LIF Directory Area는 부트 가능한 disk에만 생기는 정보임.
- LVM에 사용되는 데이터 구조는 디스크 공간에 대한 약간의 overhead를 소비하게 되는데,
이 overhead는 부팅 가능한 LVM 디스크의 경우 2912Kb의 고정된 크기를 사용하며,
부팅하지 않는 디스크의 경우는 보통 400Kb를 사용



Removing Physical Volume

- 물리볼륨을 삭제하는 경우는 시스템에서 더 이상 디스크를 사용하지 않거나 LVM을 이용하여 관리하지 않을 경우
- 삭제하려는 디스크의 device파일이 볼륨그룹에 속해 있지 않을 경우에만 사용이 가능

# pvremove /dev/rdsk/c0t2d0


Creating Volume Group

1) Volume group을 위한 디렉토리 작성.

# mkdir /dev/vgfil00 : /dev/vgnn의 네이밍 룰에 따라서 작성해줄것.

2) 볼륨그룹에서 사용할 group 파일을 생성.

# mknod /dev/vgfil00/group c 64 0x100000

- group 파일은 볼륨그룹 내에서 LVM 커널과 LVM 명령어가 상호간의 통신에 사용하는 제어 파일.
- group 파일은 캐릭터 device 파일로서, mknod 명령을 이용하여 생성
- LVM에서 사용하는 Major 값은 항상 64
- Minor 값으로는 일반적으로는 볼륨그룹명을 사용하지만 00은 이미 루트 볼륨그룹인 vg00에서
사용하고 있는 값이므로, 여기서는 새로 생성하는 볼륨그룹인 vgfil00에 대해서는 10을 사용.
(0xhh0000에서 hh의 값이 10이 된다.)

3) vgcreate 명령을 사용하여 볼륨그룹을 생성

- /dev/dsk/c0t3d0, /dev/dsk/c0t4d0 두개의 물리 볼륨을 두개 합쳐서 vgfil00이라는 볼륨 그룹 생성
- block device임에 주의

# /usr/sbin/vgcreate /dev/vgfile00 /dev/dsk/c0t3d0 /dev/dsk/c0t4d0


vgcreate 옵션

-e max_physical_extents : 볼륨그룹에 속한 물리적 볼륨의 physical extents 최대 개수

-l max_logical_vols : 볼륨그룹에 허용되는 logical volume의 최대 개수

-p max_physical_vols : 볼륨그룹에 허용되는 LVM디스크의 최대 개수

-s physical_extents_size : 볼륨그룹에 속한 각 physical extent의 용량(MB단위)


생성된 물리 볼륨과 볼륨 그룹 체크 (-v : detail정보)

# vgdisplay -v vgfil00
# pvdisplay -v /dev/dsk/c0t3d0
# pvdisplay -v /dev/dsk/c0t4d0


Removing Volume Group

- 현재 사용중인 논리볼륨이 있거나 두 개 이상의 물리볼륨으로 구성된 볼륨그룹일 경우에는
논리볼륨을 모두 삭제하고 물리볼륨 역시 볼륨그룹에서 단 하나만 남기고 모두 제거한 뒤에야 삭제가 가능
- 볼륨그룹을 삭제한다고 해서 /dev 에 생성한 볼륨그룹 디렉토리 또한 삭제되는 것은 아니므로,
이 디렉토리는 별도로 삭제하는 과정이 필요합니다

# /usr/sbin/vgremove /dev/vgfile00

- 볼륨 그룹 삭제

# /usr/sbin/vgdisplay -v vgfil00

- 볼륨 그룹이 삭제되었으므로 결과 출력 안됨.

# ll /dev/vgfil00

- group 파일이 남아 있으나 내용은 0임. 삭제 필요

# rm -rf /dev/vgfil00

- 볼륨그룹의 device 파일 디렉토리를 삭제


Creating Logical Volume

# vgdisplay -v vgfil00 | grep PE

- vgdisplay명령으로 현재 볼륨그룹의 남아있는 PE(Physical Extent)양을 확인
- Free PE 부분이 현재 사용가능한 PE의 양. PE의 단위는 기본 4MB.

# lvcreate -l 256 /dev/vgfil00

- l 옵션을 주었으므로 논리볼륨의 생성단위가 PE 혹은 LE가 됨. (256*4M = 1G)


lvcreate 옵션

-L logical_volume_size : 논리볼륨을 생성할 때 사용하는 단위를 MB 단위의 크기로 설정

-l logical_extents_number : 논리볼륨을 생성할 때 사용하는 단위를 PE 혹은 LE 단위로 설정

-n name : 논리볼륨 생성 시 원하는 이름으로 설정


# lvcreate -L 16 -n myswap vg01
# lvcreate -L 16 -n myfs1 vg01
# lvcreate -L 16 -n myfs2 vg01


Logical Volume 체크

# vgdisplay -v vg01
# lvdisplay -v /dev/vg01/myswap


Removing Logical Volume

- 논리볼륨을 삭제하기 전에는 반드시 몇 번이고 확인을 한 후에 삭제할 것.

# /usr/sbin/lvremove /dev/vgfil00/lvol1

- 데이터가 들어 있다면 삭제전에 데이터까지 삭제할것인지 물어본다. 같이 삭제하려면 y를 누른다.

# vgdisplay -v vgfil00 |grep lvol1

- 삭제된 논리 볼륨의 정보가 보이지 않으면 올바로 삭제된 것임.

728x90

'IT 이야기 - About IT' 카테고리의 다른 글

HP-UX Admin 1 (Chapter 3-5)  (0) 2008.07.31
HP-UX Admin 1 (Chapter 9-12)  (0) 2008.07.31
[HP-UX] glance adviser 사용하기  (1) 2008.07.31