LVM (Logical Volume Manager)

앙금빵·2021년 5월 29일
0

리눅스

목록 보기
2/13
post-thumbnail

LVM(Logical Volume Manager)

  • Logical Volume을 효율적이고 유연하게 관리하기 위한 커널의 부분이자 프로그램
  • (기존) 파일시스템이 블록 장치에 직접 접근하여 읽기/쓰기 작업 진행
    (LVM) 파일 시스템이 LVM이 만든 가상의 블록 장치에 읽기/쓰기 작업 진행
  • LVM은 물리적 스토리지 이상의 추상적 Layer를 생성하여 논리적 스토리지(가상 블록 장치)를 생성할 수 있게 해준다.
  • 직접적으로 물리적 스토리지를 사용한 것보다 다양한 측면에서 유연성을 제공해준다.

특징 (Features)

  • 유연한 용량
  • Scalable Storage Pool
  • 온라인 데이터 재배치
  • 편의에 따라 장치 이름 지정
  • 디스크 스트라이핑
  • 미러 볼륨
  • 볼륨 스냅샷

LVM 2 (LVM1 의 기능 개선)

  • 유연한 용량
  • 보다 효율적인 MetaData Storage
  • 보다 향상된 복구 포맷
  • 새로운 ASCII 메타데이터 포멧
  • 메타데이터로 원자 변경
  • 메타데이터의 이중 복사본

LVM2는 '스냅샷' 과 '클러스터 지원'을 제외하고 LVM1과 역 호환성이 있다.

vgconvert 명령어로 LVM1 포멧에서 LVM2 포멧으로 변환이 가능하다.


LVM 용어 정리

PV(Physical Volume)

  • LVM에서 블록 장치를 사용하려면 PV로 초기화를 해야한다. 즉, 블록 장치 전체 또는 그 블록 장치를 이루고 있는 파티션들을 LVM에서 사용할 수 있게 변환한 것이다.
  • PV는 일정한 크기의 PE(Pysical Extent)들로 구성이 된다.

(*) 블록 장치: 블록 단위로 접근하는 스토리지, 예를 들어 대용량 하드 디스크

PE(Physical Extent)

  • PV를 구성하는 일정한 크기의 블록으로 LVM2에서의 기본크기는 4MB이다.
  • LV(Logical Volume)의 LE(Logical Extent)들로 1:1로 맵핑된다.
    ※ 항상 PE와 LE의 크기는 동일하다.

VG(Volume Group)

  • PV들의 집합으로 LV를 할당할 수 있는 공간이다.
  • 사용자는 VG안에서 원하는데로 공간을 쪼개서 LV로 만들 수 있다.
  • 아래 그림은 블록 장치(Pysical Disk)의 파티션들을 PV들로 초기화 시킨 모습이다. 각각의 PV들은 동일한 크기의 PE들로 구성이 되며 PV들이 하나의 VG1으로 묶여있다.

LV(Logical Volume)

  • 사용자가 최종적으로 다루게 되는 논리적인 스토리지이다.
  • 생성된 LV는 파일 시스템 및 애플리케이션(Database 등)으로 사용된다.
  • LV를 구성하는 LE들이 PV의 PE들과 mapping 하면서 존재하게 된다.

LV 유형 (Types of LV)

가. 선형(Linear) LV

  • 하나의 LV로 PV를 모으는 방법

    나. 스트라이프(Striped) LV

  • LV에 데이터를 기록하면 파일 시스템은 PV에 데이터를 기록하게 된다. (PE와 LE의 매핑대로)

  • 스트라이프된 LV를 생성하여 데이터가 PV에 기록되는 방식을 바꿀 수 있다.

  • 대량의 순차적 읽기/쓰기 작업의 경우에 효율을 높일 수 있다.

  • Striped LV는 Round-Robin 방식으로 미리 지정된 PV들에 데이터를 분산 기록을 하게 된다.
    분산 기록 → 성능 향상, R/W 병렬로 실행 가능

  • 번갈아가는 기준은 데이터의 크기이며 이를 Stripe 크기라고 한다.
    Extent 크기( = PE/LEPE/LE)를 초과할 수 없다.

다. Mirrored 된 LV

  • 데이터의 복사본을 다른 블록 장치에 저장하는 방식
  • 장치에 장애가 발생할 경우 데이터를 보호할 수 있게 된다.
  • 장애시 Linear로 저장되어 있기에 다른 장치에서 쉽게 접근이 가능하다.
  • 어떤 부분이 미러를 써서 동기화 되었는지에 대한 로그를 디스크에 저장

LE(Logical Extent)

  • LV를 구성하는 일정한 크기의 블록으로 LVM2의 기본크기는 4MB이다.
  • 항상 PE와 LE의 크기는 동일하다.

Traditional vs LVM

전통적 저장장치

  • 물리 디스크를 파티션이라는 단위로 나누어 OS에 마운트하여 사용
  • 마운트를 하려면 파티션을 특정 디렉토리와 일치시켜 주어야 한다.
  • 마운트된 파티션이 용량이 일정 수준 찼을 때 번거로운 작업을 수행해야 함.

LVM (Logical Volume Management)

  • 물리 디스크를 Volume 그룹으로 묶고 이것을 다시 Logical Volume으로 분할하여 관리
  • 특정 영역의 사용량이 많아져서 저장 공간이 부족할 경우 유연하게 대응 가능

참조:

https://kit2013.tistory.com/199

https://tech.cloud.nongshim.co.kr/2018/11/23/lvmlogical-volume-manager-1-개념/

Hits

profile
Cloud 관련 개인 공부 지식들을 기록하는 공간입니다.

0개의 댓글