가상화 - OpenStack Service

jsbak·2023년 4월 5일
0

Cloud

목록 보기
10/59
post-thumbnail

OpenStack Service

❗ 개념적 아키텍처

  • VM 을 어떻게 서포트 할지, (무중단), 가용 가능한 모든 자원 동원, 주변 서비스들이 VM 가동을 돕는다.
    • Compute Service (cpu, ram)
      • Nova; cpu & memory Setting
    • Storage Service
      • Cinder; Block Storage, SSD / HDD
    • Network Service
      • Neutron; public / private subnet
    • Image Service
      • Glance; OS(CentOS, Ubuntu, ...)
    • Keystone; 인증(로그인)/권한(역할)
      • VM 관련 보안 부분을 전사적으로 처리
    • 나머지 Optional
      • Ceilometer - monitoring; Telemetry
      • Horizon - WEB UI(Dashborad); OpenStack의 서비스를 80% 정도만 이용가능,,, 계속 개발 중
    • Swift; Sixman
      • Object Storage
        • image, backups volumes(snapshot)
    • Sahara;
      • 빅데이터 처리(Hadoop)
    • Trove
      • DBMS
    • 💫 Ironic
      • 가상 머신 대신 Physical Machine(Bare Metal Server) 을 준비시키는 오픈스택 프로젝트
      • Openstack 자체를 배포
    • Heat; Sixman
      • IaC(Infra as Code)
      • Orchestration 도구; 자동화
  • 설치 해볼 것: Nova, Cinder, Neutron, Giance, Keystone, Swift, Heat, Horizon

논리적 아키텍처

  • 개념적 아키텍처에 나온 서비스를 상세하게 설명한 것

오픈스택 서비스 관계도

  • 각 서비스에 해당하는 오픈 소스 프로젝트 생각해보기

구성요소(서비스)

클라우드 운영 체제라고도 하는 OpenStack 프로젝트는 여러 다른 프로젝트로 구성됩니다. OpenStack 설치시 여러 프로젝트중 일부만 포함살 수 있습니다.

OpenStack Compute (Nova)

  • 인스턴스 (프로세서, 메모리, 블록장치, 네트워크)의 추상화 수준을 관리
  • 모든 클러스터 노드 컴퓨터에 설치
  • 하이퍼 바이저(KVM)을 통해 인스턴스 라이프 사이클을 관리
    • 다른 것도 가능하나 KVM이 베스트
  • 가상 머신, 베어메탈 서버 생성을 지원하며(ironic 사용을 통해) 시스템 컨테이너에 대한 지원이 제한
  • Nova는 해당 서비스를 제공하기 위해 기존 Linux 서버 위에 데몬 세트로 실행

OpenStack Networking (Neutron)

  • 네트워크 연결을 담당
  • 사용자는 가상 네트워크 및 가상 라우터를 생성하고 floating IP 기능을 통해 인터넷 공급자 (IP) 주소를 설정할 수 있습니다. 이 메커니즘 덕분에 인스턴스는 외부로부터 고정 IP 주소를 할당 받는다.
    • floating IP; 공인 IP?
  • 네트워크 부하분산 서비스와 방화벽, VPN 등의 기능을 모듈로 설치하여 이용

OpenStack Identification (Keystone)

  • 클라우드 운영 체제의 통합 인증 시스템
    • 인증과 권한을 제공
    • 완벽하지 않다.
  • 사용자 계정의 유효성과 OpenStack 프로젝트 및 역할에 대한 사용자의 일치 여부를 확인
  • 다른 서비스에 액세스하기 위한 토큰 제공

OpenStack Image Service (Glance)

  • 이미지 서비스 💨 AMI; Amazon Machine Image
  • 인스턴스의 이미지를 관리하며 인스턴스를 실행하기 위한 템플릿으로 사용
    • 템플릿; 이미 OS 설치 및 필요한 소프트웨어가 되어 있는 이미지
  • 백업과 스냅샷 생성 기능 제공
    • vhd, vmdk, vdi, iso, qcow2 및 ami를 포함한 다양한 형식을 지원
      • 다른 것과는 다르게 iso 는 💢 무조건 설치 과정이 필요하다.

OpenStack Block Storage (Cinder):

  • 인스턴스를 실행하여 사용할수 있는 블록 스토리지 관리
  • 영구 데이터 스토리지
    • 과거에는 인스턴스 스토어(휘발)있었는데 지금은 껏다 켜도 남아 있는 영구 데이터 스토리지
  • 스냅샷 이용 가능
  • 데이터 저장 및 복원 또는 복제 대부분의 경우 GNU / Linux 서버 기반의 데이터 스토리지는 Cinder와 함께 사용된다.

OpenStack Object Strage (Swift)

  • 객체 저장소
  • 사용자가 파일 저장가능
  • 분산 아키텍처를 갖추고 있어 장애 조치를 위한 수평 확장 및 복제 가능

OpenStack Orchestration (Heat)

  • IaC; Infra as Code 서비스
  • AWS CloudFormation 형식의 템플릿을 사용하여 다른 모든 OpenStack을 관리
  • 대부분의 유형의 리소스(가상 머신, 볼륨, 유동 IP, 사용자, 보안 그룹 등)을 생성 할 수 있습니다.
  • Ceilometer의 데이터를 사용하여 응용 프로그램 스케일링을 자동화할 수 있다.

Nova

  • 오픈스택 컴퓨트 서비스 Nova는 대규모의 가상머신을 제공하거나 관리할 수 있으며 언제든지 이중화 및 서비스 확장이 가능한 클라우드 컴퓨팅 시스템을 생성하기 위해 디자인된 오픈스택의 핵심 서비스
    1. nova-api 서비스는 대시보드 또는 콘솔을 통해 사용자의 인스턴스 생성을 요청
    2. nova-api는 요청을 메시지 큐 서비스를 통해 컴퓨트 노드에서 실행 중인 nova-compute 서비스에게 전달
    3. nova-api로부터 요청을 받은 nova-compute 서비스는 컴퓨트 노드에서 실행중인 하이퍼바이저에게 이를 전달
    4. 하이퍼바이저는 이 요청을 받아들여 미리 설정해 놓은 네트워크 및 Flavor 등을 사용해서 인스턴스를 생성
    5. 이렇게 생성된 인스턴스를 사용자는 콘솔 서비스를 통해 접근 및 사용 가능
      , nova-novncproxy 서비스를 통해 vnc 를 통한 접속도 가능

Neutron

  • 오픈스택 네트워크 서비스 Neutron
  • 오픈스택 클라우드에서 가상 네트워크 인프라를 생성하고 관리할 수 있도록 허용하는 섭시ㅡ
  • 네트워크 서비스(FWaaS, LBaaS, VPNaaS), 외부 및 내부 네트워크(Flat, VXLAN, 라우터(Floating IP), 보안그룹(Security Group) 등과 같이 실제 네트워크 장비와 같은 물리적 요소들의 기능을 모방해 이들과 유사한 기능을 제공
    1. neutron-server는 일반적으로 컨트롤러 노드에 설치되며 네트워크, 서브넷 및 라우터 생성 및 관리 등의 요청을 API를 통해 처리
    2. neutron l2 agent는 컴퓨트 노드에 설치되며 neutron-server와 통신하여 호스트 상의 네트워크를 설정하는 역할도 한다. 또한 LinuxBridge, OVS 그리고 보안 그룹 및 VLAN 태깅도 처리할 수 있다.
    3. nenutron l3 agentneutron-server로부터 라우터 관리, 라우팅 그리고 플로팅 IP에 대한 메시지를 받아서 관리
    4. neutron dhcp agent는 IP 주소 할당에 사용

Keyston

  • 오픈스택 인증 서비스 Keystone
  • 오픈스택 서비스와 사용자를 위한 인증과 권한 부여 그리고 서비스의 카탈로그를 관리하기 위한 통합 서비스를 제공하는 오픈 스택의 핵심 구성 요소
    1. 사용자: 사람, 시스템 또는 서비스를 의미 Keystone 서비스는 이러한 사용자의 서비스 요청을 검증하는 역할을 수행
    2. 토큰: 사용자가 오픈스택 서비스가 제공하는 자원에 접근할 때 그 신분을 증명하기 위해 사용하는 임의의 텍스트로 이뤄진 데이터
      이러한 각 토큰 내부에는 사용자가 어떤 자원에 접근이 가능한지 그 범위가 지정돼 있다.
    3. 프로젝트 : 과거 테넌트(임차인)이라는 이름으로 사용됐으나 현재는 프로젝트로 변경
      어느자원이나 애플리케이션에 대한 권리를 가진 보안 그룹으로 자원에 대한 소유권을 정의
    4. 서비스: nova, glance, cinder, neutron 같은 서비스를 의미
    5. 엔드포인트: 사용자가 서비스를 이용하기 위해 연결 정보를 제공하는 접근 가능한 네트워크 주소로서 이를 위해 URL 즉 IP 주소와 포트 번호 그리고 버전 정보를 사용
    6. 역할: 서비스들은 이러한 역할을 통해 사용자들이 어떤 동작 및 어떤 자원에 접근이 가능한지 파악
    7. 도메인: Keyston의 구성 요소를 효과적으로 관리하기 위해서 그 활동 범위가 제한된 사용자와 그룹 그리고 프로젝트의 연합체로 정의 가능

Glance

  • 디스크와 서버의 이미지를 발견하고 등록하고, 검색하는 기능을 제공하는 이미지 서비스
  • 일반적으로 템플릿 형태로 저장되며 인스턴스 생성을 위해 사용
  • 인스턴스의 한 시점을 저장하기 위한 스냅샷 기능 제공
    1. glance-api는 Nova 서비스나 최종 사용자로부터 이미지에 대한 API 요청을 받아들인다. 그리고 그 이미지 파일을 Swift와 같은 오브젝트 스토리지 또는 Cinder 같은 블록 스토리지 등에 저장
      2.glance-registryglance-database는 이미지에 대한 메타데이터 정보를 저장, 진행 그리고 검색하기 위해 사용
    2. glance-store는 이미지 저장하는 공간으로 AWS S3, Swift, Cinder, VMware 등의 백엔드 저장 장치를 이용
    • Glance 서비스의 디스크 포멧
      • RAW, vhd, vmdk, qcow2, vdi, iso, ovf, ova

Cinder

  • 오픈스택 블록 스토리지
  • Nova 서비스가 생성한 인스턴스에 저장 공간으로 사용되는 블록 스토리지를 제공하는 서비스
    1. cinder-api는 여러 클라이언트 서비스로부터 API 요청을 받아 cinder-volume 서비스에게 전달하는 역할
    2. cinder-volume은 가상머신에게 스토리지를 제공하기 위해서 백엔드에 존재하는 볼륨 디바이스에 대한 읽기 또는 쓰기 등의 요청에 대해 응답, 이러한 요청은 아래 cinder-scheduler로부터 도착하며 볼륨을 생성, 수정 또는 삭제할 수 있다.
    3. cinder-sechdulernova-scheduler처럼 볼륨을 생성할 수 있는 최선의 스토리 노드를 선택하는 역할을 하며 일반적으로 컨트롤러 노드에서 실행되며, 요청 내용을 진행하기 위해서 그 선정된 호스트에 위치한 cinder-volume과 지속적으로 의사 소통을 진

Swift

  • 오픈스택 오브젝트 스토리지 Swift는 대량의 데이터를 저장하기 위해 HTTP 프로토콜을 통해 접근이 가능한 스토리지 시스템을 제공하는 서비스
    • Object - Videos, Images, Documents File, ...etc
    1. swift-proxy-server는 클라이언트로부터 오픈스택 오브젝트 스토리지 API와 HTTP 요청을 받아들인다. 이러한 요청은 파일을 업로드하고 메타데이터를 수정하고 컨테이너를 수정할 경우 필요하다. 또한 웹 브라우저를 통해 파일 도는 컨테이너의 목록도 제공
    2. swift-account-server는 오브젝트 스토리지에서 정의된 계정 및 account 데이터베이스에 저장된 컨테이너 목록을 관리
    3. swift-container-server는 오브젝트 스토리지에서 컨테이너 또는 폴더의 매핑 정보와 스토리지 정책을 관리하고 컨테이너 데이터베이스에서 특정 컨테이너에 포함된 오브젝트 목록도 관리
    4. swift-object-server는 실제 데이터인 오브젝트를 저장하고 검색하고 삭제하는 역할을 수행

Heat

  • 오픈스택 오케스트레이션 서비스
  • 스토리지, 네트워킹, 인스턴스 그리고 기타 애플리케이션과 같은 오픈스택 클라우드 서비스의 주요 자원을 파일 기반의 템플릿에 기초해서 생성하고 관리할 수 있는 서비스
    1. 사용자는 API를 직접 호출하여 오케스트레이션 서비스를 요청하거나 CLI를 통해 동일한 작업을 수행할 수 있다. 이때 CLI 역시 사용자 명령을 API로 변환하여 처리하게 된다.
    2. 수신된 API 서버는 AMQP 규격 기반의 메시지 통신을 통해 Heat Engine으로 이를 전달
    3. Heat Engine은 수신한 템플리소가 API의 파라미터에 포함된 사용자 요청 데이터를 기반으로 인프라 및 클라우드 애플리케이션을 생성하기 위해 Nova API, Neutron API 등과 같은 오픈스택 프로젝트들의 API를 호출
    • 오케스트레이션
      • 컴퓨터 시스템과 애플리케이션, 서비스의 자동화된 설정, 관리. 조정을 의미
profile
끄적끄적 쓰는곳

0개의 댓글