[2022-05] OpenStack 이해

Kogoon·2022년 5월 23일
0


오픈스택(OpenStack) 이란?

  OpenStack은 풀링된 가상 리소스를 사용하여 프라이빗 및 퍼블릭 클라우드를 구축하고 관리하는 오픈소스 플랫폼입니다. OpenStack 플랫폼을 포함하는 툴, 일명 "프로젝트"는 컴퓨팅, 네트워킹, 스토리지, Identity 및 이미지 서비스의 핵심 클라우드 컴퓨팅 서비스를 처리합니다. 또한 수십 개 이상의 옵션 프로젝트를 번들로 묶어 배포 가능한 고유의 클라우드를 생성할 수도 있습니다.
  가상화에서는 다양한 벤더별 프로그램에서 스토리지, CPU, RAM과 같은 리소스를 추상화하여 하이퍼바이저를 통해 분할한 다음 필요에 따라 배포합니다. OpenStack은 일관된 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API) 세트를 사용해 해당 가상 리소스를 분리된 풀로 1단계 더 추상화하며, 이를 기반으로 하는 표준 클라우드 컴퓨팅 툴에서 관리자와 사용자가 직접 인터랙션할 수 있습니다.


OpenStack 구성 요소

  • (5)6 Core Services
    Nova - Compute Service (CPU & Memory) - AWS(EC2)
    Glance - Image Service (.ISO, OS) - AWS(AMI)
    Neutron - Network Service (G/W, S/W) - AWS(VPC)
    Cinder - Block Storage Service (SSD, HDD) - AWS(EBS)
    Keystone - Security (ID, PW, Pam ..) - AWS(IAM)
    Swift - REST API Service / Webshare

구성요소 (서비스)

  OpenStack의 아키텍처는 수많은 오픈소스 프로젝트로 이루어져 있습니다. 이 프로젝트는 OpenStack의 언더클라우드 및 오버클라우드(각각 시스템 관리자 및 클라우드 사용자가 이용)를 설정하는 데 사용됩니다. 언더클라우드는 시스템 관리자가 최종 사용자의 OpenStack 환경, 즉, 오버클라우드를 설정하고 관리하는 데 필요한 코어 구성 요소로 이루어 집니다.

  컴퓨팅, 네트워킹, 스토리지, ID, 이미지를 처리하는 6가지 안정적인 핵심 서비스가 있으며, 개발이 진행됨에 따라 수십 가지 이상의 옵션이 제공됩니다. 이 6가지 핵심 서비스는 나머지 프로젝트에서 대시보드, 오케스틀이션, 베어메탈(bare metal) 프로비저닝, 메시징, 컨테이너, 거버넌스를 처리할 수 있도록 하는 인프라가 됩니다.

  • OpenStack Compute(Nova) : 이 서비스는 모든 클러스터 노드 컴퓨터에 설치됩니다. 인스턴스 (프로세서, 메모리, 블록 장치, 네트워크)의 추상화 수준을 관리합니다. 또한, 하이퍼바이저(KVM)을 통해 인스턴스의 라이프 사이클을 관리합니다. Nova는 가상머신, 베어메탈 서버 생성을 지원하며 (ironic 사용을 통해) 시스템 컨테이너에 대한 지원이 제한적입니다. Nova는 해당 서비스를 제공하기 위해 기존 Linux 서버 위에 데몬 세트로 실행됩니다.
  • OpenStack Networking(Neutron) : 이 서비스는 네트워크 연결을 담당합니다. 사용자는 가상 네트워크 및 가상 라우터를 생성하고 floating IP 기능을 통해 인터넷 공급자(IP) 주소를 설정할 수 있습니다. 이 메커니즘 덕분에 인스턴스는 외부로부터 고정 IP 주소를 얻을 수 있습니다. 또한, 네트워크 부하분산 서비스와 방화벽, VPN 등의 기능을 모듈로 설치하여 이용할 수 있습니다.
  • OpenStack Identification (Keystone) : 이 서비스는 클라우드 운영 체제의 통합 인증 시스템으로 작동합니다. 사용자 계정의 유효성과 OpenStack 프로젝트 및 역할에 대한 사용자의 일치 여부를 확인합니다. 그리고 다른 서비스에 액세스하기 위한 토큰을 제공합니다.
  • OpenStack Image Service(Glance) : 이 서비스는 인스턴스의 이미지를 관리하며 인스턴스를 실행하기 위한 템플릿으로 사용할 수 있습니다. 이 서비스는 또한 백업과 스냅 샷 생성 기능을 제공합니다. vhd, vmdk, vdi, iso, qcow2 및 ami를 포함한 다양한 형식을 지원합니다.
  • OpenStack Block Storage(Cinder) : 이 서비스는 인스턴스를 실행하여 사용할 수 있는 블록 스토리지를 관리합니다. 인스턴스를 위한 영구 데이터 스토리지이며, 스냅 샷을 사용할 수 있습니다. 데이터 저장 및 복원 또는 복제 대부분의 경우 GNU / Linux 서버 기반의 데이터 스토리지는 Cinder와 함께 사용됩니다.
  • OpenStack Object Storage (Swift) : 이 서비스는 객체 저장소이며, 사용자가 파일을 저장할 수 있습니다. 분산 아키텍쳐를 갖추고 있어 장애 조치를 위한 수평 확장 및 복제가 가능합니다.
  • OpenStack Orchestration (Heat) : 이 서비스는 AWS CloudFormation 형식의 템플릿을 사용하여 다른 모든 OpenStack을 관리합니다. 대부분의 유형의 리소스(가상 머신, 볼륨, 유동 IP, 사용자, 보안 그룹 등)을 생성 할 수 있습니다. 또한 Ceilometer의 데이터를 사용하여 응용 프로그램 스케일링을 자동으로 만들 수 있습니다.

정리.

아직 완벽히 이해하지 못하고 서비스 정리가 안되서 정리 및 이해 중에 있습니다.

Core Service
Compute Service(CPU, RAM)Nova, EC2(Elastic Compute Cloud)
Storage Service(SSD, 구글드라이브, NAS, NFS)
Cinder; Block Storage, EBS(Elastic Block Storage),
Swift; Object Storage, S3(Simple Stroage Service)
Manila; File Storage, EFS(Elastic File System)
Network Service(IP, Subnet)Neutron, VPC(Virtual Private Cloud; 격리된(isolated))
Image Service(OS)Glance, AMI(Amazon Machine Image)
Identity Service(User(ID/PW), Group, Role, ...)Keystone, IAM(Identity Access Management)

참고

profile
SE, Cloud, Devops, Python

0개의 댓글