본문 바로가기

Linux/디스크 관리

리눅스 파티션 ③ LVM(Logical Volume Manager) 개념, 방법

반응형

 

 

 

이번에는 디스크 용량을 볼륨으로 나눠서 관리하는 LVM에 대해 알아보겠습니다.

 

 

앞서 단순히 파티션을 나눴던 것과 다르게

 

논리적 개념인 볼륨으로 나눠서 스토리지 확장을 보다 쉽게 할 수 있도록 도와줍니다.

 

 

 

즉, 이미 나눠버린 파티션에 다른 디스크의 용량을 추가하거나 줄이는 등의 작업이 쉬워지게 됩니다. 

 

 

 

순서는 파티션을 나눴던 것과 비슷합니다.

 

 

 

파티션 → PV생성 → PG생성 → LV생성 → 파일시스템 → 마운트

 

 

 

 

중간에 PV생성, PG생성, LV생성이라는 과정이 추가됐는데요.

 

 

 

 

PV(Phygical Volume)란 LVM을 사용하기 위한 물리적 디스크를 지정하는 작업으로,

 

/dev/sda1, /dev/sda2 등의 블록 스토리지를 LVM으로 사용하기 위한 초기화 작업입니다.

 

 

VG(Volume Group)는 PV를 그룹으로 묶는 작업입니다.

 

 

LV(Logical Volume)은 파티션과 비슷한 역할을 하며, VG를 원하는 용량으로 나눌 수 있습니다.

 

 

 

 

< 사진 출처: redhat student guide >

 

   LVM   
 PV 
LVM으로 사용하겠다는 명시적 선언
LVM으로 쓰기 위해 PV로 초기화
(예:/dev/sda1, /dev/sda2 등의 블록 스토리지를 LVM으로 사용하기위한 초기화)
생성 pvcreate 파티션명1, 파티션명2, ...
확인 pvscan, pvs, pvdisplay
삭제 pvremove
    VG    
Basecamp같은 존재. VG용량만 여유있다면 LV를 추가하거나 사이즈(용량)추가 가능
생성 pgcreate VG명 PV명1, PV명2, ...
확인 pgscan, pgs, pgdisplay(p 사이즈 확인 가능해서 주로 사용)
삭제 pgremove VG명
추가 vgextedn VG명 추가할PV명1, 추가할PV명2, ...
줄이기(권장x) vgreduce VG명 제거할PV명1, 제거할PV명2, ...
LV
파티션과 같은 역할
생성
lvcreate -L 사이즈 -n LV명 VG명
lvcreate -l PE개수 -n LV명 VG명
확인 lvs, lvscan(주로 사용)
확장
기존용량에 + 사이즈만큼 증가 lvextend -L +사이즈 /dev/VG명/LV명
최종용량 lvextend -L 사이즈 /dev/VG명/LV명
제거 lvremove /dev/VG명/LV명
줄이기(권장x) lvreduce -L -사이즈 /dev/VG명/LV명

 

 

 

 

 

그럼 실습할 리눅스의 디스크 구조를 확인해 봅시다.

 

 

 

 

50G 하드디스크 sda와 , 10G 하드디스크 sdb, 5G 하드디스크 sdc가 있고

 

1.5G CD-ROM인 sr0 가 있습니다.

 

 

 

파티셔닝은 fdisk 명령어, PV는 pvcreate 명령어, PG는 pgcreate 명령어, LV는 lvcreate 명령어,

 

파일 시스템은 mkfs 명령어, 마운트는 mount 명령어를 사용해서

 

10G의 sdb 디스크를 를 세 개의 파티션으로 분할해 보도록 하겠습니다.

 

 

 

 

1. 파티셔닝(fdisk)

 

 

fdisk 명령어로 sdb 디스크를 분할하겠습니다.

 

 

 

 

 

 

전부 기본 옵션 해서 새로운 파티션 sdb1을 만들었습니다.

 

(위 과정에 대한 상세 설명은 이전 포스팅에서 다뤘기 때문에 생략합니다.)

 

 

이제 LVM을 사용하기 위해

 

파티션 타입을 교체하는 t 옵션을 사용해보겠습니다.

 

 

 

 

 

1. t 를 입력합니다

 

 

2. 파티션 타입을 결정하기 위해 Hex code 또는 alias 를 입력하라고 하는데,

이 리스트를 확인하기 위해 l 을 입력합니다.

 

3. 위에서 확인한 리스트에 8e Linux LVM 가 보일겁니다.

8e 를 그대로 입력합니다.

 

 

 

 

 

 

4. p 로 제대로 타입이 바뀌었는지 확인해 봅니다.

기존 이미지와 비교해보면 Type가 Linux 에서 Linux LVM 으로 변경됐음을 알 수 있습니다.

 

 

5. w 로 저장합니다.

 

 

 

 

 

lsblk 명령어로 확인해 볼까요.

 

 

 

 

 

 

2. PV(Phygical Volume) 생성

 

 

파티션은 LVM으로 사용하기 위해서 PV 생성을 합니다.

 

 

생성은 pvcreate 파티션경로 명령어로,

 

확인은 pvs, pvscan, pvdisplay 세 명령어 중 하나로 확인하면 되지만

 

차이점을 알기 위해 다 사용해봤습니다.

 

 

 

pvcreate /dev/sdb1
pvs
pvscan
pvdisplay

 

 

pv 생성

 

pvs

 

pvscan

 

pvdisplay

 

 

 

명령어 별로 확인되는 정보가 다르니 필요에 따라 사용하면 됩니다.

 

 

2. VG(Volume Group) 생성

 

 

 

방금 만든 PV로 VG을 생성할겁니다.

 

우선 vgs 명령어로 VG 상태를 먼저 확인해봅시다.

 

 

vgs

 

 

 

 

아직 생성된게 없습니다.

 

vgcreate VG이름 PV경로 명령어로 만들고 다시 vgs 명령어로 확인해봅시다.

 

저는 VG이름을 제 이니셜로 설정할겁니다.

 

 

 

vgcreate pmh /dev/sdb1
vgs

 

 

 

 

pmh 라는 VG가 새로 생성됐습니다.

 

 

4.  LV(Logical Volume) 생성

 

 

이제 VG를 3.3G씩 나눠서 3개의 LV를 만들겠습니다.

 

lvcreaete -L 사이즈 -n LV이름 VG이름 명령어로 만들어봅시다.

 

 

저는 LV이름을 제 이니셜 숫자로 설정할겁니다.

 

lvcreate -L 3.3G -n pmh1 pmh
lvcreate -L 3.3G -n pmh2 pmh

 

 

 

첫 번째와 두 번째 LV는 3.3G씩 할당했습니다.

 

세 번째 LV는 나머지 3.4G을 할당하려고 하는데, 오류 메세지가 뜹니다.

 

 

 

 

 

공간이 3.4G 보다 부족한 모양이네요.

 

이 때는 vgdisplay 명령어로 남은 PE 사이즈를 직접 확인해서 할당을 해줍니다.

 

 

 

 

Free PE가 869 입니다.

 

세 번째 LV는 lvcreate -l PE개수 -n LV이름 VG이름 명령어를 사용해서 할당하고

 

마지막에는 lvscan 으로 잘 할당됐는지 확인해봅시다.

 

 

 

lvcreate -l 869 -n pmh3 pmh
lvscan

 

 

3.3G, 3.3G, 3.4G 씩 잘 만들어졌습니다.

 

 

 

 

5. 파일 시스템(mkfs)

 

 

파일 시스템 만드는 방법은 이전 포스팅에 자세히 정리해놨으니

 

이번에는 명령어와 결과 화면만 보고 넘어가겠습니다.

 

 

mkfs.xfs VG경로 명령어로 파일시스템을 각각 xfs, xfs, ext4로 지정합니다.

 

 

mkfs.xfs /dev/pmh/pmh1
mkfs.xfs /dev/pmh/pmh2
mkfs.ext4 /dev/pmh/pmh3
blkid

 

 

 

 

6. 마운트(mount)

 

 

 

마지막으로 파티션을 디렉토리에 마운트를 합니다.

 

이번에도 명령어와 결과 화면만 보고 넘어가겠습니다.

 

 

 

mount VG경로 LV이름 명령어를 사용해서

 

각각 /lv1 /lv2 /lv3 디렉토리를 장치 파일로 해서 마운트 하겠습니다.

 

 

mount /dev/pmh/pmh1 /lv1
mount /dev/pmh/pmh2 /lv2
mount /dev/pmh/pmh3 /lv3
mount

 

 

 

 

 

이렇게 기본적인 LVM 사용 방법을 알아봤습니다.

 

다음 포스팅에서는 다시 초기화 시키는 법을 알아보겠습니다.

 

 

 

 

 

 

 

 

 

 

 

[K-Digital Training, 애티버스러닝 교육 내용을 정리한 포스팅입니다.]

반응형