Nova (Compute Service)
- 정의: Nova는 OpenStack의 컴퓨트 서비스로, VM 생성·관리를 담당.
- 주요 기능
- VM 생성, 삭제, 재시작 등 라이프 사이클 관리
- 하이퍼바이저(KVM, QEMU, VMware 등) 제어
- 스케줄링: 어떤 컴퓨터 노드에 VM을 배치할지 결정
- Cinder·Glance·Neutron과 연계해 디스크·이미지·네트워크 자원 연결
- 다른 서비스와의 관계
- Glance: 부팅 이미지 제공
- Cinder: 부팅/데이터 볼륨 제공
- Neutron: 네트워크 연결
- Keystone: 인증·권한
아키텍처 구성요소
| 구성요소 | 역할 |
|---|
| nova-api | 외부 요청(API) 수신, Keystone 인증 |
| nova-scheduler | VM 생성 요청을 어떤 컴퓨트 노드에 배치할지 결정 |
| nova-compute | 실제 하이퍼바이저(KVM 등) 제어, VM 생성·관리 |
| nova-conductor | DB 접근·업데이트, API와 compute 간 데이터 중계 |
| nova-database | Nova 서비스 상태·리소스 메타데이터 저장 |
| nova-queue | 서비스 간 비동기 메세지 전달 (RabbitMQ 등) |
VM 생성 동작 흐름
- 사용자 요청
- Keystone 인증 -> Nova API로 전달
- nova-schduler가 배치할 컴퓨터 노드 결정
- nova-compute가 해당 노드의 하이퍼바이저(KVM/QEMU)에 VM 생성
- Glance에서 이미지 가져오기 -> 필요시 Cinder 볼륨 연결
- Neutron으로 네트워크 포트 생성·할당
- VM 부팅 완료 후 상태 ACTIVE로 변경
실습
VM 생성
openstack server create --flavor m1.small \
--image cirros \
--network private-net \
--key-name mykey \
test-vm
VM 상태 확인
openstack server list
VM 상세 정보
openstack server show test-vm
VM 중지/시작
openstack server stop test-vm
openstack server start test-vm
VM 삭제
openstack server delete test-vm
운영·트러블슈팅 포인트
-
VM 생성 실패 시
- nova-compute 로그: /var/log/kolla/nova/nova-compute.log
- 스케줄링 실패: 리소스 부족, 호스트 가용성 문제
- 이미지/네트워크 연결 실패: Glance-Neutron 로그 확인
-
상태 코드
- ACTIVE: 정상 실행 중
- ERROR: 생성 실패 (로그 필수 확인)
- SHUTOFF: 종료 상태
- PAUSED/SUSPENDED: 일시 중지
-
리소스 확인
-
vm 리소스 사용량 추적 가능
-
하이퍼바이저 상태
openstack hypervisor list
openstack hypervisor show <id>
추가
- 라이브 마이그레이션: VM을 종료하지 않고 다른 호스트로 이동
- 스케줄링 정책: CPU, 메모리, NUMA 고려 배치
- 고가용성(HA): 다중 nova-compute, nova-scheduler 구성
- Nova와 Cell 구조: 대규모 배포에서 Cell v2 아키텍처 이해