🔹 들어가며
안녕하세요!
VirtualBox 환경에서 Ubuntu 서버의 디스크 공간이 부족해져서 LVM을 이용한 디스크 확장 작업을 진행했습니다.
간단할 줄 알았던 작업이 예상치 못한 PV 중복 이슈로 인해 시스템 부팅이 실패하였고, 결국 새 VM에서 재작업하며 배운 내용들을 정리하려 합니다.
파티션 uid 중복으로 인해 volume 확장이 불가능한 경우의 대처 방법에 대해 아시는 분이 있다면 공유 부탁드려요. 🙏🏻
파티션 신규 추가 및 논리 볼륨 확장은 여러번 해보았지만, 이번 기회에 왜 문제가 발생했는지, 그리고 각 단계가 왜 필요한지를 중심으로 상세하게 내용을 작성해보겠습니다.
🔹 작업 목표
현재 상황:
- OS: Ubuntu Server 24.04
- 환경: VirtualBox
- 기존 LV 크기: 24GB
- Root 파티션 공간 부족
목표:
- 새 디스크(50GB) 추가, 파일시스템 확장
🔹 1단계: 첫 번째 시도 - 중복 PV 문제 발생
상황
기존에 운영 중이던 VM에 새 디스크를 추가하고 vgextend를 시도했더니 다음과 같은 오류가 발생했습니다:
root@ubuntu:~# vgextend ubuntu-vg /dev/sdf1
WARNING: Not using device /dev/sde3 for PV 6HrJKH-bwIn-EA4C-w3La-qOKn-2H6x-Pfw7Sd.
WARNING: PV 6HrJKH-bwIn-EA4C-w3La-qOKn-2H6x-Pfw7Sd prefers device /dev/sda3 because device is used by LV.
Cannot update volume group ubuntu-vg with duplicate PV devices.
문제 원인 분석
pvs -o+pv_uuid 명령어로 확인한 결과:
root@ubuntu:~# pvs -o+pv_uuid
PV VG Fmt Attr PSize PFree PV UUID
/dev/sda3 ubuntu-vg lvm2 a-- <48.00g 24.00g 6HrJKH-bwIn-EA4C-w3La-qOKn-2H6x-Pfw7Sd
/dev/sdf1 lvm2 --- <50.00g <50.00g K0DATb-B2w0-wLgD-ZVqt-s9kN-z8IE-Q35FTs
pvs -a 명령어로 더 자세히 확인:
/dev/sde3 ubuntu-vg lvm2 d-- 0 0
발견한 내용 :
- /dev/sde3는 d-- (duplicate) 상태
- /dev/sda3와 /dev/sde3가 동일한 UUID를 가짐
- 이는 VM 디스크 복제나 스냅샷으로 인한 문제라는 것을 확인함
해결 시도
1. LVM 캐시 초기화
root@ubuntu:~# rm -rf /etc/lvm/cache/
root@ubuntu:~# vgscan --cache
root@ubuntu:~# pvscan --cache
2. 중복되는 Physical Volume 삭제 : pvremove
root@ubuntu:~# pvremove /dev/sde3
WARNING: Not using device /dev/sde3 for PV 6HrJKH-bwIn-EA4C-w3La-qOKn-2H6x-Pfw7Sd.
Failed to read lvm info for /dev/sde3 PVID 6HrJKHbwInEA4Cw3LaqOKn2H6xPfw7Sd.
# 강제로 PV 삭제 시도하였으나 실패
root@ubuntu:~# pvremove -ff /dev/sde3
Command failed with status code 5.
결과는, ❌ 실패
3: dd로 메타데이터 삭제
root@ubuntu:~# dd if=/dev/zero of=/dev/sde3 bs=1M count=10
10+0 records in
10+0 records out
root@ubuntu:~# dd if=/dev/zero of=/dev/sde bs=1M count=100
100+0 records in
100+0 records out
결과는, 시스템 부팅 실패
부팅 실패 원인 추정:
- 중복 PV 문제 (가장 유력)
- 부팅 시 LVM이 중복 PV를 발견
- VG 활성화 실패
- Root LV를 마운트할 수 없음
- LV 메타데이터 손상 가능성
- 작업 중 메타데이터 불일치 발생
- initramfs 미업데이트
- 변경된 LVM 설정이 initramfs에 반영 안 됨
🔹 2단계: 새 VM에서 재작업
다른 VM을 활용하여 LVM 확장을 시도하였습니다.
환경 재구성
- 새 Ubuntu Server VM 준비
- 기존 데이터 백업 후 복원
- 깨끗한 LVM 환경 확보
디스크 추가 및 파티션 생성
# 새 디스크 확인
root@ubuntu:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 48G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 24G 0 lvm /
sdb 8:16 0 50G 0 disk # 새로 추가된 디스크
# 파티션 생성
root@ubuntu:~# fdisk /dev/sdb
```
fdisk 내부에서:
```
Command: n (새 파티션)
Partition number: p
First sector: (Enter - 기본값)
Last sector: (Enter - 전체 사용)
Command: w (저장)
결과 확인:
root@ubuntu:~# fdisk -l /dev/sdb
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 104857599 104855552 50G 83 Linux
🔹 3단계: LVM 구성
PV 생성
root@ubuntu:~# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
root@ubuntu:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 ubuntu-vg lvm2 a-- <48.00g 24.00g
/dev/sdb1 lvm2 --- <50.00g <50.00g
✅ 깨끗한 상태! 중복 PV 경고 없음
VG 확장
root@ubuntu:~# vgextend ubuntu-vg /dev/sdb1
Volume group "ubuntu-vg" successfully extended
root@ubuntu:~# vgs
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg 2 1 0 wz--n- <97.99g <73.99g
✅ 성공! VG가 약 98GB로 확장됨
LV 확장
root@ubuntu:~# lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <24.00 GiB to 73.99 GiB.
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
root@ubuntu:~# lvdisplay /dev/ubuntu-vg/ubuntu-lv
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV Size 73.99 GiB
...
✅ LV 확장 완료!
🔹 4단계: 파일시스템 확장
현재 상황 확인
root@ubuntu:~# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 22G 6.9G 15G 32% /
```
🚨 **문제 발견!**
- LV는 74GB로 확장됨
- 하지만 파일시스템은 여전히 22GB 으로 나타남
- lvextend: LV 크기만 확장 (논리적 공간)
- resize2fs: 파일시스템 확장 (실제 사용 가능한 공간)
파일시스템 타입 확인
root@ubuntu:~# lsblk -f /dev/mapper/ubuntu--vg-ubuntu--lv
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
ubuntu--vg-ubuntu--lv ext4 1.0 245421e5-9c6e-4f22-b7b4-f9dc6bef1968 15.4G 29% /
ext4 파일시스템 확인!
resize2fs 실행
root@ubuntu:~# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 10
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 19396608 (4k) blocks long.
💡 참고: ext4는 온라인 리사이징을 지원하기 때문에, 마운트된 상태에서도 안전하게 확장이 가능합니다.
최종 확인 : LV 확장 성공
root@ubuntu:~# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 73G 6.9G 63G 10% /
- 파일시스템: 73GB
- 사용 가능 공간: 63GB
- 사용률: 10%
🔹 추가 작업 필요 여부
/etc/fstab 수정이 필요한가?
❌ 필요 없습니다!
이유:
- LV 경로(/dev/ubuntu-vg/ubuntu-lv)는 그대로 유지
- 단순히 크기만 확장한 것
- UUID도 변경되지 않음
확인:
root@ubuntu:~# cat /etc/fstab | grep ubuntu-vg
/dev/mapper/ubuntu--vg-ubuntu--lv / ext4 errors=remount-ro 0 1
🔹 전체 작업 요약
LVM 디스크 확장 절차 - 성공
# 1. 파티션 생성
fdisk /dev/sdb
# → n (새 파티션), t (타입 8e: LVM), w (저장)
# 2. PV 생성
pvcreate /dev/sdb1
# 3. VG 확장
vgextend ubuntu-vg /dev/sdb1
# 4. LV 확장
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 또는 특정 크기: lvextend -L +50G /dev/ubuntu-vg/ubuntu-lv
# 5. 파일시스템 확장 (ext4)
resize2fs /dev/ubuntu-vg/ubuntu-lv
# xfs인 경우: xfs_growfs /dev/ubuntu-vg/ubuntu-lv
# 6. 확인
df -Th
파일시스템별 확장 명령어
| ext4 | resize2fs | ✅ 지원 |
| xfs | xfs_growfs | ✅ 지원 |
| ext3 | resize2fs | ✅ 지원 |
🔹 중요
- LV 확장 ≠ 파일시스템 확장
- lvextend만 하고 resize2fs를 하지 않으면 실제 사용 가능한 볼륨 사이즈가 늘어나지 않음
- 중복 PV 문제는 조심스럽게 처리
- VM 복제/스냅샷 시 주의
- 운영 시스템에서는 무리하게 해결하지 말 것
- 백업 후 깨끗한 환경에서 재작업이 안전
- 부팅 실패 원인
- resize2fs를 안 해서 부팅이 실패하는 것은 아님
중복 PV, LVM 메타데이터 손상 등이 실제 원인인 것으로 추정
- 단계별 확인의 중요성
- 각 단계마다 pvs, vgs, lvs, df -h로 확인
- 문제 발생 시 어느 단계에서 실패했는지 파악 가능
🔹 마치며
간단해 보였던 디스크 확장 작업이 중복 PV 문제로 인해 시스템 부팅 실패까지 겪게 되었지만, 덕분에 LVM의 내부 구조와 파일시스템 확장의 중요성을 깊이 이해할 수 있었습니다.
특히 LV 크기를 늘렸다고 해서 바로 사용할 수 있는 게 아니며, resize2fs를 통해 파티션 볼륨을 조정해야 합니다.
비슷한 작업을 하시는 분들께 도움이 되길 바라며, 혹시 질문이나 더 나은 방법이 있다면 댓글로 말씀 부탁드립니다! 😊
'기술 공부 > DevOps' 카테고리의 다른 글
| Windows에서 Git & GitHub 연동하기 - 실전 가이드 (0) | 2026.01.15 |
|---|---|
| VirtualBox NAT 네트워크 설정과 SSH 포트포워딩 트러블슈팅 (0) | 2025.12.25 |
| Wazuh SIEM에서 Syslog 연동 실습 (2편) - Rule 작성부터 대시보드까지 (1) | 2025.12.14 |
| Wazuh SIEM에서 Syslog 연동 실습 (1편) - 삽질부터 첫 성공까지 (0) | 2025.12.07 |
| SIEM이란? Wazuh 오픈소스 SIEM 구축하기 (VirtualBox 환경) (0) | 2025.11.25 |