'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

기타/Xen,Proxmox

Proxmox) Proxmox 스토리지 완전 재구성기(lvm-thin, directory)

MightyTedKim 2025. 5. 6. 02:08
728x90
반응형

Proxmox 스토리지 완전 재구성기

128GB SSD와 2TB NVMe SSD를 활용해 Proxmox VE 운영 환경을 최적화했습니다. SSD는 OS용으로만, NVMe는 VM, 컨테이너, ISO, 백업에 전용으로 사용하는 구조입니다.


📆 목적 및 구성 개요

항목장치포맷목적

SSD (128GB) /dev/sda ext4 Proxmox OS 전용
NVMe (2TB) /dev/nvme0n1 LVM-thin + ext4 VM / 컨테이너 / ISO / 백업 전용

== 1. NVMe 디스크 파티션 재구성 ==

💣 기존 파티션 제거

umount /mnt/data
wipefs -a /dev/nvme0n1

⚖ GPT 파티션 생성 (900G + 900G)

parted /dev/nvme0n1
(parted) mklabel gpt
(parted) mkpart primary ext4 0% 50%
(parted) mkpart primary ext4 50% 100%
(parted) quit

== 2. LVM-thin 설정 (VM용) ==

🔄 LVM 초기화

pvcreate /dev/nvme0n1p1
vgcreate nvme-vg /dev/nvme0n1p1
lvcreate -L 900G -T nvme-vg/vmthin

Web UI 설정

Datacenter > Storage > Add > LVM-thin

  • ID: nvme-thin
  • Volume group: nvme-vg
  • Thin Pool: vmthin
  • Content: Disk image

== 3. ext4 디렉토리 설정 (컨테이너/ISO/백업) ==

📦 ext4 파일 시스템 및 마운트

mkfs.ext4 /dev/nvme0n1p2
mkdir -p /mnt/nvme-hdd
mount /dev/nvme0n1p2 /mnt/nvme-hdd

📄 fstab 등록

blkid /dev/nvme0n1p2
# UUID=3da6d537-b06c-4c15-89b5-652649c7b67b

echo 'UUID=3da6d537-b06c-4c15-89b5-652649c7b67b /mnt/nvme-hdd ext4 defaults 0 2' >> /etc/fstab
mount -a

== 4. Directory 스토리지 구성 ==

📂 폴더 구조 생성

mkdir -p /mnt/nvme-hdd/{ct,iso,backup}

Web UI: Datacenter > Storage > Add > Directory

ID Path Content
ctstore /mnt/nvme-hdd/ct Container
isos /mnt/nvme-hdd/iso ISO image
backup /mnt/nvme-hdd/backup VZDump backup file

== 5. storage.cfg 예시 ==

dir: ctstore
  path /mnt/nvme-hdd/ct
  content rootdir
  maxfiles 3
  shared 0

dir: isos
  path /mnt/nvme-hdd/iso
  content iso
  maxfiles 1
  shared 0

dir: backup
  path /mnt/nvme-hdd/backup
  content backup
  maxfiles 7
  shared 0

lvmthin: nvme-thin
  thinpool vmthin
  vgname nvme-vg
  content images
  shared 0

(선택) 기본 local/local-lvm 비활성화

# lvmthin: local-lvm
#   thinpool data
#   vgname pve
#   content rootdir,images

# dir: local
#   path /var/lib/vz
#   content iso,vztmpl,backup
#   shared 0

== 6. 최종 점검 ==

pvesm status

출력 예시:

Name       Type     Status   Total      Used      Available       %
backup     dir      active   960G       126MB     911G            0.01%
ctstore    dir      active   960G       126MB     911G            0.01%
isos       dir      active   960G       126MB     911G            0.01%
local      dir      active    38G       5.8G      30G             15.1%
local-lvm  lvmthin  active    51G       11.7G     40G             22.7%
nvme-thin  lvmthin  active   943G       1.1G      942G            0.12%

🔧 결과 요약

스토리지 ID 장치 형식 용도
nvme-thin /dev/nvme0n1p1 LVM-thin VM 디스크용
ctstore /mnt/nvme-hdd/ct ext4 디렉토리 LXC rootfs
isos /mnt/nvme-hdd/iso ext4 디렉토리 ISO 이미지
backup /mnt/nvme-hdd/backup ext4 디렉토리 백업 저장

이 구성은 단순하면서도 성능, 확장성, 백업, 유지보수 측면 모두에서 이상적입니다. NVMe를 충분히 활용하고, OS와 데이터를 명확히 분리해 관리 안정성을 높일 수 있습니다.

원하는 경우 locallocal-lvm은 Web UI에서 **"Disable"**하거나, /etc/pve/storage.cfg에서 주석 처리하면 됩니다.

728x90
반응형