13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] 서버 가상화

  • [Proxmox] Proxmox VE vs VMware ESXi: 홈랩 환경 마이그레이션 1년 후기

    [Proxmox] Proxmox VE vs VMware ESXi: 홈랩 환경 마이그레이션 1년 후기

    Proxmox VE vs VMware ESXi: 홈랩 환경 마이그레이션 1년 후기

    Proxmox VE 마이그레이션을 고민하시는 분들이 요즘 꽤 많으시더라고요. 저도 홈랩(Home Lab, 집에서 운영하는 개인 실험실) 환경을 몇 년 동안 VMware ESXi로 굴리다가, 결국 Proxmox VE로 옮겨서 1년 정도 써봤습니다. 결론부터 말씀드리면, 홈랩 기준에서는 꽤 만족스러운 선택이었습니다. 물론 처음엔 익숙한 화면이 아니라서 좀 헤맸고, 네트워크 브리지(Bridge, 가상 스위치 역할)랑 스토리지(Storage, 저장소) 구조에서 삽질도 했습니다 ㅎㅎ 근데 실제로 써보니까 관리 흐름이 단순해지고, 실험용 VM(Virtual Machine, 가상 머신)과 LXC(Linux Container, 리눅스 컨테이너)까지 한 화면에서 다루는 점이 진짜 편하더라고요.

    이번 글은 제품 스펙 비교표만 나열하는 글은 아닙니다. VMware ESXi에서 Proxmox VE로 넘어가면서 무엇이 달라졌는지, 그리고 1년 동안 홈랩에서 굴려보니 어떤 점이 좋았고 어떤 점은 생각보다 불편했는지, 경험 위주로 정리해보겠습니다. 혹시 저처럼 “그냥 잘 돌아가던 걸 왜 굳이 바꾸지?”라는 생각이 드셨다면, 아마 도움이 되실 겁니다.

    Proxmox VE 마이그레이션을 위한 홈랩 가상화 환경 전체 아키텍처 이미지

    ESXi와 Proxmox VE가 각각 스토리지, 브리지 네트워크, 백업 저장소와 연결된 홈랩 전체 구조를 보여주는 이미지입니다.

    왜 VMware ESXi에서 Proxmox VE로 옮겼는가

    제가 ESXi를 오래 쓴 이유는 단순했습니다. 안정적이었고, 익숙했고, 기업 환경 감성이 있었거든요. 가상화 비교 관점에서도 ESXi는 오래 검증된 하이퍼바이저(Hypervisor, 가상화 계층)라서 믿음이 갔습니다. 실제로 VM 몇 대 올려서 NAS, 테스트용 쿠버네티스(Kubernetes), 모니터링 스택 정도 돌리는 데는 큰 문제가 없었습니다.

    근데 홈랩은 회사와 다르죠. 라이선스 정책, 관리 편의성, 백업 실험, 디스크 포맷 변경, 컨테이너 테스트 같은 자잘한 요구가 계속 생깁니다. 여기서부터 Proxmox VE가 조금씩 눈에 들어오기 시작했습니다. 쉽게 말해, ESXi는 깔끔하고 단단한 느낌이고, Proxmox VE는 좀 더 만지작거리기 좋은 실험실 스타일에 가깝습니다.

    • 웹 UI(Web User Interface, 웹 관리 화면)에서 VM과 컨테이너를 함께 관리할 수 있었습니다.
    • KVM(Kernel-based Virtual Machine, 리눅스 커널 기반 가상화)과 LXC를 같이 쓰는 구조가 홈랩에 잘 맞았습니다.
    • 스토리지 선택 폭이 넓어서 로컬 디스크, ZFS, NFS 같은 구성이 자연스러웠습니다.
    • 백업과 복원 흐름을 제가 원하는 방식으로 잡기 편했습니다.

    반대로, “무조건 Proxmox VE가 더 좋다”는 아닙니다. 기업 운영 기준으로 보면 VMware ESXi가 익숙한 팀도 많고, 기존 운영 절차와 잘 맞는 경우도 많습니다. 다만 홈랩이라면 이야기가 좀 달라집니다. 직접 만져보고 부숴보고 다시 올리는 과정이 잦기 때문에, 제 기준에서는 Proxmox VE 쪽이 손에 더 잘 붙었습니다.

    Proxmox VE와 VMware ESXi, 개념부터 쉽게 정리

    저도 처음엔 이게 뭔가 싶었는데, 막상 구조를 풀어보면 어렵지 않습니다. 쉽게 말해 두 제품 모두 “하드웨어 위에서 여러 운영체제를 동시에 돌리게 해주는 플랫폼”입니다. 다만 접근 방식이 조금 다릅니다.

    항목 VMware ESXi Proxmox VE
    기반 구조 전용 하이퍼바이저 중심 Debian 기반에 KVM/LXC 통합
    관리 감성 정돈된 기업형 유연한 홈랩형
    컨테이너 운영 별도 접근 필요 LXC를 기본 흐름 안에서 운영 가능
    스토리지 실험 보수적으로 운영하는 편 ZFS, 디렉터리, 네트워크 스토리지 연동이 편한 편
    학습 난이도 UI는 익숙하지만 생태계 의존이 있음 리눅스 감각이 있으면 확장성이 좋음

    여기서 중요한 포인트! Proxmox VE 마이그레이션은 단순히 하이퍼바이저를 갈아타는 작업이 아닙니다. 네트워크 구조, 백업 전략, 디스크 포맷, 운영 습관까지 같이 바뀝니다. 그래서 “성능이 더 좋냐”만 보면 판단이 틀어질 수 있습니다. 제가 직접 해보니, 체감 만족도는 성능보다도 운영 동선이 내 손에 맞느냐에서 갈리더라고요.

    마이그레이션 전에 꼭 점검한 것들

    실전 들어가기 전에 저는 체크리스트부터 만들었습니다. 이걸 안 하면 높은 확률로 중간에 멈춥니다. 특히 홈랩은 문서화가 느슨해서, 막상 옮기려 하면 “이 VM이 무슨 용도였지?”가 꼭 나오거든요.

    1. VM 인벤토리 정리: 어떤 VM이 항상 켜져 있어야 하는지, 테스트용인지, 폐기 가능한지 구분했습니다.
    2. 스토리지 구조 확인: VMDK(Virtual Machine Disk, VMware 디스크 포맷) 기준인지, 별도 NAS에 의존하는지 확인했습니다.
    3. 네트워크 의존성 파악: VLAN(Virtual LAN, 가상 분리 네트워크), 브리지, 고정 IP, 방화벽 규칙을 적어뒀습니다.
    4. 백업 선행: 마이그레이션 전에 무조건 백업부터 했습니다. 이건 진짜 중요합니다.
    5. 다운타임 허용 범위 확인: 홈 어시스턴트(Home Assistant), DNS, 리버스 프록시(Reverse Proxy, 역방향 프록시)처럼 끊기면 집안 전체가 불편한 서비스는 우선순위를 따로 잡았습니다.

    제 경우에는 특히 DNS와 리버스 프록시가 문제였습니다. 이 둘이 내려가면 나머지 서비스가 멀쩡해도 다 죽은 것처럼 보이거든요. 그래서 핵심 인프라 VM부터 옮기지 않고, 덜 중요한 워크로드부터 시험 이전을 했습니다. 이게 나중에 정신 건강에 정말 좋았습니다.

    실전: Proxmox VE 마이그레이션 진행 순서

    이제 본론입니다. 아래 순서는 제가 실제로 홈랩에서 썼던 흐름을 정리한 겁니다. 환경마다 조금 다르겠지만, 큰 틀은 비슷합니다.

    1. Proxmox VE 설치 후 기본 상태 확인

    설치 직후에는 무조건 현재 상태부터 확인했습니다. 특히 네트워크와 저장소가 정상인지 먼저 봐야 합니다.

    pveversion
    ip a
    pvesm status
    qm list
    pct list

    위 명령은 각각 버전 확인, 네트워크 인터페이스 확인, 스토리지 상태 확인, VM 목록, LXC 목록 확인입니다. 처음엔 별거 아닌 것 같았는데, 실제로 써보니까 여기서 꼬이면 뒤가 다 꼬이더라고요.

    2. 브리지 네트워크 구성 점검

    ESXi에서 vSwitch(가상 스위치) 개념에 익숙하셨다면, Proxmox VE에서는 Linux Bridge(리눅스 브리지) 설정을 먼저 이해하셔야 합니다. 저도 처음엔 이름만 다르고 비슷하겠지 했는데, 브리지에 IP를 어디에 붙이는지에서 잠깐 멈췄습니다.

    auto lo
    iface lo inet loopback
    
    auto eno1
    iface eno1 inet manual
    
    auto vmbr0
    iface vmbr0 inet static
        address 192.168.10.20/24
        gateway 192.168.10.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

    핵심은 물리 NIC(Network Interface Card, 네트워크 인터페이스)는 보통 manual로 두고, 실제 IP는 브리지에 붙인다는 점입니다. 이 구조를 이해하면 VM NIC 연결이 훨씬 명확해집니다.

    Proxmox VE 마이그레이션 중 브리지 네트워크와 스토리지 구성 예시 이미지

    Proxmox VE 관리 화면에서 브리지 네트워크와 스토리지 상태를 함께 보여주는 설정 예시 이미지입니다.

    3. VMware 디스크를 옮기고 VM 재구성

    가장 신경 썼던 구간입니다. VMware ESXi에서 내보낸 디스크를 Proxmox VE 쪽에서 받아서 붙이는 흐름이죠. 제 경우에는 일부 VM은 새로 만들고 디스크만 붙였고, 일부는 애플리케이션 레벨에서 재설치했습니다. 후자가 귀찮긴 한데, 결과적으로 더 깔끔한 경우도 있었습니다.

    qemu-img info source-disk.vmdk
    qemu-img convert -f vmdk -O qcow2 source-disk.vmdk vm-100-disk-0.qcow2

    그 다음 Proxmox VE에서 VM을 만들고 디스크를 연결했습니다. 여기서 CPU 타입, BIOS/UEFI, 디스크 버스 종류가 맞지 않으면 부팅이 안 될 수 있습니다. 저도 처음엔 이 부분에서 “왜 안 켜지지?” 하다가 한참 봤네요.

    qm create 100 --name ubuntu-test --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0
    qm importdisk 100 vm-100-disk-0.qcow2 local-lvm
    qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-100-disk-0
    qm set 100 --boot order=scsi0

    여기서 중요한 건 가져오기보다 검증입니다. VM이 켜진다고 끝이 아니고, 서비스가 정상 기동하는지, 네트워크 라우팅이 맞는지, 시간 동기화가 되는지까지 봐야 합니다.

    4. 백업 정책 다시 설계

    마이그레이션하면서 오히려 가장 만족했던 부분이 백업입니다. 예전에는 “일단 돌아가니까 됐지”였는데, Proxmox VE로 옮긴 뒤에는 스냅샷(Snapshot, 시점 복사)과 백업 작업을 좀 더 의식적으로 관리하게 됐습니다.

    vzdump 100 --mode snapshot --storage backup-nfs --compress zstd
    vzdump 101 --mode snapshot --storage backup-nfs --compress zstd

    백업 이름 규칙과 보관 정책을 정리해두니 복원 테스트가 쉬워졌습니다. 홈랩에서 진짜 중요한 건 백업 “존재”보다도 복원이 실제로 되는지 확인하는 습관이더라고요.

    ⚠️ 실제로 겪었던 문제와 해결 과정

    이 섹션이 아마 제일 현실적일 겁니다. Proxmox VE 마이그레이션 자체는 어렵지 않은데, 중간중간 사소한 함정이 있습니다.

    네트워크 인터페이스 이름이 달라져서 부팅은 되는데 통신이 안 됨

    이거 진짜 흔합니다. ESXi에서 쓰던 VM을 옮기면 게스트 OS 안에서 NIC 이름이 바뀌는 경우가 있거든요. 예를 들어 `ens160`으로 잡히던 게 `ens18`처럼 바뀌면, OS는 켜졌는데 네트워크가 죽어 있습니다.

    해결은 단순했습니다. 게스트 OS 안에서 인터페이스 이름을 다시 확인하고, Netplan(넷플랜, 네트워크 설정 도구)이나 기존 네트워크 스크립트를 수정했습니다.

    ip a
    ip route
    ping -c 4 192.168.10.1

    디스크는 붙었는데 부팅 로더가 꼬임

    특히 오래된 VM일수록 BIOS/UEFI 설정 차이 때문에 부팅이 안 되는 경우가 있었습니다. 처음엔 디스크 손상인 줄 알고 식겁했는데, 실제로는 부팅 모드가 안 맞는 경우가 있더라고요. 이럴 때는 VM 하드웨어 옵션을 다시 보고, 디스크 버스나 부트 순서를 조정해보면 해결되는 경우가 많았습니다.

    성능 문제라기보다 스토리지 설계 문제였음

    처음엔 “Proxmox VE가 느린가?” 싶었던 순간이 있었는데, 나중에 보니 스토리지 캐시와 디스크 배치 이슈였습니다. 결국 하이퍼바이저보다도 디스크 I/O(Input/Output, 입출력) 설계가 체감 성능을 더 크게 좌우하더라고요. 이건 ESXi든 Proxmox VE든 비슷합니다.

    • 자주 쓰는 VM은 빠른 스토리지에 배치했습니다.
    • 백업 저장소는 운영 디스크와 분리했습니다.
    • 로그와 모니터링을 통해 병목이 CPU인지 디스크인지 먼저 확인했습니다.

    삽질 좀 했습니다 ㅎㅎ 그런데 이 과정을 거치고 나니까, 단순 제품 비교보다 내 홈랩 설계가 얼마나 정리돼 있는지를 더 많이 보게 되더라고요.

    Proxmox VE 마이그레이션 과정의 VM 디스크 변환과 문제 해결 흐름 이미지

    VMDK 변환, VM 재등록, 네트워크 점검까지 이어지는 실제 마이그레이션 작업 흐름을 시각화한 이미지입니다.

    1년 써보니 체감한 결과

    1년 정도 지나고 나서 보니, 저는 결국 Proxmox VE 환경에 완전히 적응했습니다. 오히려 다시 VMware ESXi로 돌아가라고 하면 좀 답답할 것 같더라고요. 이유는 성능 숫자 하나 때문이 아니라, 운영의 유연성 때문입니다.

    • VM과 LXC를 같이 다루는 흐름이 홈랩에 잘 맞았습니다.
    • 웹 UI와 CLI(Command Line Interface, 명령줄 인터페이스)를 오가며 관리하기 편했습니다.
    • 백업과 복원 테스트를 더 자주 하게 됐습니다.
    • 실험 환경 분리가 쉬워져서 새로운 서비스를 올리는 부담이 줄었습니다.

    특히 Kubernetes 노드 테스트, 리버스 프록시 교체, 모니터링 재구성 같은 작업이 훨씬 가벼워졌습니다. “망가지면 다시 만들면 되지”라는 감각이 생기니까, 홈랩이 훨씬 재미있어졌어요. 이건 숫자로 표현하기 어려운 장점이더라고요.

    물론 단점도 있습니다. 리눅스 기반이라서, ESXi 특유의 일체형 경험에 익숙한 분은 초반에 거부감이 있을 수 있습니다. 그리고 잘 모르는 상태에서 너무 많은 걸 한 번에 바꾸면 오히려 운영 난이도가 올라갑니다. 그래서 제 추천은 간단합니다. 한 번에 전체 이전하지 말고, 낮은 중요도의 VM부터 옮겨보세요.

    Proxmox VE 마이그레이션 1년 운영 결과와 안정화 상태를 보여주는 이미지

    가동 중인 VM과 컨테이너, 백업 상태, 스토리지 사용량이 안정적으로 보이는 운영 결과 이미지입니다.

    가상화 비교 관점에서 정리한 선택 기준

    독자분들이 제일 궁금해하실 부분이라 따로 정리해보겠습니다. 결국 중요한 건 “무엇이 더 우월하냐”가 아니라 “내 환경에 무엇이 더 맞느냐”입니다.

    이런 분께 추천 더 잘 맞는 방향 이유
    기업형 워크플로에 익숙함 VMware ESXi 유지 검토 기존 운영 습관과 절차가 익숙할 수 있음
    홈랩에서 실험을 자주 함 Proxmox VE 고려 VM/LXC 혼합 운영과 유연한 설정이 편함
    리눅스 CLI에 익숙함 Proxmox VE 유리 문제 분석과 확장이 자연스러움
    최소 변경을 선호함 현 환경 유지 마이그레이션 자체가 리스크이기 때문

    제가 직접 해보니, Proxmox VE 마이그레이션은 “최신이라서” 혹은 “남들이 많이 하니까”가 아니라, 내 홈랩 운영 방식과 맞아떨어질 때 가장 만족도가 높았습니다. 저처럼 NAS, DNS, 프록시, 개발용 VM, 테스트용 컨테이너를 뒤섞어 쓰는 분이면 특히 체감이 클 수 있습니다.

    자주 묻는 질문

    Q1. 기존 VMware ESXi VM을 전부 그대로 옮겨야 할까요?

    꼭 그렇지는 않습니다. 애플리케이션 구성이 단순한 서비스는 새로 만들고 데이터만 옮기는 편이 더 깔끔할 때도 많습니다. 오래된 VM일수록 찌꺼기가 많아서, 오히려 재구성이 관리에 도움이 됩니다.

    Q2. Proxmox VE 마이그레이션 후 바로 체감할 만한 장점이 있나요?

    홈랩 기준으로는 관리 편의성과 실험 자유도가 가장 먼저 느껴집니다. 성능보다도 운영 동선이 가벼워지는 느낌이 큽니다.

    Q3. 초보자도 괜찮을까요?

    가능은 합니다. 다만 네트워크 브리지와 스토리지 개념은 꼭 먼저 잡고 들어가시는 게 좋습니다. 저도 처음엔 헷갈렸는데, 이 두 가지만 이해하면 진입 장벽이 확 낮아집니다.

    VMware ESXi와 Proxmox VE의 가상화 비교 요약 이미지

    홈랩 사용자의 관점에서 ESXi와 Proxmox VE의 차이를 한눈에 요약한 비교 이미지입니다.

    마무리: 1년 후에도 유지한 이유

    정리해보면 이렇습니다. VMware ESXi는 여전히 좋은 플랫폼입니다. 다만 제 홈랩에서는 Proxmox VE가 더 손에 맞았습니다. 직접 써보니 “관리”, “실험”, “복원”, “재구성” 이 네 가지 흐름이 훨씬 자연스러웠거든요. 드디어 됐다! 싶었던 순간이 백업 복원 테스트까지 매끄럽게 끝났을 때였습니다.

    혹시 지금 Proxmox VE 마이그레이션을 고민 중이시라면, 한 번에 다 옮기지 마시고 덜 중요한 VM 하나만 먼저 이전해보세요. 그 과정에서 네트워크, 스토리지, 백업 철학이 같이 정리됩니다. 그게 진짜 핵심입니다. 다음 글에서는 홈랩 기준으로 Proxmox Backup Server를 어떻게 붙여서 백업 전략을 단순화했는지 다뤄볼 예정입니다. 이전 글에서 다뤘던 홈 네트워크 분리 구성과 함께 보시면 더 이해가 잘 되실 겁니다.

    결국 가상화 비교의 답은 제품 소개 페이지에 있는 게 아니라, 내가 1년 뒤에도 불편 없이 계속 쓸 수 있느냐에 있더라고요. 제 경우 그 답은 Proxmox VE였습니다.

  • [OpenStack] MicroStack 1년 사용 후기: 홈랩에서 프로덕션까지

    [OpenStack] MicroStack 1년 사용 후기: 홈랩에서 프로덕션까지

    [인프라] MicroStack 사용 후기: 홈랩에서 프로덕션까지

    MicroStack 사용 후기를 찾는 분들은 대체로 비슷한 고민을 하시더라고요. “홈랩에서 OpenStack(오픈스택, 오픈소스 IaaS 클라우드 플랫폼) 감 잡기엔 너무 무겁지 않나?”, “경량 OpenStack이라고는 하는데 실제로 운영 가능한 수준일까?” 같은 질문 말입니다. 저도 딱 그랬어요. 처음엔 단순히 집에서 VM 몇 개 올려보려고 시작했는데, 실제로 써보니까 홈랩 클라우드 관점에서는 꽤 매력적이고, 반대로 MicroStack 프로덕션 관점에서는 선명한 한계도 있더라고요. 오늘은 제가 1년 정도 굴리면서 느낀 현실적인 장단점을 정리해보겠습니다.

    특히 이 글은 홍보성 사용기가 아니라, 설치할 때 뭐가 편했고 어디서 삽질했는지, 그리고 어떤 환경까지는 추천하고 어디부터는 말리고 싶은지에 초점을 맞췄어요. 혹시 지금 OpenStack MicroStack 도입을 고민 중이시라면, 시간을 꽤 아끼실 수 있을 겁니다.

    MicroStack 사용 후기용 홈랩 클라우드 전체 아키텍처 이미지

    MicroStack이 컨트롤 플레인과 컴퓨트 역할을 어떻게 묶어서 운영하는지 한눈에 보여주는 개요 이미지입니다.

    MicroStack이 뭔가요? 쉽게 말해 “작게 시작하는 OpenStack”입니다

    쉽게 말해 MicroStack은 OpenStack을 더 간단하게 설치하고 빠르게 실험할 수 있게 다듬은 배포 형태라고 보면 돼요. OpenStack 자체는 Nova(노바, 컴퓨트), Neutron(뉴트론, 네트워크), Cinder(신더, 블록 스토리지), Keystone(키스톤, 인증) 같은 구성요소가 많아서, 처음 접하면 머리가 좀 아픕니다. 저도 처음엔 “이걸 집에서 왜 하고 있지?” 싶었거든요.

    근데 경량 OpenStack인 MicroStack은 이 진입장벽을 확실히 낮춰줍니다. 특히 홈랩에서 OpenStack의 구조를 익히거나, API 기반 인프라 운영 감각을 익히기엔 상당히 괜찮더라고요. 한 대 또는 소규모 노드에서 빠르게 올려보고, 네트워크와 이미지, 플래버(Flavor, 가상머신 사양 템플릿), 보안 그룹(Security Group, 방화벽 정책)을 직접 만져볼 수 있다는 게 매력이에요.

    중요한 포인트는 이겁니다. MicroStack은 “OpenStack을 배운다”는 목적에는 굉장히 좋지만, 대규모 멀티노드 운영을 곧바로 대체해주는 마법 상자는 아닙니다. 여기서 기대치를 잘 맞추면 만족도가 높고, 기대치를 잘못 잡으면 금방 실망하게 돼요.

    제가 1년 써보면서 느낀 MicroStack 사용 후기 핵심 요약

    항목 좋았던 점 아쉬웠던 점
    설치 난이도 경량 OpenStack 치고는 진입이 확실히 쉬워요 환경마다 네트워크 초기 설정은 여전히 까다로워요
    학습 효과 실제 OpenStack 개념을 익히기 정말 좋습니다 단순 가상화만 원하면 오히려 과할 수 있어요
    홈랩 적합성 테스트, 자동화, API 실습에 잘 맞아요 자원이 넉넉하지 않으면 금방 답답해져요
    운영 편의성 구성 요소를 비교적 빠르게 확인할 수 있어요 장애 분석은 결국 OpenStack 지식이 필요해요
    프로덕션 적합성 소규모 검증, 사내 PoC엔 의미가 있어요 중요 서비스 운영은 설계와 검증이 훨씬 더 필요해요

    한 줄로 요약하면 이렇습니다. 경량 OpenStack 입문과 실험에는 좋고, 운영 난이도까지 가벼운 건 아니에요. 이 차이를 이해하시면 실패 확률이 많이 줄어들어요.

    홈랩 클라우드에서 MicroStack을 올릴 때 제가 잡았던 기준

    제가 처음부터 거창하게 시작한 건 아니었어요. 목표는 세 가지였습니다.

    1. VM을 API로 만들고 지우는 흐름을 익칠 것
    2. 가상 네트워크와 보안 그룹을 직접 다뤄볼 것
    3. 나중에 Ansible(앤서블, 자동화 도구)이나 Terraform(테라폼, IaC 도구)과 붙여볼 것

    이 기준으로 보니 MicroStack이 딱 중간 지점이더라고요. Proxmox(프록스목스)처럼 가볍게 VM만 다루는 맛과는 다르고, 그렇다고 풀스택 OpenStack 구축처럼 초반 비용이 너무 크지도 않았어요. 특히 “클라우드처럼 운영해보고 싶다”는 감각을 주는 건 확실했습니다.

    반면, 스토리지 고가용성(HA, High Availability), 네트워크 이중화, 장애 도메인 분리까지 바로 요구하는 환경이라면 시작부터 접근을 다르게 해야 해요. 홈랩 클라우드와 실제 서비스 인프라는 닮았지만 같지는 않거든요. 저도 이 부분을 중간에 뼈저리게 느꼈어요.

    실전 구현: MicroStack 기본 설치와 초기 확인

    여기서는 가장 단순한 실험 흐름 위주로 적어볼게요. 릴리스에 따라 초기화 방식이나 일부 명령은 달라질 수 있으니, 큰 흐름을 보시면 됩니다. 제가 썼던 초반 구성은 단일 노드 중심이었고, 이후 네트워크와 이미지 관리 쪽을 반복적으로 손봤어요.

    1. 운영체제와 가상화 지원 상태를 먼저 확인합니다
    2. MicroStack 패키지를 설치합니다
    3. 초기화 후 서비스가 정상 기동했는지 확인합니다
    4. OpenStack CLI로 네트워크, 이미지, 인스턴스를 점검합니다
    sudo snap install microstack --classic
    sudo microstack init --auto
    

    처음엔 이게 뭔가 싶었는데, 설치 자체는 정말 빠르게 진행됐어요. 예전처럼 컴포넌트 하나씩 맞물리는 걸 손으로 다 잡는 느낌은 아니었어요. 그래서 “오, 이거 진짜 편하더라고요”라는 생각이 바로 들었습니다.

    sudo microstack.openstack service list
    sudo microstack.openstack network list
    sudo microstack.openstack image list
    sudo microstack.openstack flavor list
    

    여기서 중요한 건 설치 성공 메시지보다 실제 서비스 목록과 네트워크 상태를 보는 거에요. 설치가 끝났다고 다 끝난 게 아니거든요. 특히 Neutron(뉴트론, 네트워크 서비스) 관련 구성이 꼬이면 인스턴스는 떠도 외부 통신이 안 되는 경우가 생깁니다.

    OpenStack MicroStack 설치 후 서비스와 네트워크를 점검하는 화면 이미지

    초기 설치 후 서비스 상태, 네트워크 목록, 이미지 목록을 확인하는 장면을 표현한 이미지입니다.

    테스트용 인스턴스를 만들 때는 이미지와 키페어(Key Pair, SSH 접속용 키)를 준비한 뒤, 작은 플래버로 먼저 올려보는 걸 추천드립니다.

    openstack keypair create --public-key ~/.ssh/id_rsa.pub homelab-key
    openstack server create \
      --image ubuntu \
      --flavor m1.small \
      --network private \
      --key-name homelab-key \
      test-vm
    

    이 단계에서 제가 제일 많이 확인한 건 두 가지였어요. 하나는 DHCP(동적 IP 할당)가 정상 동작하는지, 다른 하나는 Security Group 규칙이 너무 빡빡하지 않은지였거든요. VM은 떠 있는데 접속이 안 되면 대개 여기 둘 중 하나였습니다.

    네트워크 구성에서 삽질했던 부분과 현실적인 팁

    솔직히 MicroStack 사용 후기에서 제일 중요한 건 설치가 아니라 네트워크에요. 설치는 금방 되는데, 네트워크가 예상과 다르게 흘러가면 시간이 순식간에 녹습니다. 저도 처음엔 브리지(Bridge, 가상 스위치 연결)와 외부 네트워크 매핑 개념이 머리에 잘 안 들어오더라고요.

    • 관리 네트워크와 외부 네트워크를 머릿속에서 분리해야 해요
    • 보안 그룹 규칙은 초반에 SSH와 ICMP부터 열어두는 게 디버깅이 쉬워요
    • 고정 IP(Floating IP, 외부 노출용 IP) 흐름을 미리 이해하면 덜 헤맵니다
    • DNS와 라우팅 문제는 VM 내부와 호스트 양쪽에서 같이 봐야 해요
    openstack security group rule create --proto tcp --dst-port 22 default
    openstack security group rule create --proto icmp default
    openstack floating ip create public
    openstack server add floating ip test-vm 203.0.113.10
    

    위 예시는 흐름 설명용이에요. 실제 IP 풀과 외부 네트워크 이름은 환경마다 달라요. 제가 실제로 써보니까, 핑이 안 간다고 바로 인스턴스를 의심하면 안 되더라고요. 호스트 NIC 설정, 브리지 연결, 업스트림 라우터 정책이 더 근본 원인인 경우가 많았습니다.

    ⚠️ 트러블슈팅: 1년 동안 자주 만난 문제들

    첫 번째, 리소스가 생각보다 빨리 부족해져요. 경량 OpenStack이라고 해도 OpenStack은 OpenStack이거든요. 메모리와 스토리지가 넉넉하지 않으면 서비스는 떠 있어도 체감이 무거워져요. 특히 이미지 캐시와 볼륨을 이것저것 만지다 보면 디스크 사용량이 꽤 빨리 올라갑니다.

    두 번째, 로그를 보기 전까지는 원인을 짐작만 하게 돼요. 이건 OpenStack 계열 공통이죠. 대시보드에서 안 보이는 문제가 CLI나 로그에서는 바로 드러날 때가 많았어요. 그래서 저는 장애가 나면 무조건 서비스 상태, 네트워크, 인스턴스 콘솔 로그 순서로 봤습니다.

    openstack server list
    openstack server show test-vm
    openstack console log show test-vm
    journalctl -u snap.microstack.* --no-pager
    

    세 번째, 업데이트 전 확인이 중요해요. 홈랩이라 가볍게 업데이트했다가 네트워크 동작이 바뀌거나 의존성이 어색해지는 경험, 한 번쯤 하시죠? 저도 했었어요. 드디어 됐다 싶어서 스냅 업데이트를 올렸는데, 다음날 테스트 VM 연결이 달라져서 한참 봤거든요. 그래서 이후엔 스냅샷이나 설정 백업 없이 먼저 올리지 않게 됐습니다.

    여기서 중요한 포인트! MicroStack 프로덕션을 고민하신다면, 장애 대응 문서화와 복구 절차 테스트를 먼저 해보셔야 해요. 설치가 간단한 것과 운영 리스크가 낮은 것은 전혀 다른 얘기거든요.

    MicroStack 사용 후기에서 다루는 네트워크 장애 분석 이미지

    접속 불가 문제를 추적하면서 로그와 네트워크 경로를 함께 보는 실제 운영 느낌의 이미지입니다.

    검증과 결과: 홈랩 클라우드로는 만족, 프로덕션은 조건부

    1년 정도 돌려보면서 얻은 결론은 꽤 명확해요. OpenStack MicroStack은 학습, 검증, 자동화 실험에는 아주 좋았습니다. Terraform으로 인스턴스를 반복 생성해보거나, 내부 개발용 테스트 환경을 API 중심으로 굴려보는 데 특히 좋았어요. “가상머신 몇 개를 띄운다”를 넘어서, “클라우드 운영 방식으로 자원을 다룬다”는 감각을 익히는 데 정말 도움이 많이 됐습니다.

    반대로, 여러 팀이 동시에 쓰는 핵심 서비스 운영 플랫폼으로 보자면 질문이 많아져요. 장애 격리, 스토리지 안정성, 네트워크 설계, 백업 전략, 모니터링 체계까지 하나씩 검증해야 하거든요. 여기서는 MicroStack 자체의 편의성보다 OpenStack 운영 역량이 더 중요해져요.

    • ✅ 홈랩 학습용: 추천
    • ✅ 사내 PoC 및 개념 검증: 조건부 추천
    • ✅ API 자동화 연습: 추천
    • ⚠️ 핵심 업무 시스템 운영: 충분한 설계와 검증 전제
    • ⚠️ 단순 VM 호스팅만 필요: 다른 선택지가 더 단순할 수 있어요
    openstack hypervisor list
    openstack compute service list
    openstack network agent list
    openstack volume service list
    

    이런 식으로 각 서비스 상태를 점검하면서 운영 감각을 익히는 데는 꽤 좋았어요. 특히 제가 얻은 가장 큰 수확은 “클라우드는 결국 API와 네트워크, 그리고 운영 절차의 합”이라는 걸 몸으로 배운 점이었습니다.

    테스트 인스턴스가 정상 동작하고 서비스가 모두 올라온 상태를 시각적으로 보여주는 이미지입니다.

    MicroStack과 다른 선택지, 누구에게 맞을까요?

    선택지 잘 맞는 경우 덜 맞는 경우
    MicroStack 경량 OpenStack 학습, 홈랩 클라우드, API 실습 아주 단순한 개인 VM 호스팅만 필요한 경우
    Proxmox VE 가볍고 빠른 가상화 운영, 홈서버 편의성 OpenStack 구조 자체를 배우고 싶은 경우
    풀 OpenStack 배포 본격적인 멀티노드 운영과 세밀한 제어 처음 입문하거나 빠른 실험이 필요한 경우

    저도 처음엔 “그냥 익숙한 가상화 플랫폼 쓰면 되지 않나?” 싶었는데, 목적이 다르더라고요. MicroStack은 결과만 놓고 보면 더 복잡할 수 있어요. 대신 과정에서 배우는 게 많습니다. 이 차이가 꽤 커요.

    정리: MicroStack 사용 후기, 이런 분께는 추천합니다

    정리해보면, 제가 느낀 MicroStack 사용 후기는 꽤 현실적이에요. 배우기엔 좋고, 가볍게 시작하기도 좋지만, 운영이 쉬운 건 아니에요. 그래도 홈랩에서 OpenStack을 만져보고 싶은 분께는 분명히 가치가 있습니다. 특히 네트워크와 클라우드 자원 모델을 손으로 익히고 싶은 분께요.

    • 홈랩에서 경량 OpenStack 구조를 직접 배우고 싶은 분
    • Ansible, Terraform 같은 자동화 도구와 연결해보고 싶은 분
    • 향후 정식 OpenStack 환경을 다루기 전에 감을 잡고 싶은 분
    • 단순 VM 생성이 아니라 IaaS 운영 모델을 이해하고 싶은 분

    반대로, 빠르고 단순한 가상화만 원하시면 다른 플랫폼이 더 행복할 수 있어요. 이건 진짜입니다. 기술 선택은 멋보다 목적이거든요.

    다음 글에서는 보안 그룹(Security Group)과 플로팅 IP(Floating IP) 설정을 중심으로, 외부 접속이 왜 자꾸 막히는지 조금 더 깊게 다뤄볼 예정입니다. 이전 글에서 다뤘던 홈랩 스토리지 구성 글과 같이 보시면 흐름이 더 잘 이어질 겁니다.

    MicroStack 사용 후기 장단점과 추천 대상을 정리한 요약 이미지

    홈랩, 학습, PoC, 프로덕션 관점에서 장단점을 빠르게 비교할 수 있는 요약 이미지입니다.

    자주 묻는 질문

    Q. MicroStack은 초보자가 바로 시작해도 될까요?

    A. 가능해요. 다만 리눅스 기본기와 네트워크 개념이 조금 있으면 훨씬 덜 힘들어요. 저도 처음엔 CLI가 낯설었는데, 하나씩 확인하다 보니 금방 익숙해졌거든요.

    Q. MicroStack 프로덕션 운영도 가능한가요?

    A. 가능 여부보다 중요한 건 운영 요구사항이에요. 고가용성, 백업, 장애 복구, 네트워크 설계를 충분히 검토하지 않으면 운영 부담이 커져요.

    Q. 경량 OpenStack이라고 해서 자원 요구사항도 아주 낮나요?

    A. 체감상 그렇지는 않았어요. 작은 실험은 가능하지만, 인스턴스 수와 서비스가 늘어나면 자원 압박이 금방 생겨요. 그래서 초기 목표를 좁게 잡는 게 좋아요.

    결론적으로, OpenStack MicroStack은 “집에서도 클라우드를 진짜처럼 굴려보고 싶다”는 분께 꽤 괜찮은 출발점이에요. 저처럼 삽질 좀 하더라도 구조를 몸으로 배우고 싶은 분이라면 한 번쯤 해볼 만합니다. 다만 기대치는 현실적으로 잡으세요. 그게 제일 중요해요.

  • [Proxmox] HA 클러스터 구축 및 트러블슈팅: 고가용성 완벽 가이드

    서버 한 대가 죽어도 서비스는 살아있어야 한다

    새벽 2시에 전화 받아본 적 있으신가요? “서비스가 안 된다”는 그 전화. 저는 인프라 엔지니어 생활 초반에 그 경험을 꽤 많이 했습니다. 물리 서버 한 대가 죽으면서 거기서 돌아가던 VM(가상 머신)들이 전부 같이 꺼져버리는 그 상황. 정말 식은땀 나거든요.

    그때부터 고민하기 시작했습니다. “어떻게 하면 서버 한 대가 죽어도 서비스가 자동으로 다른 서버에서 살아날 수 있을까?” 그 답이 바로 Proxmox HA(High Availability, 고가용성) 클러스터입니다.

    오늘은 제가 홈랩에서 직접 구축하면서 겪은 삽질들과 함께, Proxmox HA 클러스터를 처음부터 끝까지 완벽하게 셋업하는 방법을 공유해 드리려고 합니다. 트러블슈팅 경험도 솔직하게 담았으니 끝까지 읽어보시면 분명 도움이 될 거예요.

    ▲ Proxmox HA 클러스터의 전체 구성 아키텍처 — 3노드 구성과 쿼럼(Quorum), 공유 스토리지의 관계를 보여줍니다.

    Proxmox HA가 뭔지 먼저 제대로 알고 가자

    HA(고가용성)의 핵심 개념

    쉽게 말해서, HA는 “어떤 노드(서버)가 죽어도 거기 있던 VM이나 컨테이너가 다른 노드에서 자동으로 다시 켜지는 것”입니다. 사람이 새벽에 일어나서 수동으로 VM을 다른 서버로 옮기지 않아도 되는 거죠.

    Proxmox VE에서 HA를 구현하려면 크게 세 가지가 필요합니다.

    • 클러스터(Cluster): 여러 Proxmox 노드를 하나로 묶는 것. 최소 3개 노드 권장 (쿼럼 때문에 — 아래에서 설명)
    • 쿼럼(Quorum): 클러스터 내 다수결 투표 시스템. 과반수 노드가 살아있어야 클러스터가 정상 동작
    • 공유 스토리지(Shared Storage): 모든 노드가 같은 VM 디스크에 접근할 수 있어야 함 (Ceph, NFS, iSCSI 등)

    왜 노드가 최소 3개여야 할까?

    이게 처음엔 저도 이해가 안 됐었는데요. 노드 2개로 구성하면 한 노드가 죽었을 때 남은 노드가 “내가 살아있고 상대방이 죽은 건지, 아니면 네트워크가 끊겨서 서로 연결이 안 되는 건지” 판단을 못 합니다. 이걸 스플릿 브레인(Split-Brain) 상황이라고 하는데, 이 경우 양쪽 노드가 서로 자기가 주인이라고 착각해서 데이터 충돌이 생길 수 있거든요.

    3개 노드면 2:1로 다수결이 가능하니까 “이 노드가 죽었다”는 판단을 명확하게 할 수 있습니다. 2노드로 구성할 수는 있지만 그러면 QDevice(외부 쿼럼 장치)가 추가로 필요해요.

    구성 최소 생존 노드 장점 단점
    2노드 2개 (QDevice 필요) 비용 절감 QDevice 추가 필요, 관리 복잡
    3노드 2개 쿼럼 자체 해결, 안정적 서버 3대 필요
    5노드 3개 최고 가용성 비용 높음

    Proxmox HA 클러스터 구축 — 단계별 실전 가이드

    사전 준비 사항

    시작하기 전에 체크해야 할 것들이 있습니다. 저도 처음에 이 부분을 건너뛰었다가 나중에 다 뒤집어엎었던 기억이 있어서요. 꼭 확인하세요.

    • ✅ Proxmox VE가 설치된 서버 최소 3대
    • ✅ 모든 노드에서 시간 동기화(NTP) 설정 완료
    • ✅ 모든 노드 간 네트워크 통신 가능 (핑 테스트)
    • ✅ 각 노드의 호스트명이 고유하고 DNS/hosts 파일에 등록됨
    • ✅ 공유 스토리지 준비 (Ceph, NFS, iSCSI 중 선택)

    Step 1: /etc/hosts 파일 설정

    모든 노드에서 서로를 알아볼 수 있도록 hosts 파일을 설정합니다. DNS가 없는 환경이라면 특히 중요해요.

    # 모든 노드에서 동일하게 설정 (/etc/hosts)
    192.168.1.101  pve-node1  pve-node1.local
    192.168.1.102  pve-node2  pve-node2.local
    192.168.1.103  pve-node3  pve-node3.local

    Step 2: 첫 번째 노드에서 클러스터 생성

    pve-node1에서 클러스터를 만들어 줍니다. 클러스터 이름은 나중에 바꾸기 어려우니 신중하게 정하세요.

    # pve-node1에서 실행
    pvecm create my-ha-cluster
    
    # 생성 확인
    pvecm status

    정상적으로 생성되면 이런 출력이 나옵니다.

    Cluster information
    ------------------
    Name:             my-ha-cluster
    Config Version:   1
    Transport:        knet
    Secauth:          on
    
    Quorum information
    ------------------
    Date:             ...
    Quorum provider:  corosync_votequorum
    Nodes:            1
    Node votes:       1
    Expected votes:   1
    Total votes:      1
    Quorum:           1
    Flags:            Quorate

    Step 3: 나머지 노드를 클러스터에 참가시키기

    pve-node2와 pve-node3에서 각각 실행합니다. 여기서 중요한 점은 기존 노드의 IP를 정확히 입력해야 한다는 거예요.

    # pve-node2에서 실행
    pvecm add 192.168.1.101
    
    # 비밀번호 입력 후 참가 완료
    # pve-node3에서도 동일하게 실행
    pvecm add 192.168.1.101

    참가 후 상태 확인:

    pvecm status
    
    # 출력 예시
    Quorum information
    ------------------
    Nodes:            3
    Expected votes:   3
    Total votes:      3
    Quorum:           2  # 이 숫자가 핵심! 과반수

    Step 4: 공유 스토리지 연결 (NFS 예시)

    Proxmox HA가 동작하려면 VM 디스크가 공유 스토리지에 있어야 합니다. 여기서는 NFS를 예시로 들겠습니다. Ceph를 사용하신다면 별도 구성이 필요한데, 이건 나중에 별도 글로 다룰 예정이에요.

    # 모든 노드에서 NFS 마운트 확인
    showmount -e 192.168.1.200
    
    # Proxmox Web UI에서도 추가 가능하지만 CLI로 하면:
    # /etc/pve/storage.cfg에 추가됨 (클러스터 전체 공유)
    pvesm add nfs shared-storage \
      --server 192.168.1.200 \
      --export /mnt/nfs/proxmox \
      --content images,iso,backup

    ▲ Proxmox Web UI의 HA 관리 화면 — HA 그룹 생성과 리소스 등록 과정을 보여줍니다.

    Step 5: HA 그룹(HA Group) 생성

    HA 그룹은 “이 VM들은 이 노드들에서만 돌아야 해”라는 규칙을 정의합니다. Web UI에서도 가능하지만 CLI가 더 직관적이더라고요.

    # HA 그룹 생성
    ha-manager groupadd production \
      --nodes pve-node1:2,pve-node2:1,pve-node3:1 \
      --restricted 0 \
      --nofailback 0
    
    # 그룹 확인
    ha-manager groupconfig production

    여기서 숫자(2, 1, 1)는 우선순위(Priority)입니다. 숫자가 높을수록 해당 노드를 선호해요. 장애 복구 후 원래 노드로 돌아오는 Failback 기능도 설정 가능합니다.

    Step 6: VM을 HA 리소스로 등록

    이제 특정 VM을 HA 관리 대상으로 등록합니다. VM ID가 100번이라고 가정할게요.

    # VM 100번을 HA 리소스로 추가
    ha-manager add vm:100 \
      --group production \
      --max_restart 3 \
      --max_relocate 3
    
    # 등록된 리소스 확인
    ha-manager status
    # 정상 등록 시 출력 예시
    quorum OK
    master pve-node1 (active, Wed Nov  1 10:00:00 2023)
    
    Active HA resources:
    
      vm:100
               Status: started
               Node: pve-node1
               Managed: 1

    🎉 여기까지 오면 기본 HA 설정은 완료입니다! 이제 테스트를 해볼 차례예요.

    HA 동작 테스트 — 실제로 노드를 죽여보자

    페일오버(Failover) 테스트

    이 부분이 진짜 재미있습니다. 직접 노드를 강제로 다운시켜서 VM이 다른 노드로 이동하는지 확인해 보는 거거든요. 물론 프로덕션에서는 절대 이렇게 하시면 안 되고, 테스트 환경에서만요 ㅎㅎ

    # 방법 1: 노드를 maintenance 모드로 전환 (안전한 방법)
    ha-manager crm-command node-maintenance enable
    
    # 방법 2: pve-node1에서 corosync 서비스 강제 중단 (더 극단적인 테스트)
    systemctl stop corosync
    
    # 다른 노드에서 HA 상태 확인
    ha-manager status
    watch -n 2 ha-manager status  # 2초마다 갱신하며 모니터링

    정상적으로 동작한다면 약 1~2분 내에 VM이 다른 노드에서 기동되는 것을 확인할 수 있습니다. 처음에 드디어 이게 됐을 때 저 혼자 “오오…” 했던 기억이 나네요.

    ⚠️ 트러블슈팅: 제가 직접 겪은 문제들

    문제 1: 클러스터 참가 후 쿼럼이 잡히지 않음

    증상: pvecm status에서 Quorate: No가 표시되고, Web UI에서 “cluster not ready – no quorum” 오류가 나오는 경우입니다.

    원인 대부분은 시간 동기화 문제이거나 방화벽이 포트를 막고 있는 경우였습니다.

    # 시간 동기화 확인
    timedatectl status
    
    # NTP 서비스 재시작
    systemctl restart chrony
    # 또는
    systemctl restart systemd-timesyncd
    
    # Corosync가 사용하는 포트 확인 (UDP 5404, 5405)
    ss -lunp | grep corosync
    
    # 방화벽 규칙 확인 (Proxmox는 기본적으로 iptables 사용)
    iptables -L -n | grep 5404

    문제 2: HA 리소스가 계속 “error” 상태

    이거 저도 한참 고생했습니다. VM이 HA로 등록됐는데 상태가 계속 error로 나오는 경우예요.

    # HA Manager 로그 확인
    journalctl -u pve-ha-lrm -f
    journalctl -u pve-ha-crm -f
    
    # VM 상태 강제 리셋
    ha-manager set vm:100 --state started
    
    # HA 서비스 재시작
    systemctl restart pve-ha-crm
    systemctl restart pve-ha-lrm

    제 경우엔 VM 디스크가 공유 스토리지가 아닌 로컬 스토리지에 있어서 발생한 문제였습니다. HA는 반드시 공유 스토리지에 VM 디스크가 있어야 한다는 걸 다시 한번 강조하고 싶네요.

    문제 3: Fencing(펜싱)이 동작하지 않아 VM 이동이 안 됨

    Fencing이란 죽은 노드가 정말 죽었는지 확인하고, 확실하게 “격리”하는 메커니즘입니다. 이게 없으면 Proxmox HA는 안전을 위해 VM을 다른 노드로 이동시키지 않습니다.

    # Fencing 설정 확인
    cat /etc/pve/datacenter.cfg
    
    # 소프트웨어 watchdog 기반 Fencing 설정 예시
    # datacenter.cfg에 추가
    fencing: watchdog-dbus
    
    # watchdog 상태 확인
    ls /dev/watchdog*
    
    # pve-ha-crm이 watchdog을 사용하는지 확인
    journalctl -u pve-ha-crm | grep watchdog

    💡 팁: 홈랩 환경에서 IPMI 같은 하드웨어 펜싱 장치가 없다면, Proxmox의 소프트웨어 watchdog을 사용할 수 있습니다. 다만 프로덕션 환경에서는 하드웨어 펜싱(IPMI, iLO 등)을 강력히 권장합니다.

    문제 4: 클러스터 노드 중 하나가 “UNKNOWN” 상태

    # 클러스터 노드 상태 확인
    pvecm nodes
    
    # Corosync 링크 상태 확인
    corosync-cfgtool -s
    
    # Corosync 설정 파일 확인
    cat /etc/corosync/corosync.conf
    
    # 문제 노드에서 corosync 재시작
    systemctl restart corosync pve-cluster

    ▲ HA 페일오버 테스트 결과 — 노드 장애 발생 후 VM이 다른 노드로 자동 이동된 것을 확인하는 화면입니다.

    HA 클러스터 운영 시 꼭 알아야 할 설정들

    HA 정책 세부 조정

    # VM의 HA 설정 상세 조회
    ha-manager config vm:100
    
    # max_restart: 같은 노드에서 재시작 시도 횟수
    # max_relocate: 다른 노드로 이동 시도 횟수
    ha-manager set vm:100 --max_restart 3 --max_relocate 2
    
    # 특정 VM을 HA에서 제거 (삭제가 아닌 관리 해제)
    ha-manager remove vm:100

    마이그레이션(Migration) 설정

    HA 환경에서 노드 간 VM 이동 시 네트워크 대역폭 제한도 설정할 수 있습니다. 프로덕션에서는 이게 꽤 중요하더라고요.

    # /etc/pve/datacenter.cfg에서 마이그레이션 설정
    migration: secure
    migration_unsecure: 0
    
    # 또는 CLI로
    pvesh set /cluster/options --migration type=secure

    클러스터 전체 상태 모니터링

    # 전체 클러스터 상태 한눈에 보기
    pvecm status
    ha-manager status
    pct list  # 컨테이너 목록
    qm list   # VM 목록
    
    # 실시간 모니터링
    watch -n 5 'pvecm status && echo "---" && ha-manager status'

    Proxmox HA 구축 완료 — 최종 점검 체크리스트

    설정을 모두 마쳤다면 아래 체크리스트로 최종 확인해 보세요.

    ▲ Proxmox HA 클러스터 구축 완료 체크리스트 — 운영 전 반드시 확인해야 할 항목들을 정리한 요약 인포그래픽입니다.

    ✅ 최종 확인 체크리스트

    1. pvecm status에서 Quorate: Yes 확인
    2. 모든 노드가 Web UI 좌측 트리에 표시됨
    3. 공유 스토리지가 모든 노드에서 접근 가능
    4. HA 그룹이 생성되고 VM이 리소스로 등록됨
    5. ha-manager status에서 VM 상태가 started
    6. Fencing 메커니즘 설정 완료
    7. 실제 페일오버 테스트 완료
    8. NTP 시간 동기화 모든 노드에서 정상

    자주 묻는 질문 (FAQ)

    Q. VM이 HA로 등록되면 항상 공유 스토리지에 있어야 하나요?
    A. 네, 맞습니다. 로컬 스토리지에 있는 VM은 다른 노드로 이동할 수 없기 때문에 HA의 의미가 없습니다. 반드시 공유 스토리지(NFS, Ceph, iSCSI 등)에 VM 디스크를 두어야 합니다.

    Q. Proxmox HA와 일반 Live Migration의 차이는 뭔가요?
    A. Live Migration은 관리자가 수동으로 VM을 다른 노드로 옮기는 것이고, HA Failover는 노드 장애 시 자동으로 VM을 다른 노드에서 재시작하는 것입니다. 라이브 마이그레이션은 무중단이지만, HA 페일오버는 VM이 재시작되는 시간만큼의 다운타임이 발생합니다.

    Q. 2노드 구성으로도 HA를 쓸 수 있나요?
    A. 가능하지만 QDevice(쿼럼 장치)가 추가로 필요합니다. Raspberry Pi 같은 소형 장치에 corosync-qnetd를 설치해서 쿼럼 역할을 맡길 수 있습니다.

    마무리: 서버실에서 배운 것

    Proxmox HA 클러스터를 처음 구축했을 때, 노드 하나를 강제로 죽이고 VM이 다른 노드에서 자동으로 살아나는 걸 보면서 진짜 뿌듯했습니다. 13년 동안 인프라 일하면서 이런 순간들이 있거든요. 기술이 의도한 대로 딱 작동하는 그 순간.

    물론 처음엔 쿼럼 개념도 헷갈리고, 펜싱 설정 때문에 VM이 안 옮겨가서 한참 삽질도 했습니다. 하지만 그 과정을 통해서 HA의 원리를 제대로 이해하게 된 것 같아요.

    핵심을 정리하면:

    • 최소 3노드로 구성해서 쿼럼을 확보하세요
    • VM 디스크는 반드시 공유 스토리지에
    • Fencing 설정을 빠뜨리지 마세요 — 없으면 HA가 안전 때문에 동작을 안 합니다
    • 설정 후 반드시 실제 페일오버 테스트를 해보세요

    다음 글에서는 Proxmox에서 Ceph 분산 스토리지를 구축하는 방법을 다룰 예정입니다. 공유 스토리지로 외부 NAS 없이 Proxmox 노드들 자체로 고가용성 스토리지를 만드는 내용인데요, HA와 함께 쓰면 정말 강력한 홈랩 환경이 만들어집니다. 기대해 주세요!

    질문이나 다른 삽질 경험 있으신 분들은 댓글로 공유해 주세요. 저도 아직 배우는 중이라 같이 이야기 나눠보면 좋을 것 같습니다 😊

  • [Proxmox] Proxmox VE 설치 후 필수 초기 설정: 8단계 완벽 가이드

    Proxmox VE 설치, 그 다음이 진짜 시작입니다

    Proxmox VE를 처음 설치하고 나서 웹 UI에 접속했을 때 느낌, 기억하시나요? 저는 처음에 “오, 뭔가 있어 보이는데?” 하면서 신나게 로그인했다가… 뭘 해야 할지 몰라서 한참 멍하니 화면만 바라봤었거든요. ㅎㅎ

    사실 Proxmox VE 설치 자체는 그렇게 어렵지 않아요. ISO 받아서 부팅하고, 몇 가지 옵션 선택하면 끝이니까요. 근데 설치 직후 초기 설정을 제대로 안 하면 나중에 진짜 고생합니다. 보안 구멍이 생기거나, 업데이트가 안 되거나, 스토리지 설정이 엉켜서 VM 하나 만들 때마다 삽질하게 되거든요.

    13년 동안 인프라 엔지니어로 일하면서, 그리고 집에서 홈랩을 운영하면서 겪은 경험을 바탕으로 Proxmox VE 설치 후 반드시 해야 할 필수 초기 설정을 정리해봤습니다. 초보자분들도 따라할 수 있도록 최대한 쉽게 설명할게요.

    ▲ Proxmox VE 설치 후 초기 설정 전체 흐름 — 순서대로 따라가면 됩니다


    Proxmox VE가 뭔지 잠깐만요 — 처음 들어보시는 분을 위해

    혹시 Proxmox VE가 처음이신 분도 계실 것 같아서 간단히 설명하고 넘어갈게요.

    Proxmox VE(Virtual Environment)는 오픈소스 기반의 하이퍼바이저(Hypervisor, 가상화 플랫폼)입니다. 쉽게 말해, 컴퓨터 한 대 위에서 여러 개의 가상 컴퓨터(VM)를 돌릴 수 있게 해주는 소프트웨어예요. VMware ESXi와 비슷한 역할을 하는데, 무료에 웹 UI가 꽤 잘 만들어져 있어서 홈랩이나 소규모 인프라에서 많이 씁니다.

    • KVM(Kernel-based Virtual Machine): 완전 가상화 VM을 돌릴 때 사용
    • LXC(Linux Containers): 컨테이너 방식으로 더 가볍게 리눅스 환경 구성
    • Ceph, ZFS: 스토리지 클러스터링 지원
    • 웹 기반 관리 UI: 브라우저로 모든 걸 관리

    자, 이제 본론으로 들어가겠습니다. Proxmox VE 설치는 됐다고 가정하고, 필수 초기 설정을 시작할게요!


    1단계: 무료 리포지토리 설정 — 업데이트 받기

    여기서 많은 분들이 처음에 당황하시는 부분이에요. Proxmox VE를 설치하면 기본적으로 엔터프라이즈 리포지토리(Enterprise Repository)로 설정이 되어 있거든요. 근데 이건 유료 구독을 해야 쓸 수 있어서, 구독 없이 업데이트 시도하면 인증 오류가 떠버립니다.

    홈랩이나 개인 서버에서 쓰신다면 무료 버전인 no-subscription 리포지토리로 바꿔주셔야 해요. 프로덕션 환경에서는 유료 구독을 권장하지만, 개인 용도라면 충분합니다.

    SSH로 Proxmox 서버에 접속하거나, 웹 UI의 Shell을 열어서 아래 명령어를 실행하세요.

    엔터프라이즈 리포지토리 비활성화

    # 엔터프라이즈 리포지토리 파일 비활성화
    echo "# disabled enterprise repo" > /etc/apt/sources.list.d/pve-enterprise.list
    
    # Ceph 엔터프라이즈 리포지토리도 비활성화 (있는 경우)
    echo "# disabled" > /etc/apt/sources.list.d/ceph.list

    무료 리포지토리 추가

    # Proxmox VE no-subscription 리포지토리 추가
    echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
    
    # 패키지 목록 업데이트 및 시스템 업그레이드
    apt update && apt dist-upgrade -y

    💡 Tip: Proxmox VE 8.x 버전은 Debian 12(Bookworm) 기반입니다. 버전에 따라 코드명이 다르니, 설치된 버전을 먼저 확인하세요. pveversion 명령어로 확인할 수 있어요.

    업데이트가 다 끝나면 재부팅 한 번 해주는 게 좋아요. 커널 업데이트가 포함될 수 있거든요.

    reboot

    2단계: 로그인 화면 구독 알림 제거 (선택사항)

    이건 기능에는 전혀 영향이 없는데, 웹 UI 로그인할 때마다 “유효한 구독이 없습니다”라는 팝업이 뜨거든요. 매번 확인 누르는 게 은근히 귀찮아서 저도 처음 설정할 때 바로 없애버렸습니다.

    # Proxmox VE 8.x 기준
    sed -i.bak "s/data.status.toLowerCase() !== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
    
    # 웹 서비스 재시작
    systemctl restart pveproxy

    ⚠️ 주의: 이 수정은 Proxmox 업데이트 후에 원복될 수 있어요. 업데이트 후에 다시 팝업이 뜨면 같은 명령어를 다시 실행하면 됩니다.


    3단계: 네트워크 브릿지 확인 및 설정

    가상화 서버 구축에서 네트워크 설정은 정말 중요한 부분이에요. 처음에 이 부분에서 삽질을 꽤 많이 했습니다. VM들이 외부 네트워크와 통신하려면 리눅스 브릿지(Linux Bridge)가 제대로 설정되어 있어야 하거든요.

    Proxmox는 설치 시 기본적으로 vmbr0라는 브릿지를 만들어줘요. 웹 UI에서 확인하는 방법은 이렇습니다:

    1. 웹 UI 좌측 트리에서 서버 노드 선택
    2. System(시스템) → Network(네트워크) 클릭
    3. vmbr0 브릿지와 IP 설정 확인

    설정 파일을 직접 확인하고 싶다면:

    cat /etc/network/interfaces

    정상적인 설정이라면 이런 형태가 나와야 해요:

    auto lo
    iface lo inet loopback
    
    auto eno1
    iface eno1 inet manual
    
    auto vmbr0
    iface vmbr0 inet static
            address 192.168.1.100/24
            gateway 192.168.1.1
            bridge-ports eno1
            bridge-stp off
            bridge-fd 0

    여기서 bridge-ports에 실제 물리 NIC 이름이 잘 들어가 있는지 확인하세요. 서버마다 NIC 이름이 다를 수 있어요 (eth0, eno1, enp3s0 등).

    ▲ Proxmox VE 웹 UI의 네트워크 설정 화면 — vmbr0 브릿지 구성을 확인하세요


    4단계: 스토리지 설정 최적화

    기본 설치 후 스토리지 설정이 좀 아쉬운 부분이 있어요. 특히 local-lvm 파티션 관련해서 처음에 헷갈리는 분들이 많더라고요.

    기본 스토리지 구성 이해하기

    스토리지 이름 타입 용도 저장 위치
    local Directory ISO 이미지, 백업, CT 템플릿 /var/lib/vz
    local-lvm LVM-Thin VM 디스크, CT 볼륨 LVM Thin Pool

    근데 여기서 local 스토리지에 VM 디스크 이미지를 저장하고 싶다면 추가 설정이 필요해요. 기본적으로 local은 VM 디스크(qcow2, raw)를 저장할 수 없도록 제한되어 있거든요.

    웹 UI에서 변경하는 방법:

    1. Datacenter(데이터센터) → Storage(스토리지) 클릭
    2. local 선택 후 Edit(편집)
    3. Content(콘텐츠)에서 Disk image(디스크 이미지) 항목 체크
    4. OK 클릭

    또는 CLI로 직접:

    # local 스토리지에 VM 디스크 이미지 저장 허용
    pvesm set local --content iso,vztmpl,backup,images,rootdir

    ZFS를 사용하는 경우 — 추가 최적화

    설치 시 ZFS를 선택하셨다면, ARC(Adaptive Replacement Cache, ZFS 캐시) 메모리 설정을 해주는 게 좋아요. 기본값으로 두면 ZFS가 RAM을 꽤 많이 잡아먹거든요.

    # ZFS ARC 최대 메모리 제한 (예: 4GB로 제한)
    echo "options zfs zfs_arc_max=4294967296" >> /etc/modprobe.d/zfs.conf
    update-initramfs -u

    5단계: 보안 강화 — 이거 꼭 해주세요 ⚠️

    이 부분이 진짜 중요한데 의외로 그냥 넘어가는 분들이 많아요. 특히 외부에서 접근 가능한 환경이라면 더더욱 신경 써야 합니다.

    SSH 보안 설정

    # SSH 설정 파일 편집
    nano /etc/ssh/sshd_config

    아래 항목들을 확인하고 설정하세요:

    # root 직접 로그인 비활성화 (키 인증만 허용하거나 완전 비활성화)
    PermitRootLogin prohibit-password
    
    # 비밀번호 인증 비활성화 (SSH 키 설정 후 적용)
    # PasswordAuthentication no
    
    # SSH 포트 변경 (기본 22에서 변경 권장)
    Port 2222
    # SSH 서비스 재시작
    systemctl restart sshd

    ⚠️ 경고: SSH 포트를 바꾸거나 비밀번호 인증을 끄기 전에, 반드시 SSH 키 로그인이 정상 동작하는지 먼저 확인하세요. 잘못하면 서버에 접속을 못하게 될 수 있어요. 저도 한 번 이렇게 자폭한 적이 있습니다… ㅎㅎ

    Proxmox 웹 UI 포트 방화벽 설정

    Proxmox는 기본적으로 8006 포트로 웹 UI에 접근합니다. Proxmox 내장 방화벽을 활성화하고 필요한 포트만 열어두세요.

    웹 UI에서 설정하는 방법:

    1. Datacenter(데이터센터) → Firewall(방화벽) → Options(옵션)
    2. Firewall: Yes로 변경
    3. 노드 레벨 방화벽도 동일하게 활성화
    4. 필요한 포트(8006, SSH 포트, 마이그레이션 포트 등) 규칙 추가

    강력한 비밀번호 설정 확인

    # root 비밀번호 변경
    passwd root

    웹 UI에서 별도 사용자를 만들어 root 직접 사용을 줄이는 것도 좋은 방법이에요. Datacenter → Permissions → Users에서 관리자 계정을 별도로 만들 수 있습니다.


    6단계: 시간 동기화 설정 확인

    이거 별거 아닌 것 같아도 나중에 로그 분석하거나 클러스터 구성할 때 시간이 맞지 않으면 진짜 골치 아파요. 꼭 확인하세요.

    # 현재 시간 동기화 상태 확인
    timedatectl status
    
    # systemd-timesyncd 서비스 상태 확인
    systemctl status systemd-timesyncd

    타임존 설정이 잘못되어 있다면:

    # 타임존을 서울로 설정
    timedatectl set-timezone Asia/Seoul
    
    # 동기화 확인
    timedatectl show-timesync --all

    NTP 서버를 커스텀으로 지정하고 싶다면 /etc/systemd/timesyncd.conf를 편집하세요:

    [Time]
    NTP=time.bora.net 0.pool.ntp.org 1.pool.ntp.org
    FallbackNTP=2.pool.ntp.org
    systemctl restart systemd-timesyncd

    7단계: 백업 정책 설정 — 미래의 나를 위해

    “백업은 나중에 해야지” 하다가 VM 날려먹은 경험… 저만 있는 건 아니겠죠? ㅎㅎ Proxmox는 기본적으로 꽤 쓸 만한 백업 기능을 내장하고 있어요. 처음부터 스케줄 잡아두는 걸 강력 추천합니다.

    백업 스케줄 설정 (웹 UI)

    1. Datacenter(데이터센터) → Backup(백업) 클릭
    2. Add(추가) 버튼 클릭
    3. 스케줄, 저장소, 대상 VM, 보존 정책 설정
    4. Create(생성) 클릭

    주요 설정 항목:

    • Storage(저장소): 백업 파일을 저장할 위치
    • Schedule(스케줄): cron 형식으로 지정 (예: 매일 새벽 2시 → 02:00)
    • Mode(모드): Snapshot(스냅샷), Suspend(일시정지), Stop(중지) 중 선택
    • Max Backups(최대 백업 수): 보존할 백업 개수 (스토리지 용량 고려)

    💡 Tip: VM이 중요하다면 Snapshot 모드를 권장해요. 서비스 중단 없이 백업이 가능하거든요. 단, 게스트 OS에 QEMU 에이전트가 설치되어 있어야 완전한 일관성이 보장됩니다.


    8단계: QEMU Guest Agent 설정

    VM을 만들 때 꼭 챙겨야 하는 설정인데, 기본 가이드에서 빠져있는 경우가 많아요. QEMU Guest Agent(게스트 에이전트)는 호스트(Proxmox)와 게스트(VM) 사이의 통신 채널을 제공해줘요.

    이게 있으면:

    • VM의 IP 주소를 Proxmox UI에서 바로 확인 가능
    • 정상적인 셧다운/재시작 명령 전달
    • 백업 시 파일시스템 동기화(freeze/thaw) 지원
    • 메모리 사용량 등 상세 정보 수집

    VM 설정에서 Guest Agent 활성화

    1. VM 선택 → Options(옵션)
    2. QEMU Guest Agent 항목 더블클릭
    3. Enabled(활성화) 체크 → OK

    게스트 OS에 에이전트 설치

    # Ubuntu/Debian 게스트에서
    apt install qemu-guest-agent -y
    systemctl enable qemu-guest-agent
    systemctl start qemu-guest-agent
    # CentOS/RHEL/Rocky Linux 게스트에서
    dnf install qemu-guest-agent -y
    systemctl enable qemu-guest-agent
    systemctl start qemu-guest-agent

    ▲ QEMU Guest Agent가 정상 동작하면 VM의 IP 주소와 상세 정보가 대시보드에 표시됩니다


    ⚠️ 자주 겪는 문제와 해결법

    문제 1: 웹 UI 접속이 안 돼요

    설치 직후 https://서버IP:8006으로 접속이 안 된다면, 브라우저에서 HTTP가 아닌 HTTPS로 접속하고 있는지 확인하세요. Proxmox는 기본적으로 자체 서명 인증서(Self-signed certificate)를 사용하기 때문에 브라우저에서 보안 경고가 뜨는 건 정상이에요. “고급” 클릭 후 “계속 진행”하면 됩니다.

    # pveproxy 서비스 상태 확인
    systemctl status pveproxy
    
    # 서비스 재시작
    systemctl restart pveproxy

    문제 2: apt update 시 인증 오류

    “401 Unauthorized” 오류가 나온다면 엔터프라이즈 리포지토리가 아직 활성화되어 있는 거예요. 1단계로 돌아가서 리포지토리 설정을 다시 확인하세요.

    문제 3: VM 생성 시 스토리지 선택이 안 됨

    VM 디스크를 저장할 스토리지가 보이지 않는다면, 해당 스토리지의 Content(콘텐츠) 설정에 Disk image가 포함되어 있는지 확인하세요. 4단계 스토리지 설정 부분을 다시 참고해주세요.

    문제 4: 네트워크 설정 변경 후 연결이 끊김

    이건 진짜 당황스럽죠… 웹 UI에서 네트워크 설정 변경 시 Apply Configuration(설정 적용) 버튼을 누르기 전에 설정을 꼭 다시 검토하세요. 잘못된 IP나 게이트웨이를 입력하면 연결이 끊길 수 있어요. 이럴 때를 대비해 물리적 접근(KVM 콘솔, IPMI 등)이나 직접 모니터+키보드 연결 방법을 미리 확보해두는 게 좋습니다.


    설정 완료 후 확인 체크리스트 ✅

    모든 설정을 마쳤다면 아래 체크리스트로 한 번 더 확인해보세요.

    ▲ Proxmox VE 초기 설정 완료 체크리스트 — 하나씩 확인해보세요

    • ✅ no-subscription 리포지토리로 변경 완료
    • ✅ apt update && apt dist-upgrade 실행 완료
    • ✅ 네트워크 브릿지(vmbr0) 정상 동작 확인
    • ✅ 스토리지 설정 및 콘텐츠 타입 확인
    • ✅ SSH 보안 설정 완료
    • ✅ 방화벽 기본 규칙 설정
    • ✅ 시간 동기화(NTP) 정상 동작 확인
    • ✅ 백업 스케줄 설정 완료
    • ✅ 테스트 VM 생성 및 QEMU Guest Agent 동작 확인

    마무리: 이제 진짜 가상화 서버 구축의 시작입니다 🎉

    여기까지 따라오셨다면 이제 Proxmox VE 기반의 안정적인 가상화 서버 구축을 위한 기초가 완성된 거예요. 처음에는 설정할 게 많아 보여도, 한 번 제대로 해두면 나중에 진짜 편해집니다.

    저도 처음 홈랩에 Proxmox를 올렸을 때는 이런 가이드가 없어서 여기저기 찾아다니며 조각조각 맞추느라 꽤 오래 걸렸어요. 이 글이 처음 시작하시는 분들께 조금이나마 도움이 됐으면 좋겠네요.

    다음 단계로 추천하는 것들:

    • 🖥️ 첫 번째 VM 만들어보기 (Ubuntu Server, Rocky Linux 등)
    • 📦 LXC 컨테이너로 가벼운 서비스 돌려보기
    • 🔗 Let’s Encrypt 인증서로 웹 UI HTTPS 설정하기
    • 💾 외부 NAS 스토리지 연동 (NFS, SMB)
    • 🔄 Proxmox 클러스터 구성 (서버가 여러 대라면)

    다음 글에서는 Proxmox VE에서 첫 번째 VM 만들기를 다뤄볼 예정이에요. Ubuntu Server를 설치하고 기본 설정까지 하는 과정을 처음부터 끝까지 보여드릴게요. 기대해주세요!

    궁금한 점이나 제가 놓친 부분이 있으면 댓글로 남겨주세요. 같이 삽질하며 배우는 게 제일 재미있으니까요 😄