#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의 경우에는 데이터 파일을 저장하시면 됩니다.
'컴소니 > 스토리지' 카테고리의 다른 글
[NAS] 방화벽 설정을 통한 보안 강화(feat, Synology) (0) | 2023.01.17 |
---|---|
[NAS] 보안을 위한 5가지 가이드(feat, Synology) (0) | 2023.01.16 |
XPEnology 가상화 NAS 설정하기 (0) | 2020.02.12 |
가상화 NAS 구성하기(VMware Workstation + XPEnology) (5) | 2020.02.11 |
댓글