위로 아래

OpenStack

OpenStack (오픈스택)

  1. 프라이빗 클라우드를 구축하기 위한 오픈 소스 소프트웨어의 집합
  2. 설치 위치 : 고객의 자체 데이터 센터 (On-Premise)
  3. Linux 서버 위에 여러 독립적인 소프트웨어(Nova, Keystone, Cinder 등)을 설치하여 만듬
  4. 오픈소스
  5. 비영리 기관인 OpenStack재단에서 관리 (https://www.openstack.org/)

 

 

 


오픈스택 구조

물리적 구성

  1. 컨트롤러 노드
    1. 오픈스택 환경의 구성을 관리
  2. 컴퓨트 노드
    1. 파이퍼바이저 역할을 수행 (인스턴스 동작)
    2. 컴퓨터 노드의 성능이 좋으면 VM을 고성능으로 더 많이 만들 수 있다
  3. 네트워크 노드
    1. 네트워크 구성/관리 기능 제공
  4. 스토리지 노드
    1. 오픈스택 환경에서 사용할 스토리지 제공

 

코어 컴포넌트 (핵심 서비스)

  1. Nova (컴퓨팅 서비스)
    1. 인스턴스(VM)을 관리해주는 서비스
    2. 컨트롤러 노드와 컴퓨트 노드에 설치
    3. libvirt 서비스에게 수행해야할 동작을 알리는 역할
  2. Glance (이미지 관리 서비스)
    1. ova 파일 같은 개념
    2. 이미지를 생성/삭제 등의 관리 및 요청에 따라 작업 수행
    3. 가상머신의 디스크 파일 수정 등
  3. Neutron (네트워크 관리 서비스)
    1. SDN과 NFV를 이용해 네트워크를 동적 구성/관리하는 서비스
    2. NetworkManager와 충돌할 가능성 있음
  4. Cinder (블록 스토리지 서비스)
    1. iscsi처럼 볼륨이라는 형식을 이용해 저장공간을 인스턴스(VM)에 직접 연결하여 사용
  5. Swift (오브젝트 스토리지 서비스)
    1. 필요할 때 어디서나 접근할 수 있도록 API/URL을 이용하여 네트워크로 접근해 사용할 수 있도록 서비스 제공
    2. 따로 파티셔닝하고 마운트할 필요가 없다
  6. Keystone (인증서비스)
    1. 사용자에 대한 인증 및 접근 한을 확인하는 역할
    2. 엔드포인트 관리

 

옵션 컴포넌트 (사용 가능한 서비스들)

  1. Horizon : 대시보드 서비스
    1. 관리자 및 사용자가 사용할 수 있는 웹 GUI 환경을 제공
    2. 컨트롤러 노드에 설치
    3. 기본적인 핵심 서비스는 설치되어 있고 추가적인 서비스는 별도의 패키지로 설치
  2. Manila : 공유 파일 시스템 서비스
    1. 영구저장, 인스턴스에 연결해서 사용 (다중 사용)
    2. 필수는 아니다
  3. Heat : 오케스트레이션 서비스
    1. 오픈스택의 각 리소스들을 세트로 정적/동적 스케일링 작업을 지원
    2. 만들고 지우고 늘리고 하는 오케스트레이션 작업
    3. 각종 리소스들 여러 개를 동시에 관리
  4. Ceilometer : 텔레메트리 사용량 측정 서비스
    1. 사용자가 사용하는 리소스의 사용량을 모니터링/기록
  5. Ironic : 베어메탈 배포 서비스
    1. 운영체제가 설치되어 있지 않은 환경에서 네트워크로 설치 가능한 서비스만으로 오픈스택을 배포할 수 있게 해줌
    2. 컨트롤러, 컴퓨트, 네트워크, 스토리지 노드를 직접 설치
  6. Zaqar : 메세지큐 구성 서비스
  7. Magnum : 컨테이너 관리 서비스
  8. Trove : 데이터베이스 서비스
  9. Sahara : 빅데이터 처리 서비스

 

 


Nova 매커니즘

  1. nova-api
    1. 사용자 요청을 수신하고, RESTful 방식으로 API 요청을 처리
    2. 인스턴스 생성 및 삭제 등의 요청을 받으면, 메시지 큐를 통해 다른 Nova 컴포넌트에 전달
  2. nova-scheduler
    1. 가상 머신 인스턴스를 어느 컴퓨트 노드에 실행할지 결정하는 역할
    2. 호스트의 자원 상태 (CPU, 메모리 등)를 고려하여 인스턴스를 최적의 위치에 배치
  3. nova-compute
    1. 실제로 가상 머신 인스턴스를 생성하고 관리하는 역할
    2. 요청을 수신하고, 하이퍼바이저(KVM, QEMU, VMWare 등)와 상호작용하여 가상 머신을 생성하는 등의 작업 수행
  4. nova-conductor
    1. 컴퓨트 노드와 데이터베이스 간의 직접적인 통신을 중개하는 역할
    2. 보안 및 확장성 문제를 해결하기 위해 nova-compute가 직접 데이터베이스에 접근하지 않고, nova-conductor를 통해 요청을 처리
  5. message-queue
    1. RabbitMQ와 같은 메시지 큐를 사용하여 구성 요소 간에 메시지를 전달
  6. DB
    1. Nova의 모든 상태 정보가 저장되는 데이터베이스

 

 

참고 : https://velog.io/@dlwpdlf147/OpenStack-%EC%98%A4%ED%94%88%EC%8A%A4%ED%83%9D%EC%9D%B4%EB%9E%80

 

[OpenStack] 오픈스택이란

10년을 이어온 오픈소스 프로젝트, Cloud OS

velog.io

 

참고 : https://tech.ktcloud.com/entry/OpenStack-%EC%BB%B4%ED%93%A8%ED%8C%85-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EA%B8%B0%EC%B4%88%ED%8E%B8

 

OpenStack 컴퓨팅 서비스 이해하기: 기초편

[kt cloud CloudSW운영팀 김호균 님]  OpenStack 컴퓨팅 서비스 이해하기: 기초편 kt cloud는 네트워크, 스토리지, 컴퓨팅 자원 등을 제공하는 인프라 서비스(IaaS)를 제공하고 있습니다. 이러한 IaaS 서비스

tech.ktcloud.com