오늘은 OpenStack의 핵심 컴포넌트인 Nova에 대해 자세히 알아보겠습니다!
Nova란? 🤔
Nova는 OpenStack의 심장과도 같은 컴포넌트입니다!
- 가상머신(VM)의 전체 라이프사이클 관리
- 컴퓨팅 자원의 효율적 할당과 스케줄링
- AWS EC2와 유사한 기능을 제공
Nova의 핵심 구성요소 🎯
1. API 서버 (nova-api)
- REST API 엔드포인트 제공
- 사용자 요청 검증 및 라우팅
- EC2 API 호환성 지원
2. Compute 서버 (nova-compute)
- 실제 VM 생성/삭제/관리 담당
- 하이퍼바이저와 직접 통신
- libvirt, VMware, Hyper-V 등 지원
3. Conductor (nova-conductor)
- DB 작업 조정
- 컴퓨트 노드와 데이터베이스 사이의 중개자
- 복잡한 작업의 오케스트레이션
4. Scheduler (nova-scheduler)
- VM 배치 결정
- 리소스 사용량 기반 최적화
- 필터링과 가중치 알고리즘 사용
Nova의 동작 방식 💫
1. VM 생성 프로세스
1. API 요청 수신 (nova-api)
2. 메시지 큐에 작업 등록
3. 스케줄러가 최적의 컴퓨트 노드 선택
4. 컴퓨트 노드에서 VM 생성
5. 네트워크/스토리지 연결
2. 설정 예시
[DEFAULT]
# 기본 하이퍼바이저 설정
compute_driver = libvirt.LibvirtDriver
virt_type = kvm
# 리소스 할당 비율
cpu_allocation_ratio = 16.0
ram_allocation_ratio = 1.5
# 네트워크 설정
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
Nova의 고급 기능 🌟
Instance 관리
- 실시간 마이그레이션
- 스냅샷 생성/복구
- 리사이징 및 리빌드
리소스 최적화
- CPU 핀닝
- NUMA 토폴로지 인식
- GPU 패스스루
고가용성
- 장애 감지 및 복구
- 자동 VM 재시작
- 호스트 유지보수 모드
모니터링 및 트러블슈팅 ⚠️
1. 주요 모니터링 포인트
- CPU/메모리 사용률
- 디스크 I/O
- 네트워크 대역폭
- VM 상태 및 성능
2. 로그 분석
# Nova API 로그
$ tail -f /var/log/nova/nova-api.log
# Compute 로그
$ tail -f /var/log/nova/nova-compute.log
실전 활용 예시 📱
1. VM 템플릿 관리
# 인스턴스 생성
nova_client.servers.create(
name="web-server",
image="ubuntu-20.04",
flavor="m1.large",
nics=[{"net-id": network_id}]
)
2. 자동 스케일링
# 부하에 따른 자동 확장
def auto_scale(cpu_threshold):
if get_cpu_usage() > cpu_threshold:
create_new_instance()
마치며 🎁
Nova는 OpenStack의 핵심 중의 핵심입니다. 복잡해 보이지만, 이해하고 나면 강력한 클라우드 컴퓨팅 환경을 구축할 수 있습니다!
References:
- OpenStack Nova 공식 문서: https://docs.openstack.org/nova/latest/
- Nova API 참조: https://docs.openstack.org/api-ref/compute/
- Nova 아키텍처 가이드: https://docs.openstack.org/nova/latest/user/architecture.html
728x90
'100===Dev Ops > OpenStack' 카테고리의 다른 글
OpenStack Cinder 블록 스토리지 서비스 완벽 가이드 😎 (0) | 2024.12.19 |
---|---|
OpenStack Neutron 네트워크 서비스 완벽 가이드 😎 (0) | 2024.12.18 |
OpenStack 클라우드 컴퓨팅 플랫폼 😎 (0) | 2024.12.18 |