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

서비스 역할
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

 

RSS Feed
마지막 수정일자