Dynamic Resource Allocation via Distributed Decisions in Cloud Environment

2013. 12. 7. 11:26Cloud/Provisioning

Dynamic Resource Allocation via Distributed Decisions in Cloud Environment

Trieu C. Chieu and Hoi Chan

IBM T. J. Watson Research Center

19 Skyline Drive

 

본 논문은 Dynamic Resource 프로비저닝을 하기 위한 구조로써 Physical 리소스들이 자기 스스로의 현재 작업부하 상태를 판단하여, 리소스 배포 규모를 결정하는 아이디어를 담은 내용이다.

 

 

CLASSICAL CENTRALIZED DECISION MAKING PROVISIONING AND SCALING SYSTEM

 

 

< 그림 1 : 프로비저닝과 스케일링 관리 시스템 CPSMS >

 

아키텍처의 설계는 Load-Balancer와 VM, 물리적 호스트, 프로비저닝 서비스와, 동적 자원 프로비저닝을 위한 스케줄링 알고리즘, 모니터링 서비스로 이루어진다.

PSMS의 모니터링 서비스는 스케일링 기준을 측정하기 위해 애플리케이션, 가상머신, 물리적 호스트에 설치된 에이전트를 통하여 성능과 데이터용량을 모니터링을 실시한다.

 

이 정보를 바탕으로 중앙에 있는 스케일링 알고리즘에서 리소스에 대한 임계값 설정 수치를 기준으로 스케일링을 판단하게 된다.

 

 

알고리즘은 인스턴스의 최대 세션값이 최대 임계값을 초과하면 새로운 인스턴스를 생성하고, 반대로 인스턴스의 최대 세션값이 최소 임계값보다 작을 경우, idle모드의 인스턴스를 제거하는 알고리즘이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이 구조는 중앙에 있는 단일 entity가 local agent와의 지속적인 커뮤니케이션을 통해 모든 정보를 소유하고 있고, 이를 바탕으로 상태 분석을 하여, 전체 시스템을 조절하는 중앙 집중 제어 설계이다.

 

하지만 가상머신들과 물리적 리소스들의 수가 증가하게 되면, 이에 대해 분석하고 시스템을 조절하기에는 규모가 너무 커지는 단점이 있다. 또한 각 물리적 시스템과 가상머신들의 특성을 고려하지 않아 효율성이 떨어진다.

이러한 리소스 프로비저닝을 결정하는 구조에 대한 대안적 접근방법으로, 이 논문에서는 분포된 의사 결정 프로비저닝과 스케일링 시스템을 연구하였다.

 

DISTRIBUTED DECISION MAKING PROVISIONING AND

SCALING SYSTEM

 

<그림 2 : 분포된 의사 결정 시스템을 이용한 프로비저닝과 스케일링 시스템 DPSMS>

 

아키텍처의 설계는 이전 PSMS과 유사하며, Capacity and Utiliy Agent(CUA)를 물리적 호스트에 배치 하였으며, PSMS 대신에, Distributed Capacity Agent Manager로 교체 되었다.

< 그림 3 : 물리적 호스트의 가상머신들에 대한 Capacity and Analytic Agent(CUA) >

 

CUA는 하이퍼바이저 API를 통해 물리적 호스트의 특성에 대한 시스템 프로파일로부터 Power와 자원 데이터를 각 가상머신들과 물리적 호스트로부터 수집한다. Capacity을 측정하기 위한 기준으로 다음과 같은 CI를 측정한다.

 

중앙에서 모든 리소스를 결정하는 CPSMS와는 달리 DPSMS는 DPSMS의 각 물리적 호스트 자체가 CUA가 측정한 현재 사용할 수 있는 리소스에 대한 정보인 CI를 바탕으로 프로비저닝, 스케일링 여부를 결정한다.

 

CUA는 로컬 호스트에 구동하는 가상머신 인스턴스의 성능을 측정하며, 리소스 스케일링을 결정 짓는다. 리소스가 추가적으로 필요한 경우 , CI는 낮을 것이고, 이에 가상머신들을 추가적으로 로컬 호스트내에서 만들고, 리소스에 대한 축소가 필요하면, 가상머신들은 로컬 호스트에서 제거 된다.

 

가상머신의 추가적인 생성과 제거를 하게 되면 CI는 재 계산을 하게 되고 변경된 CI는 DCMgr(그림2 오른쪽 부분)로 보내지게 된다.

 

DCMgr은 현재 모든 CI에 대한 데이터베이스를 유지하며, CI를 기반으로 요구된 작업에 대한 리소스 최적화 배포 플랜을 실시한다.

 

< 그림 4 : Distributed Capacity Agent Manager Overview, DCMgr >

 

DCMgr의 Host capacity index는 CUA로부터 CI(용량지수)를 수신하고 데이터베이스에 저장한다. Provisioning and Scaling Planner는 모든 CI를 검토하여 자원 할당 계획을 공식화 한다. 또한 각 CAU로 부터의 받은 CI를 바탕으로 자원 배분을 최적화하는 알고리즘을 포함한다.

 

이 알고리즘은 Eexample Threshold를 가진 각 물리적 호스트의 CI를 극대화 한 임계값 기반의 할당 기법을 보여주고 있다.