13년차의 서버실

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

[태그:] 중첩가상화

  • Proxmox 위에 OpenStack 멀티노드 랩 구축 — 집에서 프라이빗 클라우드 공부하기

    클라우드 엔지니어링을 제대로 공부하려면 결국 OpenStack을 손으로 만져봐야 합니다. 그런데 클라우드를 배우자고 클라우드에 돈을 쓰긴 아깝죠. 그래서 저는 Proxmox 홈랩 안에 OpenStack 멀티노드 랩을 꾸며 두고, 공부할 때만 켭니다. 실제 제 랩 구성과 프라이빗 클라우드 학습 환경을 만드는 법을 공개합니다.

    1. 왜 집에서 OpenStack인가

    • 프라이빗 클라우드의 실체를 이해하려면 컨트롤러·컴퓨트·네트워크·스토리지가 어떻게 맞물리는지 직접 봐야 합니다.
    • 퍼블릭 클라우드는 “결과”만 보여주지만, OpenStack은 그 아래 구조를 다 열어 줍니다.
    • 자격증·실무(프라이빗 클라우드 운영) 준비에 이만한 실습 환경이 없습니다.

    2. 내 랩의 실제 토폴로지

    저는 Proxmox 위에 노드 역할을 나눈 멀티노드 구성과, 간단히 굴리는 올인원 학습용을 함께 둡니다.

    노드(VM) 역할 vCPU / RAM
    deploy 배포·오케스트레이션 1 / 2GB
    control API·스케줄러·DB·메시지큐 4 / 2GB
    compute01~03 실제 인스턴스(VM) 구동 각 1 / 4GB
    all-in-one(study) 단일 노드 전체 스택 6 / 16GB

    멀티노드는 “진짜 구조”를 배우는 데 좋고, 올인원은 “빠르게 기능만” 볼 때 좋습니다. 둘 다 갖춰두면 학습 목적에 맞게 골라 쓸 수 있습니다.

    3. 핵심 전제 — 중첩 가상화(Nested Virtualization)

    OpenStack의 컴퓨트 노드는 그 안에서 또 VM(인스턴스)을 돌립니다. 즉 “VM 안의 VM”이라, Proxmox 호스트에서 중첩 가상화가 켜져 있어야 합니다.

    # Proxmox 호스트에서 중첩 가상화 확인 (Intel)
    cat /sys/module/kvm_intel/parameters/nested   # Y 여야 함
    
    # 컴퓨트 노드 VM의 CPU 타입을 host로 (가상화 기능 노출)
    qm set 105 --cpu host

    이게 빠지면 인스턴스가 아예 안 뜨거나 QEMU 소프트웨어 에뮬레이션으로 기어갑니다. compute 노드엔 반드시 --cpu host를 주세요.

    4. 자원 현실 — OpenStack은 무겁다

    솔직히 말하면 OpenStack은 홈랩 기준으로 무겁습니다. 올인원만 해도 16GB를 잡아먹고, 멀티노드는 노드 5개가 동시에 떠야 합니다. 그래서 제 원칙은 —

    • 평소엔 꺼둡니다. 학습할 때만 부팅하고, 끝나면 종료해 RAM을 회수합니다.
    • 멀티노드와 올인원을 동시에 켜지 않습니다.
    • 미니 PC 한 대의 RAM 예산 안에서 굴리려면 “쓸 때만 켠다”가 필수입니다.

    홈랩에서 상시 운영이 아니라 학습용 랩으로 접근하는 게 현실적입니다.

    5. 배포 방식 고르기

    방식 특징 추천
    DevStack 스크립트로 올인원, 개발·기능 확인용 빠른 입문
    Kolla-Ansible 컨테이너 기반 멀티노드, 운영에 가까움 제대로 배우기
    수동 설치 컴포넌트 하나씩, 가장 깊이 이해 자격증·심화

    입문은 DevStack 올인원으로 “돌아가는 걸” 먼저 보고, 구조를 이해했으면 Kolla-Ansible로 멀티노드에 도전하는 흐름을 권합니다.

    6. 정리

    OpenStack은 무겁지만, 프라이빗 클라우드의 내부를 이해하는 데 이만한 교재가 없습니다. Proxmox의 중첩 가상화 위에 노드를 나눠 올리고, 필요할 때만 켜는 학습 랩으로 운영하면 미니 PC 한 대로도 충분히 공부할 수 있습니다. 다음 글에서는 OpenStack과 Proxmox 중 무엇을 선택해야 하는지, 그리고 핵심 컴포넌트를 하나씩 뜯어보겠습니다.