OpenStack Q版本已經發布了一段時間了。今天, 小編來總結一下OpenStack Q版本核心組件的各項主要新功能, 再來匯總一下最近2年來OpenStack N、O、P、Q各版本核心組件的主要新功能。僅供參考, 如有遺漏、錯誤請指正。
1.1 Q版新功能總結
Q版相對於P版, 主要還是各功能的增強和優化, 其中主要功能有: 計算組件中的vGPU支持、冷遷移至指定主機、PCI NUMA親和性、卷共享等,鏡像組件中的web方式導入鏡像, 網絡組件中的浮動IP QoS、DVR/DHCP增強,塊存儲組件中的異步克隆卷,編排組件中對Octavia lbaas的編排和對項目標簽的編排。
以上功能中計算的vGPU、冷遷移指定主機、PCI NUMA親和性、卷共享以及網絡的浮動IP限速在NFV和邊緣計算場景比較有用。另外, 從API角度來看, 變化不大, 廢棄了部分老API版本,API版本支持情況可以參考文末的附表。
1.1.1 重要功能匯總如下:
身份認證(keystone): 新增統一配額管理, 提供對用戶的第三方應用程序進行身份注冊和認證服務, 增加新的作用域: 系統級。
計算(Nova): 新增虛擬機對vGPU的支持, 冷遷移時可以指定主機, 支持PCI設備的NUMA親和性, 支持掛載1個卷到多個虛擬機上。
鏡像(Glance): 交互式鏡像導入中增加web-download方式
網絡(Neutron): 支持浮動IP的QoS限速, 增加新的DVR agent type: dvr_no_external。
塊存儲(Cinder): 支持異步克隆卷。
編排(Heat): 支持當棧創建/更新取消時進行回滾, 支持Octavia lbaas和項目的標簽。
OpenStack各版本核心組件重要新增功能匯總
1.2 身份認證Keystone
1.2.1 Q版新功能:
1、新增: 統一配額管理, 把各模塊單獨的配額限制控制移到keystone統一管理, 並新增對應的API。該功能目前為試驗性質的。
2、新增: 提供對用戶的第三方應用程序進行身份注冊和認證服務(Application Credentials)。
3、新增: 增加新的作用域(scope): 系統(system)。現在作用域分為三級: 系統(system), 域(domain), 項目(project)。
4、新增: 支持項目的標簽, 用於過濾和搜索
5、廢棄: policies API。Keystone目前不做策略管理。
6、廢棄: /OS-FEDERATION/projects, /OS-FEDERATION/domains, 使用/v3/auth/projects和/v3/auth/domains代替。該API在Juno就已經被標記為廢棄。
1.2.2 P版新功能:
1、優化: 注冊默認策略, 使運維更容易維護策略文件
2、優化: 增強保存在SQL中的密碼安全性, 使用更安全的hash
1.2.3 O版新功能:
1、新增: 每用戶多因素身份驗證規則(MFA規則), 可以指定在 Keystone 發出令牌之前使用多種認證方式。 例如,一些用戶可能只需要密碼,而其他用戶則必須提供基於時間的一次性密碼和另一種身份驗證形式。
2、新增: 自動配置聯合身份, 當用戶登錄聯合系統時, Keystone 將動態地為該用戶創建角色
優化: 驗證過期的令牌:現在,耗時長的操作(如上傳快照)將不會失敗了。 你可以配置每個項目是否接受過期的令牌。
1.2.4 N版新功能:
1、新增: REST API 支持了證書加密
2、優化: 簡化的配置步驟
1.3 計算Nova
1.3.1 Q版新功能
1、新增: 虛擬機初步支持vGPU。目前還有不少限制, 處於試驗階段: 一個計算節點只能支持1種類型的vGPU, 掛起虛擬機/調整虛擬機大小/遷移還不能分配vGPU, NVIDIA GRID顯卡有vGPU使用個數的限制等問題。
2、新增: 冷遷移時可以指定主機
3、新增: 支持PCI設備的NUMA親和性, 支持3種類型的策略: required(必須使用), legacy(如果支持的話就使用), preferred(希望使用)。
4、新增: 支持掛載1個卷到多個虛擬機上, 該卷創建時必須把multiattach置為true。
5、優化: 重建虛擬機時增加新的參數key_name及user_data, 可以在重建時重新設置或者刪除密鑰及user_data。
6、優化: 對部分API增加、優化了分頁支持
7、優化: 對VMware虛擬機增加了優雅關閉的方式(graceful shutdown)
8、優化: 修正cell_v2中的部分問題。 cell_v2中增加delete_host屬性, 可以把host從cell中刪除。 另外, 在cell_v2 delete_cell中增加選項force, 可以強制刪除整個cell, 而不管cell是否有host。
9、優化: 對下列虛擬機動作增加記錄: attach_interface, detach_interface, attach_volume, detach_volume, swap_volume, lock, unlock, shelveOffload, createBackup, createImage.
10、優化: 對flavors的API增加描述description字段
11、優化: nova-novncproxy服務可以配置TLS安全證書和VNC server進行加密通信
12、優化: 支持新的廠商libvirt卷存儲掛載驅動: StorPool。
13、廢棄: Nova將不再支持Block Storage(Cinder) v2 API。
14、廢棄: 廢棄Nova API extension, os_compute_api:XXX
1.3.2 P版新功能
1、新增: 支持Cell v2的多Cell部署, 可以使用Cell v2 API創建多Cell環境, 適應更大規模集群。廢棄Cell v1 API。
2、新增: 支持卷的multi-attach、支持卷動態伸縮、支持卷作為臨時盤
3、新增: 防止虛擬機占用宿主機上的所有物理CPU,通過使用 reserved_host_cpus 配置項來為 hypervisor 預留部分CPU
4、優化: 支持在故障時,自動將自己進行隔離
5、優化: 支持通過ironic virt驅動對裸機網卡的添加和刪除
6、優化: 優化配額管理,在配額不足時,提前給出提示而不是報錯
7、優化: 優化PCI設備調度,避免無PCI請求的虛擬機調度到具備PCI設備的主機上
1.3.3 O版新功能
1、優化: Nova過濾器和調度器現在將會使用 Placement API,它會根據 CPU/內存/磁盤容量來過濾計算節點。
2、優化: Nova現在將會在所有部署中使用 Cell v2; 目前每個部署只支持一個Cell
3、優化: 現在是默認網絡選項為neutron網絡
4、優化: 增強升級能力, 使用新的 “nova-status upgrade check” CLI 命令來查看升級到 Ocata 所需做的事情。
1.3.4 N版新功能
1、新增: 自動網絡配置, 可以讓用戶一鍵配置網絡, 簡化虛擬機配置
2、新增: Placement API,給用戶更好的可見性,以及資源的控制,例如資源提供者、庫存、分配和使用記錄
3、新增: Cells v2,可以將你的數據中心合並為統一的管理,以及很好的擴展性。相比於上個版本,進行了大的改動,並完成了全部的特性。
4、優化: 可變的配置,允許管理員在Nova服務啟動時更改配置即可生效,不再需要重新啟動
1.4 鏡像Glance
1.4.1 Q版新功能
1、新增: 交互式鏡像導入中增加web-download方式, 即從遠端URL中下在鏡像
2、新增: 加入一個新的plugin, 可以自動把鏡像元數據在交互式鏡像導入過程中, 注入到非管理員創建的鏡像中
3、廢棄: glance registry服務和相關API被廢棄, S版本時將會被移除。
注: glance-registry用於存儲、處理、獲取Image Metadata,通過響應從glance-api發送過來的Image Metadata REST Request,然后與MySQL進行交互,實現Image Metadate的存儲、處理、獲取。 v1的實現上,有glance-api和glance-registry兩個WSGI 服務,都提供REST API,只不過glance-API的REST API對外使用,glance-registry的API只由glance-api使用。而 v2在實現上,把 glance-registry 的功能合並到了 glance-api 中,減少了一個中間環節。
1.4.2 P版新功能
新增: 增加交互式鏡像導入方式,目前只支持glance-direct方式,即直接從文件導入鏡像。直接導入鏡像的流程包含3部分:
1. 使用鏡像創建api創建鏡像記錄並得到鏡像id。
2.通過鏡像暫存(Stage) API上傳鏡像到暫存區域。
3.執行鏡像導入調用, 完成鏡像導入。
1.4.3 O版新功能
1、優化: 鏡像的公開性增強, 用戶現在可以創建可供其他人使用的'社區'鏡像。 您還可以將鏡像設置為'共享'給指定用戶。
2、優化: 加強Keystone中的多重認證, 在Keystone中改善對MFA的支持,包括OTP(一次性密碼)支持和每用戶令牌過期規則。
1.4.4 N版新功能
1、新增: Glance Artifact倉庫:Glare,可以提供不僅僅是鏡像的支持
2、優化: 為永久快照提供的信任機制有效避免長時間運行的操作錯誤。
3、優化: 新增默認的限制性訪問策略,意味着默認都是鎖定的,除非用戶作了明確的授權。
1.5 網絡Neutron
1.5.1 Q版新功能
1、新增: 支持浮動IP的QoS
2、新增: 增加新的DVR agent type: dvr_no_external, 該模式使得浮動IP流量在南北向(DNAT)路由時為集中式處理, 而東西向路由時為分布式處理。
3、新增: 可在dhcp agent的配置項中配置dhcp的renewal和rebinding時間
4、優化: 可通過模糊匹配IP地址來過濾出端口
5、優化: 可通過agent配置項, 配置隧道外層報頭中的dscp值
6、優化: 通過配置項, 外層報頭中的dscp可繼承自內層報頭中的dscp值
7、優化: ovs agent支持通過ssl方式連接ovsdb服務, 增強了安全性
8、廢棄:linuxbridge中的tos配置項被廢棄, 使用更精確的配置項dscp
1.5.2 P版新功能
1、新增: 支持ovs驅動通過SR-IOV實現硬件卸載, ovs現在可直接綁定SR-IOV端口
2、優化: 優化性能和穩定性, 優化基於ovs的防火牆的穩定性; 優化neutron服務端和L2 agent之間通信, 降低neutron的服務端負載; 減少更新資源產生競爭的可能性;減少Metadata代理的內存使用
3、優化: 優化QoS, 支持ovs和 linux bridge驅動中的雙向限速; 支持SR-IOV的出口帶寬限制規則; 支持對路由器網關的限速;支持查看QoS規則類型詳情
4、優化: 優化分布式路由(DVR)相關功能, 包括多個bug修復, 支持DVR快速退出等, 並增強穩定性
5、優化: 支持O版本無縫升級到P版, 提高可維護性
6、優化: 每個網絡可單獨配置MTU, 可以更改
7、優化: 支持為每個Port配置獨立的DNS Domain
8、優化: 所有主要資源都可配置用戶自定義標簽
1.5.3 O版新功能
1、新增: 支持linux bridge qos的出方向最小帶寬限速, 和dscp marking
2、優化: vhost-user機制增強, 支持重連
3、優化: 資源標記TAG功能支持子網、端口、子網池及路由器
4、優化: 對dhcp的ipv6模式進行了不少改進
5、優化: 新增keepalived vrrp 健康檢查特性,增強master router到所有網關之間的連接驗證。
1.5.4 N版新功能
1、新增: 支持vlan aware vms (即vlan trunk), 支持虛擬機之間帶VLAN轉發, 主要用於NFV等場景
2、新增: 支持對DHCP和L3 agent的可用域, 允許用戶指定哪個節點上使用相關網絡服務。
3、新增: 支持QoS功能, 支持對虛擬機端口、網絡的限速和dscp marking。
4、新增: 支持基於角色的網絡訪問控制(RBAC), 允許其他項目訪問自己的資源。
5、新增: 支持自動創建網絡, 簡化創建虛擬機時需要配置網絡信息的步驟。只需要事先指定默認的外部網絡和subnet pools, 創建虛擬機時, 可以讓neutron自動根據默認配置, 創建網絡,子網,分配ip, 路 由器, 連接外網。
6、新增: 支持查詢網絡及其子網的所有ip個數和使用過的ip個數
7、新增: 支持部分網絡資源的描述、tag標簽、創建、更新的時間戳
8、優化: API服務支持不間斷升級
1.6 塊存儲Cinder
1.6.1 Q版新功能
1、新增: 支持異步克隆卷
2、新增: 支持新的策略: 不允許mutiattach操作
3、新增: 通過備份創建卷
4、優化: 支持快照的可用域過濾
5、優化: 支持和優化更多的廠家設備驅動: DataCore’s SANsymphony, Hyper-converged Virtual SAN storage, Inspur InStorage, VMware VStorageObject, VMDK, Dell EMC VMAX等等。
6、廢棄: Cinder API v1在Juno版時, 現在完全刪除。
7、廢棄: 一致性組API被廢棄, 可以使用通用卷組API。
8、廢棄: 廢棄並刪除多個卷驅動: Block device driver, Blockbridge, Coho, FalconStor FSS, Infortrend, QNAP, Reduxio, Tegile, Violin, X-IO, ZTE, Hitachi HNAS, HBSD, VSP等。
1.6.2 P版新功能
1、新增: 支持”還原到快照” (revert to snapshot)功能,允許用戶將卷數據回滾到上一次做快照的時間點
2、新增: 支持對正在被使用的卷進行熱伸縮。 只限於libvert驅動,並限於iscsi和fc卷
3、新增: 支持對volume type進行更多的權限控制
4、優化: "復制組"(replication group)功能, 允許普通用戶操作"復制組", 並有眾多廠商驅動優化對”復制組”的支持
5、優化: 對分布式鎖的使用
6、優化: 修復多個廠商驅動中的Bug
7、優化: 多后端環境中可單獨為每個后端配置可用域
1.6.3 O版新功能
1、新增: 支持將一個卷附加給多個虛機功能,該功能預計在下一個版本中發布
2、新增: 支持主/主 HA, Cinder 現在可以運行在主/主群集模式下,來防止並發操作沖突。與過去的版本相比,Cinder 還優化了過程中出現的服務失敗的處理過程
1.6.4 N版新功能
1、優化: 微版本,允許開發者在毋需破壞大版本的情況新增新的特性。
2、優化: 回滾更新,Newton之后的版本可以直接更新而無需動整個雲平台。
3、優化: 配置項新增enabled_backends,對卷的創建定義了哪些后端類型。
4、優化: 可以重新更換加密的卷為不加密的,在創建之后再更改回來。
5、優化: 刪除卷及其快照,使用了級聯的特性,而不是首先刪除快照。
6、優化: Cinder的備份服務現在可以擴展為多個實例,擁有了更佳的靈活性和擴展性。
1.7 編排Heat
1.7.1 Q版新功能
1、新增: 支持當棧創建/更新取消時不進行回滾
2、新增: Zun容器資源中增加hostname, hints, security_groups, mounts屬性。
注: ZUN於 2016年6月建立。Zun的目標是提供統一的Openstack API用於啟動和管理容器,支持多種容器技術。
3、新增: 支持Octavia Lbaas Service的編排, 包括: OS:Octavia:LoadBalancer, OS:Octavia:Listener, OS:Octavia:Pool, OS::Octavia:PoolMember, OS:Octavia:HealthMonitor, OS:Octavia:L7Policy, OS:Octavia:L7Rule
4、新增: 支持項目(租戶)的tag標簽的編排
5、新增: 支持OS:Trove:Cluster中配置網絡資源
6、優化: 修復"強制刪除'SOFT-DELETED'狀態的虛擬機但是刪除不了"的問題
7、廢棄: 使用OS:Aodh:GnocchiAggregationByResourcesAlarm來替代OS:Aodh:Alarm.
8、廢棄: 使用 OS:Designate:Zone和OS:Designate:RecordSet來替代OS:Designate:Domain和OS:Designate:Record
1.7.2 P版新功能
1、新增: 支持對Neutron:Trunk (即VLAN Trunk) 的編排
2、新增: 支持對網絡主要資源標簽的配置
3、新增: 支持創建虛擬機時, 使用’自動分配網絡’
4、新增: 支持Nova:ServerGroup的策略: 弱親和性(soft-affinity)和反弱親和性(soft-anti-affinity)
1.7.3 O版新功能
新增: 新增通知和應用程序工作流。 使用OS::Zaqar::Notification來訂閱Zaqar隊列中的通知, 或使用OS::Zaqar::MistralTrigger來只訂閱Mistral通知。
1.7.4 N版新功能
1、新增: 可以使用DNS解析, 並支持整合外部的DNS。
2、優化: 使用屬性external_id attribute來訪問額外的資源。
1.8 OpenStack各版本的API區別
另外, 小編注意到了從P版開始Ceilometer API就廢棄了,使用aodh(alarms)、gnocchi(metrics)、Panko(events)替代。
從API表格來看, 各組件的API接口演進比較平滑, 新版本一般都能通過協商機制來兼容老版本,這給我們的環境升級帶來了極大的方便。
1.9 參考文檔
https://releases.openstack.org/queens/index.html
OpenStack各版本發布時間及EOL
Series |
Status |
Initial Release Date |
Next Phase |
EOL Date | 組件數 | 組件 |
---|---|---|---|---|---|---|
Austin |
End Of Life |
2010年10月21日 |
|
2 | Nova, Swift | |
Bexar |
End Of Life |
2011年2月3日 |
|
3 | Nova, Glance, Swift | |
Cactus |
End Of Life |
2011年4月15日 |
|
3 | Nova, Glance, Swift | |
Diablo |
End Of Life |
2011年9月22日 |
|
2013年5月6日 | 3 | Nova, Glance, Swift |
Essex |
End Of Life |
2012年4月5日 |
|
2013年5月6日 | 5 | Nova, Glance, Swift, Horizon, Keystone |
Folsom |
End Of Life |
2012年9月27日 |
|
2013年11月19日 | 7 | Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder |
Grizzly |
End Of Life |
2013年4月4日 |
|
2014年3月29日 | 7 | Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder |
Havana |
End Of Life |
2013年10月17日 |
|
2014年9月30日 | 9 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer |
Icehouse |
End Of Life |
2014年4月17日 |
|
2015年7月2日 | 10 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove |
Juno |
End Of Life |
2014年10月16日 |
|
2015年12月7日 | 11 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara |
Kilo |
End Of Life |
2015年4月30日 |
|
2016年5月2日 | 12 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic |
Liberty |
End Of Life |
2015年10月15日 |
|
2016年11月17日 | 17 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight |
Mitaka |
End Of Life |
2016年4月7日 |
|
2017年4月10日 | 18 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum |
Newton |
End Of Life |
2016年10月6日 |
|
2017年10月25日 | 32 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher |
Ocata |
Extended Maintenance |
2017年2月22日 |
Unmaintainedestimated TBD |
32 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher | |
Pike |
Maintained |
2017年8月30日 |
Extended Maintenanceestimated |
2019年3月3日 | 32 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher |
Queens |
Maintained |
2018年2月28日 |
Extended Maintenanceestimated |
2019年8月25日 | 39 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher, blazar, ceilometer-powervm, karbor, octavia, storlets, tricircle, zun |
Rocky | Maintained | 2018年8月30日 |
Extended Maintenanceestimated | 2020年2月24日 | 43 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher, blazar, ceilometer-powervm, karbor, octavia, storlets, tricircle, zun, Cyborg, ec2-api, Masakari, Qinling |
Stein | Development | 2019年4月10日 |
estimated(schedule) |
————————————————————————————————————————————————————————————————————————————
Openstack各組件的作用
aodh | Telemetry Alarming services | 遙測報警服務 |
---|---|---|
barbican | Key Manager service | 秘鑰管理器服務 |
blazar | Resource reservation service | 資源預定服務 |
ceilometer | Telemetry Data Collection service | 遙測數據收集服務 |
cinder | Block Storage service | 塊存儲服務 |
cloudkitty | Rating service | 評級服務 |
congress | Governance service | 治理服務 |
designate | DNS service | DNS服務 |
glance | Image service | 形象服務 |
heat | Orchestration service | 業務流程服務 |
horizon | Dashboard | 指示板 |
ironic | Bare Metal service | 裸金屬服務 |
karbor | Data Protection Orchestration Service | 數據保護編制服務 |
keystone | Identity service | 身份服務 |
magnum | Container Infrastructure Management service | 集裝箱基礎設施管理服務 |
manila | Shared File Systems service | 共享文件系統服務 |
mistral | Workflow service | 工作流服務 |
murano | Application Catalog service | 應用程序目錄服務 |
neutron | Networking service | 網絡服務 |
nova | Compute service | 計算服務 |
octavia | Load-balancer service | 負載平衡器服務 |
qinling | Function as a Service for OpenStack | 作為OpenStack服務的函數 |
sahara | Data Processing service | 數據處理服務 |
senlin | Clustering service | 集群服務 |
solum | Software Development Lifecycle Automation service | 軟件開發生命周期自動化服務 |
swift | Object Storage service | 對象存儲服務 |
tacker | NFV Orchestration service | NFV編排服務 |
tricircle | Networking automation across Neutron service | 中子服務的網絡自動化 |
trove | Database service | 數據庫服務 |
watcher | Infrastructure Optimization service | 基礎設施優化服務 |
zaqar | Messaging service | 消息傳遞服務 |
zun | Containers service | 集裝箱服務 |
ceilometer-powervm | ||
Cyborg | ||
ec2-api | ||
freezer | ||
Masakari | ||
monasca-api | ||
monasca-log-api | ||
panko | ||
Searchlight | ||
storlets | ||
vitrage |