![]()
LVM의 기본 구성 요소

LVM은 세 가지 주요 구성 요소로 이루어져 있습니다. 물리적 볼륨(PV), 볼륨 그룹(VG), 논리적 볼륨(LV). 이들 각각의 구성 요소는 LVM의 기능과 유연성을 극대화하는 데 중요한 역할을 합니다.
아래 표는 각 구성 요소의 특징을 정리한 것입니다.| 구성 요소 | 설명 |
|---|---|
| PV | 실제 물리적 디스크 장치를 LVM에서 사용할 수 있도록 변환한 것 |
| VG | 여러 개의 PV를 묶어 하나의 디스크 공간 풀을 생성하는 집합 |
| LV | 사용자가 최종적으로 사용하는 논리적인 스토리지 단위 |
PV(Physical Volume)
PV는 물리적 볼륨으로, 실제 하드웨어 디스크 장치를 LVM에서 사용할 수 있도록 변환한 것입니다. LVM을 이용해 디스크를 관리하기 위해서는 먼저 해당 디스크를 PV로 초기화해야 합니다.
일반적으로는pvcreate 명령어를 사용하여 디스크를 초기화하게 됩니다. PV는 일반적으로 하나의 물리적 디스크나 디스크의 파티션으로 구성될 수 있습니다.예를 들어, /dev/sda1, /dev/sda2와 같은 파티션이 PV로 사용될 수 있으며, 이러한 PV들이 모여 VG를 구성하게 됩니다.
VG(Volume Group)
VG는 볼륨 그룹으로, 하나 이상의 PV들이 모여 생성되는 집합입니다. VG는 LVM에서 논리적 볼륨(LV)을 할당할 수 있는 공간 풀을 제공합니다.
VG를 생성할 때는 여러 개의 PV를 결합하여 하나의 논리적 공간으로 구성하게 됩니다. 이렇게 구성된 VG는 LVM이 제공하는 스토리지 관리 기능을 활용할 수 있게 해줍니다.VG를 생성하는 명령어는vgcreate이며, 이 명령어를 통해 여러 개의 PV를 묶어 하나의 VG를 만들 수 있습니다. 예를 들어, vgcreate myvg /dev/sdb1 /dev/sdc1와 같이 사용할 수 있습니다.
LV(Logical Volume)
LV는 사용자가 최종적으로 다루게 되는 논리적 스토리지 단위입니다. LV는 VG에서 할당된 디스크 공간을 기반으로 생성되며, 사용자는 이 LV를 통해 파일 시스템을 생성하고 데이터를 저장합니다.
LV는 일반적으로lvcreate 명령어를 사용하여 생성할 수 있습니다. LV는 사용자가 필요에 따라 크기를 조정하거나 삭제할 수 있으며, 이러한 작업은 시스템을 재부팅하지 않고도 수행할 수 있습니다.이는 LVM의 큰 장점 중 하나입니다.
LVM 환경 설정

이제 LVM의 기본 구성 요소에 대해 이해하였으니, 실제로 PV, VG, LV를 생성하는 방법을 살펴보겠습니다. 이 과정은 아래와 같은 단계로 진행됩니다.
- 디스크 파티셔닝:
fdisk명령어를 사용하여 PV로 사용할 디스크를 파티셔닝합니다. - PV 생성:
pvcreate명령어를 사용하여 생성된 파티션을 PV로 초기화합니다. - VG 생성:
vgcreate명령어를 통해 PV를 포함하는 VG를 생성합니다. - LV 생성:
lvcreate명령어를 사용하여 VG에서 LV를 생성합니다. - 파일 시스템 포맷: LV에 파일 시스템을 생성합니다.
- 마운트 설정: 생성된 LV를 마운트 포인트에 마운트합니다.
디스크 파티셔닝
디스크를 LVM으로 사용하기 위해서는 먼저 fdisk 명령어를 통해 디스크를 파티셔닝해야 합니다. fdisk는 리눅스의 디스크 파티션을 생성, 수정, 삭제할 수 있는 유틸리티입니다.
bash
sudo fdisk /dev/sdb
위 명령어를 입력하면 /dev/sdb 디스크에 대한 파티션 테이블을 관리할 수 있는 인터페이스가 열립니다. 여기서 사용자는 n 키를 눌러 새로운 파티션을 생성하고, w 키를 눌러 변경 사항을 저장할 수 있습니다.
PV 생성
디스크 파티셔닝이 완료되면, 이제 해당 파티션을 PV로 변환하기 위해 pvcreate 명령어를 실행합니다. 예를 들어, /dev/sdb1을 PV로 만들기 위해 다음과 같이 입력합니다.
bash
sudo pvcreate /dev/sdb1
이 명령어를 통해 /dev/sdb1이 LVM에서 사용할 수 있는 물리적 볼륨으로 초기화됩니다.
VG 생성
이제 PV가 준비되었으니, 이를 사용하여 VG를 생성합니다. vgcreate 명령어를 사용하여 여러 개의 PV를 포함하는 VG를 생성할 수 있습니다.
/dev/sdb1과 /dev/sdc1을 포함한 VG인 myvg를 생성하려면 다음과 같이 입력합니다.
bash
sudo vgcreate myvg /dev/sdb1 /dev/sdc1
이렇게 하면 myvg라는 이름의 볼륨 그룹이 생성됩니다.
LV 생성
VG가 생성되었다면, 이제 LV를 생성할 차례입니다. 예를 들어, myvg에서 10GB 크기의 논리적 볼륨 mylv1을 생성하려면 다음과 같은 명령어를 사용할 수 있습니다.
bash
sudo lvcreate --size 10G --name mylv1 myvg
이 명령어를 통해 myvg 볼륨 그룹 내에 mylv1이라는 10GB 크기의 논리적 볼륨이 생성됩니다.
파일 시스템 포맷 및 마운트 설정
이제 생성된 LV에 파일 시스템을 생성해야 합니다. 일반적으로 ext4 파일 시스템을 사용하는 경우 다음과 같이 입력합니다.
bash
sudo mkfs.ext4 /dev/myvg/mylv1
이 명령어를 통해 /dev/myvg/mylv1에 ext4 파일 시스템이 생성됩니다. 마지막으로, 파일 시스템을 마운트할 위치를 설정해야 합니다.
/mnt/mylv1이라는 디렉토리를 생성한 후 해당 LV를 마운트할 수 있습니다.
bash
sudo mkdir /mnt/mylv1
sudo mount /dev/myvg/mylv1 /mnt/mylv1
이제 /mnt/mylv1에서 생성된 LV를 사용할 수 있게 되었습니다.
LVM 관리 및 삭제

LVM을 사용하면 생성한 PV, VG, LV를 쉽게 관리할 수 있습니다. 여기서는 주로 LV의 크기를 조정하고 삭제하는 방법을 다루겠습니다.
LV 크기 조정
LVM의 큰 장점 중 하나는 논리적 볼륨의 크기를 유연하게 조정할 수 있다는 점입니다. 예를 들어, mylv1의 크기를 15GB로 늘리고 싶다면 다음과 같이 입력합니다.
bash
sudo lvresize --size 15G /dev/myvg/mylv1
이 명령어를 통해 mylv1의 크기가 15GB로 조정됩니다. 만약 -r 옵션을 추가하면, 파일 시스템도 자동으로 크기 조정됩니다.
bash
sudo lvresize -r --size 15G /dev/myvg/mylv1
이 경우, 파일 시스템의 크기도 함께 조정됩니다.
LV 삭제
더 이상 필요하지 않은 LV는 삭제할 수 있습니다. 먼저, LV가 마운트되어 있는 경우에는 언마운트해야 합니다.
bash
sudo umount /mnt/mylv1
그 다음, lvremove 명령어를 사용하여 LV를 삭제할 수 있습니다.
bash
sudo lvremove /dev/myvg/mylv1
이 명령어를 실행하면 삭제할 것인지 묻는 메시지가 나타나며, y를 입력하면 LV가 삭제됩니다.
VG 및 PV 삭제
LV뿐만 아니라 VG 및 PV도 삭제할 수 있습니다. VG를 삭제하기 위해서는 먼저 VG 내의 모든 LV를 삭제해야 합니다.
그 후,vgremove 명령어를 사용하여 VG를 삭제합니다.
bash
sudo vgremove myvg
PV를 삭제하기 위해서는 먼저 해당 PV가 VG에 속하지 않아야 하며, pvremove 명령어를 사용하여 삭제할 수 있습니다.
bash
sudo pvremove /dev/sdb1
이렇게 LVM을 통해 스토리지를 유연하게 관리하고, 필요에 따라 조정 및 삭제할 수 있습니다.
마무리

LVM은 리눅스 환경에서 스토리지를 유연하고 효율적으로 관리할 수 있는 강력한 도구입니다. PV, VG, LV의 개념과 이들을 생성하고 관리하는 방법을 이해하면, 시스템 관리자에게 필요한 스토리지 관리 능력을 한층 더 발전시킬 수 있습니다.
이제 LVM을 활용하여 보다 효율적으로 스토리지를 관리해 보시기 바랍니다. LVM의 다양한 기능을 익히고 활용하여 시스템을 더욱 안정적이고 유연하게 운영할 수 있기를 바랍니다.