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: 透過一些模板做查詢等
文章參考資料
- OpenStack 官方Overview
- aboutyun論壇 – 一分钟快速入门openstack
- Mastering Openstack – Omar Khedher (ISBN:978-1-78439-564-3)