Openstack

Openstack Nova란? (compute)

Somaz 2022. 7. 29. 17:59
728x90
반응형

Overview

오늘은 OpenStack Nova의 개념과 구조에 대해 학습하고 정리하려고 한다.

 

📅 관련 글

2022.05.11 - [Openstack] - Openstack이란?

 

 

 


 

Nova란?

Nova는 OpenStack의 Compute 서비스로, 가상 머신(Compute Instance)의 프로비저닝(provisioning) 및 관리 기능을 제공하는 핵심 프로젝트 중 하나다.

 

Nova의 역할

  • 가상 머신(VM) 생성 및 관리
  • 베어메탈 서버(Ironic) 프로비저닝 지원
  • 컨테이너 실행 지원 (제한적)
  • 다중 하이퍼바이저(KVM, Xen, ESXi, Hyper-V 등) 지원
  • REST API를 통한 자동화 및 오케스트레이션 제공

 


 

 

1️⃣ Compute Instance (가상 서버)

 

가상 서버(VM)란?

하나의 물리 서버에서 여러 개의 가상 운영체제(OS)를 실행할 수 있도록 가상화된 환경을 제공하는 개념이다.

이를 통해 서로 다른 OS와 애플리케이션을 독립적으로 실행할 수 있다.

  • 가상 머신(VM) = Compute Instance
  • OpenStack Nova = Compute 서비스

 

 


 

 

 

2️⃣ Provisioning (프로비저닝)

 

프로비저닝이란?

사용자의 요구에 맞게 시스템 자원을 미리 할당하고 배포하는 과정을 의미한다.

즉, 서버, 네트워크, 스토리지 등을 사전에 설정하여 필요할 때 즉시 사용할 수 있도록 준비하는 것이다.

 

 

프로비저닝의 예시

  • ✔ 서버 프로비저닝 → 가상 머신(VM) 또는 베어메탈 서버를 자동 생성
  • ✔ 네트워크 프로비저닝 → IP, VLAN 설정 및 SDN 네트워크 자동 구성
  • ✔ 스토리지 프로비저닝 → 블록 스토리지 자동 할당

 

 


 

 

 

3️⃣ Nova에서 지원하는 VM & 베어메탈 & 컨테이너

Nova는 가상 머신(VM) 뿐만 아니라 베어메탈 서버 및 컨테이너 실행도 지원한다.

 

 

1) 베어메탈 서버 (Ironic)

 

 

Ironic이란?

Ironic은 베어메탈 서버를 프로비저닝하는 OpenStack 프로젝트다.

즉, 하이퍼바이저 없이 물리 서버를 직접 관리하는 서비스이다.

 

 

베어메탈 서버란?

  • 하드웨어 위에 OS를 직접 설치하는 방식
  • 하이퍼바이저(KVM, Xen 등) 없이 네이티브 성능을 제공
  • 클라우드 환경에서도 고성능 워크로드를 실행할 수 있음

 

 

베어메탈 서버 vs. 가상 머신(VM) 비교

구분 베어메탈 서버  가상 머신(VM)
성능 최대 성능 (100% 자원 사용) 가상화 오버헤드 발생
자원 공유 불가능 (독립적 사용) 가능 (여러 개의 VM 실행)
OS 설치 직접 설치 필요 이미지 기반 자동 배포
사용 사례 고성능 DB, AI/ML, HPC 일반적인 애플리케이션 실행

 

 

 

2) 컨테이너 (Container)

Nova는 제한적으로 컨테이너 실행을 지원한다.

하지만 일반적으로 OpenStack에서는 Nova보다 Kubernetes 또는 OpenShift를 사용하여 컨테이너를 관리하는 것이 일반적이다.

 

 

 

컨테이너란?

  • OS 커널을 공유하며 독립적인 환경에서 실행되는 가상화 기술
  • VM보다 경량화되어 빠른 배포 및 실행 가능
  • Docker, Kubernetes와 같은 오케스트레이션 시스템과 연동하여 관리 가능

 

 

VM vs. 컨테이너 비교

구분 가상 머신(VM) 컨테이너(Container)
실행 환경 하이퍼바이저 필요 OS 커널 공유
성능 상대적으로 느림 빠름
크기 수 GB 수 MB
부팅 속도 수십 초~분 단위 수 초 이내
주요 기술 KVM, Xen, VMware Docker, Kubernetes

 

 

 

 


 

 

 

 

 

 

4️⃣ Nova의 주요 서비스 (Daemon Process)

Nova는 여러 개의 데몬 프로세스(백그라운드 서비스) 로 구성된다.

 

 

데몬(daemon)이란?

운영체제에서 백그라운드에서 실행되며 특정 작업을 지속적으로 수행하는 프로세스를 의미한다.

예를 들어, Nova의 nova-api, nova-compute 같은 프로세스가 이에 해당한다.

 

 

 

예시: Nova의 데몬 프로세스

데몬 프로세스  역할
nova-api API 요청을 받아 Nova 내부 서비스와 통신
nova-scheduler 가상 머신(VM) 배치를 결정하는 스케줄러
nova-compute 하이퍼바이저와 직접 상호작용하여 VM을 생성/제거
nova-conductor DB와 통신하여 내부 요청을 처리
nova-novncproxy 웹 기반 VNC 콘솔을 제공하여 VM 원격 접속 지원

 

 

 


 

 

5️⃣ Nova와 다른 OpenStack 서비스의 연관성

Nova는 단독으로 동작하지 않으며, 다른 OpenStack 서비스와 함께 동작해야 한다.

 

 

Nova가 필수적으로 사용하는 OpenStack 서비스

서비스 역할
Keystone 인증 및 사용자 관리 (ID 관리)
Glance VM 이미지 저장소 (Compute 이미지)
Neutron 가상 네트워크 및 물리 네트워크 제공

 

 

 

 

 


 

 

 

 

 

 

6️⃣ Nova API

Nova는 모든 기능을 REST API를 통해 제공하며, 이를 통해 Nova의 기능을 자동화하거나 확장할 수 있다.

 

 

API 버전 관리

Nova API는 버전별로 관리되며, 아래와 같은 버전 형식을 따른다.

 

 

버전 형식

`{major}.{minor}.{patch}`

  • 예시) 2.0.3

 

버전 구성

  • Major Version → 아키텍처 변경 (역호환성 X)
  • Minor Version → 새로운 기능 추가 (역호환성 O)
  • Patch Version → 버그 수정 (기능 변화 없음)

 

 

 

 


 

 

 

 

 

 

 

7️⃣ Block Device Mapping (블록 디바이스 매핑)

 

 

🔹 블록 디바이스(Block Device)란?

  • 데이터를 블록 단위로 읽고 쓰는 저장 장치
  • 물리 디스크(HDD, SSD) 또는 가상 디스크(Virtual Disk) 포함
  • 랜덤 액세스를 지원하여 빠른 입출력이 가능

 

 

예시: 블록 디바이스 유형

✔ vda → 기본 OS 디스크 (Root Disk)

✔ vdb → 추가 스토리지 디스크 (Data Disk)

 

 

블록 디바이스 매핑이란?

Nova에서 VM이 사용하는 스토리지를 정의하는 방식이다.

사용자는 루트 디스크, 데이터 디스크, 스냅샷 등을 연결하여 VM을 구성할 수 있다.

 

 

 


 

 

 

 

 

 

 

결론

Nova는 OpenStack에서 가상 머신(VM) 및 베어메탈 서버를 프로비저닝하는 핵심 서비스이다.

이를 통해 OpenStack 클라우드 환경에서 컴퓨팅 리소스를 효율적으로 관리할 수 있다.

 

 

Nova를 효과적으로 활용하려면?

  • ✔ 하이퍼바이저(KVM, Xen, VMware)의 개념을 이해해야 함
  • ✔ Ironic을 사용한 베어메탈 프로비저닝 개념을 익혀야 함
  • ✔ Neutron(네트워크), Cinder(스토리지)와의 연계를 고려해야 함

 

 

 


 

Reference

https://wiki.openstack.org/

https://www.openstack.org/

 

728x90
반응형

'Openstack' 카테고리의 다른 글

Openstack Keystone이란? (identity)  (0) 2022.08.08
Openstack Glance란? (image)  (0) 2022.08.08
Openstack 배치 서비스 Placement란?  (0) 2022.08.08
Openstack Neutron이란? (network)  (0) 2022.08.08
Openstack이란?  (0) 2022.05.11