클라우드 아카이브

[스토리지] LVM (Logical Volume Manager)의 개념과 사용법 본문

OS 및 스토리지/스토리지

[스토리지] LVM (Logical Volume Manager)의 개념과 사용법

Cloud Engineer 2021. 9. 21. 20:18
반응형

개요

회사에서 리눅스 상에 스토리지를 파티셔닝 및 다수의 파일시스템을 구성해야 하는 업무를 진행할 때가 있습니다. 이 때, 업무 수행에 사용되는 LVM은 장치 매핑 커널 드라이버이며 해당 드라이버를 통해 물리 스토리지를 쪼개어 각 파일시스템을 구성 및 관리합니다. 본 포스팅에서는 LVM을 학습하기 위한 기초 개념 및 용어를 정리하겠습니다.

LVM (Logical Volume Manager)

용어에서 알 수 있듯이 물리적인 디스크에 대해서 Volume (공간)을 Logical (논리적으로) Manager (관리해주는 관리자)입니다. LVM은 커널의 일부분으로써 디바이스 드라이버로 동작하며, 효과적으로 스토리지를 논리 공간으로 관리할 수 있도록 해줍니다. 1998년에 Heinz Mauelshagen가 HP-UX 볼륨관리자에게 설계 지침을 발표하며 LVM의 코드 원본을 작성하기 시작했습니다.

장치 매퍼 (Device Mapper)
볼륨 관리를 위한 프레임워크를 제공하는 커널 드라이버로 논리 볼륨으로 사용될 맵화된 장치 생성에 대한 일반적인 방법을 제공합니다.

출처 : https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/device_mapper

디스크 종류 별 명칭

디스크는 물리 디스크인지, 가상 디스크인지 그리고 디스크의 종류에 따라 디바이스 이름이 나뉩니다. 물리 디스크로는 SCSI (스카시) 부터 IDE 및 Nvme DISK가 있습니다. 리눅스에서 디스크를 마운팅하기 위해서는 해당 디스크가 어떤 명칭으로 리눅스에서 관리되는지를 확인할 필요가 있습니다. 따라서 본 포스팅에서는 리눅스 상에서 어떤 명칭으로 디스크를 구분하는지 살펴보겠습니다.

종류 디스크 명 리눅스에 지정된 명칭
물리 SCSI /dev/sda
/dev/sdb
/dev/sdc
IDE /dev/hda
/dev/hdb
/dev/hdc
Nvme /dev/nvme0
/dev/nvme1
/dev/nvme2
가상 가상 /dev/sda
/dev/sdb
/dev/sdc
가상 (버전업) /dev/xvda
/dev/xvdb
/dev/xvdc

Partition, PV(Physical Volumes), VG(Volume Groups), LV(Logical Volumes)

LVM 구조

LVM에서는 위와 같이 파티셔닝된 물리적 디스크를 논리적으로 나누어 구성 및 관리합니다. 지금부터 파티션과 PV, VG, LV에 대한 개념을 알아보겠습니다.

Partition : 하나의 공간을 여러 개의 공간으로 분할

하나의 HDD, SSD 등의 드라이브를 여러 개의 논리적인 부분으로 분할한다는 의미입니다.

하드디스크를 3개의 파티션으로 분할

위의 그림과 같이 한 개의 HDD (/dev/sdb)에 대해 3개의 파티션으로 분할하여 사용할 수 있습니다. 그리고 해당 파티션에 각각 독립적으로 데이터를 저장할 수 있습니다.

PV (Physical Volumes) : Partition을 LVM에서 관리하기 위해 변환

각각의 파티션을 실재 LVM에서 사용할 수 있도록 변환하는 것으로, 1개의 PV는 고정 크기로 구성된 여러 개의 PE (Physical Extent)들로 구성됩니다.

더보기

PE (Physical Extent)

PV를 구성하는 일정 크기의 블록으로, LVM 2에서는 기본크기 4MB입니다.

VG (Volume Groups) : 여러 개의 PV를 합쳐서 그룹으로 생성

1개 이상의 PV를 그룹으로 만든 것이며, 실제 LV를 할당할 수 있는 공간입니다. PV로 초기화된 각 장치들을 VG로 그룹으로 묶어 사용할 수 있습니다. 사용자는 VG안에서 원하는대로 공간을 쪼개서 LV로 만들 수 있습니다.

Volume Group 구성

LV (Logical Volumes)

사용자가 실제로 다루게 되는 논리적인 스토리지이며, LV는 오라클 개별 파일시스템 구성을 위한 볼륨 생성 등에서 생성됩니다. 사용자가 파티션을 생성하고, LVM으로 구성을 했을 경우 최종적인 모습은 아래 사진과 같이 됩니다. 논리 볼륨에 마운팅하고 파일 시스템을 적용하면 LVM 구성 및 개별 파일시스템 적용 디렉토리 생성이 완료됩니다.

LVM 최종 구성

정리

LVM은 커널의 일부분으로 동작하는 디바이스 드라이버이며, 물리적으로 파티셔닝된 스토리지를 논리적으로 관리할 수 있도록 도와주는 유틸리티입니다. 또한, 리눅스에서는 각 디스크마다 서로 다른 명칭을 가지고 있으며 해당 명칭을 통해 PV, VG, LV를 생성할 수 있게 됩니다. LV까지 생성한 다음 해당 LV를 마운팅 및 파일시스템 구성을 완료하면 LVM 및 파일시스템 구성 작업이 완료하게 됩니다.

마무리

신규 서버를 구축하거나 기존 서버에서 별도의 파일시스템을 구성할 때, 파티셔닝 및 LVM에 대한 이해도, 마운팅/파일시스템 구성은 필수로 할 수 있어야 합니다. 본 포스팅에서 이해한 내용을 바탕으로 다음 포스팅에서 실제 리눅스 서버에 유저 및 그룹 생성 - LVM 구성(PV, VG, LV 생성)-파일시스템 구성 - 마운팅 순서로 실습을 진행해보겠습니다.

[출처]
https://tech.cloud.nongshim.co.kr/2018/11/23/lvmlogical-volume-manager-1-%EA%B0%9C%EB%85%90/
https://ko.wikipedia.org/wiki/%EB%85%BC%EB%A6%AC_%EB%B3%BC%EB%A5%A8_%EA%B4%80%EB%A6%AC%EC%9E%90
https://www.brainupdaters.net/ca/brief-introduction-logical-volumes-lv-concept-example-application/
https://faq.hostway.co.kr/Linux_ETC/1620

Comments