본문 바로가기

리눅스

리눅스 새 디스크를 파티션 나누고, pv, vg, lv 구성 후 포맷하고 사용하기까지의 과정

리눅스에서 파티션을 나누고 PV(Physical Volume), VG(Volume Group), LV(Logical Volume) 까지 구성하는 방법을 알려 드릴게요.

 

순서는 이렇게 됩니다.

 

1. 통 디스크의 파티션을 나눔(fdisk 활용)

2. pv 를 생성

3. vg 를 생성

4. lv 를 생성

5. lv를 사용하기 위해 포맷을 함

6. mount 후 사용

 

그럼 차근차근 시작해보도록 하죠.

 

 

먼저 스토리지에서 할당을 받았던, usb를 붙였던 디스크가 붙어있다고 가정합시다.

 

내가 붙인 디스크가 어느 경로에 붙었는지 확인하기 위해서는 아래명령어로 확인을 해 줍니다.

blkid

보통 vda, vdb (VM인 경우) 또는 sda, sdb (물리서버의 경우(vmware는 가상서버이지만 예외적으로 sda와 같이 표시됨)) 와 같은 이름으로 표기가 될텐데 마지막으로 붙은 알파벳이 뭔지 대략적으로 확인해 주고, fdisk 에서 다시한번 보도록 합니다.

fdisk -l

위 명령어를 수행 해 보면 용량과 대조가 가능할 겁니다.

 

 

그럼 이제 /dev/vdb 가 새로운 디스크라고 가정해 봅시다.

 

이제 그럼 파티션 나누는 작업을 시작해 보죠.

 

 

1. 통 디스크의 파티션을 나눔(fdisk 활용)

fdisk /dev/vdb

위 명령어로 vdb 디스크를 fdisk 로 들어갑니다.

 

이렇게 나오면 잘 들어온 겁니다.

 

m 을 눌러보면 메뉴들을 쭉 표시해줄테고 저희가 하고자하는 파티션 나누기를 하려면 n 을 눌러 줍니다.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):

그 후, 새 파티션이므로 p 로 가야합니다. default 가 p 이므로 그냥 Enter.

 

Partition number (1-4, default 1):

그럼 위와 같이 나오는데 첫번째 파티션을 만드는 것이므로 1. 이것도 default 1 이므로 그냥 Enter.

 

First sector (2048-143305919, default 2048): 
Using default value 2048

섹터로 첫 섹터부터 꽉 채울 예정이므로 그냥 Enter.

 

Last sector, +sectors or +size{K,M,G} (2048-286343959, default 286343959): 
Using default value 286343959
Partition 1 of type Linux and of size 120 GiB is set

여기선 저는 그냥 Enter. 그냥 Enter를 치면 해당 디스크 용량만큼 꽉 채워 만들게 됩니다.

(만약 일부 용량만 주고 싶다 하면 여기서 +50G 와 같이 적어주면 됩니다)

 

이제 파티션이 생성 되었습니다.

 

p 를 눌러서 확인해보면 잘 생성된 것을 볼 수 있습니다.

Command (m for help): p

하지만 여기서 보시면 Type 은 Linux 로 되어있는데 기왕이면 나중에 확장 및 축소 가능하게 하기 위해 Type 을 Linux LVM 으로 변경해 주는 것이 좋습니다.

 

t를 눌릅시다.

Command (m for help): t

 

t를 누르면 위와 같이 Type 종류들이 나오게 되는데 이 중 Linux LVM 인 8e 를 선택하고 Enter.

 

이제 다시 p를 눌러서 보면 Type 이 Linux LVM 이 된 것을 확인할 수 있습니다.

 

그럼 이제 저장을 하고 빠져 나갑시다.

 

저장은 w 입니다.

Command (m for help): w

 

이제 저장하고 빠져나옴으로써 파티션은 생성을 완료 하였습니다.

 

 

2. pv 를 생성

PV(Physical Volume) 생성은 간단합니다.

 

조금 전 만든 파티션에 의해 vdb 디스크에 vdb1 이라는 파티션이 생겼을 겁니다. (2번째 파티션을 만든 것이라면 vdb2)

 

저는 vdb1 이 방금 만든 파티션이라고 가정해 보겠습니다.

 

pvcreate /dev/vdb1

위 명령어를 수행하면 pv 가 만들어 집니다.

 

잘 만들어졌나 확인해보려면,

pvs

위 명령어를 수행해보면 pv 목록이 나옵니다.

 

 

3. vg 를 생성

이제 VG(Volume Group) 를 생성할 차례입니다.

 

빠르게 가봅시다.

 

vgcreate vg1 /dev/vdb1

vg 명 : vg1

 

조금전 만든 pv를 사용하여 vg1 이라는 vg를 만들었습니다.

 

확인하기 위해선,

vgs

만든 vg 목록이 나옵니다.

 

 

4. lv 를 생성

이제 LV(Logical Volume) 입니다.

 

만든 vg를 활용하여 lv 를 만들어 보죠.

 

lvcreate -L 50G -n lv1 vg1

lv 사이즈 : 50GB

lv 이름 : lv1

 

vg1 을 활용하여 lv1 이라는 lv 를 생성하였습니다.

 

만약 여기서 나는 디스크 전체를 lv로 잡을거다 라고 생각하시고 100GB짜리 vg에 lvcreate -L 100G 를 입력하시면 간혹 용량이 초과된다거나 안만들어지는 에러 메시지가 나올 수 있습니다. 이는 vg가 실제로 100GB보다 미세하게 작을 수 있기 때문 입니다.

 

따라서 이 경우에 vg의 용량을 꽉 채워서 lv를 만들고 싶으시면

lvcreate -l +100%free -n lv1 vg1

위와 같이 소문자 -l 과 +100%free 를 사용해 주시면 있는 용량을 꽉 다 잡게 됩니다.

 

마지막으로 lv 리스트를 확인하기 위해서는,

lvs

 

 

5. lv를 사용하기 위해 포맷을 함

이제 lv까지 만들었으니 실질적으로 사용하기 위해 포맷을 해줘야 합니다.

 

xfs, ext4 등등의 포맷 형식이 있지만 저는 개인적으로 ext4를 좋아하기 때문에 ext4로 예를 들어 볼게요.

 

mkfs.ext4 /dev/vg1/lv1

위 명령어를 수행하면 lv1 을 ext4 Type 으로 포맷을 합니다.

 

 

6. mount 후 사용

이제 mount 하고 사용할 일만 남았습니다.

 

원하는 mount 위치에 폴더를 생성해 줍시다.

 

저는 /mnt/test 폴더에 마운트를 해보겠습니다.

 

mount /dev/vg1/lv1 /mnt/test

마운트가 완료 되었습니다.

 

하지만 이대로 두면 서버가 재부팅되었을 경우 mount 가 풀려 버립니다.

 

따라서 /etc/fstab 에 등록해 주는 것이 좋습니다.

 

vi /etc/fstab
proc            /proc           proc    defaults          0       0
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
/dev/mapper/vg1-lv1  /mnt/test  ext4    defaults          0       0

위 그림에서 맨 아랫줄과 같이 적어주고 저장을 하고 빠져나옵니다.

 

fstab 내용들을 바로 적용해보고 싶다면

mount -a

라고 명령어를 치시면 fstab 내용들을 마운트 시도 합니다.

 

 

이제 마운트 된 lv 를 사용하시면 됩니다.

 

끝.