Skip to content

CB Tumblebug Features

Jihoon Seo edited this page Sep 1, 2021 · 2 revisions

서브시스템 기능

네임스페이스 관리

CB-Tumblebug 서브시스템은 사용자에게 네임스페이스 객체의 생성, 조회, 삭제 기능을 제공한다. 네임스페이스 객체 생성 기능은 사용자가 요청한 네임스페이스의 이름과 시스템이 생성한 범용 고유 식별자(UUID) 정보를 가진 정보 객체를 생성한다. 사용자는 네임스페이스 객체 조회 기능을 통해서 네임스페이스 전체 리스트를 확인할 수 있고, 네임스페이스의 이름을 통해서 UUID를 특정할 수 있다. 특정된 UUID는 MCIR과 MCIS에 대한 조회 및 제어 요청 시 필요한 기본 정보이다. 네임스페이스 객체의 삭제 기능은 네임스페이스 객체의 삭제를 위해서 네임스페이스에 포함되어 있는 MCIR 및 MCIS에 대한 정보를 조회하여, 만약 네임스페이스에 포함된 MCIR이나 MCIS가 있다면 네임스페이스의 삭제를 허용하지 않도록 확인을 수행한다. 네임스페이스 삭제 시에는 해당 네임스페이스를 지정하고 있는 MCIR과 MCIS가 미리 모두 제거되어야 한다.

멀티 클라우드 인프라 리소스 관리

MCIR에 대한 생성, 등록, 조회, 삭제 등의 기능을 제공하는 관리 기능을 제공한다. 다양한 MCIR 종류 (VM 이미지, VM 사양, 네트워크, 접속 등)에 대한 처리를 수행하며, 세부 기능은 다음과 같다.

  1. VM 이미지 관리
    MCIS에 포함될 수 있는 VM의 이미지 자원을 관리한다. VM 이미지를 CB-Tumblebug 서브시스템에 등록할 수 있으며, 등록된 이미지는 아이디를 가진 CB-Tumblebug 서브시스템의 객체가 된다. 등록된 이미지는 VM 생성 시 파라미터로 사용될 수 있다. 사용자가 이미지를 등록, 조회, 삭제할 수 있는 관리 기능을 제공한다.

  2. VM 사양 관리
    MCIS에 포함될 수 있는 VM의 VM 사양 자원을 관리한다. VM 사양 자원은 클라우드 서비스 제공자가 VM의 사양을 정의한 객체이다. 사용자는 VM 사양 자원을 CB-Tumblebug 서브시스템에 등록할 수 있으며, 등록된 VM 사양 자원은 아이디를 가진 CB-Tumblebug 서브시스템의 객체가 된다. CB-Tumblebug 서브시스템에서 관리되는 VM의 사양을 선택한 경우, 그 사양에 해당하는 VM 사양 객체는 클라우드 서비스 제공자에 따라 여러 개 일 수 있다. 이 VM 사양 객체는 VM 생성 시 파라미터로 사용될 수 있다. 추가적으로 VM 사양 자원에 대해 조회 및 삭제할 수 있는 관리 기능을 제공한다. CB-Tumblebug 서브시스템에서 관리하는 주요 사양 요소는 1) vCPU 개수, 2) 메모리 크기, 3) 스토리지 크기를 포함한다.

  3. 네트워크 관리
    MCIS에 포함될 수 있는 가상 네트워크 자원을 관리한다. 가상 네트워크 자원은 클라우드 서비스 제공자가 가상 네트워크 자원을 정의한 객체이다. 사용자는 클라우드 서비스 제공자가 제공하는 가상 네트워크 자원을 CB-Tumblebug 서브시스템에 등록할 수 있으며, 등록된 가상 네트워크 자원은 아이디를 가진 CB-Tumblebug 서브시스템의 객체가 된다. 이 가상 네트워크 자원은 VM 생성 시 파라미터로 사용될 수 있다. 또한, 가상 네트워크 자원에 대해 조회 및 삭제할 수 있는 관리 기능을 제공한다.

  4. 접속 관리
    MCIS에 포함된 VM에 접속하기 위한 자원을 관리(등록, 조회, 삭제)한다. VM 접속에 관련된 자원은 네트워크 보안 그룹(접속 가능한 네트워크 포트를 지정한 아이템 그룹) 및 VM에 SSH를 통한 접속을 위한 접속 보안키(key pair) 등이 있다.

멀티 클라우드 인프라 서비스 프로비저닝 관리

MCIS 프로비저닝 관리 기능은 MCIS를 생성하는 모든 절차를 관리한다. MCIS를 생성하기 위해서는 MCIS의 구성 요소가 되는 VM들을 생성해야 하며, 생성된 VM들을 설정하고 MCIS라는 논리적인 객체에 포함시켜야 한다. 개별 VM을 생성하기 위해서 VM을 최적으로 배치 및 스케줄링 하며, MCIS 단위의 서비스 요구 사항에 최적으로 부합하는 VM들을 선택함으로써 사용자에게 최적의 MCIS를 프로비저닝 한다. 세부 기능은 다음과 같다.

  1. MCIS 배치 요구 사항 검토
    MCIS 배치 요구 사항 검토 기능은 사용자가 요청한 MCIS에 대한 배치 요구 사항에 대한 오류를 검토하고, CB-Tumblebug 서브시스템에서 관리하는 정보를 기반으로 프로비저닝 가능 여부를 판단하여 프로비저닝이 불가능한 사용자의 요구 사항이 포함된 경우에는 MCIS 프로비저닝을 수행하지 않고, 사용자에게 프로비저닝 불가함을 통보한다.

  2. MCIS 배치 정보 수집
    MCIS의 최적 배치를 위해서는 정확한 정보 수집이 필수적이다. 이 세부 기능에서는 MCIS 배치를 위한 정보를 수집하는 기능을 제공한다. MCIS 배치를 위한 정보는 크게 1) 정적 정보, 2) 동적 정보로 나뉠 수 있다. 정적 정보에는 사양, 위치, 가격 등이 포함될 수 있으며, 동적 정보에는 성능 정보 등이 포함될 수 있다. MCIS 배치를 위한 정보 수집 기능에서는 VM 사양에 대해서 정적 정보를 수집하고, VM 벤치마킹 등을 통해서 동적 성능 정보를 주기적으로 수집할 수 있는 기능을 제공한다. 수집된 정보는 MCIS 최적 배치 스케줄링 알고리즘의 기반 데이터가 된다.

  3. MCIS 최적 배치 스케줄링
    MCIS 최적 배치 스케줄링 기능에는 다양한 요소를 기준으로 최적 배치를 수행할 수 있는 알고리즘들이 포함될 수 있다. CB-Tumblebug 서브시스템은 MCIS 단위의 최적 배치를 지원하는 특징을 가진다. CB-Tumblebug 서브시스템은 멀티 클라우드에 걸친 VM 간의 네트워크 지연 정보를 수집하여, 사용자가 요청한 MCIS 내의 모든 VM들의 네트워크 응답 속도를 특정 ms 내로 만족시키는 배치 기능을 제공한다.


MCIS 통합 최적 배치 - VM 간 네트워크 응답 속도 기반 배치 예시

위의 그림은 VM 간 네트워크 응답 속도 기반 배치의 예시를 보여준다. MCIS에 40ms 미만의 상호 네트워크 응답 속도를 명시하면, MCIS 통합 최적 배치 기능은 VM 간의 네트워크 응답 속도 정보를 통해서 제약을 만족하는 VM들로만 MCIS를 최적 구성한다. 또한, CB-Tumblebug 서브시스템은 MCIS의 최적 구성을 위해서 각 VM의 최적 배치 조건으로 다음 알고리즘들을 제공한다.

  • VM 사양 기반 배치: 사용자가 요청한 VM의 사양을 기반으로 추천 및 배치를 수행한다.
  • VM 위치 기반 배치: 사용자가 요청한 지역에 가까운 순으로 최적의 VM 추천 및 배치를 수행한다.
  • VM 가격 기반 배치: 사용자가 요청한 사양을 기준으로 해당 사양을 가장 저렴하게 제공할 수 있는 순으로 VM을 추천 및 배치한다.
  • VM 성능 기반 배치: MCIS 배치 정보 수집 기능 (성능 벤치마킹 등)을 통해서 제공되는 정보를 이용하여 사용자가 요청한 성능 기준으로 VM의 추천 및 배치를 결정한다. VM의 성능 요소의 예제에는 계산 성능, 메모리 읽기/쓰기 성능, 파일 IO 성능 등이 포함될 수 있다.
  • VM 복합 조건 기반 배치: 여러 가지 요소를 복합적으로 고려해야 하는 경우 사용할 수 있는 알고리즘이며, 이는 다른 알고리즘들의 가중합(각 알고리즘에 대한 사용자의 선호도를 표현할 수 있는 수식)을 통해서 구현될 수 있다.
  1. MCIS 생성
    MCIS 객체를 생성하고, 내부에 포함되는 VM을 멀티 클라우드 인프라 연동 프레임워크의 VM 생성 기능을 통하여 생성하는 기능이다. 각 VM을 생성하는 단계는 크게 생성 요청과 생성 설정하는 두 단계로 나뉠 수 있다. 사용자가 요청한 VM들이 모두 생성되고 나면, MCIS 객체에 해당 VM들에 대한 생성 및 접속 정보를 입력하고 사용자에게 반환한다. 이후, MCIS 라이프사이클 관리기는 신규 MCIS에 대한 라이프사이클을 관리한다.

멀티 클라우드 인프라 서비스 라이프사이클 관리

MCIS가 생성되어 사용자에게 프로비저닝 된 이후, 해당 MCIS의 라이프사이클, 즉 MCIS의 상태에 대한, 관리 및 제어 기능을 제공한다. 각 MCIS 및 포함된 VM들에 대해서 동작 상태, 중지 상태, 종료 상태 등의 MCIS 라이프사이클 상태가 관리되며, CB-Tumblebug 서브시스템이 관리하는 MCIS의 라이프사이클과 클라우드 서비스 제공자가 관리하는 실제 VM의 라이프사이클이 동일한지 확인 및 동기화한다. 또한 사용자가 라이프사이클에 관련된 제어 요청을 했을 때, 이를 수행하는 기능 등을 포함한다.


MCIS 라이프사이클 상태 및 변화

위의 그림은 MCIS 라이프사이클에 해당하는 상태를 나타낸다. 라이프사이클 상태는 최종 상태와 전이 상태로 나뉜다. 다음은 최종 상태의 리스트이다.

  • Running(동작 상태): MCIS가 동작 상태
  • Suspended(중지 상태): MCIS가 중지된 상태
  • Failed(실패 상태): MCIS가 오류로 인해 중단된 상태
  • Terminated(종료 상태): MCIS가 종료된 상태

전이 상태의 리스트는 다음과 같다.

  • Creating(생성 진행 상태): MCIS가 생성되는 중간 상태
  • Suspending(중지 진행 상태): MCIS를 일시 중지하기 위한 중간 상태
  • Resuming(재개 진행 상태): MCIS를 다시 실행하기 위한 중간 상태
  • Rebooting(재시작 진행 상태): MCIS를 재부팅하는 상태
  • Terminating(종료 진행 상태): MCIS의 종료를 실행하고 있는 중간 상태

MCIS의 라이프사이클은 내부의 자원들에 대한 종합적인 상태로 표현된다. 그러나, 모든 세부 자원의상태가 1개로 일치하지 않기 때문에 세부 상태에 대해 직접 확인하지 않고도 전체적인 상태를 파악할 수 있는 개념을 제공할 필요가 있다. MCIS 라이프사이클은 Partial 상태 정보를 제공한다. Partial 상태는 MCIS의 내부 자원들의 상태를 검토하고, 대표적인 상태로 라이프사이클을 표시한 것이다. 예를 들어, 10개의 VM으로 구성된 MCIS의 경우, 50% 이상의 VM이 Running 상태이면, MCIS 라이프사이클 상태는 Partial-Running 상태가 된다. 모든 VM이 Running 상태가 되면 MCIS 라이프사이클 상태가 Running으로 변경된다. 단, VM의 Failed 상태는 MCIS 단위에서도 바로 파악할 수 있도록 MCIS 내에 1개의 VM이라도 Failed 상태이면 MCIS의 라이프사이클은 Failed로 표시 및 제공한다.

멀티 클라우드 인프라 서비스 자동 제어

MCIS를 사용자가 명시한 규칙에 따라서 품질을 자동으로 제어하기 위한 기능이다. 사용자는 MCIS를 자동으로 제어하기 위한 상태 조건을 제시하며, 해당 상태 조건이 만족 또는 불만족 되는 경우, 특정 액션이 자동적으로 수행되도록 제시할 수 있다. MCIS 자동 제어기는 사용자의 규칙에 포함되는 다양한 조건 및 액션을 수행할 수 있는 메커니즘을 제공한다. 세부 기능은 다음과 같이 분류된다.

  1. MCIS 자동 제어 요구 사항 관리
    사용자가 요청하는 MCIS 자동 제어 요구 사항을 등록, 조회, 삭제할 수 있도록 지원하는 기능이다. MCIS 자동 제어 요구 사항은 하나의 정책의 형태로 관리되며, 자동 제어를 위한 스케줄러가 이를 참조하여 자동 제어를 개시한다.

  2. MCIS 제어 조건 판단
    MCIS의 현재 상태가 사용자가 요청한 상태 조건에 부합하는지 여부를 모니터링 정보를 통해서 지속적으로 확인하고, 부합 여부 확인 시, 자동 제어를 위한 트리거링을 수행한다. 모니터링 정보의 예시에는 자원 사용률, 성능 측정, 라이프사이클 상태 등이 있다.

  3. MCIS 제어 액션 실행
    자동 제어가 트리거링 되었을 때, 사용자가 요청한 액션을 수행하는 기능을 제공한다. 이때 수행되는 액션의 종류는 확장이 가능하다.

멀티 클라우드 인프라 서비스 특화 서비스

MCIS 특화 서비스는 아래 그림과 같이, 지역적으로 분산된 VM들로 구성된 MCIS의 활용 상의 단점을 보완하기 위한 멀티 클라우드 환경에 특화된 서비스를 제공한다. MCIS 특화 서비스는 ‘MCIS 동일 서브넷 환경 구성 기능(MC-VPN)’ 및 ‘MCIS 로드밸런싱 기능(MC-LB)’으로 구성되며, 필요시 추가 확장이 가능하다. MCIS 특화 서비스는 사용자가 MCIS 배치 요구 시 선택 가능하며, 사용자의 선택에 따라 MCIS 배치가 완료된 후 MCIS 기준으로 동일 서브넷 환경이 구성되거나 특정 VM들을 대상으로 부하 분산이 적용된다. 이러한 MCIS 특화 서비스의 세부 기능은 다음과 같다.


MCIS 특화 서비스 개념도
  1. MCIS 동일 서브넷 환경 구성(MC-VPN)
    이종 클라우드 기반 MCIS의 경우, MCIS를 구성하는 VM들은 서로 다른 서브넷 대역으로 인하여 공인 IP(Public IP)를 이용해서만 통신이 가능하다. 이와 같은 환경 기반으로 응용 프로그램이 운영될 경우, 통신상의 보안 문제가 발생할 수 있으며, 다른 서브넷 문제로 특정 분산 애플리케이션 운영이 불가능할 수 있다. ‘MCIS 동일 서브넷 구성 기능(MC-VPN)’은 그림 4 19과 같이, 이러한 멀티 클라우드 환경에서의 네트워크 문제를 해결하기 위해, VPN 기술을 응용하여 MCIS에 동일 서브넷 환경을 구성하고, 이종 클라우드 VM간의 통신상의 보안을 향상시키는 기능을 한다. 사용자가 CB-Tumblebug 서브시스템의 MCIS 생성 기능을 통해 MCIS 배치 시 옵션으로 MC-VPN 구성을 선택하면, MCIS가 배치 완료된 후 MC-VPN 기능을 통해 MCIS를 구성하는 모든 VM에 동일 서브넷의 사설 IP(Private IP)가 할당되어 VM간 동일 서브넷 네트워크 환경이 구성된다.

MCIS 동일 서브넷 환경 구성 기능(MC-VPN) 개념도
  1. MCIS 로드밸런싱(MC-LB)
    멀티 클라우드 환경에서 운영되는 MCIS 서비스는 개별 CSP에서 제공하는 부하분산 서비스를 통해 MCIS 구성 VM들에 대한 부하 분산이 어렵다. MCIS 로드밸런싱 기능은 이종의 멀티 클라우드 환경에서 클라우드 간 부하부산 기능을 제공한다. ‘MCIS 로드밸런싱 기능(MC-LB)’은 아래 그림 4 20과 같이, 멀티 클라우드 기반으로 지역적으로 떨어진 VM들을 대상으로 부하를 분산하여 응답시간을 단축하고 MCIS의 가용성 향상을 목적으로 하는 기능이다. 사용자가 CB-Tumblebug 서브시스템의 MCIS 생성 기능을 통해 MCIS 배치 시, 옵션으로 MC-LB 기능을 선택하고 부하분산을 적용할 VM들을 선택하면, MCIS 배치 진행 시 로드밸런서용 VM이 추가되어 배치되고, 사용자가 부하부산 대상으로 선택한 VM들에 대해 부하가 분산된다.

MCIS 로드밸런싱 기능(MC-LB) 개념도

아래 그림과 같이, MCIS에 VM이 추가된 경우, 해당 MCIS에 대해 MC-LB 기능이 선택되어 있다면 추가된 신규 VM이 부하분산 대상 VM에 추가되어 MC-LB 기능을 통해 신규로 추가된 VM으로도 부하가 분산된다.


MCIS 확장 발생시, 부하분산 확장 적용 기능
Clone this wiki locally