본문 바로가기
리눅스

Raw Device 생성 및 삭제

by 태옹 2025. 2. 9.

파일시스템을 세팅하는 경우는 많았지만, raw device를 등록하는 작업은 처음이었다. (입사한지 8개월밖에 안되긴 했음)

주용과장님도 한번밖에 안해보셨다는거 보면 그리 흔하지 않은 작업인 듯 하다.

이번 작업은 협력사가 진행하신다해서 우리가 작업에 참여하지는 않지만, 정말 작업계획서를 쓰는 것 처럼 작성해보라고 과제를 주셨다.. 그래서 개인pc에 직접 raw device를 등록해보기로 했다.


 

0. 기존 형상

df -h
lsblk
lvm형상

 

앞으로 할 내용은 아래와 같다!

 

1. 기존 형상에 디스크를 새로 추가

2. LVM 파티션 구성

3. lvm을 사용하여 raw device용 lv 만들기

4. raw device 등록 ⭐ ⭐ ⭐ 

5. 원복(삭제)

 


 

1. 기존 형상에 디스크를 새로 추가 

 

 

[VirtualBox] 디스크 추가

1.VM을 종료하고 설정-저장소에서 하드 디스크 추가하기를 누른다.2\. 만들기를 눌러 가상 하드 디스크, 동적 할당, 할당할 용량을 선택하고 만든 후 만들어진 디스크를 선택한다.3.fdisk -l 을 통해

velog.io

 

실습환경에서 새 디스크를 추가해준다. 내 실습환경은 virtualbox이므로 해당 블로그를 참고하였다.

20G 정도를 할당해주었고, 아까 lsblk로 sda~sdc까지 만들어진걸 확인했으니 이제 20G짜리 sdd가 만들어질 것이다.

lsblk

 


 

2. LVM 파티션 구성

 

LVM을 사용하기 때문에 LVM을 설정할 수 있는 파티션을 만들어주겠다.

/dev/sdd 장치가 만들어졌으므로 fisk /dev/sdd 명령으로 설정화면을 들어간다.

(참고) 매뉴얼에서 옵션 확인


음영표시 되어있는 것들이 우리가 사용할 옵션이다.
파티션 확인(p)

아직 파티션 생성 안됨
new 파티션 생성(n)
파티션 type 지정(t)

l옵션으로 파티션 유형을 조회할 수 있다.
우리는 LVM 용 파티션을 만들것이기 때문에 8e 번의 파티션 타입을 지정해주겠다.
파티션 설정 저장(w)

 

LVM 용 파티션 /dev/sdd1이 새로 추가된 것을 확인할 수 있다. 

fdisk -l
lsblk

 


 

3 . lvm을 사용하여 raw device용 lv 만들기

 

추가한 디스크를 LVM구성으로 만들어보자.

아래와 같이 볼륨그룹(vg)까지 만들어둔다.

  생성 확인
pv  
vg

 

 

여기까지가 raw device를 만들어두기 위한 사전단계이다.

(사실 기존에 Free용량이 있는 경우 바로 lvcreate를 시작하여도 무관하다.)

 

연습용이니 3MB 짜리 LV 5개로 만들어보겠다.

lv 생성
(lvcreate -L 용량 -n lv명 vg명)

4M로 반올림이 되어버렸군..
lv 생성 확인 (lvs)

 


 

4. raw device 등록

 

/etc/udev/rules.d/60-raw.rules에 raw deivce로 등록할 5대를 아래와 같이 작성해준다.

 

ACTION=="udev가 수행할 동작",

ENV{DM_VG_NAME}=="VG명",

ENV{DM_LV_NAME}=="LV명",

RUN+="/bin/raw /dev/raw/rawdevice명 %N"

 

파일 저장 후 아래의 두 명령어를 통해 60-raw.rules 파일을 reload하고, trigger를 실행해준다.

udevadm control --reload-rules

udevadm trigger

 

  AS-IS TO-BE (raw device 등록)
raw -qa
ls -al /dev/raw

 

다음과 같이 raw device가 정상적으로 등록된 것을 확인할 수 있다.


 

5. 원복(삭제)

 

 

1. vg,lv 삭제

 

2. /etc/udev/rules.d/60-raw.rules 파일 삭제

등록은 온라인으로 가능해서 삭제도 reload, trigger명령으로 가능할 줄 알았더만... 조회가 되는걸 보니 재부팅을 수행해야 반영되는 듯 함...

실제 운영 환경에서 원복시에는 재부팅이 필요하다는 것을 꼭 염두해두자.

 

udevadm trigger --action="remove" 를 해도 먹질 않길래 온라인 반영이 안되는 줄 알았더니,

raw 장치명 0 0 명령어를 쓰면 재부팅 없이 실시간 반영이 되더라!

ex)

raw /dev/raw2 0 0
raw /dev/raw3 0 0
raw /dev/raw4 0 0
raw /dev/raw5 0 0

 

 

udevadm trigger --action="add" 와 같이 --action 옵션은 60-raw.rules 파일에서 add 가 적혀있는 명령어를 찾아서 실행하는 명령어라, 내 코드에는 remove 포함 명령이 없어서 실행이 되지 않은 듯 하다. 

raw device 삭제를 진행하는 경우, 아래와 같이 진행하면 될 것 같다.

1) 60-raw.rules 파일에서 해당 디바이스 삭제

2) rule reload 수행 : udevadm control --reload-rules

3) trigger 명령 필요 없이 raw 장치명 0 0 명령어로 디바이스 삭제

 

 

3.  재부팅(init 6) 후 확인

운영 환경이 아니라면, raw 명령어를 일일이 작성하기 번거로우니 재부팅으로 깨끗하게 raw device 정보를 날려버리는 것도 가능하다. (운영환경에서는 raw명령어!)

댓글