OpenStack Kilo版本新功能分析—— Nova、Glance
Nova新功能
Nova Scheduler
- 標準化了conductor,compute與scheduler的接口,為之后的接口分離做好準備
- 對Scheduler做了一些優(yōu)化,例如:Scheduler對于每一個請求都會重新進行Filters/Weighers,為了優(yōu)化這個問題,將filter/weighter的初始化從handler移到scheduler,這樣每次請求的時候都可以重新使用了。
- 在下一個版本的時候,Scheduler將會分離到Gantt,所以在這個版本中為分離做了一些準備
Libvirt NFV相關(guān)功能
- NUMA(Non Uniform Memory Architecture),在這個架構(gòu)下,每個處理器都會訪問“本地”的內(nèi)存池,從而在CPU和存儲之間有更小的延遲和更大的帶寬。
- 在Kilo版本中針對此功能的實現(xiàn)包括:基于NUMA的調(diào)度的實現(xiàn);可以將vCPU綁定在物理CPU上;超大頁的支持。以上提到的三點都是通過Flavor的Extra Spces完成定義的。
EC2 API
- EC2 API被從Nova中踢出去了
- 取而代之的是在stackforge的EC2 API轉(zhuǎn)換服務(wù)
API Microversioning
先來解釋一下為什么需要API的微版本:主要原因在于現(xiàn)在這種API擴展方式,對于API實現(xiàn)的代碼的增加或減少管理非常不方便,容易導(dǎo)致不一致性。引入微版本主要目的就是讓開發(fā)人員在修改API代碼時能夠向前兼容,而不是加入一個新的API擴展;用戶通過指定API的版本,在請求時也能決定是使用的具體的動作。
包含版本的返回:
- GET /
- {
- "versions": [
- {
- "id": "v2.1",
- "links": [
- {
- "href": "http://localhost:8774/v2/",
- "rel": "self"
- }
- ],
- "status": "CURRENT",
- "version": "5.2"
- "min_version": "2.1"
- },
- ]
- }1234567891011121314151617
客戶端的Header信息:
- X-OpenStack-Nova-API-Version: 2.1141
一個已知的問題:Evacuate
這個問題的產(chǎn)生主要是因為Evacuate的清理機制,主機名的變化會導(dǎo)致nova-compute重啟過程中誤刪所有虛擬機,所以一個變通的方法是設(shè)置
- destroy_after_evacuate=False1
這個問題會在Liberty中得到修復(fù),相關(guān)的Spec:https://review.openstack.org/#/c/161444/3/specs/liberty/approved/robustify_evacuate.rst
Glance新功能
- 自動進行鏡像格式轉(zhuǎn)化,例如,Ceph是使用RAW格式的,假如我們上傳的是QCOW2,創(chuàng)建虛擬機時,就會經(jīng)歷一番上傳下載的過程,速度異常緩慢。而且RAW格式通常都是原始大小,上傳時候非常慢,完全可以通過上傳小鏡像自動轉(zhuǎn)換為指定格式。
- Glance支持多字段排序
- /images?sort_key=status&sort_dir=asc&sort_key=name&sort_dir=asc&sort_key=created_at&sort_dir=desc1