[42서울] LVM

tamagoyakii·2022년 5월 5일
0

42seoul

목록 보기
6/19
post-thumbnail

💟 LVM(Logical Volume Management) 💟

LVM은 리눅스의 저장 공간을 관리하기 위한 커널의 한 부분이다. 리눅스 환경에서 파일 시스템과 물리 저장소 사이의 추상 레이어를 제공한다. 기존 방식이 블록 장치에 직접 접근해서 읽고 쓰기를 했다면, LVM은 LVM이 만든 가상의 블록 장치에 읽고 쓰기를 하게 된다.

기존 방식의 경우, 하드 디스크를 파티셔닝 한 후 OS 영역에 마운트하여 read/wirte를 수행했다. 이 경우 저장 공간의 크기가 고정되어서 증설/축소가 어렵다. 이를 보완한 LVM은 파티션 대신에 volume이라는 단위로 저장 장치를 다룬다. 스토리지의 확장, 변경에 유연하며, 크기를 변경할 때 기존 데이터의 이전이 필요 없다는 장점이 있다. LVM은 크게 PV, VG, LV의 세 파트로 구분되어 있다.

1️⃣ PV(Physical Volume)

LVM이 블록 장치를 관리하기 위해서는 PV로 초기화하는 작업이 필요하다. 즉, 블록 장치 전체 또는 그 블록 장치를 이루고 있는 파티션들을 LVM에서 사용할 수 있도록 변환하는 것이다. PV는 일정한 크기의 PE(Physical Extent)들로 구성된다.

💡 블록 장치란?
블록 장치란 블록 형식으로 데이터를 교환하는 장치이다. 블록 디바이스라고도 부른다. 주로 HDD, CD-ROM드라이브, 메모리 영역 등 주소 지정이 가능한 기기를 일컫는다. 랜덤 액세스와 탐색이 가능한 일이 많아 일반적으로 버퍼를 사용한 입출력을 수행한다. 프로그램이 데이터의 읽기를 요청하면 시스템은 적당한 버퍼를 준비하여 데이터를 담고 데이터를 전송한 후 버퍼를 비우는 방식으로 작동한다.

▪️ PE(Physical Extent)

PV를 구성하는 일정한 크기의 블록으로, 보통 1PE는 4MB에 해당한다. 아래에서 나올 LE와는 1:1로 대응한다. 즉, PE와 LE의 크기는 항상 같다.

2️⃣ VG(Volume Group)

PV들의 집합으로 LV를 할당할 수 있는 공간이다. PV들로 초기화된 장치들은 VG로 통합된다. 사용자는 VG안에서 원하는대로 공간을 쪼개서 아래의 LV로 만들 수 있으며, 꼭 VG의 모든 공간을 다 써야되는건 아니다.

3️⃣ LV(Logical Volume)

사용자가 최종적으로 다루게 되는 논리적인 스토리지이다. Windows에서 제공하는 C드라이브, D드라이브 등이 LV의 예시이다. 생성된 LV는 파일 시스템 및 애플리케이션으로 사용된다. LV는 LE들로 구성되어 있는데 위에서 말했듯이 LE들은 PE들과 맵핑하며 존재한다. 이때 LE와 PE가 맵핑되면서 세 가지 유형의 LV가 생성된다.

  1. Linear LV
    하나의 LV로 PV를 모으는 방법이다. 예를 들어 두개의 60GB 디스크(PV)를 120GB의 LV를 만드는 방식이다. LV만을 사용하는 사용자의 입장에서는 120GB의 단일 장치만 있게 되는 셈이다.


2. Striped LV
LV에 데이터를 기록하게되면, 파일 시스템은 매핑된 PV에 데이터를 기록하게되는데, Striped LV로 데이터가 PV에 기록되는 방식을 바꿀 수 있다. 대량의 읽기/쓰기 작업에서 효율을 높일 수 있는 방법이다. Striped LV는 Round-Robin 방식으로 미리 지정된 PV들에 데이터를 분산 기록해서 성능을 높였고, 읽고/쓰기를 병렬로 실행할 수 있다. 분산의 기준은 데이터의 크기인데, 이를 스트라이프 크기라고 하며 Extent의 크기(PE/LE크기)를 초과할 수 없다.

3. Mirrored LV
블록 장치에 저장된 데이터의 복사본을 다른 블록 장치에 저장하는 방식이다. 데이터가 PV에 저장될 때, 이를 미러하고있는 PV에 동일한 데이터가 저장된다. 어떤 부분이 미러로 동기화되었는지에 대한 로그를 디스크에 저장하고 있기 때문에 데이터를 보호에 용이하다.

▪️ LE(Logical Extent)

LV를 구성하는 일정한 크기의 블록으로 기본크기는 PE와 마찬가지로 4MB이다. PV와 마찬가지로 각각의 LV들은 동일한 크기의 LE로 구성된다.

💟 참고 💟

https://tech.cloud.nongshim.co.kr/2018/11/23/lvmlogical-volume-manager-1-%EA%B0%9C%EB%85%90/
https://www.24x7servermanagement.com/blog/importance-logical-volume-management/

0개의 댓글