Virtualization & Cloud/OpenStack

OpenStack 주요 서비스(feat. AWS Service)

S.A.H 2022. 5. 17. 09:04
반응형

▶Core Service
Compute service: CPU, RAM 설정(Provisioning) = Nova, EC2(AWS)
Storage service: SSD, HDD 설정 = Cinder, EBS(AWS)
Network service: IP, S/W, Router 설정 = Neutron, VPC(AWS)
Image service: OS, App = Glance, AMI(AWS)
Identity service: User ID/PW, Role, Group, Keypair = Keystone, IAM(AWS)

▶Optional service
Object service: URL 주소 생성, 백업 = Swift, S3(AWS)
IaC service: Infra as a Code 자동화 도구 = Heat, CloudFormation(AWS)

 

OpenStack의 개념적 아키텍쳐

출처: OpenStack Docs.

 

 

▶ OpenStack Compute(Nova)

- 대규모의 가상머신을 제공하거나 관리할 수 있으며 언제든지 이중화 및 서비스 확장이 가능한 클라우드 컴퓨팅 시스템을 생성하기 위해 디자인된 오픈스택의 핵심 서비스

1) nova-api 서비스는 대시보드 또는 콘솔을 통해 사용자의 인스턴스 생성 요청을 받음

2) nova-api 서비스는 이 요청을 메세지 큐 서비스를 통해 컴퓨터 노드에서 실행중인 nova-compute 서비스에게 전달

3) nova-api로부터 요청을 받은 nova-compute 서비스는 컴퓨트 노드에서 실행중인 하이퍼바이저에게 이를 전달

4) 하이퍼바이저는 이 요청을 받아들여 미리 설정해 놓은 네트워크 및 Flavor 등을 사용해서 인스턴스를 생성

5) 이렇게 생성된 인스턴스를 사용자는 콘솔 서비스를 통해 접근이 가능하고 사용 할 수 있음. 또한 nova-novncproxy 서비스를 통해 vnc를 통한 접속도 가능함

 

Neutron

- 오픈스택 클라우드에서 가상 네트워크 인프라를 생성하고 관리할 수 있도록 허용하는 서비스로 네트워크 서비스(FWaaS, LBaaS, VPNaaS), 외부 및 내부 네트워크(Flat, VXLAN), 라우터(Floating IP), 보안그룹(Security Group) 등과 같이 실제 네트워크 장비와 같은 물리적 요소들의 기능을 모방해 이들과 유사한 기능을 제공

1) neutron-server는 일반적으로 컨트롤러 노드에 설치되며 네트워크, 서브넷 및 라우터 생성 및 관리 등의 요청을 API를 통해 처리

2) neutron L2 agent는 컴퓨트 노드에 설치되며 neuron-server와 통신하여 호스트 상의 네트워크를 설정하는 역할을 하며 LinuxBridge, OVS 그리고 보안그룹 및 VLAN 태깅도 처리가능

3) neutron L3 agent는 neutron-server로부터 라우터관리, 라우팅 그리고 플로팅 IP에 대한 메시지를 받아서 관리

4) neutron dhcp agent는 IP주소 할당에 사용

 

▶ Cinder

- 오픈스택 블록 스토리지 Cinder는 Nova 서비스가 생성한 인스턴스에 저장 공간으로 사용되는 블록 스토리지를 제공하는 서비스

1) cinder-api는 여러 클라이언트 서비스로부터 API 요청을 받아 cinder-volume 서비스에게 전달하는 역할을 함

2) cinder-volume은 가상머신에게 스토리지를 제공하기 위해서 백에드에 존재하는 볼륨 디바이스에 대한 읽기 또는 쓰기 등의 요청에 대해 응답. 이러한 요청은 아래 cinder-scheduler로부터 도착하며 볼륨을 생성, 수정 또는 삭제할 수 있음

3) cinder-scheduler는 nova-scheduler처럼 볼륨을 생성할 수 있는 최선의 스토리지 노드를 선택하는 역할을 하며 일반적으로 컨트롤러 노드에서 실행됨. 그런 후 요청 내용을 진행하기 위해서 그 선정된 호스트에 위치한 cinder-volume과 지속적으로 의사 소통을 진행함

 

▶Swift

- 오픈스택 오브젝트 스토리지 Swift는 대량의 데이터를 저장하기 위해서 HTTP프로토콜을 통해 접근이 가능한 스토리지 시스템을 제공하는 서비스(오브젝트=비디오, 이미지, 문서파일 등)

1) swift-proxy-server는 클라이언트로부터 오픈스택 오브젝트 스토리지 API와 HTTP 요청을 받아들임. 이러한 요청은 파일을 업로드하고 메타데이터를 수정하고 컨테이너를 수정할 경우 필요함, 또한 웹 브라우저를 통해 파일 또는 컨테이너의 목록도 제공함

2) swift-account-server는 오브젝트 스토리지에서 정의된 계정 및 account 데이터베이스에 저장된 컨테이너 목록을 관리

3) swift-container-server는 오브젝트 스토리지에서 컨테이너 또는 폴더의 매핑정보와 스토리지 정책을 관리하고 컨테이너 데이터베이스에서 특정 컨테이너에 포함된 오브젝트 목록도 관리

4) swift-object-server는 실제 데이터인 오브젝트를 저장하고 검색하고 삭제하는 역할을 함

 

 

 

 

 

반응형