Nova 시스템 아키텍처

Jmnote (토론 | 기여)님의 2024년 7월 1일 (월) 02:25 판 (→‎컴포넌트)

1 개요

Crystal Clear action info.png 작성 중인 문서입니다.
Nova System Architecture
노바 시스템 아키텍처

https://docs.openstack.org/nova/2024.1/admin/architecture.html


Nova는 다양한 기능을 수행하는 여러 서버 프로세스로 구성되어 있습니다. 사용자 인터페이스는 REST API이며, 내부적으로 Nova 컴포넌트는 RPC 메시지 전달 메커니즘을 통해 통신합니다.

API 서버는 REST 요청을 처리하며, 일반적으로 데이터베이스 읽기/쓰기 작업을 수행하고, 선택적으로 다른 Nova 서비스에 RPC 메시지를 전송하며, REST 호출에 대한 응답을 생성합니다. RPC 메시징은 메시지 큐 위에 추상화된 oslo.messaging 라이브러리를 통해 수행됩니다. Nova는 메시지 기반의 "shared nothing" 아키텍처를 사용하며, 주요 Nova 컴포넌트 대부분은 여러 서버에서 실행될 수 있으며, RPC 메시지를 수신하는 관리자를 가지고 있습니다. 주요 예외는 컴퓨트 서비스로, VMware 또는 Ironic 드라이버를 사용하는 경우를 제외하고는 관리하는 하이퍼바이저에서 단일 프로세스로 실행됩니다. 관리자에게는 선택적으로 주기적인 작업도 있습니다. 우리의 RPC 시스템에 대한 자세한 내용은 AMQP와 Nova를 참조하십시오.

Nova는 전통적인 SQL 데이터베이스를 사용하여 정보를 저장합니다. 이러한 데이터베이스는 여러 컴포넌트 간에 논리적으로 공유됩니다. 업그레이드를 용이하게 하기 위해 데이터베이스는 객체 계층을 통해 액세스되며, 이를 통해 업그레이드된 제어 플레인에서도 이전 릴리스에서 실행되는 컴퓨트 노드와 통신할 수 있습니다. 이를 가능하게 하기 위해 컴퓨트 노드에서 실행되는 서비스는 데이터베이스 요청을 RPC를 통해 중앙 관리자(컨덕터)로 프록시합니다.

Nova 배포를 수평적으로 확장하기 위해 셀(cell)이라는 배포 샤딩 개념을 사용합니다. 모든 배포에는 최소 하나의 셀이 포함되어 있습니다. 자세한 내용은 셀(v2)을 참조하십시오.

2 컴포넌트

다음은 일반적인 Nova 배포의 핵심 컴포넌트에 대한 유용한 설명입니다.

Nova-images-architecture.svg

  • DB: 데이터 저장을 위한 SQL 데이터베이스.
  • API: HTTP 요청을 수신하고 명령어를 변환하며 oslo.messaging 큐 또는 HTTP를 통해 다른 컴포넌트와 통신하는 컴포넌트.
  • 스케줄러: 각 인스턴스를 어느 호스트에 할당할지 결정.
  • 컴퓨트: 하이퍼바이저와 가상 머신과의 통신을 관리.
  • 컨덕터: 조정이 필요한 요청(빌드/크기조정)을 처리하고, 데이터베이스 프록시로 작동하거나 객체 변환을 처리.
  • Placement: 리소스 제공자 인벤토리와 사용량을 추적.

모든 서비스는 수평적으로 확장가능하도록 설계되었으나, 특히 컴퓨트는 다른 것들보다 훨씬 많이 배치해야 합니다.

3 하이퍼바이저

4 프로젝트, 사용자, 역할

5 블록 스토리지

6 블록 구축하기

7 Nova 서비스 아키텍처

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}