| 용어 | 설명 |
|---|
| CAS | Compare-and-Swap. etcd의 원자적 키 갱신 메커니즘 |
| CB | Circuit Breaker. 장애 전파 차단 패턴 (CLOSED/OPEN/HALF_OPEN) |
| CSI | Container Storage Interface |
| DPDK | Data Plane Development Kit. 커널 바이패스 패킷 처리 |
| etcd | 분산 키-값 저장소. 클러스터 메타데이터 관리 |
| fire-and-forget | 응답 즉시 반환 후 비동기 실행하는 패턴 |
| GMainLoop | GLib 이벤트 루프. PureCVisor의 핵심 실행 모델 |
| GTask | GLib 비동기 태스크. 스레드 풀에서 실행 |
| io_uring | Linux 비동기 I/O 인터페이스 |
| JSON-RPC | JSON Remote Procedure Call. UDS 통신 프로토콜 |
| keepalived | VRRP 기반 가상 IP 관리 데몬 |
| Lease TTL | etcd 키의 생존 시간 (Time-To-Live) |
| mTLS | Mutual TLS. 양방향 인증서 인증 |
| NFV | Network Functions Virtualization |
| NUMA | Non-Uniform Memory Access. CPU-메모리 토폴로지 |
| OVN | Open Virtual Network. SDN 제어 평면 |
| OVS | Open vSwitch. 가상 스위치 |
| PBKDF2 | Password-Based Key Derivation Function 2 |
| RBAC | Role-Based Access Control |
| RPO | Recovery Point Objective. 데이터 손실 허용 시간 |
| SR-IOV | Single Root I/O Virtualization. 하드웨어 NIC 가상화 |
| STONITH | Shoot The Other Node In The Head. 펜싱 메커니즘 |
| UDS | Unix Domain Socket |
| VIP | Virtual IP. keepalived VRRP로 관리 |
| VRRP | Virtual Router Redundancy Protocol |
| WAL | Write-Ahead Logging. SQLite 동시성 모드 |
| VXLAN | Virtual Extensible LAN. 오버레이 터널 프로토콜 |
| zvol | ZFS Volume. 블록 디바이스 형태의 ZFS 데이터셋 |
| 코드 | 상수 | 설명 |
|---|
| 1 | PCV_VM_ERR_NOT_FOUND | 지정한 VM이 존재하지 않음 |
| 2 | PCV_VM_ERR_ALREADY_EXISTS | 동일 이름의 VM이 이미 존재 |
| 3 | PCV_VM_ERR_BUSY | VM이 다른 작업 중 (lock 점유) |
| 4 | PCV_VM_ERR_INVALID_STATE | 현재 상태에서 해당 작업 불가 |
| 5 | PCV_VM_ERR_LIBVIRT_FAILED | libvirt API 호출 실패 |
| 6 | PCV_VM_ERR_XML_FAILED | VM XML 구성/파싱 실패 |
| 7 | PCV_VM_ERR_INTERNAL | 내부 오류 |
| 코드 | 상수 | 설명 |
|---|
| 1 | PCV_LXC_ERR_NOT_FOUND | 컨테이너 미존재 |
| 2 | PCV_LXC_ERR_ALREADY_EXISTS | 동일 이름 컨테이너 존재 |
| 3 | PCV_LXC_ERR_NOT_RUNNING | 실행 중 상태 필요 |
| 4 | PCV_LXC_ERR_CMD_FAILED | 외부 명령 실행 실패 |
| 5 | PCV_LXC_ERR_CONFIG_FAILED | liblxc config 적용 실패 |
| 6 | PCV_LXC_ERR_INTERNAL | 내부 오류 |
| 코드 | 상수 | 설명 |
|---|
| 1 | PCV_VALIDATE_ERR_NAME | VM/컨테이너 이름 형식 오류 |
| 2 | PCV_VALIDATE_ERR_SNAP_NAME | 스냅샷 이름 형식 오류 |
| 3 | PCV_VALIDATE_ERR_PATH | 경로 형식/순회 오류 |
| 4 | PCV_VALIDATE_ERR_BRIDGE | 브릿지 이름 형식 오류 |
| 5 | PCV_VALIDATE_ERR_RANGE | 수치 범위 초과 |
| 6 | PCV_VALIDATE_ERR_IMAGE | 컨테이너 이미지 형식 오류 |
| 7 | PCV_VALIDATE_ERR_CMD | exec 명령어 형식 오류 |
| 코드 | 설명 |
|---|
| -32700 | Parse error (JSON 파싱 실패) |
| -32600 | Invalid Request (필수 필드 누락) |
| -32601 | Method not found (미등록 RPC) |
| -32602 | Invalid params (파라미터 검증 실패) |
| -32000 | Server error (내부 오류) |
| -32001 | Not implemented (placeholder) |
-32602는 PureRpcErrorCode의 canonical invalid-params 값입니다.
예를 들어 인증 REST의
OVN ACL switch 또는 NAT router 필터가 누락되면 이 값을 사용하며, handler나 adapter가
raw 숫자 리터럴로 별도 의미를 만들지 않습니다.
| 패키지 | 용도 |
|---|
| gcc-14 | C23 컴파일러, 검증 기준 노드 확인값 14.3 |
| make | 빌드 시스템 |
| libglib2.0-dev | GLib/GIO/GObject |
| libsoup-3.0-dev | HTTP 서버 (REST API) |
| libjson-glib-dev | JSON 파싱 |
| libvirt-dev | VM 관리 |
| libvirt-glib-1.0-dev | libvirt GObject 바인딩 |
| liblxc-dev | LXC 컨테이너 |
| libsqlite3-dev | SQLite (상태 DB, 감사 로그) |
| libssl-dev | OpenSSL crypto/JWT 서명 |
| libcap-dev | Linux capabilities |
| libseccomp-dev | Seccomp 시스템 콜 필터 |
| libreadline-dev | CLI REPL |
| liburing-dev | io_uring fast path |
| libbpf-dev | eBPF loader와 BTF 경로 |
| libxml2-dev | libvirt-gconfig pkg-config 전이 의존 |
| protobuf-c-compiler / libprotobuf-c-dev | protobuf-c 코드 생성과 링크 |
| 패키지 | 용도 |
|---|
| libvirt-daemon-system | libvirtd |
| qemu-system-x86 / ovmf | QEMU/KVM 하이퍼바이저와 UEFI firmware |
| libguestfs-tools | 일반 VM 복제 Guest reset 도구 묶음 |
| zfsutils-linux | ZFS 파일시스템 |
| lxc / lxc-utils | LXC 컨테이너 런타임 |
| openvswitch-switch | OVS 가상 스위치 |
| ovn-central / ovn-host | 선택형 Local OVN control plane과 host controller |
| (패키지 없음 — 커널 LIO) | iSCSI 타겟. D4 전환으로 tgt 의존 제거. /etc/modules-load.d/purecvisor-lio.conf 로 모듈만 확보한다 — deb 가 conffile 로 설치한다(D4-F6 해소). deb 를 쓰지 않는 배포에서만 운영자가 직접 만든다 |
| open-iscsi | iSCSI 이니시에이터 |
| dnsmasq | DHCP/DNS |
| nftables | 방화벽 |
| 포트 | 프로토콜 | 용도 |
|---|
| 443 | TCP/HTTPS | purecvisorsd 기본 REST API + Web UI + WebSocket |
| 8080 | TCP/HTTP | 127.0.0.1 복구 listener 또는 선택형 NGINX upstream, 외부 공개 금지 |
| 80 | TCP/HTTP | 선택형 NGINX HTTP→HTTPS redirect를 사용할 때만 외부 수신 |
| 4789 | UDP | 선택형 VXLAN overlay를 구성한 경우 |
| 9090 | TCP | Prometheus (외부 컨테이너) |
| 3000 | TCP | Grafana (외부 컨테이너) |
| 경로 | 용도 |
|---|
/etc/purecvisor/daemon.conf | 설정 파일 |
/etc/purecvisor/plugins.d/*.so | 플러그인 디렉터리 |
/var/run/purecvisor/daemon.sock | UDS 소켓 |
/var/run/purecvisor/dnsmasq-<br>.meta | 브릿지 메타데이터 |
/var/lib/purecvisor/vm_state.db | VM 상태 DB (SQLite WAL) |
/var/lib/purecvisor/pcv_audit.db | 감사 로그 DB |
/var/lib/purecvisor/lxc/ | LXC 컨테이너 루트 |
/var/lib/libvirt/images/ | qcow2 디스크 이미지 |
/var/log/purecvisor/audit.log | 감사 텍스트 로그 |
/etc/logrotate.d/purecvisor | logrotate 설정 |
다음은 2026-09-16 공개 구현 e028ef2의 추적 파일과 Makefile, make check-rbac를
대조한 스냅샷입니다.
시험 결과는 소스 회차별로 22.8절과 각 운영 인계에서 구분합니다.
| 항목 | 2026-09-16 기준 |
|---|
| C 표준 | -std=gnu23 |
| 에디션·버전 | Single Edge · 2.0.0 |
| RPC 등록/정책 | RPC 307건, 정책 매핑 252건, 조회성 VIEWER 기본 73건 (make check-rbac) |
| C/H 소스 | src/ 아래 C 157개, 헤더 144개, 총 190,653행 (공백 포함) |
| Web UI | ui/modules/*.js 30개, 추적 UI 파일 64개 |
| 테스트 파일 | tests/ C 112개, tests/integration/ 111개, tests/ui/*.test.mjs 59개 |
| 공개 문서 사이트 | 21개 운영 가이드 장 + DB 아키텍처, 8개 분류·22개 문서 |
| 구현 검증 기록 | e028ef2의 make test·release·check-all 통과, 지정 Arch/Btrfs 실제 API 결과는 22.8절 참조 |
| 계약 게이트 | make check-all 직접 의존성 40개. check-lxc-storage는 check-public-comments 아래 포함 |
| 운영 인증 경계 | 지정 시험 통과와 전체 감사·지원 환경 인증은 별도이며 22.8절 참조 |
파일 수는 git ls-files의 경로·확장자로, C/H 행 수는 해당 추적 파일의 전체 행으로 집계합니다.
등록 테스트·실행 통과·파일 수는 서로 다른 값입니다.
과거 2026-08-31·2026-09-15
시험 수치는 각 날짜의 기록이며 이번 문서 변경에서 전체 시험을 재실행했다는 뜻은 아닙니다.