본문 바로가기
컴소니/스토리지

Raw Device에 대한 이해 + 리눅스 LVM 구성 + Raw Device 구성

by 금소니 2020. 2. 26.
반응형

#33

 

이것 저것 작업을 하다보니 Raw Device를 사용할 일이 생겨 이번 시간에는 Raw Device에 대해서 포스팅을 해보려고 합니다.

 

명칭처럼 날것의 Device입니다.

 

볼륨을 구성할 때 사용하는 개념인데요.

 

대칭되는 개념으로는 File System이 있습니다.

(일반적으로 리눅스에서 볼륨을 구성하여 사용하는 방식입니다.)

 

단점으로 관리가 까다롭고 개념적으로 잘 알고 있어야하는 부분이 있어 포스팅을 하며 정리를 해보려고 합니다.

 

1. Raw Device란?

 : 블록 장치로 구성되는 것이 아닌 문자 장치로 구성되는 방식으로 포맷을 지정하지 않고 디스크 구성하는 방식입니다.

   File System을 구성하기 이전의 디스크 상태라고 보시면 됩니다.

   * 문자장치란?

    : 문자 단위로 입출력이 이루어지며, 커널이 제공하는 버퍼를 사용하지 않고, 입출력 장치의 버퍼 또는 큐를 사용

 

2. 등장배경

 : Raw Device의 경우 주로 DBMS의 데이터를 저장하는 공간으로 사용합니다.

  DBMS의 저장 공간으로써 가장 중요한 부분은 Disk의 I/O 성능입니다.

  Raw Device의 경우 운영체제가 필요 없으므로 File System에서 사용하는 운영체제를 거치지 않고 바로 데이터 I/O가 일어나기 때문에 뛰어난 I/O 성능을 자랑합니다.

 

3. 장/단점

3-1 장점

 - Disk I/O 성능이 우수하고, 불필요한 Overhead가 발생하지 않는다.

 

3-2 단점

 - 구성과 관리가 어렵다.

 - DBMS에서 사용 시 데이터 파일에서 사용할 용량을 초기에 예상하고 미리 볼륨을 잡아야 하기 때문에 단편화가 발생할 수 있다.

 - DBMS에서 데이터 파일 백업 시 볼륨 전체를 백업해야하기 때문에 백업하는데 시간도 오래 걸리고 불필요한 용량을 차지 한다.

 

4. Raw Device를 이용한 기술

4-1 Oracle의 RAC(Real Application Cluster)

 : Oracle DBMS 10g의 ASM(Automatic Storage Management)라는 기술이 나오기 전에 이중화와 HA를 위해 DB서버를 클러스터링하는 기능입니다.

 

4-2 Tibero의 TAC(Tibero Active Cluster)

 : 확장성, 고가용성을 목적으로 제공하는 기능으로써 TAC 환경에서 실행 중인 모든 인스턴스는 클러스터링하여 데이터베이스를 공유합니다.

 

5. 리눅스에서 Raw Device 생성하기

5-1 LVM 생성하기

Raw Device를 잡기위한 LVM을 먼저 생성하도록 하겠습니다.

 

저는 가상화 솔루션을 이용할 예정이므로 가상화 솔루션에 추가 볼륨을 붙이도록 하겠습니다.

 

5-1-1 fdisk를 통하여 리눅스 LVM으로 파티션 구성

추가된 볼륨을 fdisk 명령을 통하여 LVM 파티션으로 구성하도록 하겠습니다.

#fdisk /dev/sdb

위와 같이 질문 답변형식으로 먼저 파티션을 구성하고 구성을 확인합니다.

 

아직 끝난 것은 아니고 이제 해당 파티션을 LVM형식으로 구성하도록 하겠습니다.

기본적인 구성이 아니므로 파티션 System ID를 리눅스 LVM(8e)로 변경한 후 확인합니다.

그리고 마지막으로 저장한 후 나옵니다.

 

한 번 제대로 구성이 되었는지 볼까요?

제대로 구성이 되었다는 것을 보실 수 있습니다.

 

5-1-2 Physical Volume 생성

파티션 구성을 완료하였으니 Physical Volume을 생성하도록 하겠습니다.

 

대상의 위에서 구성된 Device 명을 입력해줍니다.

#pvcreate /dev/sdb1

5-1-3 Volume Group 생성

Pyhsical Volume 생성이 완료되었다면 이들을 묶어서 사용할 Volume Group을 생성합니다.

 

여러개를 묶을 수 있지만 현재는 하나의 Physcial Volume만 생성하였으니 하나만 추가하도록 하겠습니다.

#vgcreate vg01 /dev/sdb1

/dev/sdb1이 포함되어 있고 "vg01"이라는 Group명을 가진 VG를 생성하였습니다.

 

5-1-4 Logical Volume 생성

Pyhsical Volume을 통째로 사용해도 되지만 해당 Volume들을 Volume Group으로 묶고 그 안에서 Logical Volume으로 쪼개서 사용할 예정이기 때문에 Logical Volume도 생성하도록 하겠습니다.

#lvcreate -L 2G -n lv_01 vg01

명령어 옵션이 복잡하기 때문에 설명을 하고 넘어가도록 하겠습니다.

 

-L 2G : 용량을 설정, -n lv_01 : Logical Volume의 명칭, vg01 : 소속될 Group명

Logical Volume까지 생성을 완료하였습니다.

 

File System으로 사용할 경우 여기서 생성된 Volume을 포맷해줘야 하지만 저희는 Raw Device로 사용할 예정이므로 Raw하게 날 것으로 유지합니다.

 

5-2 Raw Device 등록하기

이제 생성된 LV(Logical Volume)를 Raw Device 목록에 등록하도록 하겠습니다.

 

5-2-1 udev(리눅스 커널 장치 관리자)에 룰 등록하기

#vi /etc/udev/rules.d/60-raw.rules

/etc 밑에 있는 /udev 폴더의 rule을 관리하는 폴더에 60-raw.rules라는 파일을 생성 혹은 수정하여 등록합니다.

 

등록하는 규칙은 다음과 같습니다.(LVM의 경우)

5-2-2 udev 데몬에 룰 적용

#udevadm control --reload-rules
#udevadm trigger --type=devices --action=add

udev데몬에 udevadm 명령을 통하여 등록한 Raw Device의 룰을 적용합니다.

 

5-2-3 생성된 Raw Device 확인하기

#raw -qa

위의 명령을 통해 Raw Device가 정상적으로 생성되었다는 것을 확인하실 수 있습니다.

 

이렇게 생성된 공간에 DBMS의 경우에는 데이터 파일을 저장하시면 됩니다.

 

반응형

댓글