LVM (Linux)

2026. 3. 31. 23:49·Windows & Linux

LVM이란

LVM(Logical Volume Manager)은 리눅스에서 디스크·파티션을 유연하게 관리하기 위한 논리적 스토리지 관리 기술입니다. 일반적인 고정 파티션과 달리, LVM을 사용하면 디스크 공간을 동적으로 확장하거나 축소하고, 여러 물리 디스크를 하나처럼 묶어서 사용할 수 있습니다.



기본 개념

LVM은 크게 세 단계 구조로 이루어져 있습니다.

1) Physical Volume (PV)

  • 실제 물리 디스크나 파티션
  • 예: /dev/sda1, /dev/nvme0n1p2

2) Volume Group (VG)

  • 여러 PV를 묶어 하나의 큰 스토리지 풀처럼 사용
  • 예: vg_main

3) Logical Volume (LV)

  • 실제로 파일 시스템을 생성하고 마운트하여 사용하는 영역
  • 예: /dev/vg_main/lv_home



주요 기능

1. 동적 크기 조절 (확장/축소)

  • LV의 크기를 늘리거나 줄일 수 있음
  • lvextend -L +10G /dev/vg_main/lv_data resize2fs /dev/vg_main/lv_data

2. 여러 디스크를 하나로 묶기

  • 예: 100GB SSD + 500GB HDD → 하나의 큰 Volume Group으로 사용

3. 스냅샷(Snapshot)

  • 특정 시점의 데이터 복제본 생성
  • 백업, 업그레이드 테스트에 유용

4. 온라인 확장

  • 파일 시스템을 마운트한 상태에서 LV 확장이 가능 (ext4, xfs 등)




Linux에서 LVM 해보기

디스크 파티션 작업 하기 (sdb 디스크 기준)
해당 방법대로 모든 디스크 파티션 작업을 진행합니다.

# 파티션 생성
# /dev/sdb1 /dev/sdc1

[root@ftp]# fdisk /dev/sdb                                 -> 디스크 선택

Command (m for help): n                                    -> 새로운 파티션 분할
Select (default p): p                                      -> Primary 파티션 선택
Partition number(1-4, default 1): 1                        -> 파티션 번호 선택
First sector (2048-4194303, default 2024): [enter]         -> 시작 섹터 번호
Last sector ... (2028-4194303, default 4194303): [enter]   -> 마지막 섹터 번호
Command (m for help): p                                    -> 설정 내용 확인
Command (m for help): w                                    -> 설정 저장

 

 

피지컬 볼륨 생성

[root@localhost ~]# pvcreate /dev/sdb1
[root@localhost ~]# pvcreate /dev/sdc1

# 확인
[root@localhost ~]# pvdisplay

 

 

볼륨 그룹 추가

[root@localhost ~]# vgcreate /dev/testVG /dev/sdb1 /dev/sdc1

#확인
[root@localhost ~]# vgdisplay

 

 

로지컬 볼륨 생성

# 1기가 짜리 논리 그룹 2개와 나머지 용량 전부를 사용하는 논리 그룹 생성
[root@localhost ~]# lvcreate --size 1G --name testLV1 testVG
[root@localhost ~]# lvcreate --size 1G --name testLV2 testVG
[root@localhost ~]# lvcreate --extents 100%FREE --name testLV3 testVG

# lv 확인
[root@localhost ~]# lvdisplay

 

 

링크파일

더보기
링크파일) 윈도우의 바로가기 파일과 같이  testLV1  →  ../dm-2  를 가리키는 것과 같습니다.

 

 

testVG 볼륨 그룹 내의 세 개의 논리 볼륨(testLV1, testLV2, testLV3)에 각각 ext4 파일 시스템을 생성

[root@localhost ~]# mkfs.ext4 /dev/testVG/testLV1
[root@localhost ~]# mkfs.ext4 /dev/testVG/testLV2
[root@localhost ~]# mkfs.ext4 /dev/testVG/testLV3

 

 

 

동일한 LV(testLV3)를 세 개의 디렉터리(lvm1, lvm2, lvm3)에 각각 마운트

[root@localhost ~]# mount /dev/testVG/testLV3 /lvm1
[root@localhost ~]# mount /dev/testVG/testLV3 /lvm2
[root@localhost ~]# mount /dev/testVG/testLV3 /lvm3

 

sdb1과 sdc1을 나눠서 분배하고 있는 모습을 볼 수 있다.




디스크 추가 할당

먼저 디스크를 하나 추가해 위에서 작업했던 것처럼 디스크 파티션 작업합니다.

이 후 아래와 같이 작업을 진행합니다.

# 피지컬 볼륨을 생성
[root@localhost ~]# pvcreate /dev/sdd1

# 기존 볼륨그룹에 추가
[root@localhost ~]# vgextend testVG /dev/sdd1

# 현재 남아있는 잔여 용량을 testLV1에 추가
[root@localhost ~]# lvextend -l +100%FREE /dev/testVG/testLV1

# 용량 변경 적용 (마운트 되어있는 상태여도 적용 가능)
[root@localhost ~]# resize2fs /dev/testVG/testLV1



sdd1 이 추가되어 같이 분배하고 있는 모습을 볼 수 있다.

'Windows & Linux' 카테고리의 다른 글

iSCSI (Internet SCSI)  (0) 2026.03.31
NFS (Network File System)  (0) 2026.03.31
RAID (Linux) 실습  (0) 2026.03.31
Rocky 9에서 DNS 서버 구축해보기  (0) 2026.03.31
DNS (Domain Name System)  (0) 2026.03.31
'Windows & Linux' 카테고리의 다른 글
  • iSCSI (Internet SCSI)
  • NFS (Network File System)
  • RAID (Linux) 실습
  • Rocky 9에서 DNS 서버 구축해보기
민콕이
민콕이
안녕하세요
  • 민콕이
    공부 내용 정리 블로그
    민콕이
  • 전체
    오늘
    어제
    • 분류 전체보기 (55)
      • Network R&S (16)
      • Frontend (7)
      • Windows & Linux (16)
      • Database (2)
      • Docker (2)
      • Kubernetes (1)
      • Private Cloud (1)
      • Public Cloud (8)
        • AWS (8)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • github
    • velog
  • 공지사항

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
민콕이
LVM (Linux)
상단으로

티스토리툴바