Unix 에서 Raw Device 사용법

2010.05.12 08:43

조인상 조회 수:14112

원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

출처 : http://cafe.naver.com/aix/5514

Unix 에서 Raw Device 사용법



RAW DEVICE 란


흔히 유닉스에서 disk를 억세스하는 방법에 따라 block device(/dev/dsk) 와 raw device(/dev/rdsk) 로 구분을 합니다. 단어 그대로 이해를 한다면 block device에 블록은 파일시스템의 블록을 말하는 겁니다. 즉, Partition을 나누고 Mount Point를 잡을 때(흔히 window 환경에서 말하는 directory 를 말하는 것)의 논리적인 위치를 말하고, raw device는 Partition만 잡고 Mount Point가 없는 것을 말합니다. 다시 말해서 raw device 위에 file device가 언쳐지는 것입니다.



OS 는 어플리케이션의 IO 요구에 따라 파일 시스템에서 읽어 오느냐 raw device(파일시스템 보다는 더 하위레벨)에서 읽어 오느냐가 억세스 방법에 의해서 차이가 있습니다. raw device는 파일시스템이 없기 때문에 당연히 파일, 디렉토리, 억세스컨트롤 등을 어플리케이션에서 직접 관리 해야 합니다.



로 디바이스를 데이타베이스에서 사용할 때 데이타 베이스는 자체적으로 블록과 익스텐트 등의 스토리지 관리 개념을 가지고 있기 때문에 OS레벨에서의 물리적인 데이타 파일 관리만 하면 됩니다.
(데이타 베이스에서 로디바이스를 사용하더라도 물리적인 디바이스(디스크)에 데이타 파일형태로 위치해야 하기 때문에 볼륨매니저 같은 가상 스토리지 개념이 필요합니다.)


block device access path
- Application<->Library Buffer<->Operation System Cache<->File System Manager<->Device

raw device access path
- Application<->Device

RAW DEVICE 장점


- RAW DEVICE 는 OS KERNEL 에 의해 BUFFERING 이 되지 않고 APPICATION 과 DEVICE 간에

  직접 DATA 가 전송되므로 DISK I/O 성능 향상되고 CPU OVERHEAD가 감소된다.
- OS FILE SYSTEM 의 OVERHEAD 를 피할 수 있다.
- OS BUFFER SIZE 를 줄일 수 있다.
- FILE SYSTEM 보다 일반적으로 I/O 속도가 최고 40% 까지 빠르다.

RAW DEVICE 단점


- SETUP 하기 어렵고 BACKUP 절차가 FILE SYSTEM 보다 복잡하여 관리가 어렵다.

ORACLE 에서의 RAW DEVICE 구성 시 주의할 점


- REDO LOG FILE, DATAFILE, CONTROL FILE은 RAW DEVICE로 구성하며 ARCHIVE FILE은 FILE DEVICE에 구성해야 한다. 왜냐하면 RAW DEVICE에는 한 개 이상의 FILE을 쓸 수 없기 때문이다.



Raw Device 파티션에 데이타 화일 생성하기

- 한 파티션 전체 공간을 오라클 화일로 사용할 수 있나?
불가능하며, 최소한 두 개의 오라클 블럭 크기를 남기고 사용할 수 있다.

예를 들어, 100M 크기의 파티션에 4K 오라클 블럭 크기를 갖는 최대의 데이타 화일을 생성하는 문장은 다음과 같다.

SQL> create tablespace raw_tabspace datafile '/dev/raw1' size 102392K REUSE;

여기서 102392K 값의 산출 근거는 {(100 * 1024K) - 8K} 공식에 의해 구하여진다.

- Raw Device의 첫 번째 파티션을 사용할 수 있나?
사용하지 않을 것을 권고한다. 그 이유는 OS 종류나 버젼에 따라 디스크 파티션 테이블이나 논리적 볼륨 제어 정보등이 첫 번째 파티션을 관리될 수 있기 때문이다. 따라서 OS 벤더의 자문을 받아야 한다.

- 파티션의 오너쉽은 어떻게 지정하여야 하나?
기본적으로 생성은 'root'로 수행하지만, 이후에 오너쉽 밑 그룹은 각각 oracle 사용자와 dba 그룹으로 지정하여야 한다.



RAC 구성에 Raw Device 환경에 datafile 추가 하기



SQL> alter tablespace TS_NAME add datafile '/dev/rlvindb08002G008' size 2047M;



2G짜리 Raw Device는 SIZE 가 2048M 이지만 조금 작게 설정합니다. Raw Device 는 Raw Device 마다 header block을 가져야 하기 때문에 dbf size를 Raw Device 크기만큼 다 잡아 버리면 head block을 만들수 없어서 에러가 나기 때문입니다.



데이타베이스 화일 백업에 관하여

화일 시스템과는 달리 Raw Device에서는 'tar'나 'cpio' 명령을 사용할 수 없고, 반드시 아래처럼 'dd' 명령어를 사용하여야 한다.

% dd if=/dev/raw1 of=/dev/rmt0 bs=16k

하지만 'dd'로 백업된 화일에 대하여 'tar'나 'cpio' 명령을 사용하여 별도의 관리 방법을 수행할 수 있다.




파일 운영하기

- Redo Log의 위치에 대하여?
Redo Log는 가장 쓰기가 활발하며 특성상 순차적으로 쓰기 작업이 일어나는 화일이므로 Raw Device 사용이 가장 권장된다. 특히 OPS 환경에서는 반드시 Raw Device에 관리되어야 한다.

- Archive Log의 위치에 대하여?
Archive Log는 특성상 화일 시스템에 저장되어야 한다.

- Raw Device 파티션에 두 개 이상의 화일을 저장할 수 있나?
가능하지 않다.

- 모든 파티션의 크기를 동일하게 지정할 필요가 있나?
데이타베이스 화일에 대한 파티션 지정 변경이 용이하다는 장점 외에는 일반적으로 권고되지 않는 방법이다.



RAW DEVICE SETTING 방법

1. FREE DISK PARTITION 의 이름을 결정한다.
FREE PARTITION 은 OS FILE SYSTEM 에의해 사용 돤것이 아니어야한다.
2. ORACLE 의 RAW DEVICE SETTING
$ chown oracle /dev/rdsk/c0s0d1
$ chmod 600 /dev/rdsk/c0s0d1
3. 새로운 PARTITION 을 추가한다.
create database SID
logfile '?/dbs/log1.f' size 100K, '?/dbs/log2.f' size 100K
datafile '/dev/rdsk/c0s0d1' size 10000K reuse ;
alter tablespace tablespace_name add datafile
'/dev/rdsk/c0s0d2' size 10000K reuse ;


RAW DEVICE 의 GUIDELINE



1. REDO LOG FILE 과 DATABASE FILE 을 서로 다른 DRIVE 에 놓는다.
2. 다른 DRIVE 에 자주 사용되는 TABLE 을 분산시킨다.
3. TABLE 과 그 TABLE 의 INDEX 를 분리한다.
4. ORACLE 과 OS I/O 를 분리한다
번호 제목 글쓴이 날짜 조회 수
75 SGA 크기를 결정하는 방법 조인상 2010.05.12 8948
74 Oracle expdp 로 백업하기 조인상 2015.02.23 9094
73 NT기반 오라클환경에서 OS 다시 깔았을때 복구방법 조인상 2010.05.12 9138
72 오라클 cold 백업 스크립트(특정데이터파일만 추출) NT용 file 조인상 2010.05.12 9221
71 TNS-12540: TNS:internal limit restriction exceeded 조인상 2010.05.12 9299
70 오라클 8.1.7 for windows [5] file 조인상 2010.07.01 9351
69 오라클 hotbackup 스크립트 조인상 2010.05.12 9582
68 AIO 문제때문에 오라클 실행안될때 조인상 2010.05.12 9664
67 Aix 5L에서 오라클9i 설치법 조인상 2010.05.12 9708
66 [장애처리] 메모리 풀로 인한 OS hang-up 조인상 2010.05.12 9769
65 BUFFER HIT RATIO NOTES 조인상 2010.06.15 9938
64 v$datafile 의 status 에 recover로 표시되는 경우 조인상 2010.05.12 9941
63 datafile 위치 변경하는 방법 조인상 2010.05.12 10091
62 Unix/Linux 에서 exp 동시에 gzip 으로 압축하기 조인상 2011.06.10 10198
61 Opatch : 다재다능한 패치 관리 유틸리티 file 조인상 2010.05.12 10323
60 .net 과 오라클 연동에 대하여 조인상 2010.05.12 10334
59 오라클 버전업 후 exp할때 ORA-00904에러 조인상 2010.05.12 10450
58 64비트 Solaris에 오라클 9.2.0 설치 하기 조인상 2010.05.12 10527
57 10g ORA-32004 : obsolete and/or deprecated parameter(s) specified 조인상 2010.05.12 10750
56 아카이브 로그 강제로 생성하는 명령어 조인상 2010.05.12 10790
서버에 요청 중입니다. 잠시만 기다려 주십시오...