Logical Architecture

- OpenStack 문서에서 나와있는 Logical Architecture 입니다.
간략한 인스턴스 생성 과정

- 사용자가 Horizon을 통해 인스턴스 생성 요청
- Nova는 받은 인스턴스 요청에 대해 사용자에 대한 권한 확인
- Keystone에서 권한 확인
- Nova는 인스턴스에 필요한 이미지와 볼륨, 네트워크를 할당받기 위해 요청
- 요청받은 Cinder(Block), Glance(Image), Neutron(Networking)에서 모두 Keystone에 auth-token을 이용하여 사용자 확인
- 인증되면 각각의 요청에 대해 Nova로 응답
- 인스턴스 생성 완료
Heat 프로젝트 과정
- Heat는 HOT를 통해 여러 프로젝트로 한 번에 요청을 보내 생성 가능
- HOT 예제



- 빨간색 선
- 위의 템플릿 예제의 요청 과정
- Horizon을 통해 위의 HOT 파일을 등록하여 생성 요청
- Heat는 받은 요청을 처리하기 위해 heat-engine에서 필요한 프로젝트들로 API 요청
- Nova에서는 인스턴스 생성, Neutron에서는 라우터, 스위치 등 생성
- 파란색 선
- 위의 예제 말고도 다른 주요 프로젝트와 연결되어 있어 한 번에 생성 가능
Ceilometer 프로젝트 모니터링 과정
Ceilometer Architecture

- Cilometer는 Polling Agents와 Notification Agents를 통해 다른 프로젝트들의 데이터와 이벤트를 바당 처리
- Panko
- 주어진 시간동안 오픈스택 리소스의 상태 정보를 캡처할 수 있는 메타 데이터 인덱싱, 이벤트 저장 서비스를 제공
- 감사 및 시스템 디버깅과 같은 사용 사례를 위해 단기 및 장기 데이터를 저장하는 확장 가능한 수단을 활성화
- 로그 및 시스템 이벤트 작업과 같은 문서 지향 데이터를 캡처하도록 설계된 이벤트 저장소 프로젝트
- Aodh
- Ceilometer에서 수집 한 샘플 또는 이벤트 데이터에 대해 정의 된 규칙을 기반으로 작업을 트리거
- 사용자 정의 규칙이 위반 될 때 경고를 보낼 수 있는 경보 서비스
- Gnocchi
- 저장 및 쿼리를 최적화하기 위해 시계열 형식으로 측정 데이터를 캡처
- TDBaaS(Time Series Database as a Service) 프로젝트
Polling Agetns와 Notification Agents

- Polling Agents는 다른 프로젝트들의 데이터를 API를 이용하여 수집
- Notification Agents는 프로젝트에서 발생시키는 이벤트나 알림을 Notification Bus에서 수집
Logical Architecture

- 빨간색 선
- central agent로 compute를 제외한 다른 프로젝트들에 대해 데이터 Polling
- 파란색 선
- compute agent로 compute와 관련된 데이터 Polling
- 초록 박스
- Notification Agent
Ironic 인스턴스 생성 과정

- 사용자는 Horizon을 통해 베어 메탈 서버 생성 요청
- Horizon은 Nova로 해당 요청 전송
- Nova는 Nova APi와 Nova Scheduler를 통해 Nova Compute 서비스로 전달
- Nova Compute 서비스는 이 요청을 Ironic 서비스로 넘겨주며, Ironic API에서 컨덕터, 드라이버로 전달되어 물리 서버를 프로비저닝
- Ironic 서비스는 베어 메탈 인스턴스를 프로비저닝하는데 필요한 이미지, 네트워크 및 기타 리소스를 다른 프로젝트와 통신하여 설정
Swift

- Sahara <-> Swift = saves data or job binary in
- Ironic -> Swift = saves data
- 구조에서는 nova와 cinder 그리고 glance와 연결되어 있지 않지만
- Glance -> Swift = Stores images in
- Nova -> Swift = 데이터 저장
- Cinder -> Swift = Backups volumes in
Sahara

- Sahara <-> Swift = saves data or job binary in
- Sahara <-> Nova = 데이터 처리 클러스터를 위한 VM을 프로비저닝
- Sahara <-> Glance = Registers Hadoop images in
- Sahara <-> Neutron = 클러스터 네트워킹 제공
- Sahara <-> Cinder = VM 인스턴스 용 블록 스토리지 프로비저닝
- Sahara <-> Ironic = 데이터 처리 클러스터를 위한 베어 메탈 노드를 프로비저닝
- Sahara <-> Heat = 데이터 처리 클러스터 배포를 프로비저닝하고 오케스트레이션하는데 사용
Trove

참고자료
- Heat
- Ironic
- Sahara
- Trove
- Services
- VM Create Flow
- Overview
- OpenStack Logical Architecture
반응형