Unix 에서 Raw Device 사용법

2010.05.12 08:43

조인상 조회 수:14084

원문 : 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 10g ORA-32004 : obsolete and/or deprecated parameter(s) specified 조인상 2010.05.12 10738
74 centOS 5.2 에 오라클 10g 설치 조인상 2010.05.12 109910
73 히든 파라미터 확인하는 쿼리 조인상 2010.05.12 62417
72 오라클 복구 시나리오 조인상 2010.05.12 16646
71 골든 5.7 버전 데모 file 조인상 2010.05.12 7843
70 오라클 온라인백업 스크립트 (ksh 용) [1] file 조인상 2010.05.12 100756
69 [9i feature] DB_CACHE_ADVICE / V$DB_CACHE_ADVICE 에 대해서 조인상 2010.05.12 8063
68 exp error - ORA-19206: Invalid value for query or REF CURSOR parameter 조인상 2010.05.12 156609
67 exp실행시 에러. ORA-06512 SYS.DBMS_METADATA_INT 조인상 2010.05.12 32629
66 OPN 가입시의 장점 file 조인상 2010.05.12 6700
65 오라클에 접속하는 최대 인스턴스개수(세션개수)를 늘리는 방법 조인상 2010.05.12 24614
64 Red Hat Enterprise Linux AS release 3 (Taroon) 기반에서 오라클 9.2.0 설치하기 조인상 2010.05.12 8060
» Unix 에서 Raw Device 사용법 조인상 2010.05.12 14084
62 오라클 10g OCP 라이센스 업그레이드 정보 조인상 2010.05.12 7499
61 .net 과 오라클 연동에 대하여 조인상 2010.05.12 10320
60 [장애처리] 메모리 풀로 인한 OS hang-up 조인상 2010.05.12 9760
59 [설치장애기] 64비트 windows 2003에 오라클 10.2.0.1 32비트 설치시 ORA-12564에러 조인상 2010.05.12 16496
58 Redhat Linux 8.0 에 Oracle 9i install 조인상 2010.05.12 7600
57 레드햇리눅스9에 오라클9i설치중 hang 조인상 2010.05.12 8770
56 OS의 파일사이즈가 2GB로 제한될때 split으로 나누기 조인상 2010.05.12 6173
서버에 요청 중입니다. 잠시만 기다려 주십시오...