Openstack

Openstack 배치 서비스 Placement란?

Somaz 2022. 8. 8. 15:15
728x90
반응형

Overview

오늘은 OpenStack Nova와 밀접한 관련이 있는 Placement에 대해 학습하고 정리하려 한다.

 

 

📅 관련 글

2022.05.11 - [Openstack] - Openstack이란?

2022.07.29 - [Openstack] - Openstack Nova란?

2022.08.08 - [Openstack] - Openstack Neutron이란? (network)

 

 


 

1️⃣ Placement란?

 

Placement 개요

Placement는 OpenStack Newton 릴리즈에서 도입되었으며, 이후 Stein 버전에서 더욱 발전된 컴포넌트로 자리 잡았다.

 

 

 

Placement의 주요 역할

  • 클라우드 환경에서 물리 및 가상 자원(RAM, vCPU, 스토리지, IP 등)을 추적 및 관리
  • 표준화된 단위(Resource Class)로 리소스를 관리하고 추적
  • Nova, Neutron, Cinder 등의 OpenStack 서비스가 리소스를 효율적으로 할당할 수 있도록 지원

 

Placement는 OpenStack에서 중앙 리소스 관리자로 작동하며, Nova, Neutron, Cinder 등 다양한 서비스와 연계하여 자원을 최적화하는 역할을 수행한다.

 

 

 

 


 

 

 

 

2️⃣ Placement의 역할 및 기능

 

Placement의 역할

Placement는 REST API 및 데이터 모델을 기반으로 다양한 자원의 사용량을 추적 및 관리한다.

 

 

 

주요 관리 대상 리소스

  • ✔ Compute Node 리소스 → CPU, RAM, 디스크 등
  • ✔ 네트워크 리소스 → IP 주소, VLAN, VXLAN, QoS 정책 등
  • ✔ 스토리지 리소스 → Cinder 블록 스토리지, Swift 오브젝트 스토리지
  • ✔ 인스턴스 리소스 → Nova 인스턴스 생성 시 필요한 자원 추적

 

 

 

Placement의 주요 기능

 

1️⃣ 리소스 추적

  • Nova-compute가 물리 및 가상 자원의 상태를 Placement에 보고
  • Placement는 API를 통해 리소스 정보를 지속적으로 업데이트

 

2️⃣ 리소스 할당 및 스케줄링 지원

  • Nova-scheduler가 새로운 인스턴스를 생성할 때 Placement를 호출하여 리소스 할당 가능 여부 확인
  • 가용한 Compute Node를 찾아 적절한 VM을 배치

 

3️⃣ 리소스 정책 관리

  • 특정 프로젝트(테넌트) 또는 특정 유형의 VM에 대해 리소스 할당 제한 가능
  • QoS(Quality of Service) 및 Custom 리소스 클래스를 정의하여 특정 워크로드를 최적화

 

4️⃣ 사용량 및 상태 모니터링

  • 현재 사용 중인 리소스 상태를 지속적으로 모니터링
  • Nova, Cinder, Neutron과의 연계를 통해 자원 사용률을 동적으로 조정

 

 


 

 

3️⃣ Placement의 주요 구성 요소

Placement는 크게 API, Database, Nova 컴포넌트와의 연계로 구성된다.

 

1) Placement API

Placement의 주요 기능을 제공하는 REST API 서비스로, OpenStack 내에서 자원 할당 요청을 처리한다.

  • Nova-compute와 Nova-scheduler가 Placement API를 호출하여 리소스 정보를 요청
  • Placement API는 Database와 연동하여 최신 리소스 상태를 관리
  • RESTful 인터페이스를 제공하여 JSON 형식으로 리소스 상태를 주고받음

 

2) Placement Database

Placement에서 관리하는 리소스 정보를 저장하는 데이터베이스(DB)이다.

  • Nova 인스턴스가 생성될 때 Consumer 형태로 인스턴스 메타데이터를 저장
  • Nova와 달리, 인스턴스가 삭제되면 Placement의 메타데이터도 함께 삭제됨

 

Glance(이미지 서비스)와의 차이점

  • Glance: 이미지가 삭제되더라도 메타데이터가 유지될 수 있음
  • Placement: 인스턴스 삭제 시, 관련 메타데이터도 함께 삭제됨

 

 

 

3) Nova와의 관계

Placement는 Nova와 밀접한 연관이 있으며, Nova-compute 및 Nova-scheduler를 통해 대부분의 통신이 이루어진다.

Nova 컴포넌트 역할
Nova-compute Placement가 추적하는 주요 요소 (CPU, RAM, 디스크 등)
Nova-scheduler 인스턴스 생성 시 Placement를 활용하여 적절한 Compute Node를 찾음
Nova API Placement API를 호출하여 자원 정보를 확인

 

 

결론

Placement는 Nova를 위한 Health Check 기능을 수행하며, Nova의 인스턴스 배포 과정에서 필수적인 역할을 한다.

 

 

 

 

 


 

 

 

 

 

4️⃣ Placement의 동작 과정

Placement는 Nova와 연계하여 다음과 같은 과정으로 동작한다.

  • Compute Node가 Nova-compute를 통해 리소스 상태를 Placement에 보고
  • Placement는 API 및 DB를 통해 사용 가능한 리소스를 지속적으로 업데이트
  • Nova-scheduler가 새로운 인스턴스를 배포할 때 Placement API를 호출하여 리소스 할당 가능 여부 확인
  • Placement는 Nova-scheduler에 가용한 Compute Node 리스트를 반환
  • Nova-compute가 Placement에서 제공한 정보를 바탕으로 인스턴스를 배포
  • 배포 후, Nova-compute는 Placement에 리소스 사용량을 업데이트하여 최신 상태를 유지

 

 

 

 

 


 

 

 

 

5️⃣ Placement 활용 예제

 

Placement API를 사용한 리소스 조회

OpenStack CLI를 사용하여 Placement에서 현재 사용 가능한 Compute 자원을 확인할 수 있다.

# Placement 서비스에서 사용 가능한 Compute 리소스 조회
openstack resource provider list

# 특정 Compute Node의 CPU, RAM, 디스크 사용량 조회
openstack resource provider show <provider-UUID>

 

 

 


 

 

 

 

결론

Placement는 OpenStack에서 중앙 리소스 관리자로 작동하며, Nova, Neutron, Cinder 등과 연계하여 리소스를 최적화하는 중요한 역할을 수행한다.

 

 

 

Placement의 핵심 기능

  • ✔ Compute, Network, Storage 등의 리소스를 통합적으로 관리
  • ✔ Nova-scheduler가 최적의 Compute Node를 찾을 수 있도록 지원
  • ✔ REST API를 통해 실시간 리소스 상태 추적 및 할당 가능 여부 확인
  • ✔ Nova와 밀접하게 통신하며 인스턴스 배포 과정에서 필수적인 역할 수행
  • 📌 Placement를 효과적으로 활용하려면?
  • ✔ Nova와의 관계(Nova-compute, Nova-scheduler)를 정확히 이해해야 함
  • ✔ Placement API를 활용하여 리소스 상태를 모니터링하고 자동화할 수 있어야 함
  • ✔ Custom 리소스 클래스를 정의하여 특정 워크로드에 최적화된 배포 정책을 설정할 수 있어야 함

 

 


 

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 Neutron이란? (network)  (0) 2022.08.08
Openstack Nova란? (compute)  (0) 2022.07.29
Openstack이란?  (0) 2022.05.11