OpenStack

OpenStack Overview

What is OpenStack?

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.


OpenStack core services

  • Keystone → Identity: 身分驗證、Token驗證
  • Nova → Compute: 計算、管理VM
    • Nova-api: 接受與回應user,負責API的呼叫
    • Nova-compute: 一個worker daemon,透過hypervisor的API建立VM,流程如下:
      1. 從Queue接受命令後,啟動KVM,並到DB更新狀態
      2. 與nova-volume及Ceph關係緊密
    • Nova-volume: 管理、增減volume到instance上
      (Cinder is a replacement of nova-volume)
    • Nova-network: 從Queue接收命令後,掌管網路的操作
      (Neutron is a replacement of nova-network)
    • Nova-scheduler: 從Queue接收instance的請求,負責決定要由哪一台host來執行(最佳化)
  • Neutron → Networking: 網路通訊
    • 特色如下:
      1. 可以讓user配置自己的網路
      2. pluggable backend
      3. 負責Layer 1-Layer 3的網路部分
      4. 提供HAProxy達到Load Balance as a Service
    • 組成如下:
      1. Neutron-server: 接受API請求,並路由到指定的plugin
      2. Neutron plugins and agents: 負責實際的網路運作
      3. Queue: 訊息傳遞
  • Glance → Image Service: 管理Image metadata
  • Swift → Object Storage: 儲存物件(ex: virtual disks, images, backup archiving),避免SPOF(Single Point Of Failure),自我修復
  • Cinder → Block Storage: 儲存區塊(ex: volumn, snapshot),但較缺乏scaling的部分
  • Queue → Message: 提供daemon之間的訊息傳遞,優點是可以buffer large workload
  • Database → State: 記錄各種狀態、時間資訊

OpenStack optional services

  • Horizon → Dashboard: 儀表板(Web UI),stateless,init API calls
  • Ceilometer → Telemetry: 收費、benchmark、擴充性、統計
  • Heat → Orchestration: 透過一些模板做查詢等

文章參考資料

  1. OpenStack 官方Overview
  2. aboutyun論壇 – 一分钟快速入门openstack
  3. Mastering Openstack – Omar Khedher (ISBN:978-1-78439-564-3)

發表留言