Nova
가상의 서버를 생성하는 서비스 : Nova
가상의 서버를 생성하는 서비스 : Nova
- Nova는 compute 서비스의 핵심
- compute 서비스란, 가상머신이 필요한 자원을 할당하고, 관리하는 서비스로 하이퍼바이저, 메시지 Queue, 인스턴스 접속을 하는 콘솔 등의 다양한 기능이 유기적으로 연결되어 가상 서버를 생성할 수 있는 시스템을 구성하는 시스템
Nova 서비스의 고려사항
고려사항 | 설명 |
---|---|
CPU | compute 서비스가 동작할 호스트 시스템의 cpu가 기본적으로 자체 하드웨어 가상화를 지원이 필수 |
Hypervisor | 서비스에 사용할 하이퍼바이저를 맞게 설정해야 하며, 기본적으로 사용하는 Hypervisor은 KVM/QEMU |
Storage | compute 서비스를 통해 인스턴스가 생성되면서 시스템의 디스크 용량의 제한을 가할 수 있음, 이를 위해 넉넉한 공간이 필요 |
Overcommit | 기본적으로 자원을 할당하는 경우 1:1이 아닌 CPU는 16:1, Memory는 1.5:1로 할당 되어짐 |
네트워킹 | 생성된 인스턴스의 경우 nova가 독자적으로 구현하는 것이 아닌 다른 network 서비스를 연게해서 사용해야하며, 주로 Neutron 네트워크 서비스와 함께 사용 |
Nova의 논리 아키텍처
서비스 | 역할 |
---|---|
nova-api | 최종 사용자즈이 API콜을 통해 서비스 간 질의 응답을 담당 |
nova-compute | 가상화 API를 이용하여 가상 머신 인스턴스를 생성하고 종료하는 역할을 수행 |
nova-scheduler | compute host가 다수인 경우 큐를 통해 받은 메시지를 누구에게 명령할 것인지를 결정 |
nova-conductor | 코디네이션과 데이터베이스 쿼리를 지원하는 서버 데몬 |
nova-cert | X509 인증서에 대한 Nova Cert서비스를 제공하는 서버 데몬 |
nova-consoleauth | 데몬, 콘솔 프록시를 제공하는 사용자에 대한 인증 토큰 제공 |
Guest Agent | 실제 compute 시스템 상에 구축된 인스턴스로 Nova-compute 서비스에 의해 제어되어짐 |
nova-api-metadata | 인스턴스의 메타데이터의 요청을 처리 |
nova-novncproxy | VNC 콘솔화면을 제공 |
nova-novaclient: nova REST API를 사용하는 클라이언트 프로그램 nova-network | 인스턴스의 네트워크 기능을 수행 nova-compute-kvm | 인스턴스(가상 머신)와 관련된 모든 프로세스를 처리 python-guestfs | 파일 생성 기능을 지원하는 Python 라이브러리 qemu-kvm | KVM 하이퍼바이저
- 위와 같이 많은 서비스들이 존재
- Nova는 대시보드나 콘솔에서 호출하는 nova-api에서 시작
- Queue를 이용해 nova-compute에 인스턴스를 생성하라는 명령을 전달
- nova-compute는 하이퍼바이저 라이브러리를 이용해 하이퍼바이저에 인스턴스를 생성하려는 명령어를 전달
- Hypervisor을 통해 인스턴스를 생성
- 생성된 인스턴스는 nova-api로 접근할 수 있으며 Nova의 모든 기능은 메시지 Queue로 처리할 수 있음
Nova가 지원하는 하이퍼바이저의 종류
- 기본 하이퍼바이저는 KVM과 QEMU
- 프로바이더가 테스트하는 Hyper-V, VMware, XenServer, Sen via libvirt
- 몇 번의 테스트만 하는 하이퍼바이저 드라이버인 베어메탈, Docker, LXC via libvirt
마지막 수정일자