안녕하세요! 리눅스 서버를 운영하다 보면 "파티션 용량이 부족한데 늘릴 수 없나?", "디스크 두 개를 하나처럼 합쳐서 쓰고 싶은데..." 와 같은 고민을 한 번쯤 해보셨을 겁니다. 물리적인 디스크의 한계를 뛰어넘어 스토리지를 레고 블록처럼 자유롭게 조립하고 관리할 수 있게 해주는 강력한 솔루션, 바로 LVM(Logical Volume Manager)입니다.
오늘은 LVM이 무엇인지 개념부터 실제 하드 디스크를 추가하여 새로운 논리 볼륨을 생성하고 사용하는 전 과정을 상세한 가이드로 알려드리겠습니다. 이 포스팅만 따라오시면 LVM과 금방 친해지실 수 있을 거예요! 🚀

LVM, 왜 사용해야 할까요? 🤔
LVM을 이해하기 위해 레고 블록을 상상해 보세요.
- 물리 볼륨 (Physical Volume, PV): LVM에서 사용할 실제 디스크나 파티션입니다. 다양한 모양과 크기의 '레고 블록' 그 자체죠. 🧱
- 볼륨 그룹 (Volume Group, VG): 이 레고 블록들을 모두 담아두는 하나의 거대한 '레고 상자'입니다. 상자 안에 블록을 계속 추가할 수 있죠. 📦
- 논리 볼륨 (Logical Volume, LV): 상자 안의 블록들을 조합해서 만든 '레고 성'입니다. 우리가 실제로 데이터를 저장하고 사용하는 공간이죠. 성이 작으면 블록을 더 가져와서 크게 만들 수 있습니다. 🏰
이처럼 LVM은 디스크(PV)들을 하나의 큰 저장소(VG)로 묶은 다음, 필요한 크기만큼 논리적인 파티션(LV)을 만들어 사용합니다.
LVM의 핵심 장점:
- 유연한 크기 조절: 사용 중인 파일 시스템도 온라인 상태에서 쉽게 확장하거나 축소할 수 있습니다.
- 여러 디스크 통합: 여러 개의 물리 디스크를 하나의 볼륨 그룹으로 묶어 단일하고 거대한 저장 공간처럼 사용할 수 있습니다.
- 스냅샷 기능: 특정 시점의 파일 시스템을 그대로 복사하여 백업이나 테스트에 안전하게 활용할 수 있습니다.
LVM 실전 가이드: 3단계로 논리 볼륨 만들기 🚀
이제 새로운 디스크 /dev/vdc와 /dev/vdd를 서버에 추가했다고 가정하고, 이 두 디스크를 사용하여 3GB 크기의 새로운 논리 볼륨을 만들어 보겠습니다.
1단계: 물리 볼륨(PV) 생성 🧱
가장 먼저, 리눅스 시스템에 LVM이 이 디스크들을 '레고 블록'으로 인식할 수 있도록 표식을 남겨줘야 합니다.
sudo pvcreate /dev/vdc /dev/vdd
이 pvcreate 명령어는 /dev/vdc와 /dev/vdd 디스크를 LVM이 사용할 수 있는 물리 볼륨으로 초기화합니다.
✅ 확인하기: pvs 명령어로 물리 볼륨이 잘 생성되었는지 확인합니다.
sudo pvs
# 결과 예시
PV VG Fmt Attr PSize PFree
/dev/vdc lvm2 --- <사이즈> <사이즈>
/dev/vdd lvm2 --- <사이즈> <사이즈>
2단계: 볼륨 그룹(VG) 생성 📦
이제 준비된 레고 블록(PV)들을 하나의 큰 '레고 상자(VG)'에 담을 차례입니다. volume1이라는 이름의 볼륨 그룹을 만들어 보겠습니다.
sudo vgcreate volume1 /dev/vdc /dev/vdd
vgcreate 명령어는 volume1이라는 이름으로, /dev/vdc와 /dev/vdd를 멤버로 하는 새로운 볼륨 그룹을 생성합니다.
✅ 확인하기: vgs 명령어로 볼륨 그룹 목록을 확인합니다.
sudo vgs
# 결과 예시
VG #PV #LV #SN Attr VSize VFree
volume1 2 0 0 wz--n- <총 사이즈> <총 사이즈>
VSize(전체 크기)를 보면 두 디스크의 용량이 합쳐진 것을 볼 수 있습니다.
3단계: 논리 볼륨(LV) 생성 📁
드디어 상자 안의 블록을 사용해서 우리가 원하는 '레고 성(LV)'을 만들 시간입니다. volume1 볼륨 그룹에서 3GB 크기를 할당받아 website_files라는 이름의 논리 볼륨을 생성합니다.
sudo lvcreate -n website_files -L 3G volume1
명령어 옵션 완전 분석!
- -n website_files: 생성할 논리 볼륨의 이름(name)을 지정합니다.
- -L 3G: 논리 볼륨의 크기(Logical size)를 3 기가바이트(Gigabytes)로 설정합니다. (-l 옵션을 사용하면 퍼센트로도 할당 가능합니다.)
- volume1: 어떤 볼륨 그룹에서 공간을 할당받을지 지정합니다.
✅ 확인하기: lvs 명령어로 논리 볼륨이 잘 만들어졌는지 최종 확인합니다.
sudo lvs
# 결과 예시
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
website_files volume1 -wi-a----- 3.00g
✨ 가장 중요한 마지막 단계: 파일 시스템 생성 및 마운트
축하합니다! 논리 볼륨 생성은 끝났습니다. 하지만 지금은 파일을 저장할 수 없는 '깡통' 상태입니다. 데이터를 저장하려면 파일 시스템으로 포맷하고, 특정 디렉터리에 연결(마운트)해야 합니다.
- 파일 시스템 생성 (포맷) 새로 만든 논리 볼륨의 경로는 /dev/볼륨그룹명/논리볼륨명 형식을 따릅니다. 이 볼륨을 xfs 파일 시스템으로 포맷해 보겠습니다.
sudo mkfs.xfs /dev/volume1/website_files - 마운트 포인트 생성 및 마운트 이제 이 논리 볼륨을 연결할 디렉터리를 만들고 마운트합니다.
# 웹사이트 파일을 저장할 디렉터리를 생성합니다. sudo mkdir -p /var/www/website # 논리 볼륨을 생성한 디렉터리에 마운트합니다. sudo mount /dev/volume1/website_files /var/www/website
이제 /var/www/website 경로에 파일을 저장하면, 우리가 LVM으로 구성한 새로운 스토리지에 안전하게 데이터가 기록됩니다! (재부팅 시 자동 마운트를 원하시면 /etc/fstab에 등록하는 것도 잊지 마세요!)
마무리하며 🎬
LVM은 처음에는 조금 복잡해 보일 수 있지만, 그 구조와 명령어 몇 가지만 익히면 물리적 디스크의 한계를 넘어 훨씬 유연하고 강력하게 서버 스토리지를 관리할 수 있게 됩니다. 용량이 부족하면 lvextend로 늘리고, 필요하면 스냅샷으로 안전하게 백업하는 등 LVM의 무한한 가능성을 직접 경험해 보시길 바랍니다!
태그: 리눅스, LVM, 스토리지, 서버 관리, Logical Volume, Volume Group, pvcreate, vgcreate, lvcreate, DevOps, 파일시스템, 디스크 관리
'일반IT > 리눅스' 카테고리의 다른 글
| Docker 초보를 위한 핵심 가이드: 컨테이너 관리부터 이미지 빌드, 실행까지! 🐳 (0) | 2025.10.11 |
|---|---|
| Git 초보 탈출! 🚀 로컬 폴더를 GitHub 원격 저장소에 연결하는 완벽 가이드 (0) | 2025.10.11 |
| 🐧 리눅스 파일 시스템 완전 정복: fstab 자동 마운트와 읽기 전용(Read-Only) 설정으로 데이터 지키기 (0) | 2025.10.10 |
| 🐧 리눅스 서버 성능 최적화: Swappiness 설정으로 메모리 관리 효율 높이기 (0) | 2025.10.10 |
| 리눅스 관리의 첫걸음: 사용자(User)와 그룹(Group) 완벽 가이드 🧑💼 (0) | 2025.10.10 |