오픈스택 컴퓨트 노바 (OpenStack Compute Nova)

원문: OpenStack Compute (nova)

Nova란?

Nova는 오픈 스택 프로젝트 중 하나이며, 컴퓨트 인스턴스(가상 서버) 프로비져닝 서비스를 제공합니다. Nova는 기본적으로 가상 머신의 생성과 Ironic을 통한 베어 메탈 서버의 생성을 지원하고, 제한적이지만 시스템 컨테이너도 지원합니다. Nova는 리눅스 서버 상에서 여러 개의 데몬으로 움직이며 서비스를 제공합니다.

Nova가 기본적인 서비스를 위해서는 다음과 같은 최소의 오픈스택 서비스가 필요합니다.
  • Keystone: ID를 발급하고 인증 서비스를 제공 합니다.
  • Glance: 컴퓨트 이미지 리포지토리를 제공. 모든 컴퓨트 인스턴스는 Glance 이미지로 생성 됩니다.
  • Neutron: 컴퓨트 인스턴스가 사용하는 가상 네트워크와 물리적 네트워크를 제공 합니다.
또한 영구 블록 스토리지, 암호화 된 디스크 및 베어 메탈 컴퓨팅 인스턴스를 포함하는 다른 서비스와도 통합 할 수 있습니다.

사용자를 위하여

Nova의 사용자는 다양한 툴을 사용하거나 API의 직접적인 사용을 통하여 컴퓨트 인스턴스를 생성, 관리합니다.

Nova 사용을 위한 툴

  • Horizon: 오픈스택 프로젝트의 공식 웹 UI.
  • OpenStack Client: 오픈스택 프로젝트의 공식 CLI. OpenStack CLI는 Nova 커맨드는 물론 다른 프로젝트의 커맨드도 포함하고 있으며, 오픈스택 프로젝트는 가능하면 각 프로젝트가 가지고 있는 커맨드를 사용하지 말고 OpenStack CLI를 사용하는 것을 권장하고 있습니다.
  • Nova Client: OpenStack CLI가 포함하고 있지 않는 고급 기능이나 관리 커맨드를 사용하기 위해서는 Nova client를 사용해야 할 때가 있습니다. 아직까지는 nova client가 지원되고 있지만, OpenStack CLI를 사용하는 것을 권장합니다.

Nova API

Nova의 모든 사용자 기능은 REST API를 통해서 제공되고 있으며, 이 기능을 사용하여 더 복잡한 로직을 만들거나 Nova 서비스를 자동화 할 수 있습니다. API 사용을 위해서 다음 리소스를 참고하여 주십시오.
  • Compute API Guide: API 개념 가이드. API 참조 개념을 쉽게 사용하도록 API의 개념을 설명하는 데 도움이 됩니다.
  • Compute API Reference: 모든 메소드와 요청/응답 매개 변수 및 그 의미를 포함하고 있는 완전한 API 레퍼런스입니다.
  • API Microversion History: Compute API는 마이크로 버전을 통해 시간이 지남에 따라 발전합니다. 이 모든 변경 사항의 기록을 제공합니다. 새로운 Compute API가 소개되는 곳입니다.
  • Block Device Mapping: 특정 블록 디바이스를 컴퓨트에 연결하기 위해서 사용되는 "블록 디바이스 맵핑"은 이해하기 어려운 부분들 중에 하나입니다. 이 부분을 이해하기 위해서는 특별히 많은 공부가 필요합니다.

오퍼레이터를 위하여

아키텍쳐 오버뷰

  • Nova 아키텍쳐: 모든 Nova 컴포넌트들이 어떻게 작동하는지를 보여줍니다.

설치

자세한 Nova 설치 가이드입니다. Nova가 작동하기 위해서는 keystone, glance와 neutron이 설치되어야 합니다. 먼저 다음 가이드를 확인하도록 합니다.

배포시 주의점

특히 큰 프로젝트의 배포를 하기 전에 고려해야 할 사항들이 있습니다. 작은 프로젝트의 배포라면 디폴트 설치 가이드만으로도 충분합니다.
  • 지원되는 컴퓨트 드라이버 기능: 대부분의 Nova 배포에는 libvirt/kvm이 사용되지만, 다른 컴퓨트 드라이버를 사용할 수도 있습니다. 모든 드라이버에 통일된 기능을 제공하려 노력하고 있지만, 모든 기능이 모든 백엔드에 적용되어 있지 않고, 모든 기능들이 똑같이 테스트 되지 않았습니다.
  • Cells v2 Planning: 대규모 배포의 경우 Cells v2를 사용하면 계산 환경을 분할 할 수 있습니다. 선행 계획은 성공적인 Cells v2 레이아웃의 키입니다.
  • Placement service: 다른 Nova와의 조합을 포함하는 placement service에 관한 개요.
  • Running nova-api on wsgi: baked-in eventlet 웹 서버 대신 실제 WSGI 컨테이너 사용시 고려 사항.

관리

Nova 운영시 다음의 정보는 상당히 중요합니다.
  • Admin Guide: Nova 관리에 관한 지침서 모음집.
*경고: 이 가이드는 Pike 개발 당시 포함되었으며, 조금 오래된 내용입니다. Queens 기간동안 업데이트 되어 더 정확해 질 것 입니다.
  • Upgrades: 어떻게 서비스에 최소의 영향을 주며 업그래이드할 수 있도록 Nova가 디자인 되었는지, 어떻게 업그래이드를 하는지를 보여줍니다.
  • Quotas: Nova의 프로젝트 쿼타 관리.
  • Aggregates: 집계는 스케줄링 목적을 위해 호스트를 그룹화하는 유용한 방법입니다.
  • Filter Scheduler: 필터 스케줄러가 어떻게 구성되며, 이것이 환경에있는 컴퓨팅 인스턴스의 위치에 미치는 영향. 호스트에 예상치 못한 컴퓨팅 인스턴스의 배포 현상이 생기면 이 설정을 살펴봐야 합니다.
  • Exposing custom metadata to compute instances: 특정 목적을 위하여 메타데이터 서버나 컨피그 드라이버를 통하여 어떻게, 언제 기본 메타데이터를 컴퓨트 인스턴스에 익스텐드 할 수 있는지를 보여줍니다.

참조 자료

  • Nova CLI Command References: Nova와 함께 제공되는 모든 데몬 및 어드민 툴에 대한 완벽한 명령어 참조 자료입니다.
  • Configuration:
    • Configuration Guide: Nova 시스템의 다양한 부분에 대한 자세한 구성 안내서. 특정 하이퍼 바이저 백엔드 설정에 대한 유용한 참고 자료입니다.
    • Config Reference: nova.conf 안의 모든 설정 옵션에 대한 완벽한 참조 자료입니다.
    • Sample Config File: 인라인 문서가있는 샘플 설정 파일입니다.
  • Policy: Nova는 대부분의 OpenStack 프로젝트와 마찬가지로 정책 언어를 사용하여 REST API 작업에 대한 권한을 제한합니다.
    • Policy Reference: Nova의 모든 정책 포인트와 그 영향에 대한 완전한 참조 자료입니다.
    • Sample Policy File: 인라인 문서가 있는 샘플 정책 파일입니다.

컨트리뷰터를 위해서

Nova를 처음 사용하는 경우 Nova가 실제로하는 일과 그 이유를 이해하는 데 도움이됩니다. 또한 현재와 미래의 아키텍처 부분에 대한 기술 참조 문서가 많이 있으며, 아래의 링크에서 확인 할 수 있습니다.

인덱스와 테이블


blog comments powered by Disqus