본문 바로가기
Naver Cloud Platform

[NaverCloud] 블록스토리지(Block Storage)에서 LVM 개념 이해하기 및 파티션 나누고 합치기 실습

by 클수저 2023. 12. 1.
728x90
반응형
mount /dev/lvmVG/lvmLV /lvm

이번 시간에는 클라우드 서버에서 서버에 붙여서 사용하는 블록스토리에서의 Disk에서 LVM 개념을 포스팅해보려 한다.

LVM의 기본 개념을 그림으로 정리한 내용

LVM이란?

LVM(Logical Volume Manager)는 리눅스(Linux)의 디스크 관리를 용이하게 해주는 기능을 제공하는 소프트웨어!

즉, 저장 공간을 효율적이고 유연하게 관리하기 위한 커널의 한 부분

LVM vs 일반적인 Disk Partitioning

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

LVM 종류 및 개념정리

  • 물리적 볼륨 / PV (Physical Volume)
    - 실제 디스크 장치를 분할한 파티션된 상태를의미한다.
    - PV는 일정한 크기의 PE들로 구성된다.
  • 물리적 확장 / PE (Physical Extent)
    - PV를 구성하는 일정한 크기의 Block.
    - PE와 LE는 1:1로 대응.
  • 볼륨 그룹 / VG (Volume Group)
    - PV들이 모여서 생성되는 단위이다. (디스크를 한번에 합친 그룹)
    - 사용자는 VG를 원하는대로 쪼개서 LV로 만들게 된다.
  • 논리적 볼륨 / LV (Logical Volume)
    - 사용자가 최종적으로 사용하는 단위로, VG에서 필요한 크기로 할당받아 LV를 생성한다.

맨처음 나와있는 순서도를 글로 적어보고 이해를 해보자.

  • 서버를 생성하고 스토리를 생성하면, 디스크가 할당 되어 있다.
  • 할당되어 있는 디스크를 파티션 포맷으로 PV 물리적 볼륨 할당
    • 사용자의 요구에 따라 파티션으로 나눈 용량을 '모두 쓰고 싶어, 일부만 쓰고 싶어'  ➡️   물리적으로 생성된 것이기 때문에 사용할 수 없다. 그렇기 때문에 디스크 상태를 바꿔야한다.
    • 그러기 위해서 물리적 볼륨을 논리적 볼륨으로 바꿔야한다.
  • 논리적 볼륨으로 변경(논리적 그룹으로 합친다 ➡️ VG
    • 합쳐진 논리적 그룹을 위에 요구사항에 맞게 다시 LV로 나눠준다.
  • 논리적그룹으로 묶은 것을 분배하는것이 LV이다.

아래에서 직접 LVM 실습을 진행해본다.

서버에 스토리지가 연결되어 생성 된 서버상태.

테스트용 서버를 하나 생성 후, 거기에 블록스토리지를 콘솔에서 2개를 제작 후, 연결되어 있는 서버이다.

터미널에 접속 후, 본격적인 테스트를 진행한다.

fdisk /dev/xvdc

위와 같은 명령어를 입력 후, 파티션 작업을 해주는데 중요한 것은 중간에 Command에서 와 Hex Code 8e를 입력해주면 마지막에 Linux LVM이라는 명령어가 나오는 것을 확인 할 수 있다.

  • n : 새로운 파티션을 만든다는 뜻
  • t : 파티션의 시스템 id 변경
  • w : 해당 내용을 기록 후 종료 
  • 8e : LVM 파티션을 의미
    • 83 : Linux 파티션을 의미

파티션 생성하는 작업

xvdb로 파티션 생성 작업을 했고, xvdb도 동일하게 진행한다.

기존에 fdisk로 만들어진 파티션을 물리적 볼륨으로 만드는 작업을 해준다.

pvcreate /dev/xvdc1

물리적 볼륨이 생성 된 것을 확인할 수 있다.

vgcreate lvmVG /dev/xvdb1 /dev/xvdc1

물리적 그룹을 하나의 볼륨그룹으로 합쳐주는 작업을 한다.

vgcreate 명렁어로 lvmVG라는 이름의 그룹을 만들고, 합치고자 하는 디스크들을 넣어준다.

vgdisplay

Volume Group 상태를 볼 수 있다.

위와 같이 명령어를 통해서 만들어진 VG를 확인 할 수 있다.

PV가 2개이고, 10G 2개의 디스크가 합쳐졌기 때문에 VG Size는 19.99G이다.

 lvcreate --extents 100%FREE -n lvmLV lvmVG
mkfs.ext4 /dev/lvmVG/lvmLV

물리적 볼륨으로 합쳐져 있는 상태이기 때문에, 다시 논리적 볼륨으로 포맷을 해주는 작업을 해야한다.

lvcreate 명령어 후에 위에 만들어놓았던 lvmVG를 lvmLV로 포맷한다.

 

논리적 볼륨으로 포맷이 되었기 대문에, 그것을 다시 마운트 해주는 작업을 한다.

mkdir /lvm
 mount /dev/lvmVG/lvmLV /lvm

lvm이 마운트 된 것을 확인 할 수 있다.

 

위와 같이 LVM을 통해서 물리적볼륨을 논리적볼륨으로까지 가는 과정과 실습을 포스팅해보았다.

상당히 까다롭게 어렵지만, LVM에 대한 전반적인 이해가 있다면 실습 내용은 충분히 이해 할 수 있었다.

728x90
반응형