Unix 에서 Raw Device 사용법

2010.05.12 08:43

조인상 조회 수:14108

원문 : 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 AIO on HP-UX filesystem 조인상 2011.11.01 13222
74 Diagnosing and Resolving ORA-4030 errors (Oracle Metalink) 조인상 2011.10.31 13205
73 아카이브 모드로 변환하기 조인상 2010.05.12 12791
72 온라인 백업/리스토어 (imp/exp) 조인상 2010.05.09 12785
71 AIX 64bit - oracle 10.2.0.1 설치 file 조인상 2010.05.12 12745
70 Master Note for Diagnosing ORA-4030 (Oracle Metalink) 조인상 2011.10.31 12664
69 롤백세그먼트 부족에 대한 관리법 (ORA-01555) 조인상 2010.10.13 12455
68 10G: ORA-6512 AT SYS.OLAPIHISTORYRETENTION [ID 266728.1] 조인상 2011.06.23 12351
67 오라클 홈디렉토리 변경 ( /oracle_backup => /oracle ) 조인상 2010.05.12 11917
66 Oracle 7.3.4 for Windows file 조인상 2011.08.31 11885
65 control file 재생성하기 조인상 2010.05.12 11667
64 오라클 startup & shutdown 쉘 스크립트 짜는 법 조인상 2010.05.12 11619
63 오라클 유저 생성 및 변경/삭제 조인상 2010.05.12 11413
62 ORA-28002 : the password will expired within N days 조인상 2014.01.09 11274
61 오라클 패치 후 export가 안된다! [1] 조인상 2010.05.12 10848
60 아카이브 로그 강제로 생성하는 명령어 조인상 2010.05.12 10786
59 10g ORA-32004 : obsolete and/or deprecated parameter(s) specified 조인상 2010.05.12 10750
58 64비트 Solaris에 오라클 9.2.0 설치 하기 조인상 2010.05.12 10527
57 오라클 버전업 후 exp할때 ORA-00904에러 조인상 2010.05.12 10450
56 .net 과 오라클 연동에 대하여 조인상 2010.05.12 10334
서버에 요청 중입니다. 잠시만 기다려 주십시오...