今天說說OpenStack Pike的功能

本文部分內容譯自《53 things to look for in OpenStack Pike》

上周四,OpenStack發布了第16個版本Pike,新版本在功能上更新不算特別多,但是更加註重了OpenStack的可用性,最顯著的優化是更容易部署和版本迭代。下面對Pike的新功能做個盤點:

1. OpenStack 計算服務(Nova)

Cells v2 多Cell部署:部署將默認使用單Cell;從這個版本開始,你可以使用 Cells v2 API 創建多Cell 的環境了,儘管它還有一些局限。Cells v1 現在被標記為被棄用了。

重寫 Nova 配額系統,在資源被創建時計數:如果所申請的資源創建失敗,你會得到錯誤;你不需要做任何改動就可以使用該功能。

利用 PCIWeigher 來更高效地利用資源:PCI 設備是一種特殊硬體,因此你需要確保只有真正需要這些設備的負載會運行在帶有 PCI 設備的宿主機上。使用 [filter_scheduler] pci_weight_multiplier 配置項來防止非 PCI 負載被調度到帶有 PCI 設備的節點上。

節點在不能正常工作時會自動從服務列表中移除,利用 [compute]/consecutive_build_service_disable_threshold 配置項。

防止虛機佔用宿主機上的所有物理CPU,通過使用 reserved_host_cpus 配置項來為 hypervisor 預留部分CPU。

Placement API 現在可以查看各種資源的定性「特徵」,以更好地服務請求。

2. OpenStack 網路服務(Neutron)

Neutron PTL Kevin Benton 告訴我們需要關注以下幾點:

支持從 Ocata 版本無縫升級到 Pike 版本

使用 haproxy 代替 neutron namespace proxy agent,以降低元數據代理伺服器(metadata proxy server)上的內存使用

穩定性和性能優化

優化基於 OVS openflow 防火牆的穩定性

開始使用 Python3

優化服務端和 L2 agent 之間的通信方式,來降低 Neutron 伺服器端負載

更新 Neutron HTTP API 中的條件比較和交換(Conditional compare-and-swap),為客戶端提供競爭安全(race-safe)方式來更新資源

DHCP 代理支持路由網路(routed network )的其他段上的子網

QoS 改進

支持 QoS 擴展中的帶寬限制規則,設置帶寬速率限制

OVS 和 Linux Bridge 驅動程序中的雙向帶寬限制 QoS 規則

SR-IOV 的出口帶寬限制規則

增加一個 API,獲取已被載入的驅動所支持的 QoS 規則類型

DVR 改進

支持可用性受限的外部網路(limited availability external networks )的部分分散式路由

修復 bug,使得可以在 VRRP 場景中使用與未綁定埠相關聯的浮動IP

通過計算節點為不需要網路地址轉換的數據包快速退出路由

支持配額 API 中的配額使用統計

支持為每個 Neutron 埠設置單獨的 DNS 域

支持為每個網路設置 MTU

支持為所有標準 Neutron 資源設置用戶自定義 tag

3. OpenStack 塊存儲服務(Cinder)

Cinder PTL Sean McGinnis 請我們關注以下幾點:

添加了 「還原到快照」 (revert to snapshot) 功能,允許用戶將卷數據回滾到上一次做快照的時間點。

在某些情況下,我們支持對正在被使用的卷進行擴容。以前僅在卷未掛載到實例時才允許被擴容。現在,通過 Pike Cinder 與使用 libvirt 驅動的 Pike Nova 相配合,我們可以擴展使用中的卷,並將該更改反映到運行著的實例。

我們添加了 backend_default 配置部分。在此之前,如果您有一個配置項,想要應用於所有存儲後端,那麼就需要在每個後端的配置部分中添加該配置項。Pike 版本中,這個新的配置部分中的配置項可以被後端配置部分中的配置項的值所覆蓋,或者被默認使用。

添加卷組複製(replication)支持。在此之前,管理員只能配置整個後端來進行複製。現在,通過使用此功能,用戶就能夠根據自己的需求(所有卷作為應用程序的一部分,例如僅限資料庫卷等)定義一卷組(volume group),並將該卷組複製到輔助後端。目前,只有少數 Cinder 驅動程序支持該功能,但是它現在確實是可用了。我們期望在後續版本中有更多的後端支持此功能。

4. OpenStack 鏡像服務(Glance)

通過使用新的 tasks_api_access 策略,來避免將 Tasks API 暴露給終端用戶;這策略能夠讓 Glance 使用普通用戶憑據來管理那些互動式映像導入任務。

5. OpenStack 編排服務(Heat)

Heat PTL Rico Lin 告訴我們,該項目增加了以下新資源,包括:

Neutron Trunk 資源支持(OS :: Neutron :: Trunk)

支持新的 Magnum Cluster 和 Cluster Template 資源(OS :: Magnum :: Cluster 和 OS :: Magnum :: ClusterTemplate)

由 Mistral 工作流管理的自定義資源類型(OS :: Mistral :: ExternalResource)

添加 Zun Container 資源(OS :: Zun :: Container)

他還談到在更新時可以使用 get_reality 功能:「您可以在更新 API 請求中使用 『converge』 標誌,此更新操作實際上會從服務(比如 nova 實例、cinder卷)中抽取資源並根據實際情況進行更新。 例如,我創建一個 m1.small 規格的實例,有人使用 nova API 對它進行更新,調整它的規格為 m1.large;使用 `converge` 標誌後,Heat 會檢測到該實例的 flavor 已經被更改,並將其改為原有規格 m1.small。」

6. OpenStack Dashboard 服務(Horizon)

就像我們已經可以從 Horizon 中下載 openrc 文件來配置 OpenStack 客戶端一樣,Pike 現在可以為 os-client-config下載 clouds.yaml文件。

在項目的網路詳細信息表中,創建和刪除網路中的埠。 (作為運維,您可以使用策略打開和關閉此功能。)

現在可以在添加安全組規則時指定 「any」 IP 協議和 「any」 埠號

現在可以看到哪些安全組被應用到了哪些 Neutron 埠

7. OpenStack 身份認證服務(Keystone)

Keystone PTL Lance Bragstad 告訴我們以下是 Pike 版本中已完成的一些重點工作:

註冊默認策略 - 這樣可以使運維更容易維護策略文件,特別是當大部分時候使用默認值時

增強存儲在SQL中的密碼安全性 - SQL 身份後端已被更新,以支持更安全的密碼 hash 機制,這更符合行業標準

8. OpenStack 對象存儲服務(Swift)

Swift PTL John Dickinson 告訴我們,以下這些是 Pike 版本中 Swift 的一些主要新功能:

支持全局分散式糾刪碼,包括:

複製的糾刪碼片段

用於更精確數據放置的複合環(Composite rings)

針對每個策略的配置選項

全局糾刪碼是通過複製對象的糾刪碼片段來實現的。這種 「EC複製」 允許每個獨立區域在跨區域的網路中斷時也能正常工作,並且允許一個區域故障時使用遠程區域進行恢復。

為了實現全局擦除碼,我們首先必須支持「複合環」。複合環是由兩個或多個「正常」環組成的數據放置環。組件環(component ring)是在不同的區域使用不同的設備獨立構建的。以這種方式構建複合環允許更精確地分散副本或片段(例如,假設您有兩個區域,您可以在每個區域中指定2副本從而總數為4副本,或者可以指定跨這兩個區域使用 10 + 4 糾刪碼)。

我們還添加了基於每個策略覆蓋 proxy 配置選項的功能。例如,這會允許為一些存儲策略設置讀取關聯性。

9. OpenStack 計量服務(Ceilometer)

Telemetry PTL Julien Danjou 告訴我們Pike 中有新增以下內容:

支持 Manila

支持多種 SDN 控制器

10. OpenStack DNS 即服務 (Designate)

支持跨池(pool)調度

11. OpenStack 裸金屬部署項目 (Ironic)

Ironic PTL Dmitry Tantsur 告訴我們 Pike 版本有如下新增功能:

從 Cinder 卷啟動

物理網路感知

無縫/滾動升級

12. OpenStack 文件服務 (Manila)

為每種共享類型(share type)設置配額,以及為共享組的數目和共享組快照設置配額

增加了支持 IPV4 和 IPv6的文檔和代碼,包括 IPv6 地址校驗,以及檢測一驅動是否支持IPv4 或者 IPv6

13. OpenStack 容器項目 (Magnum)

K8S 集群默認包含了 K8S 面板

包含了一個監控軟體棧,包括 cAdvisor,node-exporter,Prometheus 和 Grafana,但它需要在被顯式啟用後才能使用

允許限制 Magunum trustID 的訪問許可權,這樣 Magunum 就不能無限制地訪問OpenStack 的任何服務了

14. OpenStack 應用目錄項目 (Murano)

Murano PTL Felipe Monteiro 告訴我們 Pike 中有以下重要變化:

完成了 Policy 代碼 Gerrit Code Review

Murano 環境可以選擇掛接哪個卷或者卷快照

15. OpenStack 大數據即服務 (Sahara)

Sahara PTL Telles Nobrega 告訴我們 Pike 中有以下重要變化:

Pike 版本的一個主要功能是引入了新的鏡像創建和驗證系統。我們仍然需要使用 disk image builder 來製作大部分鏡像,但是Pike 版本引入了 CDH。它允許用戶使用 libguestfs 來創建鏡像,而不再依賴於 DIB。

16. OpenStack 策略即服務 (Congress)

Congress PTL Eric K 告訴我們,Pike 版本聚焦於可使用性,特別是針對剛剛使用的人群。包括:

策略庫(Policy library):一個管理員可以自定義和激活包含了一些有用策略的集成庫,它允許管理員在學會如何撰寫策略之前就能快速從 Congress 獲益。

監控面板:這個監控面板一目了然地總結了環境中所有政策違規情況的數量及其嚴重性,並提供了詳細信息。

17. OpenStack On OpenStack (TripleO)

TripleO PTL Emilien Macchi 告訴我們以下內容:

Pike 版本周期內所做的主要工作是實現了由 TripleO 部署的服務的容器化

我們還支持從 Ansible 任務驅動的 Ocata 版本的裸機部署升級到 Pike 版本的容器化部署

在以前的版本中 TripleO 支持了可組合角色(Composable roles);現在,TripleO 支持了組合式網路(Composable network),因此運維人員能夠根據所配置的角色來完全控制網路配置

18. OpenStack 工作流服務(Mistral)

Mistral PTL Renat Akhmerov 提到了以下幾點:

完成了第一個版本的 Actions API(mistral-lib repo)

增強工作流變數發布(publishing workflow variables)功能(不同作用域、更靈活等)

Mistral OpenStack actions 現在可以在不同的區域(region)內運行;Mistral action 現在可以直接在引擎(engine)中運行(不需要通過RPC請求executor服務執行)


在OpenStack社區和用戶調查中顯示,複雜度高、部署困難、一致性差、缺乏穩定等是消極意見的主要反饋。這次Pike版本的發布可以看出OpenStack正在努力解決部署和兼容性的問題。另外,容器終於被添加到OpenStack中並且支持所有主流的容器技術,包括Docker和Kubernetes 。總體來說,Pike版本不算很亮眼,之後Q、R版本的發布期待獲得一個更加整體化和成熟的產品。


推薦閱讀:

OpenStack悉尼峰會-比起Innovation, Integration更關鍵
OpenStack大規模部署優化之三:Quota鎖優化
OpenStack大規模部署優化之二:穩態優化
OpenStack中SDN泛談1 (Neutron&ODL&ONOS)
解讀Mirantis最新的Neutron性能測試

TAG:云计算 | OpenStack | 开源 |