← Back to list

LVM 기반 스토리지 구성

추가 EBS 볼륨 연결 및 LVM 스토리지 구축

해달 · 2025-08-26 04:35 · 0 claps · 9.9 min read
#linux #redhat-linux #lvm #ebs-volume
Open on Medium ↗
Wiki topics: 🔓 · Open Source

AWS EC2 환경에서 LVM 스토리지 구성

기존 파티션 방식과 달리 LVM(Logical Volume Manager)을 활용하면 디스크를 유연하게 관리하고, 볼륨 확장·축소가 용이합니다.

PV(Physical Volume), VG(Volume Group), LV(Logical Volume) 구성 파일 시스템 생성 후 마운트까지의 전 과정을 AWS EC2 환경에서 경험했습니다.

EBS 볼륨을 추가 연결하고 fdisk로 파티션을 생성한 뒤, LVM 타입으로 변경하여 pvcreate, vgcreate, lvcreate 명령어로 PV, VG, LV를 구성했습니다.

LV에 ext4 파일 시스템을 생성하고 마운트하여 LVM 기반 스토리지를 구축하는 과정을 정리했습니다.

LVM (Logical Volume Manager)

  • 물리 디스크를 논리적으로 묶어 관리
  • 동적 스토리지 확장/축소 가능
  • 파일 시스템 생성 후 마운트
  • /dev/mapper 디렉터리: 볼륨 그룹에 속한 논리 볼륨 자동 등록

기존 파티션 방식 vs LVM

  1. 기존 Unix
  • 디스크를 파티션하여 파일 시스템 생성
  • 파티션 크기 변경이 어려워 관리 유연성이 낮음
  • 디스크 → 파티션 → 파일 시스템 → 마운트구조
  1. LVM
  • 여러 물리 디스크(PV)를 묶어 가상 디스크(VG)를 생성하고, 그 위에 논리 디스크(LV)를 생성해서 자유롭게 생성·확장·축소 가능
  • 디스크 추가 관리 편리
  • PV → VG → LV → 파일 시스템 → 마운트 구조

구성 요소

  • PV(Physical Volume): 실제 물리적 디스크
  • VG(Volume Group): 여러 PV를 묶은 가상 디스크 Pool
  • LV(Logical Volume): 사용자가 다루는 논리적 스토리지
  • LE(Logical Extent): VG에서 LV로 할당되는 단위

명령어

Filesystem Size Used Avail Use% Mounted on
  • df: 마운트된 파일 시스템 사용량 확인 (Disk Free 약어)
  • Filesystem: 장치 파일 또는 마운트된 파일 시스템
  • Size: 전체 용량
  • Use%: 사용 중인 용량
  • Avail: 사용 가능한 용량
  • Mounted on: 마운트 위치
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  • lsblk: 블록 장치 구조 확인 (List Block Devices 약어)
  • NAME: 장치 이름
  • MAJ:MIN: 디바이스 번호
  • RM: 이동식 여부
  • SIZE: 용량
  • RO: 읽기 전용 여부
  • TYPE: 장치 유형(disk, part, lvm 등)
  • MOUNTPOINT: 마운트 위치
  • pvcreate: 디스크를 PV로 생성
  • vgcreate: PV를 묶어 VG 생성
  • vgs: VG 정보 확인
  • lvcreate: VG에서 LV 생성
  • lvs: LV 정보 확인
  • lvextend -L [size] [lv_path]: LV 확장
  • lvreduce -L [size] [lv_path]: LV 축소
  • resize2fs: ext4 파일 시스템 크기 조정
  • mkfs -t [filesystem]: 파일 시스템 생성
  • mount: 수동 마운트
  • mount -a: 자동 마운트

RAID (Redundant Array of Independent Disks)

  • 여러 디스크를 묶어 하나의 논리 디스크처럼 묶어서 사용
  • 디스크 중복 배열
  • 디스크 장애 대비 미러링/스트라이핑/패리티 적용
  • 읽기/쓰기 성능 최적화

Level

  • RAID 0: 2개 이상의 디스크에서 스트라이핑으로 속도를 높이지만, 데이터 보호는 없음
  • RAID 1: 2개의 디스크에 데이터를 미러링하여 복제, 안정성은 높지만 용량 효율은 낮음
  • RAID 5: 최소 3개의 디스크에서 패리티를 이용해 단일 장애 허용, 읽기 성능 우수
  • RAID 6: 최소 4개의 디스크에서 이중 패리티로 이중 장애 허용, 안정성 매우 높음
  • RAID 10 (1+0): 최소 4개의 디스크에서 미러링과 스트라이핑을 결합, 고속성과 안정성을 모두 제공

Linux 파일 시스템

  • ext4: 전통 리눅스 파일시스템 (Fourth Extended Filesystem 약어)
  • XFS: RHEL7 이후 리눅스 기본 파일시스템으로 채택
  • *포맷(Format): 파일시스템을 새로 구성하는 작업

*선택된 파일시스템이 구축됨, 모든 쓰레기 데이터가 지워지고 새로운 파일시스템이 적용

LVM 스토리지 설정

스토리지 연결

  1. AWS EBS 생성
  • EC2 > Elastic Block Store — 볼륨 > 볼륨 생성

  1. EC2 중지

  2. EC2에 볼륨 연결

  • AS-IS

  • TO-BE

  1. 볼륨 연결 확인
lsblk
  • 출력 확인

  1. 파일 시스템 유형 확인
file -s /dev/nvme1n1

data 출력 시, 해당 디스크에 작성된 데이터가 없다는 의미

  • 출력 확인

파티셔닝

  1. fdisk 실행
  • 추가한 디스크에 fdisk 실행
fdisk /dev/nvme1n1
  1. 새 파티션 생성
Command (m for help): n
Partition type
 p primary (0 primary, 0 extended, 4 free)
 e extended (container for logical partitions)
Select (default p): p
Partition number (1–4, default 1):
First sector (2048–104857599, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048–104857599, default 104857599):
Created a new partition 1 of type 'Linux' and of size 50 GiB.
  • 출력 확인

  1. 파티션 타입 LVM으로 변경
Command (m for help): t
Partition number (1–4): 1
Hex code (type L to list all codes): 8e](<Command (m for help): t
Selected partition 1
  1. 코드 목록 확인
Hex code (type L to list all codes): L
  • 출력 확인
 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT-
 4 FAT16 %3C32M 40 Venix 80286 85 Linux extended c7 Syrinx
 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
 a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
 b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
 c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Rufus alignment
 e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
 f W95 Ext’d (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 Hidden FAT16 ❤ 61 SpeedStor ab Darwin boot f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto
1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep
1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT
  1. LVM 코드 입력
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux’ to ‘Linux LVM’.>)
  1. 변경 후 파티션 확인
Command (m for help): p
  • AS-IS

  • TO-BE

  1. 변경사항 저장
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
  1. 파티션 생성 확인
fdisk
  • AS-IS

  • TO-BE

PV 생성

  1. lvm 패키지 설치
dnf install lvm2 -y
  1. PV 생성
pvcreate /dev/nvme1n1p1
  • 출력 확인

  1. PV 확인
pvscan
  • 출력 확인

VG 생성

  1. VG 생성
vgcreate vg_test /dev/nvme1n1p1
  • 출력 확인

  1. VG 확인
vgscan
  • 출력 확인

LV 생성

  1. LV 생성
lvcreate -L 50g -n lv_test vg_test
  • 출력 확인

  1. LV 확인
lvscan
  • 출력 확인

파일 시스템 생성

  1. LV명 확인
lvdisplay
  • 출력 확인

  1. 파일 시스템 포맷
mkfs -t ext4 /dev/vg_test/lv_test
  • 출력 확인


메타데이터
post_id
d1f731ea5423
slug
lvm-기반-스토리지-구성-d1f731ea5423
url
https://medium.com/@haedall/lvm-%EA%B8%B0%EB%B0%98-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EA%B5%AC%EC%84%B1-d1f731ea5423
canonical_url
https://medium.com/@haedall/lvm-%EA%B8%B0%EB%B0%98-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EA%B5%AC%EC%84%B1-d1f731ea5423
author_url
https://medium.com/@haedall
status
ok
fetched_at
2026-06-24 16:30:55