오픈스택 이미지

오픈스택 주요 구성 요소 이해

목차


01. 오픈스택 기본 구조

오픈스택 기본 구조
오픈스택 기본 구조

오픈스택의 가장 기본적인 구조는 컨트롤 노드와 컴퓨트 노드로 구성된다.

여기에 스토리지 노드가 추가되는데, 가상 머신에 블록 스토리지를 제공하는 Cinder 서비스와 오브젝트 스토리지인 Swift가 구성되어 있다.
(만약 스토리지 노드를 구성하지 않는 경우에는 저장 디스크가 되는 스토리지 시스템을 직접 컴퓨트 노드에 연결해야 한다.)

01-1. 컨트롤 노드 역할

컨트롤 노드는 클라우드 인프라의 제어와 운영을 위한 핵심 서비스를 제공하는 중요한 구성 요소이다.

  • 이미지 서비스 (Image Service)
    • 운영체제 이미지 및 템플릿을 저장하고 관리
    • 이미지의 업로드, 다운로드, 등록 및 삭제 등의 기능을 제공
  • 컴퓨트 노드 제어 (Compute Node Control)
    • 가상 머신 인스턴스의 생성, 배포, 관리 및 모니터링을 담당
    • 하이퍼바이저와의 통신을 통해 컴퓨트 자원의 효율적인 분배
  • 네트워킹 제어 (Networking Control)
    • 가상 네트워크의 생성, 구성 및 관리 기능을 제공
    • 네트워크 연결, 라우팅, 방화벽 및 로드 밸런싱 등의 서비스를 관리
  • 인증 (Authentication)
    • 사용자 인증 및 권한 부여
    • 안전한 클라우드 환경을 위한 정책과 규칙을 관리
  • 데이터 베이스와 메시지 큐
    • 클라우드 서비스의 상태 및 설정 정보를 저장하고 관리
    • 서비스 간의 비동기 통신을 지원하여 작업의 효율성 향상

01-2. 컨트롤의 가용성 및 고가용성(HA) 구성

컨트롤 노드는 단일 구성도 가능하지만, 장애 발생 시 클라우드 서비스의 연속성을 보장하기 위해 최소 3대의 노드로 고가용성(HA)을 구성하는 것이 좋다.


01-3. 네트워크 노드를 포함한 오픈스택의 구조

네트워크 노드를 포함한 오픈스택의 구조
네트워크 노드를 포함한 오픈스택의 구조

네트워크 노드는 다양한 고급 기능(DHCP, SNAT, DNAT 등)을 효과적으로 사용하고, 네트워크 성능과 가용성을 최적화하기 위해 별도로 구성할 수 있다. 이를 통해 다음과 같은 이점을 얻을 수 있다.

  • 고급 네트워크 기능의 효율적 관리
    • DHCP : 동적 호스트 구성 프로토콜을 통해 가상 머신에 IP 주소를 자동으로 할당하고 관리
    • SNAT (Source Network Address Translation) : 내부 네트워크의 IP 주소를 공용 IP 주소로 변환하여 외부 네트워크와의 통신 가능
    • DNAT (Destination Network Address Translation) : 외부에서 들어오는 트래픽을 내부 네트워크의 특정 서버로 라우팅하여 서비스 접근 지원
  • 네트워크 성능 최적화
    • 네트워크 트래픽이 집중되는 노드에서 분리함으로써 성능 병목 현상을 방지
    • 네트워크 관련 작업을 전담하는 노드가 존재하므로 트래픽 처리 속도를 개선
  • 확장성 및 유연성
    • 네트워크 수요 증가에 따라 네트워크 노드를 독립적으로 확장
    • 클라우드 인프라의 다양한 요구 사항에 유연하게 대응
  • 관리 및 유지보수의 용이성
    • 네트워크 설정과 관리를 전담하는 노드가 존재하여 전체 관리가 용이
    • 네트워크 관련 문제를 신속하게 진단하고 해결

02. 오픈스택 서비스 컴포넌트의 노드 배치


03. 오픈스택 서비스 구성 요소

03-1. 주요 서비스

Nova

다수의 컴퓨트 노드에 설치되어 가상 머신 서비스를 제공하는 것으로 CPU, 메모리, 네트워크, 스토리지를 제공하는 것들을 통합하여 만든다. 단, Nova 자체가 가상화의 기능을 제공하지는 않는다. Nova는 그저 Hypervisor와 상호 작용하는 드라이버를 이용해 외부에서 가상 머신을 제어하는 방식으로 동작한다.
(하이퍼바이저가 다른 종류로 변경되면 드라이버를 해당 하이퍼바이저에 맞게 대체한다.)

Nova가 설치된 컴퓨트 노드들은 서로 공유하는 것들이 없는 구조로 되어 있어 노드 하나에 장애가 발생하여도 다른 노드에 영향을 미치지 않는 구조로 되어 있다.

컴퓨트 노드와 컨트롤 노드 간의 통신은 AMQP(Advanced Message Queuing Protocol) 프로토콜을 사용하여 이루어지며, 대표적인 AMQP로는 RabbitMQ, Apache Qpid 등이 있다.
비동기식으로 동작하는 이유는 요청(Request)를 보낸 후 회신(Response)이 도달할 때까지 동작을 멈추는 블로킹(blocking) 현상을 제거하기 위함이다. 회신이 도착할 때까지 Nova는 다른 일을 처리할 수 있고, 회신이 들어오면 콜백(callback)을 트리거하는 방식으로 요청을 처리한다.

  • nova-api : HTTP 요청을 수신하고, 명령을 변환하여 oslo.messaging 큐 또는 HTTP를 통해 다른 구성 요소와 통신하는 컴포넌트
  • nova-scheduler : 인스턴스가 어떤 호스트에 할당될지를 결정
  • nova-compute : 하이퍼바이저 및 가상 머신과의 통신을 관리
  • nova-compoute
    • 조정이 필요한 요청(빌드/크기 조정)을 처리하고, 데이터베이스 프록시 역할을 하거나 객체 변환을 처리
      • 마이그레이션 및 리소스 크기 조정과 같은 작업을 효율적으로 관리하여 여러 컴퓨트 노드에 걸친 자원 배분을 효율적으로 관리
      • [참고] 실제 마이그레이션 작업은 nova-compute에서 담당한다.
    • 컴퓨트 노드가 데이터베이스에 접근하지 않도록 하여 보안성을 향상
      • [참고] 예전에는 nova-compute가 직접 데이터베이스 접근을 했으나, 이제는 데이터베이스 작업을 nova-conductor에서 한다.

Neutron

가상 머신에 네트워크를 제공하며, 사용자가 직접 가상 머신에 네트워크를 정의할 수 있도록 지원한다.

Cinder

컴퓨트 노드와 가상 머신에 물리 저장 공간을 제공하는 서비스로 디스크 볼륨을 생성하고 관리하는 기능을 제공한다.

Swift

오브젝트 기반 저장 공간을 제공한다. 임의의 구조화되지 않은 데이터 객체를 HTTPT 기반의 API를 통해 관리할 수 있는 기능을 제공한다.

Glance

가상 머신 생성을 위한 디스크 이미지를 제공하는 서비스로 컴퓨트 노드에 가상 머신을 프로비저닝할 때 사용한다

Keystone

인증과 권한 관리 서비스를 제공하는 서비스로 오픈스택 서비스 전반에 걸친 인증과 권한 관리를 수행한

03-2. 옵셔널 서비스

Horizon

대시 보드 서비스를 제공하여 사용자나 관리자가 오픈스택의 서비스들이 제공하는 다양한 API를 이용해 웹으로 관리할 수 있게 한다.

기본적인 클라우드 운영이 가능하지만 과금 관련 기능이나 사용자 관리 기능이 부족하기 때문에 추가적인 개발을 통해 별도의 클라우드 포털을 개발해야 한다. 이때 템플리과 도구를 사용하여 커스터마이징이 가능하다.

일반적으로 Horizon은 컨트롤 노드에 설치된다.

Ceilometer

관제 서비스와 과금을 위한 미터링 서비스를 제공한다.

Heat

네이티브 HOT(Heat Orchestration Template) 템플릿 또는 AWS의 CloudFormation 템플릿 포맷을 사용하여 복수의 복합 클라우드 애플리케이션을 조정한다.
오픈스택 인프라 통합 관리, 자동화, 외부 클라우드 연계 등이 가능해진다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다