dh_0e

[Cloud] OpenStack 본문

Cloud

[Cloud] OpenStack

dh_0e 2026. 3. 16. 12:26

OpenStack

 

  • 데이터 센터 전체에서 대규모 컴퓨팅, 저장소 및 네트워킹 리소스 풀을 제어하는 클라우드 OS
  • 모두 공통 인증 메커니즘을 갖춘 API를 통해 관리 및 제공
    • 모두 RESTful API로 구성되어 있음
      • OpenStack 안에는 수많은 서비스가 있으며 (연산 담당 Nova, 네트워크 담당 Neutron, 저장소 담당 Cinder 등) 이들이 서로 협력할 때 상대방의 내부 코드를 직접 건드리지 않고, 오직 API 요청만 주고받음
      • (ex. VM 하나 줘 api)
  • 대시보드를 통해 관리자가 웹 인터페이스로 리소스를 제공할 수 있음
  • 표준 인프라 서비스 외에도 사용자 App의 고가용성을 보장하기 위해 Orchestration, 장애 관리기타 서비스 관리 기능을 제공
    • 표준 인프라 서비스 == Instance == Virtual Machine
  • Cloud OS, Ochestration 이라고도 함
  • OpenStack으로 가상화된 하드웨어(VM)를 공급받고,
    무료로 사용할 수 있는 웹 서버(ex. Nginx, NPM)로 그 위에서 돌아가는 서비스의 길목을 관리

 

OpenSatck = Control Node + Compute Node

  • Controller Node(Hypervisor Control SW): "VM을 생성시켜 주세요" 등의 요구들의 교통정리와 상황정보 보관 소등을 담당
  • Compute Node(Hypervisor): 실제 OS를 맡는 instance(VM)

 

OpenStack Release Plan

  • A(ustin), B(exar), C(actus), D(iablo) ... 버전이 계속 올라가면서 Z를 넘김, 2025년 4월 기준 E(poxy) 까지 다시 옴

  • compute: 컴퓨터 기능을 해주는 그룹
    • >> nova로 바뀜
  • storage: 메모리
    • >> swift로 바뀜
    • 캐시 메모리 같이 작지만 빠른 메모리
  • image: 옛날로는 CD롬, 디스크 등의 메모리
    • >> glance로 바뀜
    • SSD처럼 크지만 빠르지 않은 메모리
  • user >> keystone
  • gui >> horizon
  • 단어가 계속 바뀌는 이유: 개발자들이 자신의 기술 스택을 더 어렵게 보이게 하며, 진입 장벽을 높여 시장에서 전문성을 독점하기 위함
  • OpenStack이 점점 크기가 커지면서 발생하는 문제
    • Backward Compatibility (하위 호환성): 신규 버전과 구버전의 호환이 항상 문제가 됨
      • 업그레이드 거부 현상, 개발 속도 저하의 문제로 이어짐

 

Nova(Controller Node): Compute Project

  • Hypervisor를 관리하는 API 제공
    • Instance(VM) 생성
  • Control Node에 제어기능이 위치하여 Compute node 관리하는 식
  • Conductor: DB 보안관
    • Compute Node는 DB를 직접 건드리지 못하고, Conductor에 요청(RPC)을 보내 사용
  • Scheduler: VM을 어느 Compute Node에 만들어줄지 결정
    • Compute Node들의 상태 정보가 필요함
    • >> DB에 저장

 

  • Storage(Swift, cinder)
    • 클라우드 스토리지 서비스: 스토리지 및 스토리지 API 제공
    • Cinder: Block storage
    • Swift: Object storage
    • Manila: 공유 파일 sotrage
  • Ceph
    • 오픈소스 소프트웨어 스토리지 플랫폼  
    • RDB, RADIOS: 분산 스토리지를 위한 다른 오픈 소스 서비스로 모든 종류의 스토리지 관련 서비스 제공 프로젝트
  • Glance
    • Openstack에서 OS 이미지를 관리
    • CD-ROM 같은 기능
    • glance-api로 이미지를 등록, 삭제 및 관리
    • glance-registry를 통해 glance-datatbase에 등록 및 사용 요청
  • Keystone
    • 물리 서버 내 Compute, 이미지, 네트워크, 스토리지와 같은 자원들에 대한 인증 관리
    • 사용자 인증을 통하여 물리 서버 내의 자원을 사용할 수 있도록 관리
  • Horizon
    • OpenStack 대시보드 서비스
    • 웹 UI를 통해 인스턴스 생성, 삭제 및 관리 등을 처리할 수 있도록 해줌
    • 아파치 웹 서버를 사용하며, 대시보드는 파이썬 장고 프레임워크로 구현됨
  • Neutron
    • 네트워크 서비스로 Folsom 버전에서 Quantum이란 이름으로 오픈
  • Network

 

Etc.

  • RESTful API에 대해서 설명하라
    • RESTful: REST(Representational State Transfer)라는 설계 원칙을 잘 지켰다는 뜻
    • HTTP라는 기존의 도로(프로토콜)를 사용하여, 자원(Resource)을 주고받는 정해진 규칙
    • HTTP 메서드로 무엇을 할지 결정
      • GET: 정보 가져오기 (서버 목록 보기)
      • POST: 새로 만들기 (서버 생성하기)
      • PUT/PATCH: 수정하기 (서버 사양 변경)
      • DELETE: 삭제하기 (서버 삭제)
    • 주로 JSON 형식을 사용하여 데이터를 주고받음
  • OpenStack 구조에서 Instance가 만들어지는 과정을 설명하라
    1. 사용자가 대시보드(Horizon)에서 서버 생성 버튼을 누름
    2. Keystone이 사용자가 진짜 주인인지 확인하고 인증 토큰 발급
    3. 사용자는 이 토큰으로 Nova-api에게 서버 생성을 요청
    4. Nova의 Scheduler가 DB를 뒤져서 빈 Compute Node를 찾아냄
    5. Nova의 Conductor가 이를 받아서 해당 Compute Node에 전달
    6. 선택된 Nova-Compute는 서버를 만들기 위해 재료(Glance, Neutron, Cinder)를 모음
    7. 모든 재료가 모이면 Nova-Compute가 자기 위에 있는 Hypervisor(KVM 등)에게 재료를 주며 실행 요청
    8. 인스턴스(instance)가 활성화되고, 사용자는 SSH 등을 통해 접속 가능 

'Cloud' 카테고리의 다른 글

[Cloud] Container  (0) 2026.03.10