본문 바로가기
카테고리 없음

LVM(Logical Volume Manager)의 개념과 구성

by 서버의달인 2025. 1. 14.

오늘은 리눅스 서버 디스크 관리에서 아주 중요한  LVM의 개념과 구성에 대해 알아보겠습니다.

 

1. LVM의 개요

LVM은 Linux 시스템에서 물리적 저장 장치 위에 논리적 저장소를 생성하고 관리합니다. LVM은 물리적 볼륨(Physical Volume, PV)들을 논리적 볼륨(Logical Volume, LV)으로 묶어서 관리하며, 여러 개의 물리적 저장 장치를 하나의 논리적 장치처럼 사용할 수 있습니다. 디스크 파티셔닝 및 관리 측면에서 유연성을 크게 향상시키며, 기존의 파티션 기반 방식에 비해 여러 가지 장점이 있습니다.

 

LVM은 동적 관리, 스냅샷, 디스크 확장 등 다양한 기능을 제공하여 디스크 관리와 관련된 유연성을 증가시킵니다. 이로 인해 서버 운영이나 데이터베이스와 같은 대규모 시스템에서 효과적으로 사용됩니다.

2. LVM의 주요 특징

LVM은 기존의 파티션 방식에 비해 여러 장점이 있습니다. LVM은 논리 볼륨을 온라인 상태에서 동적으로 확장하여 새로운 디스크를 추가하거나 기존 디스크의 용량을 확장하는 데 서비스 중단이 필요하지 않습니다. 또한 디스크의 특정 시점에 대한 복사본을 생성할 수 있는 스냅샷 기능을 제공하여 시스템 백업이나 장애 복구 시 유용하게 사용됩니다. LVM은 논리적 볼륨을 사용하여 여러 개의 물리적 디스크를 하나의 큰 볼륨처럼 관리할 수 있으며, 여러 디스크를 하나의 큰 논리 볼륨으로 묶어 관리할 수 있습니다.

 

그리고 시스템을 재부팅하지 않고도 물리적 볼륨 크기를 동적으로 변경할 수 있습니다. 내부적으로 RAID와 유사한 미러링 및 스트라이핑 기능을 지원하여 데이터 중복 및 성능 향상을 위한 구성이 가능합니다.

 

3. LVM의 구성 요소

LVM을 설정하려면 여러 구성 요소를 이해하고 설정해야 합니다.

3.1. Physical Volume(PV)

실제 하드디스크나 파티션이며, LVM 시스템에 추가할 수 있는 물리적 저장 장치입니다. PV는 LVM의 기본 단위로 사용자가 데이터를 저장할 수 있는 공간을 제공합니다. pvcreate 명령어를 사용하여 생성할 수 있습니다. /dev/sdb 디스크를 PV로 설정하려면 다음 명령어를 실행합니다. sudo pvcreate /dev/sdb

 

3.2. Volume Group (VG)

여러 개의 PV를 논리적으로 묶어서 관리할 수 있게 해줍니다. 물리적 볼륨을 논리적 볼륨으로 확장할 수 있는 기본 단위입니다. 하나의 VG는 여러 개의 PV를 포함할 수 있으며, 그 안에 여러 개의 LV를 만들 수 있습니다. VG는 vgcreate 명령어로 생성하며, vg_data라는 이름의 VG를 생성하기 위해서는 sudo vgcreate vg_data /dev/sdb를 실행합니다.

 

3.3. Logical Volume (LV)

실제 데이터를 저장하는 논리적 장치입니다. VG에서 할당된 공간을 기반으로 만들어지며, 여러 LV를 만들 수 있습니다. LV는 lvcreate 명령어로 생성하며, lv_data라는 이름의 LV를 생성하려면 sudo lvcreate -L 100G -n lv_data vg_data를 입력합니다. -L은 크기, -n은 논리 볼륨의 이름입니다.

3.4. Physical Extent (PE)와 Logical Extent (LE)

디스크 공간을 관리할 때 이 개념을 사용합니다. PE는 물리적 볼륨에서 데이터를 저장하는 최소 단위로, 보통 4MB에서 1GB까지 다양하게 설정할 수 있습니다. LE는 논리적 볼륨 내에서 데이터를 저장하는 단위로, PE와 동일한 크기를 가집니다.

4. LVM 관리 명령어

다양한 명령어를 통해 물리적 볼륨, 볼륨 그룹, 논리적 볼륨을 관리하며, 주요 명령어는 아래와 같습니다.
pvcreate : 물리적 볼륨 생성
vgcreate : 볼륨 그룹 생성
lvcreate : 논리 볼륨 생성
lvextend : 논리 볼륨 크기 확장
vgreduce : 볼륨 그룹에서 물리적 볼륨 제거
lvremove : 논리 볼륨 제거
vgremove : 볼륨 그룹 제거
pvremove : 물리적 볼륨 제거

 

5. LVM 구성 예시

이번에는 각 단계별로 어떻게 LVM을 설정하고 활용할 수 있는지 살펴보겠습니다.

먼저, 새 디스크(/dev/sdb)를 LVM에 사용할 수 있도록 물리적 볼륨으로 생성합니다. sudo pvcreate /dev/sdb
그 다음 생성한 물리적 볼륨을 포함할 볼륨 그룹을 만듭니다. sudo vgcreate vg_data /dev/sdb
볼륨 그룹에서 논리 볼륨을 생성합니다. sudo lvcreate -L 50G -n lv_data vg_data
논리 볼륨에 파일 시스템을 생성하여 데이터를 저장할 준비를 합니다. sudo mkfs.ext4 /dev/vg_data/lv_data
논리 볼륨을 마운트하여 사용할 수 있도록 합니다. sudo mount /dev/vg_data/lv_data /mnt
논리 볼륨의 용량을 확장하려면 먼저 볼륨 그룹에 새로운 물리적 볼륨을 추가한 후, 논리 볼륨을 확장합니다.
sudo pvcreate /dev/sdc
sudo vgextend vg_data /dev/sdc
sudo lvextend -L +50G /dev/vg_data/lv_data
sudo resize2fs /dev/vg_data/lv_data

 

6. LVM의 고급 기능

6.1. 스냅샷 생성

특정 시점의 시스템 상태를 저장하는 스냅샷 기능을 제공하며, 데이터 백업이나 장애 복구 시 유용합니다. 스냅샷을 생성하려면 다음 명령어를 실행합니다. sudo lvcreate -L 10G -s -n lv_data_snap /dev/vg_data/lv_data 이 명령어는 lv_data의 10GB 크기 스냅샷을 생성한다는 뜻입니다.

6.2. 미러링

미러링 기능으로 데이터를 중복 저장하여 데이터 보호를 강화할 수 있습니다. 미러링을 설정하려면 두 개 이상의 물리적 볼륨이 필요하며, 논리 볼륨 생성 시 -m 옵션을 사용하여 미러링을 활성화할 수 있습니다.

 

지금까지 LVM에 대해 알아보았습니다. Linux에서 물리적 저장 장치의 유연한 관리와 확장을 가능하게 해주는 중요한 기술로 LVM을 사용하면 물리적 볼륨을 논리적 볼륨으로 결합하여 디스크 관리를 유연하게 관리할 수 있습니다.