본문 바로가기
Infra/프라이빗 클라우드 인프라

Open Stack 소개

by shinebee* 2020. 6. 30.

1. Open Stack

  • private cloud를 구축하기 위한 도구
    -> 클라우드는 주로 웹 인터페이스로 관리한다.
  • 가상 컴퓨터 제공 (1차적 목적)
  • 스토리지, 네트워크 등의 부가적인 기능들을 제공하는것이 기본
  • 전부 open source로 이루어져있다.
  • 거의 모든 IT의 vendor들이 기여하고있다. (홈페이지에 나와있음)
  • 클라우드 서비스가 어떻게 구성되어있는지 내부를 알 수 있다. (완전 똑같지는 않음)

 

 

 

 

 

 

2. Open Stack Version

  • Compute ( Nova )
    • 컴퓨트 서비스를 구성한다.
    • 인스턴스의 생명 주기 담당
    • 하이퍼바이저 제어 → kvm, qemu, zen, vmware
    • 리눅스 컨테이너(LXC) 제어
    • libvirtd → 가상머신을 제어하는 라이브러리 데몬
      • kvm, zen, LXC, docker도 제어 가능
      • 컨테이너 제어 가능하지만 현재는 Magnum이라는 프로젝트가 제어한다.
    • 방화벽(Security Group) 관리 → 인스턴스 외부에 있는 방화벽 관리.
    • keypair (SSH key★)

 

 

  • Networking ( Neutron )
    • 인스턴스의 네트워크 제공
    • Nova-Network(L3기능까지만 구현) → Quantum → Neutron (Quantum과 똑같음. 이름만 바꿨다.)
    • Nova-Network : LAN(Network) : L2(DHCP, VLAN), L3 Routing 제공, LB : L4, Network FW(방화벽), VPN, Flooting IP
    • Floating IP → 인스턴스를 외부에 노출시키는 역할을 한다.

 

 

  •  Block Storage ( Cinder )
    • 인스턴스의 영구 저장장치인 블록 장치를 제공
    • DAS(Direct Attached Storage)
      • 직접 연결된 스토리지 (SATA 등)
      • Block 장치 → 디스크가 사용
    • NAS(Network Attached Storage)
      • File Storage
      • Sharing이 목적
      • NFS
      • SMB(CIFS) → window에서 사용.
      • CIFS ⇒ Common Internet File System
      • SAMBA → 패키지. 얘로 SMB를 분석 → 리눅스에서 작동할 수 있도록 만들었다.
      • SMB와 CIFS는 거의 같고 SAMBA는 둘의 기능을 담았다고 볼 수 있다.
    • SAN(Storage Area Network)
      • block storage 제공
      • FC-SAN : FC Portocol
      • IP-SAN : ISCSI, FCoE...
    • Block Storage
      • 운영체제가 사용
      • 필요하면 파티션, 파일시스템 생성해서 마운트 하여 사용
      • 논리 볼륨 만들어서 제공 가능
      • 디스크의 입출력을 블록 단위로 한다.
      • 비교적 사이즈가 크고 느리다. 안정성은 있지만..
      • 블록이 크면 클수록 처리할 수 있는 양이 많아지기 때문에 빠르게 읽고 쓸 수 있다.
      • 성능은 제일 뛰어나다.
      • 공유가 안된다.
      • clustering을 이용해서 전용파일을 사용하면 블록장치를 share 할 수 있다.
    • File Storage
      • depth를 많이 안주는게 성능에 좋다.
      • OS가 사용하기도 하지만 일반적으로 user가 사용한다. 성능은 중간
      • sharing이 목적
      • 정형화된(형식이 있는) 데이터 저장
    • Object Storage
      • user/Application
      • 비정형화(형식이라는게 고정되어있지 않음)된 데이터 저장
      • 사용자는 그냥 파일처럼 보이지만 백엔드에 저장할 때 보면 메타데이터와 데이터로 분리한다.
      • 메타데이터 → ls -l 하면 보이는거. inode table
      • 성능은 제일 떨어진다.

 

 

  • Identity ( Keystone : 인증 )

    • 모든 컴포넌트의 인증을 담당

    • 인증용 백엔드 → SQL, LDAP

    • SQL → 기본적으로 mariadb 사용

    • 카탈로그 관리

    • 카탈로그 → 오픈스택의 여러 컴포넌트의 목록

      • service 목록 → nova, glance..등 컴포넌트

      • End point 목록 → 특정 서비스를 사용하기 위한 주소

      • service 목록, End point 목록이 없으면 서비스 사용 불가

 

 

  • Image ( glance )

    •  인스턴스를 생성하기 위한 운영체제 디스크 이미지를 제공

    • file storage가 기본

    • 이미지를 저장하기위한 저장소로 swift object 사용할 수 있다.

 

 

  • Object Storage (swift)

    • object storage를 제공

    • object storage는 사용자가 쓰기 위해 만든것. mount해서 쓴다 이런거 아니고 dropbox의 용도와 같다.

    • application ⇒ 직접 사용할 수 있는 스토리지

    • 필수 서비스는 아니다.

    • 독립적으로 작동할 수 있는 유일한 서비스. 다른 서비스들은 서로 상호작용한다.

    • Glance의 저장소로 쓸 수 있다.

    • swift를 안쓰면 local disk에 저장.

    • swift에 저장하는 이유 → 여러가지 기능이 있기 때문에

 

 

  • Dashboard ( Horizon )

    •  오픈스택 환경을 운영 및 관리할 수 있는 웹 기반의 셀프 서비스 포탈 인터페이스를 제공

    • 아파치 & python으로 만들어짐

    • API 지원

 

 

  • Orchestration ( Heat )

    • 템플릿 기반으로 다양한 클라우드 어플리케이션을 배치하고 관리할 수 있는 오케스트레이션 기능 제공

    • IaC(Infrastructure as code) → 코드로 다 관리. 인프라를 배포하고 자동화시킨다.

    • Amazon CloudFormation과 연동이 가능

 

 

  • Workflow ( Mistral )

    • 이벤트 처리

    • 특정 이벤트가 발생하면 Mistral이 조치를 취해준다.

 

 

  • Telemetry ( Cellometer )

    • 사용량 측정

    • 확장이 불가

    • 세부 프로젝트 → Aodh, Gnocchi, Panko → Cellometer가 하는일을 분리시킴.

 

 

  • Database ( Trove )

    • Database as a Service 기능 제공

    • 데이터베이스를 서비스로 제공

    • 플랫폼을 제공하는 것과 같다.

    • open source만 제공가능 → mariadb, mysql..

    • 오픈 소스 기반의 비관계형 데이터베이스도 사용 할 수 있다.

 

 

  • Elastic Map Reduce ( Sahara )

    • 빅데이터

 

 

  • Bare Metal ( Ironic )

    • 베어메탈 시스템에 오픈스택 기능을 배포

    • 베어메탈 서버를 네트워크에 연결해 놓고 사용

 

 

  • Messaging ( Zaqar )

    • 메시지 큐 서비스를 제공

    • 비동기화 통신을 할 수 있다★

 

 

  • Share File System ( Manila )

    • 공유 파일 시스템을 제공

    • 항상 이런 서비스들은 vm이 기본.

 

 

  • DNS ( Designate )

    • DNS as a service 기능 제공

 

 

  • Search ( Searchlight )

    • ElasicSearch

      • 빅테이터를 빠르게 검색.

      • 로그 검색도 가능.

      • 검색 엔진 만들때도 사용.

    • 인덱싱 → 검색을 빠르게 하려고 한다.

 

 

  • Key Manager ( Barbican )

    • key value storage → 변수 저장. 간단한 저장장치 -

    • 보안 저장소 

    • vault

 

 

  • Container ( Magnum )

    • 컨테이너 엔진, 컨테이너 런타임 등을 배포

 

 

 

 

 

 

3. Node

  • Controller

    • 오픈스택 전체를 제어

    • 가장 많은 서비스들이 배치되어있음 → keystone, horizen, glance, sql, message queue, ntp, ceilometer, heat

    • SQL → 오픈 스택의 모든 정보 저장

    • 오픈스택을 작동시키기 위한 message queue

    • ntp 서버를 제외하고 시스템에 다 구성이 되어있다.

    • 상태라는것이 존재

    • 상태가 동기화 되야한다. → cluster 필요.

    • cluster를 이용해서 이중화, 삼중화를 할 수 있다.

    • 사용자 입장에서 중요하지 않다.

    • 오류가 난다면?

      • 인증 할 수 없음

      • 웹 인터페이스 관리 못함

      • CLI 구성 안됨

 

 

  • Network

    • Neutron : 네트워크 제공

    • controller에 같이 구성이 되어있는 형태.

 

 

  • Compute

    • 하이퍼바이저를 제공하는 시스템.

    • Nova(kvm) → 사용량을 측정하기 위해

    • 에이전트 → 대신 역할을 하는 것.

    • 사용자 입장에서 중요함.

 

 

  • Storage

    • controller에 같이 구성이 되어있다.

    • Cinder(Block)

    • Swift(Object)

      • Proxy → 요청을 주고받음

      • Storage → 데이터 저장

      • proxy와 storage는 같은 곳에 설치할수도 다른 곳에 설치할수도 있다.

    • Manila(File)

 

 


 

<OpenStack Administrator>

  1. Project
  2. Account
  3. Flavor
  4. Network(External)

<User(self service>

  1. Image
  2. Network(Internal)
  3. Router
  4. Security Group
  5. Keypair
  6. Instance

'Infra > 프라이빗 클라우드 인프라' 카테고리의 다른 글

Open Stack 운영.3 (user)  (0) 2020.07.02
Open Stack 운영.2(user)  (0) 2020.07.01
Instance  (0) 2020.07.01
Open Stack 운영.1(admin)  (0) 2020.07.01
Cloud Service 개념 정리  (0) 2020.06.29

댓글