raw device란
작성자 관리자 작성시간 2016-02-17 12:32:39
 

흔히 유닉스에서 스토리지 디바이스를 억세스하는 방법에 따라

블록디바이스(/dev/dsk) 와 로(RAW)디바이스(/dev/rdsk) 로 구분을 합니다.

단어 그대로 이해를 한다면 블록디바이스에 블록은 파일시스템의 블록을 말하는 겁니다.

즉 로디바이스위에 파일시스템이 얹어 있다고 보면 됩니다.

OS 는 어플리케이션의 IO 요구에 따라 파일 시스템에서 읽어 오느냐 ,

로 디바이스(파일시스템 보다는 더 하위레벨)에서 읽어 오느냐가 억세스 방법에 의해서

차이가 있습니다.

로 디바이스는 파일시스템이 없기 때문에 당현히 파일, 디렉토리, 억세스컨트롤 등을

어플리케이션에서 직접 관리 해야 합니다.

로 디바이스를 데이타베이스에서 사용할 때 데이타 베이스는 자체적으로 블록과 익스텐트 등의

스토리지 관리 개념을 가지고 있기 때문에 OS레벨에서의 물리적인 데이타 파일 관리만 하면 됩니다.

(데이타 베이스에서 로디바이스를 사용하더라도 물리적인 디바이스(디스크)에 데이타 파일형태로 위치해야

하기 때문에 볼륨매니저 같은 가상 스토리지 개념이 필요합니다.)

일반적인 디스크는 I/O 다음과 같은 패스를 가집니다.

Application<->Library Buffer<->Operation System Cache<->File System/Volume Manager<->Device

그런데 로디바이스의 패스는 다음과 같습니다.

Application<->Device


흔히 DBMS 를 컨피그할때 데이타 파일의 위치를 놓고 RAW 와 파일시스템 비교를 많이 하게 됩니다.

나름대로 장단점이 있어 쉽게 판단 할수는 없지만 파일관리측면에선 파일시스템이 성능면에서는 로 디바이스가 낫습니다.

DBMS 시스템에서 파일시스템을 사용 할 경우 DBMS 의 가 자체 IO버퍼를 설정 하기 때문에

OS 의 파일시스템 캐시가 필요 없습니다. 이런 파일시스템의 단점을 보완하고자 솔라리스의 Direct I/O , 베리타스 파일시스템등

이 나오게 되었습니다. 이와 같은 더블 버퍼링 를 막음으로써 OS는 메모리 파일시스템 캐싱을 위한 메모리 매니지먼트가 필요없어지고,

DBMS 에서만 버퍼링을 하므로 메모리를 덜 소모하게 됩니다. 주소 변환을 할 필요가 없으니 캐시의 억세스 속도도 빨라지겠죠.

RAW의 장점을 하나더 말씀드리면 KAIO(kernal async IO) 입니다.

위의 IO패스에서 보듯이 로디바이스는 IO요구가 발생될때 유저라이브러리를 사용 하지 않고 커널 레벨에서 IO 가 이루어 지므로

명령이 단순해 져서 결과적으론 CPU를 덜 사용하게 됩니다.


출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10302&docId=63819461&
qb=cmF3IGRldmljZQ==&enc=utf8&section=kin&rank=3&sort=0&spq=0&pid=fIe7O
g331yosssEVpKlssv--169396&sid=S6RJEjE8pEsAACHkFto


목록 | 입력 | 수정 | 답변 | 삭제