SlideShare a Scribd company logo
1Operating Systems Lab.
Operating Systems Lab, College of Informatics, Korea University.
Grafana를 이용한
OpenStack 클라우드
성능 모니터링
Stella team
Operating Systems Lab, Korea University
(starlab@os.korea.ac.kr)
OpenInfra Days Korea 2018
2Operating Systems Lab. Korea University, College of Informatics
Stella 프로젝트
 SLA 보장의 필요성
 Stella 프로젝트 소개
 Stella 클라우드 아키텍처
Ceilometer-Gnocchi 전달 과정 분석
 Gnocchi의 필요성
 Ceilometer-Gnocchi 전달 과정
Grafana-Gnocchi 연동
Stella 프로젝트 사이트 및 코드 공개
발표 목차
3Operating Systems Lab.
Stella 프로젝트
4Operating Systems Lab. Korea University, College of Informatics
Microsoft Bing test result
SLA(Service Level Agreement)
 클라우드 서비스 제공자와 사용자 간, 서비스의 품질 수준을 정의하는 계약
 성능, 보안 등 모든 서비스 품질 요소가 대상이며 구체적인 수치(SLO,
Service Level Objective)로 체결
e.g., 10ms 이하 처리지연, 1초당 1000개 쿼리 처리, 99.9% 데이터 가용성
 서비스 수준 미달 시 페널티를 부과하기도 함 -> 서비스 비용 증대
성능 SLA를 만족하지 못하는 경우 경제적 피해 발생
 Microsoft의 사례
 검색 지연 증가 → 사용자 당 수익감소
 Amazon의 사례
 처리 지연 100ms 증가
→ 매출 1% 감소 (약 9억 달러)
차세대 클라우드에서 성능 SLA 보장의 필요성
5Operating Systems Lab. Korea University, College of Informatics
다양한 자원 요구로 인한 SLA 위반 발생
 CPU 자원 부족에 의한 급격한 스토리지 I/O 성능 저하 발견
 VM1과 VM2는 스토리지 I/O 수행 (Iometer)
 VM3은 반복적인 CPU 연산 수행 (Sysbench-cpu)
 실험 결과
 CPU VM(VM3)는 SLA 대비 평균 425% 수준
• 평균 CPU 사용률: 850.1 %
 I/O VM(VM1, VM2)은 SLA 대비 평균 51% 수준
• VM1- 평균 대역폭: 51MB/s, 평균 CPU 사용률: 50.1%
• VM2- 평균 대역폭: 104MB/s, 평균 CPU 사용률: 91%
SLA 위반 원인: VM1 과 VM2의 I/O 처리를 위한 CPU 자원 부족
SLA 위반 사례
0
100
200
300
400
3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57
SLAsatisfaction(%)
Elapsed time (s)
VM1 VM2 VM3
SLA 만족도 달성 실험 (SLA 보장 스토리지 스케줄러 동작 중 )
SLA 만족도 실험 환경
6Operating Systems Lab. Korea University, College of Informatics
프로젝트 책임자
 고려대학교 유혁 교수
Stella 프로젝트의 목표
 성능 SLA를 보장할 수 있는 클라우드 소프트웨어 개발
 다양한 자원(CPU, 스토리지, 네트워크)의 SLA 만족 달성
 SLO를 할당하는 컴포넌트 디자인 및 SLA 만족도 관련 통계 수집 및 달성
 노드 수준 및 클라우드 수준의 SLA 보장
 노드 수준: 하이퍼바이저 계층에서 SLA를 보장
 클라우드 수준: 노드 별 서비스 용량 계산 및 작업 할당
현재 진행 상황
 현재, 노드 수준 Stella 스케줄러 구현 및 공개
(CPU-네트워크, CPU-스토리지)
 클라우드 수준에서 통합 스케줄링 연구 진행 중
Stella 프로젝트 소개
7Operating Systems Lab. Korea University, College of Informatics
Stella 프로젝트 단계별 목표
1단계
(2015~2018)
• 노드 수준 CPU, 네트워크, 스토리지
개별 SLA 보장 기법 개발
• 노드 수준 CPU, 네트워크, 스토리지
통합 SLA 보장 스케줄러 개발
1단계 목표: 성능 SLA
통합 보장 시스템 SW 기반 기술
1단계 목표: 성능 SLA
통합 보장 시스템 SW 기반 기술
2단계
(2019~2022)
• 클라우드 수준
자원 스케줄링 기법 개발
• 클라우드 수준 작업 할당 및 관리
기법 개발
• 클라우드 수준 SLA 지원에 따른
클라우드 서비스 성능/품질
저하 방지 방안 연구
2단계 목표: SLA 통합 보장
클라우드 플랫폼 기술
2단계 목표: SLA 통합 보장
클라우드 플랫폼 기술
최종
(2022)
최종 목표:
성능 SLA 보장
차세대 클라우드 시스템 플랫폼
최종 목표:
성능 SLA 보장
차세대 클라우드 시스템 플랫폼
결과물:오픈스택기반컴포넌트
• SLA 보장 서비스 및
노드 관리 기법
• 성능 SLA 보장 스케줄러
• 통합 스케줄링 프레임워크
8Operating Systems Lab. Korea University, College of Informatics
Stella 스케줄러
 노드 수준 CPU, 네트워크, 블록I/O 자원의 통합 스케줄링
오픈스택 컴포넌트
 클라우드 수준의 VM 할당 및 관리, 자원 활용 및 성능 모니터링/보고, 인증
 모니터링 관련 컴포넌트
 Ceilometer(모니터링), Gnocchi(통계 수집), Grafana(통계표현 대시보드)
Stella 클라우드 아키텍처
9Operating Systems Lab. Korea University, College of Informatics
SLA 매니저(SLA Manager)
 주어진 SLO를 스케줄링 파라미터로 변환
e.g., 100MB/s (스토리지 대역폭)를 스케줄링 파라미터로 변환
(CPU quota, I/O 요청 시간 등을 조절)
 관리자에게 SLA 만족도 보고
 SLA 만족도 달성을 위해 스케줄링 파라미터 조절
SLA를 고려한 자원 스케줄러
 스토리지 I/O 스케줄러 및 네트워크 I/O 스케줄러 통합
통계 수집기(Statistics collector)
 스케줄러로부터 통계 데이터 수집
 SLA 매니저에게 통계정보 전송
Stella 스케줄러
Block I/O
scheduler
Network I/O
scheduler
CPU scheduler
10Operating Systems Lab. Korea University, College of Informatics
현재 Stella 스케줄러는 클라우드 노드 수준으로 동작
클라우드 수준의 SLA 관련 통계 모니터링 대상과 과정의 분석이 필요
 목적: Stella 스케줄러와 통합을 위한 오픈스택 확장
 모니터링 대상
 자원 사용량: I/O 대역폭, CPU 사용량 등을 수집
 SLA 파라미터: SLA 목표치 설정 및 SLA 만족도 수집
 모니터링 과정
 수집된 통계를 대시보드 까지 전달하는 경로
 관련 오픈소스 및 오픈스택 컴포넌트 (Pike 버전 기준)
• Grafana: 통계 정보를 표현하는 웹 기반 대시보드
• Ceilometer: 오픈스택 서비스로 부터 통계 정보 모니터링
• Gnocchi: Ceilometer가 모니터링 한 정보 수집 및 관리
Stella 스케줄러를 위한 SLA 목표치 전달 인터페이스 설계 및 구현 예정
 분석 내용을 기반으로 인터페이스 설계 및 구현
 대시보드를 통해 사용자 또는 관리자가 SLA 정의
 정의한 SLA 목표치를 Stella 스케줄러에 전달
본 발표에서는 모니터링 과정에 초점
Stella 스케줄러의 오픈스택 확장
11Operating Systems Lab.
Ceilometer-Gnocchi 전달 과정 분석
12Operating Systems Lab. Korea University, College of Informatics
Gnocchi를 통해 오픈스택과 연동
 오픈소스 시계열 데이터 수집 서비스
 시계열 데이터: 시간 순으로 나열된 데이터
 Gnocchi는 Ceilometer의 성능 문제를 해결하기 위해 제안
 Ceilometer는 기존 오픈스택에서 통계 수집기능 제공
 Ceilometer는 정보를 조회할 때 성능 저하 발생
• 특히 데이터를 탐색할 때 O(n) 복잡도를 가짐
(데이터의 숫자가 늘어나면 탐색 시간이 선형적으로 증가)
• 노드의 규모가 늘어날 수록 성능 문제가 커짐
Gnocchi는 시간 복잡도를 O(1)로 개선
 통계 정보를 시계열순으로 정렬해서 저장
 Measure: gnocchi가 입력 받은 데이터 기록
 Aggregated: Measure의 데이터를 기반으로 정렬된 정보 기록
 인덱스를 통해 빠른 접근 제공
 Index: Gnocchi를 위한 메타데이터, 클라우드 리소스 정의 및 정책 저장
Gnocchi 분석의 필요성
13Operating Systems Lab. Korea University, College of Informatics
Gnocchi 구성 컴포넌트: gnocchi-api, gnocchi-statsd, gnocchi-
metric
 API: Gnocchi 연산 및 데이터 통계 수집을 위한 REST API 정의
 Statsd: 통계 데이터 수집
 Metricd: 수집된 데이터를 기반으로 명령 처리 수행
Gnocchi의 구성 요소
Gnocchi 아키택처
14Operating Systems Lab. Korea University, College of Informatics
Polling agent: 오픈스택 서비스로 부터 통계를 수집
 주기적인 통계 수집 API 호출
 Pollster는 서비스의 통계정보 수집을 위한 플러그인
(서비스에 맞는 API 호출 및 데이터 형식 지정)
 수집데이터는 sample이라고 불림
Notification agent: 수집된 데이터를 기반으로 Ceilometer의 이벤트 또는 샘플로 변환
 Pipeline: 수집된 데이터를 외부로 전달하기 위한 처리 절차
 Transformer: 수집된 데이터를 모아 정규화 및 통합
 Publisher: 수집된 데이터를 외부 형식에 맞게 변환 및 전송
Ceilometer-Gnocchi 전달 과정 요약
Polling agent
Notification agent
OpenStack
Service
(e.g.,
Compute,
Network,
eta.)
Sample
name = cpu.time
timestamp=T
value = 5
Sample
name = cpu.time
timestamp=T+1
value = 20
Sample
name = cpu.time
timestamp=T+2
value = 80
Transformer
1)Delta
2)Scaling
3)Rate of
change
4)aggregator
Gnocchi
publisher
Normalized
Sample
name = cpu.percentage
timestamp=T+2
value = 9
Gnocchi
DB
Oslo.messagi
ng publisher
External
system
notification Pipeline
pollster
pollster
pollster
pollster
pollster
pollster
data
1
2 3
15Operating Systems Lab. Korea University, College of Informatics
과정 1. Polling agent
Class PollingTask(object)
사용할 pollster들을 추가하는 과정
(pollster config는 compute/pollsters/분류.py)
History 에 resource 추가하고,
각 pollster에 맞는
Polling_resource들을 append
Timestamp 찍은 후,
샘플 데이터를 수집하는 함수
받아온 샘플을 notification에 전송
compute/pollsters/__init__.py
run -> start_polling_tasks -> for interval.pollingtask (반복)
Polling/manager.py
Polling agent는 sample을 수집
 오픈스택 서비스마다 독립적인 pollster가 동작
 Pollster는 특정서비스의 API 호출
 Sample 데이터 형식으로 통계 정보 수집
 호출된 API를 통해 통계 정보 수집
 Sample은 키, 값으로 구성된 데이터의 집합
16Operating Systems Lab. Korea University, College of Informatics
과정 2-1. Transformer의 sample 처리
transformer/__init__.py
transformer/accumulator.py transformer/arithmetic.py transformer/conversions.py
Transformer는 sample 수집 및 처리
 Pollster로 부터 수집한 sample을 가공하는 과정을 수행
 Accumulator: Sample의 버퍼, 일정 수 이상이 모이면 다음 단
계로 넘김
 ArithmetricTransformer: sample 데이터의 수학 계산을 수행
 가공한 sample은 정규화된 데이터 형식으로 변환 수행
 BaseConversionTransformer를 통해 호출
 세부 내용은 과정 2-2(다음 장)에 계속
17Operating Systems Lab. Korea University, College of Informatics
과정 2-2. Conversion transformer 세부 내용
Handle_sample은 DeltaTransfomer와 유사
수집한 sample을 정규화 및 통합
 DeltaTransformer: Sample간 값의 차이를 기준으로 통합 수행
 ScailingTransformer: Sample 간 값의 단위 차이를 통합
e.g., 나노초, 밀리초 단위 값을 통합
 RateOfChaingeTransformer: Sample의 rate를 변경 해서 통합
e.g., CPU time을 CPU 사용량
18Operating Systems Lab. Korea University, College of Informatics
과정 3. Gnocchi Publisher
publisher/gnocchi.py
Gnocchi에게 전달을 위해 sample 를
metric data형식으로 전환
만약 수집한 sample의 resource_id가
gnocchi에 등록되어 있지 않다면,
gnocchi data 배열에 새정보를 등록
Publisher는 데이터를 외부 저장소로 전송
 정규화 및 통합된 sample을 외부 저장소 형식
에 맞게 변경
e.g., Gnocchi 데이터 형식
 변경한 데이터를 전송
사용자가 설정한
publisher에서 실제 사용
가능한 data들이 return
되면, 마지막으로 외부에
publishing한다.
데이터를 전송하기 위해
시리얼라이즈(바이트화)
pipeline/sample.py
publisher/gnocchi.py
publisher/gnocchi.py
19Operating Systems Lab.
Grafana-Gnocchi 연동
20Operating Systems Lab. Korea University, College of Informatics
Grafana 패키지 설지
 우분투 16.04 환경에서 진행
Keystone 및 Gnocchi 설정
 Keystone의 URL 설정
 Keystone: 오픈스택 환경에서 사용자 및 서비스의 인증 관리 수행
 Gnocchi가 다른 서비스와 동작하기 위해 필요
Grafana 및 Gnocchi 연동
 Grafana에서 데이터 저장소를 Gnocchi 로 설정
(Web GUI 에서 진행)
 Gnocchi 접근 권한을 위한 인증 설정 진행
Grafana 설치 및 환경 구성 요약
Ubuntu 환경에서 Grafana 다운 로드 및 설치
Grafana 구동 및 서비스 등록
21Operating Systems Lab. Korea University, College of Informatics
Keystone 및 Gnocchi 설정
Gnocch에서 keystone API 호출을 위한 IP
및 포트 설정 (URL 및 포트 번호를
Gnocchi 설정에 등록)
Keystone.conf
Keystone-paste.ini
gnocchi.conf
Keystone 설정
Gnocchi 설정
Keystone의 URL 기록
22Operating Systems Lab. Korea University, College of Informatics
Grafana Gnocchi 연동
데이터 종류를 gnocchi
선택
오픈스택 Keystone
서비스의 IP 및 포트
keystone 접속을 위한 로그인
정보
(편의를 위해 관리자 정보 기입)
23Operating Systems Lab. Korea University, College of Informatics
Grafana 대시보드 구성 예시 (CPU 및 네트워크)
CPU 사용량
가상머신 목록
네트워크 인터페이스
가상포트별 네트워크 통계
24Operating Systems Lab.
Stella 프로젝트 사이트 및 코드 공개
25Operating Systems Lab. Korea University, College of Informatics
Stella 프로젝트 홈페이지(http://stella.korea.ac.kr)
 프로젝트 소개 및 관련 기술 문서 업로드
 블록 스토리지 및 네트워크 스케줄러 관련 자료 제공
 클라우드 구축 현황 정보
Stella Github 저장소 (https://github.com/KUoslab)
 Stella 개발 코드 제공
(현재 Stella 스케줄러 코드 및 설치 문서 제공)
KU.Stella 런치패드 (https://launchpad.net/ku.stella)
 프로젝트관리에 사용
(Github 저장소 미러 제공, 버그 리포팅)
 오픈스택 관련 컴포넌트 제공 예정
(Stella 스케줄러 인터페이스 공개 등)
Stella 프로젝트 사이트
26Operating Systems Lab. Korea University, College of Informatics
Stella 스케줄러 테스팅 방법
 Stella Github 저장소 접속
(https://github.com/KUoslab/Stella_new)
 README 파일을 통해 설치 정보 제공
(https://github.com/KUoslab/Stella_new/blob/master/README.md)
사용 코멘트 및 버그 리포팅
 KU.Stella 런치패드 또는 메일 (starlab@os.korea.ac.kr)
Stella 스케줄러 테스팅 및 리포팅
Github 저장소 접속 화면
27Operating Systems Lab.
감사합니다

More Related Content

PDF
[2018] 오픈스택 5년 운영의 경험
PDF
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
PDF
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
PPTX
Ceph Introduction 2017
PDF
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
PDF
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
PDF
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
PDF
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
[2018] 오픈스택 5년 운영의 경험
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
Ceph Introduction 2017
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf

What's hot (20)

PDF
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
PDF
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
PDF
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
PDF
오픈스택 멀티노드 설치 후기
PPTX
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
PPTX
Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
PPT
Red Hat Ansible 적용 사례
PDF
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
PDF
Deep dive into Kubernetes Networking
PDF
[오픈소스컨설팅]오픈스택에 대하여
PDF
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
PDF
BGP Unnumbered で遊んでみた
PPTX
Tutorial: Using GoBGP as an IXP connecting router
PDF
Message Queue 가용성, 신뢰성을 위한 RabbitMQ Server, Client 구성
PPTX
OpenvSwitch Deep Dive
PPTX
Introduction to Ansible
PDF
ML2/OVN アーキテクチャ概観
PDF
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
PDF
How to build massive service for advance
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
오픈스택 멀티노드 설치 후기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
Red Hat Ansible 적용 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
Deep dive into Kubernetes Networking
[오픈소스컨설팅]오픈스택에 대하여
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
BGP Unnumbered で遊んでみた
Tutorial: Using GoBGP as an IXP connecting router
Message Queue 가용성, 신뢰성을 위한 RabbitMQ Server, Client 구성
OpenvSwitch Deep Dive
Introduction to Ansible
ML2/OVN アーキテクチャ概観
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
OVN 設定サンプル | OVN config example 2015/12/27
How to build massive service for advance
Ad

Similar to [OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링 (20)

PDF
Openstack Usecase(2018)
PDF
Alluxio: Data Orchestration on Multi-Cloud
PDF
[오픈소스컨설팅]Java Performance Tuning
PPTX
Windows 성능모니터를 이용한 SQL Server 성능 분석
PDF
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
PDF
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
PPT
한대희 Web proxy_개발_2006년11월_pas_ktf
PPTX
A.I.S팀_산학프로젝트챌린지 (2).pptx
PDF
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
PDF
우리 제품의 검증 프로세스 소개 자료
PPTX
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
PDF
2015 SINVAS USER CONFERENCE - SINVAS 플랫폼을 활용한 정보시스템 유지보수 방안
PPTX
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
PDF
[오픈소스컨설팅]Performance Tuning How To
PDF
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
PDF
클라우드 환경에서 알아야할 성능 이야기
PDF
Elastic Stack & Data pipeline (1장)
PDF
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
PDF
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
PDF
Oracle Application Performance Monitoring Cloud Service 소개
Openstack Usecase(2018)
Alluxio: Data Orchestration on Multi-Cloud
[오픈소스컨설팅]Java Performance Tuning
Windows 성능모니터를 이용한 SQL Server 성능 분석
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
한대희 Web proxy_개발_2006년11월_pas_ktf
A.I.S팀_산학프로젝트챌린지 (2).pptx
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
우리 제품의 검증 프로세스 소개 자료
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
2015 SINVAS USER CONFERENCE - SINVAS 플랫폼을 활용한 정보시스템 유지보수 방안
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
[오픈소스컨설팅]Performance Tuning How To
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
클라우드 환경에서 알아야할 성능 이야기
Elastic Stack & Data pipeline (1장)
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
Oracle Application Performance Monitoring Cloud Service 소개
Ad

More from OpenStack Korea Community (20)

PDF
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
PDF
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
PDF
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
PDF
[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...
PDF
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
PDF
[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...
PDF
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
PDF
[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...
PDF
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
PDF
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
PDF
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
PDF
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
PDF
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
PDF
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
PDF
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
PDF
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
PDF
[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무
PDF
[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...
PDF
[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성
PDF
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
[OpenInfra Days Korea 2018] Day 2 - E6: "SONA: ONOS SDN Controller 기반 OpenSta...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E5-1: "Invited Talk: Kubicorn - Building ...
[OpenInfra Days Korea 2018] Day 1 - T4-7: "Ceph 스토리지, PaaS로 서비스 운영하기"
[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (NetApp) Open Source with NetApp - 전국섭 상무
[OpenInfra Days Korea 2018] (Track 4) - 오픈스택기반 NFV 관리 및 HA (high Availability...
[OpenInfra Days Korea 2018] (Track 4) - FreeIPA와 함께 SSO 구성
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크

[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링

  • 1. 1Operating Systems Lab. Operating Systems Lab, College of Informatics, Korea University. Grafana를 이용한 OpenStack 클라우드 성능 모니터링 Stella team Operating Systems Lab, Korea University ([email protected]) OpenInfra Days Korea 2018
  • 2. 2Operating Systems Lab. Korea University, College of Informatics Stella 프로젝트  SLA 보장의 필요성  Stella 프로젝트 소개  Stella 클라우드 아키텍처 Ceilometer-Gnocchi 전달 과정 분석  Gnocchi의 필요성  Ceilometer-Gnocchi 전달 과정 Grafana-Gnocchi 연동 Stella 프로젝트 사이트 및 코드 공개 발표 목차
  • 4. 4Operating Systems Lab. Korea University, College of Informatics Microsoft Bing test result SLA(Service Level Agreement)  클라우드 서비스 제공자와 사용자 간, 서비스의 품질 수준을 정의하는 계약  성능, 보안 등 모든 서비스 품질 요소가 대상이며 구체적인 수치(SLO, Service Level Objective)로 체결 e.g., 10ms 이하 처리지연, 1초당 1000개 쿼리 처리, 99.9% 데이터 가용성  서비스 수준 미달 시 페널티를 부과하기도 함 -> 서비스 비용 증대 성능 SLA를 만족하지 못하는 경우 경제적 피해 발생  Microsoft의 사례  검색 지연 증가 → 사용자 당 수익감소  Amazon의 사례  처리 지연 100ms 증가 → 매출 1% 감소 (약 9억 달러) 차세대 클라우드에서 성능 SLA 보장의 필요성
  • 5. 5Operating Systems Lab. Korea University, College of Informatics 다양한 자원 요구로 인한 SLA 위반 발생  CPU 자원 부족에 의한 급격한 스토리지 I/O 성능 저하 발견  VM1과 VM2는 스토리지 I/O 수행 (Iometer)  VM3은 반복적인 CPU 연산 수행 (Sysbench-cpu)  실험 결과  CPU VM(VM3)는 SLA 대비 평균 425% 수준 • 평균 CPU 사용률: 850.1 %  I/O VM(VM1, VM2)은 SLA 대비 평균 51% 수준 • VM1- 평균 대역폭: 51MB/s, 평균 CPU 사용률: 50.1% • VM2- 평균 대역폭: 104MB/s, 평균 CPU 사용률: 91% SLA 위반 원인: VM1 과 VM2의 I/O 처리를 위한 CPU 자원 부족 SLA 위반 사례 0 100 200 300 400 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 SLAsatisfaction(%) Elapsed time (s) VM1 VM2 VM3 SLA 만족도 달성 실험 (SLA 보장 스토리지 스케줄러 동작 중 ) SLA 만족도 실험 환경
  • 6. 6Operating Systems Lab. Korea University, College of Informatics 프로젝트 책임자  고려대학교 유혁 교수 Stella 프로젝트의 목표  성능 SLA를 보장할 수 있는 클라우드 소프트웨어 개발  다양한 자원(CPU, 스토리지, 네트워크)의 SLA 만족 달성  SLO를 할당하는 컴포넌트 디자인 및 SLA 만족도 관련 통계 수집 및 달성  노드 수준 및 클라우드 수준의 SLA 보장  노드 수준: 하이퍼바이저 계층에서 SLA를 보장  클라우드 수준: 노드 별 서비스 용량 계산 및 작업 할당 현재 진행 상황  현재, 노드 수준 Stella 스케줄러 구현 및 공개 (CPU-네트워크, CPU-스토리지)  클라우드 수준에서 통합 스케줄링 연구 진행 중 Stella 프로젝트 소개
  • 7. 7Operating Systems Lab. Korea University, College of Informatics Stella 프로젝트 단계별 목표 1단계 (2015~2018) • 노드 수준 CPU, 네트워크, 스토리지 개별 SLA 보장 기법 개발 • 노드 수준 CPU, 네트워크, 스토리지 통합 SLA 보장 스케줄러 개발 1단계 목표: 성능 SLA 통합 보장 시스템 SW 기반 기술 1단계 목표: 성능 SLA 통합 보장 시스템 SW 기반 기술 2단계 (2019~2022) • 클라우드 수준 자원 스케줄링 기법 개발 • 클라우드 수준 작업 할당 및 관리 기법 개발 • 클라우드 수준 SLA 지원에 따른 클라우드 서비스 성능/품질 저하 방지 방안 연구 2단계 목표: SLA 통합 보장 클라우드 플랫폼 기술 2단계 목표: SLA 통합 보장 클라우드 플랫폼 기술 최종 (2022) 최종 목표: 성능 SLA 보장 차세대 클라우드 시스템 플랫폼 최종 목표: 성능 SLA 보장 차세대 클라우드 시스템 플랫폼 결과물:오픈스택기반컴포넌트 • SLA 보장 서비스 및 노드 관리 기법 • 성능 SLA 보장 스케줄러 • 통합 스케줄링 프레임워크
  • 8. 8Operating Systems Lab. Korea University, College of Informatics Stella 스케줄러  노드 수준 CPU, 네트워크, 블록I/O 자원의 통합 스케줄링 오픈스택 컴포넌트  클라우드 수준의 VM 할당 및 관리, 자원 활용 및 성능 모니터링/보고, 인증  모니터링 관련 컴포넌트  Ceilometer(모니터링), Gnocchi(통계 수집), Grafana(통계표현 대시보드) Stella 클라우드 아키텍처
  • 9. 9Operating Systems Lab. Korea University, College of Informatics SLA 매니저(SLA Manager)  주어진 SLO를 스케줄링 파라미터로 변환 e.g., 100MB/s (스토리지 대역폭)를 스케줄링 파라미터로 변환 (CPU quota, I/O 요청 시간 등을 조절)  관리자에게 SLA 만족도 보고  SLA 만족도 달성을 위해 스케줄링 파라미터 조절 SLA를 고려한 자원 스케줄러  스토리지 I/O 스케줄러 및 네트워크 I/O 스케줄러 통합 통계 수집기(Statistics collector)  스케줄러로부터 통계 데이터 수집  SLA 매니저에게 통계정보 전송 Stella 스케줄러 Block I/O scheduler Network I/O scheduler CPU scheduler
  • 10. 10Operating Systems Lab. Korea University, College of Informatics 현재 Stella 스케줄러는 클라우드 노드 수준으로 동작 클라우드 수준의 SLA 관련 통계 모니터링 대상과 과정의 분석이 필요  목적: Stella 스케줄러와 통합을 위한 오픈스택 확장  모니터링 대상  자원 사용량: I/O 대역폭, CPU 사용량 등을 수집  SLA 파라미터: SLA 목표치 설정 및 SLA 만족도 수집  모니터링 과정  수집된 통계를 대시보드 까지 전달하는 경로  관련 오픈소스 및 오픈스택 컴포넌트 (Pike 버전 기준) • Grafana: 통계 정보를 표현하는 웹 기반 대시보드 • Ceilometer: 오픈스택 서비스로 부터 통계 정보 모니터링 • Gnocchi: Ceilometer가 모니터링 한 정보 수집 및 관리 Stella 스케줄러를 위한 SLA 목표치 전달 인터페이스 설계 및 구현 예정  분석 내용을 기반으로 인터페이스 설계 및 구현  대시보드를 통해 사용자 또는 관리자가 SLA 정의  정의한 SLA 목표치를 Stella 스케줄러에 전달 본 발표에서는 모니터링 과정에 초점 Stella 스케줄러의 오픈스택 확장
  • 12. 12Operating Systems Lab. Korea University, College of Informatics Gnocchi를 통해 오픈스택과 연동  오픈소스 시계열 데이터 수집 서비스  시계열 데이터: 시간 순으로 나열된 데이터  Gnocchi는 Ceilometer의 성능 문제를 해결하기 위해 제안  Ceilometer는 기존 오픈스택에서 통계 수집기능 제공  Ceilometer는 정보를 조회할 때 성능 저하 발생 • 특히 데이터를 탐색할 때 O(n) 복잡도를 가짐 (데이터의 숫자가 늘어나면 탐색 시간이 선형적으로 증가) • 노드의 규모가 늘어날 수록 성능 문제가 커짐 Gnocchi는 시간 복잡도를 O(1)로 개선  통계 정보를 시계열순으로 정렬해서 저장  Measure: gnocchi가 입력 받은 데이터 기록  Aggregated: Measure의 데이터를 기반으로 정렬된 정보 기록  인덱스를 통해 빠른 접근 제공  Index: Gnocchi를 위한 메타데이터, 클라우드 리소스 정의 및 정책 저장 Gnocchi 분석의 필요성
  • 13. 13Operating Systems Lab. Korea University, College of Informatics Gnocchi 구성 컴포넌트: gnocchi-api, gnocchi-statsd, gnocchi- metric  API: Gnocchi 연산 및 데이터 통계 수집을 위한 REST API 정의  Statsd: 통계 데이터 수집  Metricd: 수집된 데이터를 기반으로 명령 처리 수행 Gnocchi의 구성 요소 Gnocchi 아키택처
  • 14. 14Operating Systems Lab. Korea University, College of Informatics Polling agent: 오픈스택 서비스로 부터 통계를 수집  주기적인 통계 수집 API 호출  Pollster는 서비스의 통계정보 수집을 위한 플러그인 (서비스에 맞는 API 호출 및 데이터 형식 지정)  수집데이터는 sample이라고 불림 Notification agent: 수집된 데이터를 기반으로 Ceilometer의 이벤트 또는 샘플로 변환  Pipeline: 수집된 데이터를 외부로 전달하기 위한 처리 절차  Transformer: 수집된 데이터를 모아 정규화 및 통합  Publisher: 수집된 데이터를 외부 형식에 맞게 변환 및 전송 Ceilometer-Gnocchi 전달 과정 요약 Polling agent Notification agent OpenStack Service (e.g., Compute, Network, eta.) Sample name = cpu.time timestamp=T value = 5 Sample name = cpu.time timestamp=T+1 value = 20 Sample name = cpu.time timestamp=T+2 value = 80 Transformer 1)Delta 2)Scaling 3)Rate of change 4)aggregator Gnocchi publisher Normalized Sample name = cpu.percentage timestamp=T+2 value = 9 Gnocchi DB Oslo.messagi ng publisher External system notification Pipeline pollster pollster pollster pollster pollster pollster data 1 2 3
  • 15. 15Operating Systems Lab. Korea University, College of Informatics 과정 1. Polling agent Class PollingTask(object) 사용할 pollster들을 추가하는 과정 (pollster config는 compute/pollsters/분류.py) History 에 resource 추가하고, 각 pollster에 맞는 Polling_resource들을 append Timestamp 찍은 후, 샘플 데이터를 수집하는 함수 받아온 샘플을 notification에 전송 compute/pollsters/__init__.py run -> start_polling_tasks -> for interval.pollingtask (반복) Polling/manager.py Polling agent는 sample을 수집  오픈스택 서비스마다 독립적인 pollster가 동작  Pollster는 특정서비스의 API 호출  Sample 데이터 형식으로 통계 정보 수집  호출된 API를 통해 통계 정보 수집  Sample은 키, 값으로 구성된 데이터의 집합
  • 16. 16Operating Systems Lab. Korea University, College of Informatics 과정 2-1. Transformer의 sample 처리 transformer/__init__.py transformer/accumulator.py transformer/arithmetic.py transformer/conversions.py Transformer는 sample 수집 및 처리  Pollster로 부터 수집한 sample을 가공하는 과정을 수행  Accumulator: Sample의 버퍼, 일정 수 이상이 모이면 다음 단 계로 넘김  ArithmetricTransformer: sample 데이터의 수학 계산을 수행  가공한 sample은 정규화된 데이터 형식으로 변환 수행  BaseConversionTransformer를 통해 호출  세부 내용은 과정 2-2(다음 장)에 계속
  • 17. 17Operating Systems Lab. Korea University, College of Informatics 과정 2-2. Conversion transformer 세부 내용 Handle_sample은 DeltaTransfomer와 유사 수집한 sample을 정규화 및 통합  DeltaTransformer: Sample간 값의 차이를 기준으로 통합 수행  ScailingTransformer: Sample 간 값의 단위 차이를 통합 e.g., 나노초, 밀리초 단위 값을 통합  RateOfChaingeTransformer: Sample의 rate를 변경 해서 통합 e.g., CPU time을 CPU 사용량
  • 18. 18Operating Systems Lab. Korea University, College of Informatics 과정 3. Gnocchi Publisher publisher/gnocchi.py Gnocchi에게 전달을 위해 sample 를 metric data형식으로 전환 만약 수집한 sample의 resource_id가 gnocchi에 등록되어 있지 않다면, gnocchi data 배열에 새정보를 등록 Publisher는 데이터를 외부 저장소로 전송  정규화 및 통합된 sample을 외부 저장소 형식 에 맞게 변경 e.g., Gnocchi 데이터 형식  변경한 데이터를 전송 사용자가 설정한 publisher에서 실제 사용 가능한 data들이 return 되면, 마지막으로 외부에 publishing한다. 데이터를 전송하기 위해 시리얼라이즈(바이트화) pipeline/sample.py publisher/gnocchi.py publisher/gnocchi.py
  • 20. 20Operating Systems Lab. Korea University, College of Informatics Grafana 패키지 설지  우분투 16.04 환경에서 진행 Keystone 및 Gnocchi 설정  Keystone의 URL 설정  Keystone: 오픈스택 환경에서 사용자 및 서비스의 인증 관리 수행  Gnocchi가 다른 서비스와 동작하기 위해 필요 Grafana 및 Gnocchi 연동  Grafana에서 데이터 저장소를 Gnocchi 로 설정 (Web GUI 에서 진행)  Gnocchi 접근 권한을 위한 인증 설정 진행 Grafana 설치 및 환경 구성 요약 Ubuntu 환경에서 Grafana 다운 로드 및 설치 Grafana 구동 및 서비스 등록
  • 21. 21Operating Systems Lab. Korea University, College of Informatics Keystone 및 Gnocchi 설정 Gnocch에서 keystone API 호출을 위한 IP 및 포트 설정 (URL 및 포트 번호를 Gnocchi 설정에 등록) Keystone.conf Keystone-paste.ini gnocchi.conf Keystone 설정 Gnocchi 설정 Keystone의 URL 기록
  • 22. 22Operating Systems Lab. Korea University, College of Informatics Grafana Gnocchi 연동 데이터 종류를 gnocchi 선택 오픈스택 Keystone 서비스의 IP 및 포트 keystone 접속을 위한 로그인 정보 (편의를 위해 관리자 정보 기입)
  • 23. 23Operating Systems Lab. Korea University, College of Informatics Grafana 대시보드 구성 예시 (CPU 및 네트워크) CPU 사용량 가상머신 목록 네트워크 인터페이스 가상포트별 네트워크 통계
  • 24. 24Operating Systems Lab. Stella 프로젝트 사이트 및 코드 공개
  • 25. 25Operating Systems Lab. Korea University, College of Informatics Stella 프로젝트 홈페이지(http://stella.korea.ac.kr)  프로젝트 소개 및 관련 기술 문서 업로드  블록 스토리지 및 네트워크 스케줄러 관련 자료 제공  클라우드 구축 현황 정보 Stella Github 저장소 (https://github.com/KUoslab)  Stella 개발 코드 제공 (현재 Stella 스케줄러 코드 및 설치 문서 제공) KU.Stella 런치패드 (https://launchpad.net/ku.stella)  프로젝트관리에 사용 (Github 저장소 미러 제공, 버그 리포팅)  오픈스택 관련 컴포넌트 제공 예정 (Stella 스케줄러 인터페이스 공개 등) Stella 프로젝트 사이트
  • 26. 26Operating Systems Lab. Korea University, College of Informatics Stella 스케줄러 테스팅 방법  Stella Github 저장소 접속 (https://github.com/KUoslab/Stella_new)  README 파일을 통해 설치 정보 제공 (https://github.com/KUoslab/Stella_new/blob/master/README.md) 사용 코멘트 및 버그 리포팅  KU.Stella 런치패드 또는 메일 ([email protected]) Stella 스케줄러 테스팅 및 리포팅 Github 저장소 접속 화면