Cloud/OpenStack

[오픈스택을 다루는 기술] 오픈스택과 아키텍처

just-e 2021. 1. 13. 00:08

2.2 오픈스택과 아키텍처

오픈스택은 컴퓨트, 오브젝트 스토리지, 이미지, 인증 서비스 등이 유기적으로 연결되어, 하나의 커다한 클라우드 컴퓨팅 시스템을 구축한다.

01 개념 아키텍처 변화

  • 처음 오픈스택 릴리스(오스틴)
    • 하이퍼바이저와 연동해서 인스턴스를 생성하고 삭제하는 컴퓨트 서비스
    • 이 때 필요한 운영체제 이미지를 관리하는 이미지 서비스
    • 이미지를 백업하는 오브젝트 스토리지 서비스
  • 그 후 서비스 개념으로 오픈스택을 릴리스하기 시작했고 이름 붙음.(백사, 칵투스, 디아블로)
    • 벡사 버전부터 붙은 이름!
      • 컴퓨트 서비스에 Nova
      • 이미지 관리 서비스에 Glance
      • 오브젝트 스토리지 서비스에 Glance
    • 백사 버전부터 디아블로 버전까지 기능을 계속 업그레이드
  • 에섹스 버전을 릴리스하면서 새로운 기능 추가
    • 추가된 기능
      • Keystone
        • 서비스들의 인증을 담당하는 프로젝트
        • 서비스란 Nove, Glance, Swift 등을 말함.
      • Horizon
        • 서비스들을 쉽게 이용할 수 있도록 사용자에게 대시보드 제공한 프로젝트.
  • 풀섬 버전 릴리스
    • 추가된 기능
      • Quantum - 네트워크 서비스
      • Cinder - 블록 스토리지 서비스
    • 풀섬 버전부터 네트워크 서비스와 블록 스토리지 서비스를 Quantum과 Cinder 프로젝트로 분리.
      • Quantum은 기존 nove-network와 다르게 OpenFlow(오픈플로)를 사용해서 여러 네트워크 컨트롤러를 지원

 

  • 기존 프로젝트 안정화되면서 오픈스택은 다양한 프로젝트로 새로운 기능들을 계속해서 추가한다.
    • 하바나 버전부터 아래 개념 아키텍처 나옴.
    • 추가된 기능
      • Heat - 오케스트레이션 서비스
      • Ceilometer - 텔레미터 서비스
    • 하바나 버전에서 정식으로 추가된 프로젝트
  • 킬로 버전 이후부터 많은 프로젝트가 추가됨.
    • 추가된 개념 아키텍처
      • Sahara - 빅데이터 프로세싱 프레임워크 서비스
      • Trove - 데이터베이스 서비스
      • Ironic - PXE나 IPMI를 사용해 베어메탈을 프로저닝
  • 이후로 많은 서비스가 추가되지만, 개념 아키텍처에는 더이상 추가 X.
    • 코어 서비스
      • Nova - 컴퓨트 서비스
      • Neutron - 네트워크 서비스
      • Glance - 이미지 서비스
      • Swift - 오브젝트 스토리지 서비스
      • Keystone - 인증 서비스
      • Cinder -블록 스토리지 서비스
    • 주변에서 코어 서비스들을 지원
      • Horizon - 대시보드 서비스
      • Murano - 애플리케이션 카탈로그 서비스
      • Ironic - 베어메탈 서비스
      • Ceilometer - 텔러미터 서비스
      • Magnum - 컨테이너 서비스
      • Sahara - 데이터 서비스
      • Heat - 오케스트레이션 서비스
      • Trove - 데이터베이스 서비스
  • 대신 코어 서비스 6개와 이를 지원하는 많은 서비스를 표현한 빅텐드(Big-tent) 개념이 생김.

02 논리 아키텍처 변화

논리 아키텍처는 개념 아키텍처를 좀더 자세히 표현한 오픈스택의 전체 구조이다. 예를 들어, Nova가 어떤 구조와 함수로 서비스하는지 표현한다.

  • 에섹스 버전
    • 이 때부터 Keystone 인증 서비스를 추가됨.
    • 그리고 각 기능들은 REST API와 대시보드를 이용해 사용자들에게 서비스를 제공한다.
    • Nova에는 nova-console 기능을 추가해 Nova에서 생성한 인스턴스들에 바로 접근해서 생성한 인스턴스들에 바로 접근해서 사용 가능.
  • 풀섬 버전
    • 네트워크 서비스인 Quantum과 블록 스토리지 서비스인 Cinder를 새롭게 추가했는데, 이 때문에 논리 아키텍처가 매우 복잡해졌다.
    • 모든 서비스의 인증 Keystone이 전부 관장.
    • 각 기능에는 모든 데이터를 관리하는 데이터베이스가 있다.
  • 그리즐리 버전과 하바나 버전
    • 그리즐리 버전과 하바나 버전을 거치면서 네트워크 서비스였던 Quantum이 Neutron으로 변경. 그리고 다양한 네트워크 프로바이더와 연동.
    • 별도의 데이터베이스가 필요했던 Horizon 서비스는 순수하게 REST API 통신만으로 오픈스택의 서비스를 이용할 수 있도록 수정.
  • 킬로버전 이후 오픈스택 논리 아키텍처에는 베어메탈을 프로비저닝하는 Ironic, 오케스트레이션 서비스인 Heat, 텔레미터 서비스인 Ceilometer, 데이터 프로세싱을 담당하는 Sahara, 데이터베이스 서비스인 Trove가 추가.

03 상황별 오픈스택 구성 요소

회사의 클라우드 환경을 어떤 목적으로 사용하느냐에 따라 선택해야할 서비스는 달라진다. 오픈스택 공식 문서에는 이런 상황별 오픈스택 서비스를 구성하는 방법을 예시와 함께 안내한다.

  • HTC(High Troughput Computing)
    • 서비스
      • Horizon - 대시보드 서비스
      • Ceilometer - 텔레미터 서비스
      • Cinder - 블록 스토리지 서비스
      • Heat - 오케스트레이션 서비스
      • Glance - 이미지 서비스
      • Keystone - 인증 서비스
      • Nova - 컴퓨트 서비스
  • 웹 호스팅
    • 설명
      • 일반 코어서비스(Nova, Neutron, Keystone, Glance, Horizon)와 사용자 계정 데이터 수집하고 요금을 청구(Ceilometer)할 때 일부 기술에서 사용
    • 서비스
      • Neutron - 네트워크 서비스
      • Horizon - 대시보드 서비스
      • Ceilometer - 텔레미터 서비스
      • Glance - 이미지 서비스
      • Keystone - 인증 서비스
      • Nova - 컴퓨트 서비스
  • 퍼블릭 클라우드
    • 설명
      • 사용자에게 IaaS(Infrastructure as a Service)를 제공하는 퍼블릭 클라우드를 지원.
    • 서비스
      • Neutron - 네트워크 서비스
      • Designate - 도메인 네임 서비스
      • Cinder - 블록 스토리지 서비스
      • Swift - 오브젝트 스토리지 서비스
      • Glance - 이미지 서비스
      • Keystone - 인증 서비스
      • Nova - 컴퓨트 서비스
  • 웹 서비스, 전자상거래
    • 서비스
      • Neutron - 네트워크 서비스
      • Horizon - 대시보드 서비스
      • Trove - 데이터베이스 서비스
      • Cinder - 블록 스토리지 서비스
      • Glance - 이미지 서비스
      • Keystone - 인증 서비스
      • Nova - 컴퓨트 서비스
  • 컴퓨트 스타터 키드
    • 설명
      • 추가 기능으로 클라우드 확장할 수 있는 방법을 문서화로 제공하는 단순한 프로젝트.
    • 서비스
      • Neutron - 네트워크 서비스
      • Glance - 이미지 서비스
      • Keystone - 인증 서비스
      • Nova - 컴퓨트 서비스
  • 빅데이터
    • 설명
      • 빅데이터 분석 서비스인 Sahara 프로젝트는 오픈스택 위에 빅데이터 응용프로그램(e.g. Hadoop 또는 Spark)을 간단하게 제공할 수 있는 방법을 알려줌
    • 서비스
      • Neutron - 네트워크 서비스
      • Horizon - 대시보드 서비스
      • Ironic - 베어메탈 서비스
      • Sahara - 빅데이터 서비스
      • Glance - 이미지 서비스
      • Keystone - 인증 서비스
      • Nova - 컴퓨트 서비스
  • DBaaS
    • 설명
      • 대부분의 회사는 응용프로그램을 백업하려고 데이터베이스에 크게 의존하며 일반적인 관리 자동화 및 스케일 아웃을 최선으로 생각한다.
      • 오픈스택 Trove 프로젝트는 이 기능을 제공하며, 여러 SQL 및 NoSQL 백엔드를 지원한다.
      • Ironic 프로젝트는 데이터베이스의 성능을 극대화하려고 베어메탈 프로비저닝을 제공.
    • 서비스
      • Neutron - 네트워크 서비스
      • Horizon - 대시보드 서비스
      • Trove - 데이터베이스 서비스
      • Designate - 도메인 네임 서비스
      • Ironic - 베어메탈 서비스
      • Cinder - 블록 스토리지 서비스
      • Swift - 오브젝트 스토리지 서비스
      • Glance - 이미지 서비스
      • Keystone - 인증 서비스
      • Nova - 컴퓨트 서비스
  • 비디오 처리와 콘텐츠 전달
    • 설명
      • 비디오 처리(Video Processing)와 콘텐츠 전달(Contents Delivery)은 오픈스택의 보편적인 사용 예.
      • e.g.) Keystone 인증 표준은 동일한 대시보드와 인증을 사용해 프라이빗 클라우드 및 퍼블릭 클라우드에서 비디오 콘텐츠를 원활하게 이동시킬 수 있다.
    • 서비스
      • Neutron - 네트워크 서비스
      • Swift - 오브젝트 스토리지 서비스
      • Keystone - 인증 서비스
      • Nova - 컴퓨트 서비스
  • 컨테이너 서비스
    • 설명
      • 오픈스택은 사용자가 가상 머신, 컨테이너, 베어메탈에서 실행되는 워크로드를 단일 클라우드에서 운영할 수 있도록 개발.
      • 오픈스택 사용자는 Kubernetes, Mesos, Docker 같은 새로운 컨테이너 오케스트레이션 엔진(COE, Container Orchestration Engines)과 통합하려고 Magnum 프로젝트에 액세스 할 수 있다.
    • 서비스
      • Neutron - 네트워크 서비스
      • Horizon - 대시보드 서비스
      • Ironic - 베어메탈 서비스
      • Cinder - 블록 스토리지 서비스
      • Glance - 이미지 서비스
      • Keystone - 인증 서비스
      • Magnum - 컨테이너 서비스
      • Nova - 컴퓨트 서비스

 

 

 

참조

  • 오픈스택을 다루는 기술