메인 콘텐츠로 건너뛰기 탐색으로 건너뛰기 푸터로 건너뛰기
디자인 파트너 프로그램: 무료로 가입하고 평생 BUSINESS 플랜 혜택을 누리세요

실험적 VM

rdc ops를 사용하여 개발 및 테스트를 위한 로컬 VM 클러스터를 프로비저닝합니다.

실험적 VM

외부 클라우드 공급자 없이 워크스테이션에서 개발 및 테스트를 위한 로컬 VM 클러스터를 프로비저닝합니다.

요구 사항

rdc ops로컬 어댑터가 필요합니다. 클라우드 어댑터에서는 사용할 수 없습니다.

rdc ops check

개요

rdc ops 명령을 사용하면 로컬에서 실험적 VM 클러스터를 생성하고 관리할 수 있습니다. 이는 CI 파이프라인의 통합 테스트에 사용하는 것과 동일한 인프라로, 이제 직접 실험할 수 있습니다.

사용 사례:

  • 외부 VM 공급자(Linode, Vultr 등) 없이 Rediacc 배포 테스트
  • 로컬에서 리포지토리 설정 개발 및 디버그
  • 완전히 격리된 환경에서 플랫폼 학습
  • 워크스테이션에서 통합 테스트 실행

플랫폼 지원

플랫폼아키텍처백엔드상태
Linuxx86_64KVM (libvirt)CI에서 테스트됨
macOSIntelQEMU + HVFCI에서 테스트됨
LinuxARM64KVM (libvirt)지원됨 (CI 미테스트)
macOSARM (Apple Silicon)QEMU + HVF지원됨 (CI 미테스트)
Windowsx86_64 / ARM64Hyper-V계획 중

**Linux (KVM)**은 브리지 네트워킹을 통한 네이티브 하드웨어 가상화에 libvirt를 사용합니다.

**macOS (QEMU)**는 Apple의 Hypervisor Framework(HVF)를 활용하는 QEMU를 사용하여 네이티브에 가까운 성능을 제공하며, 사용자 모드 네트워킹과 SSH 포트 포워딩을 지원합니다.

Windows (Hyper-V) 지원은 계획 중입니다. 자세한 내용은 이슈 #380을 참조하십시오. Windows Pro/Enterprise가 필요합니다.

사전 조건 및 설정

Linux

# 사전 조건 자동 설치
rdc ops setup

# 또는 수동으로:
sudo apt install libvirt-daemon-system virtinst qemu-utils cloud-image-utils docker.io
sudo systemctl enable --now libvirtd

macOS

# 사전 조건 자동 설치
rdc ops setup

# 또는 수동으로:
brew install qemu cdrtools

설정 확인

rdc ops check

플랫폼별 검사를 실행하고 각 사전 조건에 대해 통과/실패를 보고합니다.

빠른 시작

# 1. 사전 조건 확인
rdc ops check

# 2. 최소 클러스터 프로비저닝 (브리지 + 워커 1개)
rdc ops up --basic

# 3. VM 상태 확인
rdc ops status

# 4. 브리지 VM에 SSH 접속
rdc ops ssh --vm-id 1

# 4b. 또는 명령 직접 실행
rdc ops ssh --vm-id 1 -c hostname

# 5. 종료
rdc ops down

클러스터 구성

기본적으로 rdc ops up은 다음을 프로비저닝합니다.

VMID역할
브리지1기본 노드, Rediacc 브리지 서비스 실행
워커 111리포지토리 배포를 위한 워커 노드
워커 212리포지토리 배포를 위한 워커 노드

--basic 플래그를 사용하면 브리지와 첫 번째 워커(ID 1과 11)만 프로비저닝합니다.

--skip-orchestration을 사용하면 Rediacc 서비스를 시작하지 않고 VM만 프로비저닝합니다. VM 레이어를 독립적으로 테스트할 때 유용합니다.

설정

브리지 VM은 워커 VM보다 작은 기본값을 사용합니다.

VM 역할CPURAM디스크
브리지11024 MB8 GB
워커24096 MB16 GB

환경 변수로 워커 VM 리소스를 재정의할 수 있습니다.

변수기본값설명
VM_CPU2워커 VM당 CPU 코어 수
VM_RAM4096워커 VM당 RAM (MB)
VM_DSK16워커 VM당 디스크 크기 (GB)
VM_NET_BASE192.168.111네트워크 베이스 (KVM 전용)
RENET_DATA_DIR~/.renetVM 디스크 및 설정의 데이터 디렉토리

명령 참조

명령설명
rdc ops setup플랫폼 사전 조건 설치 (KVM 또는 QEMU)
rdc ops check사전 조건 설치 및 작동 여부 확인
rdc ops up [options]VM 클러스터 프로비저닝
rdc ops down모든 VM 삭제 및 정리
rdc ops status모든 VM의 상태 표시
rdc ops ssh --vm-id <id> [command...]VM에 SSH 접속하거나 명령 실행

rdc ops up 옵션

옵션설명
--basic최소 클러스터 (브리지 + 워커 1개)
--liteVM 프로비저닝 건너뜀 (SSH 키만)
--force기존 VM 강제 재생성
--parallelVM 병렬 프로비저닝
--skip-orchestrationVM만, Rediacc 서비스 없음
--backend <kvm|qemu>자동 감지된 백엔드 재정의
--os <name>OS 이미지 (기본값: ubuntu-24.04)
--debug상세 출력

플랫폼별 차이점

Linux (KVM)

  • VM 수명 주기 관리에 libvirt 사용
  • 브리지 네트워킹, VM이 가상 네트워크(192.168.111.x)에서 IP 획득
  • VM IP로 직접 SSH 접속
  • /dev/kvm 및 libvirtd 서비스 필요

macOS (QEMU + HVF)

  • PID 파일로 관리되는 QEMU 프로세스 사용
  • SSH 포트 포워딩을 통한 사용자 모드 네트워킹(localhost:222XX)
  • 직접 IP가 아닌 포워딩된 포트를 통한 SSH
  • mkisofs를 통해 생성된 Cloud-init ISO

문제 해결

디버그 모드

자세한 출력을 위해 모든 명령에 --debug를 추가하십시오.

rdc ops up --basic --debug

일반적인 문제

KVM을 사용할 수 없음 (Linux)

  • /dev/kvm 존재 여부 확인: ls -la /dev/kvm
  • BIOS/UEFI에서 가상화 활성화
  • 커널 모듈 로드: sudo modprobe kvm_intel 또는 sudo modprobe kvm_amd

libvirtd가 실행 중이 아님 (Linux)

sudo systemctl enable --now libvirtd

QEMU를 찾을 수 없음 (macOS)

brew install qemu cdrtools

VM이 시작되지 않음

  • ~/.renet/disks/의 디스크 공간 확인
  • rdc ops check를 실행하여 모든 사전 조건 확인
  • rdc ops downrdc ops up --force 시도