안녕하세요! 리눅스 시스템을 관리하다 보면 하드 디스크 용량이 부족해서 난감했던 경험, 다들 한 번쯤 있으시죠? 파티션을 한 번 정해두면 나중에 변경하기가 너무 까다로워서 처음부터 용량 산정을 잘해야 한다는 압박감도 들고요. 😩
오늘 소개해드릴 LVM(Logical Volume Manager)은 바로 이런 고민을 해결해 주는 아주 강력하고 유연한 디스크 관리 도구입니다. LVM을 이용하면 마치 레고 블록을 조립하듯 스토리지 공간을 자유롭게 합치고, 나누고, 확장할 수 있습니다.
이번 포스팅에서는 LVM의 핵심 개념인 PV, VG, LV와 pvcreate 명령어에 대해 최대한 알기 쉽게 설명해 드릴게요!

🤔 LVM이 뭔가요? 왜 사용해야 하죠?
LVM은 Logical Volume Manager의 약자로, 여러 개의 하드 디스크나 파티션을 하나의 큰 저장소처럼 통합하여 논리적인 단위로 유연하게 관리할 수 있게 해주는 커널의 한 기능이자 프로그램입니다.
전통적인 파티션 방식(예: /dev/sda1, /dev/sda2)을 떠올려볼까요? 이 방식은 마치 하나의 큰 돌덩어리를 조각해서 작품을 만드는 것과 같습니다. 한번 나누고 나면 크기를 바꾸거나 다른 조각과 합치기가 매우 어렵죠.
반면, LVM은 여러 개의 레고 블록(하드 디스크/파티션)을 모아 하나의 큰 레고판(저장소 풀)을 만들고, 그 위에서 원하는 크기와 모양의 작품(사용할 파티션)을 자유롭게 만드는 것과 같습니다. 필요하면 나중에 블록을 더 가져와 레고판을 넓힐 수도 있고, 작품의 크기를 늘리거나 줄일 수도 있죠! ✨
이런 유연함 덕분에 다음과 같은 장점이 있습니다.
- 동적인 파티션 크기 조절: 시스템을 사용하는 도중에도 파티션(논리 볼륨)의 크기를 손쉽게 늘리거나 줄일 수 있습니다.
- 여러 디스크 통합: 여러 개의 물리 디스크를 하나의 큰 디스크처럼 묶어서 사용할 수 있습니다.
- 스냅샷 기능: 특정 시점의 파일 시스템을 그대로 복사해두는 스냅샷 기능으로 안전한 백업 및 복구가 가능합니다.
🧱 1단계: 물리 볼륨(PV, Physical Volume) 만들기
LVM의 가장 기본이 되는 재료, 바로 물리 볼륨(PV, Physical Volume)입니다.
PV (Physical Volume)란? LVM에서 사용될 수 있도록 '준비된' 물리적인 하드 디스크 전체(_dev_sdb_) 또는 디스크 내의 파티션(_dev_sdb1_)을 의미합니다. LVM의 가장 작은 물리적 단위로, '레고 블록'에 해당합니다.
그냥 하드 디스크를 장착한다고 해서 바로 LVM의 재료가 되는 것은 아닙니다. 이 디스크(또는 파티션)는 "이제부터 LVM의 재료로 사용될 것이다"라는 '꼬리표'를 붙여줘야 합니다.
pvcreate 명령어: LVM의 재료로 변신!
이때 사용하는 명령어가 바로 pvcreate 입니다.
pvcreate 란? Physical Volume Create의 약자로, 특정 디스크나 파티션에 LVM에서 사용할 수 있다는 메타데이터(꼬리표)를 기록하여 PV(물리 볼륨)로 초기화하는 명령어입니다.
사용법
# /dev/sdb 디스크 전체를 PV로 만들기
$ pvcreate /dev/sdb
# /dev/sdc1 파티션을 PV로 만들기
$ pvcreate /dev/sdc1
이 명령을 실행하면, 해당 디스크나 파티션은 이제 LVM의 재료, 즉 PV가 됩니다. pvs나 pvdisplay 명령어로 현재 시스템에 어떤 PV가 있는지 확인할 수 있습니다.
📦 2단계: 볼륨 그룹(VG, Volume Group)으로 묶기
이제 여러 개의 레고 블록(PV)이 준비되었습니다. 다음 단계는 이 블록들을 한데 모아 큰 레고판(저장소 풀)을 만드는 것입니다. 이것이 바로 볼륨 그룹(VG, Volume Group)입니다.
VG (Volume Group)란? 하나 이상의 PV(물리 볼륨)들이 모여서 만들어진 거대한 통합 스토리지 풀(Pool)입니다. VG가 있어야 비로소 사용자가 원하는 크기의 공간을 할당할 수 있습니다.
예를 들어, 1TB 용량의 PV 2개와 500GB 용량의 PV 1개를 my_storage라는 이름의 VG로 묶으면, 총 2.5TB의 거대한 단일 저장 공간이 생기는 것입니다. VG의 가장 큰 장점은 나중에 새로운 PV를 추가하여 용량을 손쉽게 확장(vgextend)할 수 있다는 점입니다.
vgcreate 명령어로 VG를 생성할 수 있습니다.
# 'vg_data'라는 이름의 볼륨 그룹을 /dev/sdb와 /dev/sdc1을 묶어서 생성
$ vgcreate vg_data /dev/sdb /dev/sdc1
🏠 3단계: 논리 볼륨(LV, Logical Volume) 할당하기
거대한 레고판(VG)이 만들어졌으니, 이제 사용자가 실제로 사용할 작품(파티션)을 만들 차례입니다. 이것을 논리 볼륨(LV, Logical Volume)이라고 부릅니다.
LV (Logical Volume)란? VG(볼륨 그룹)라는 저장소 풀에서 필요한 만큼의 용량을 할당받아 생성된 논리적인 파티션입니다. 사용자는 이 LV를 포맷하고 마운트하여 실제 데이터를 저장하는 공간으로 사용하게 됩니다.
home, data, backup 등 용도에 맞게 다양한 크기의 LV를 VG가 허용하는 용량 내에서 자유롭게 만들 수 있습니다.
lvcreate 명령어로 LV를 생성합니다.
# 'vg_data' 볼륨 그룹에서 10GB 크기의 'lv_webdata'라는 논리 볼륨 생성
$ lvcreate -L 10G -n lv_webdata vg_data
이렇게 생성된 LV는 /dev/vg_data/lv_webdata와 같은 경로로 접근할 수 있으며, mkfs.xfs나 mkfs.ext4 같은 명령어로 포맷한 뒤 원하는 디렉터리에 마운트하여 사용하면 됩니다.
✨ 정리하며
LVM의 작동 방식을 다시 한번 요약해 볼까요?
- pvcreate: 하드 디스크나 파티션을 LVM 재료(PV)로 만든다. 🧱
- vgcreate: 준비된 PV들을 모아 큰 저장소 풀(VG)을 만든다. 📦
- lvcreate: VG에서 필요한 만큼 공간을 할당받아 사용자가 쓸 파티션(LV)을 만든다. 🏠
- 포맷 및 마운트: 생성된 LV를 포맷하고 디렉터리에 연결하여 사용한다. 🚪
LVM은 처음에는 조금 복잡해 보일 수 있지만, 그 구조를 이해하고 나면 리눅스 스토리지 관리가 훨씬 더 자유로워지고 편리해집니다. 더 이상 파티션 용량 걱정에 얽매이지 말고, LVM으로 유연하고 강력한 스토리지 환경을 구축해 보세요!
태그: LVM, Linux, PV, VG, LV, pvcreate, Logical Volume Manager, 스토리지, 리눅스, 파티션 관리
'일반IT > 리눅스' 카테고리의 다른 글
| 리눅스 자동화의 첫걸음: 셸 스크립트와 Cron 완벽 가이드 🤖 (0) | 2025.10.10 |
|---|---|
| 리눅스 파일 검색의 달인으로 거듭나기: find 명령어 완전 정복 🧙♂️ (0) | 2025.10.10 |
| 리눅스 서버 보안, 이것만은 꼭! 🐧 핵심 진단 리스트 완벽 정복 (0) | 2025.10.03 |
| 🕰️ BPF와 eBPF, 리눅스 커널의 혁명을 이끈 역사 feat.슈퍼파워관찰자 🚀 (0) | 2025.09.09 |
| eBPF로 네트워크 트래픽을 후킹하는 기술: 리눅스 커널의 특별한 '감시자' (3) | 2025.08.04 |