超千個節點OpenStack私有雲案例(1):CERN 5000+ 計算節點私有雲


 CERN:歐洲核子研究組織

本文根據以下幾篇文章整理而來:

1. 系統

(1)系統規模

  • 2015 年是 5000個計算節點,16000 個在運行的虛機

  • 2016年2月是 5500 個計算節點,半年期間計算節點增加了 500 個,虛機增加了1000個

  • 左邊是當前正在運行的虛機的數量 16000 個,右邊是被創建過的虛機的累計數量,超過 25 M。

(2)CERN 使用的 OpenStack 版本保持持續更新,基本上是延遲一個社區版本

 

(3)2015 年的總體結構:一個 region,2 個數據中心,26 個 Cell,全部使用 nova-network

在 2016 年2月,已經增長到了 33 個 Cell,而且在其中一個 Cell 中使用了 Neutron。

(4)Nova 系統架構

  • 使用 nova-cell

  • 每個 Child Cell 有不同的 Use cases

  • 為什么要使用 Cell?因為不同的用戶有不同的需求,因此,在每個 Child Cell 內部,可以使用不同的配置,包括 nova scheduler 等;Cell 還有助於縮小故障發生時候的影響域。
  • Cell V1 的局限性
  • Nova-cell 系統架構:兩級 Cell 結構。只在 Nova Top Cell Controller 上使用 HA,在 Child Cell controller 上不使用HA。
 
  • 每個 Child Cell 大概 200 個計算節點
  • CERN 自己開發了 Cell 調度器
  • 如果將特定 project 的虛機調度到特定的 Child cell 上
  • 如何結合 Cell 使用 AZ
  • 在 2013 年的時候,只使用了一個 Cell,考慮到:(1)Nova Cell 的調度機制非常弱,只能隨機調度,(2)想使用 host aggregate功能 (3)不能跨Cell 做 live migration。但是最后發現非常難於管理。
 
  • 隨后他們就將其拆分為 9 個 Child cell
 
 
  • Nova 做 block live migration 遇到的問題

  • Nova kilo 版本與 Python 2.6 不兼容

(5)網絡架構

  • CERN 使用基於 nova-network 的 網絡分段技術

  • CERN 自己開發了一個 Network driver

  • 他們已經對 Neutron 做了大量的測試,已經在計划遷移(到2016年2月他們已經在一個Child cell 中使用 Neutron)

(6)Keystone

使用兩個不同的 Keystone。Ceilometer 需要調用大量的 API,因此給它們一個專有的Keystone,免得影響用戶使用 Keystone。

(7)Glance

Glance 服務運行在虛機中。之前,Glance registry 可以被別的 Glance API 使用,但是,這導致難於定位問題,因此,現在的 Glance registry 只和本地的 Glance API 通信。但是,Glance 不支持分 Project 設置 Quota,這對他們很重要。

(8)Cinder

使用了 3個 backend,兩個 Ceph,一個 NetApp。目前沒有 Ceph Cinder driver for hyper-v,所以他們使用了 NetApp,被 Hyper-V 虛機使用。

 

(9)Ceilometer

兩套Ceilometer 基礎 設施。一個保存 sample,meters 等,用於統計,數據保存在 Hbase 中,數據保存3個月。之前用 MogoDB,但是難於擴展。
另一個用於 alarming,它將 CPU sample 保存在 MongoDB 中,只保存幾個小時。如果不分開的話,查詢 alarming 非常慢。

  

(10)Rally

不僅用於 benchmarking 測試,還用於 FVT。

(11)新的挑戰

 

2. 簡單分析

2.1 CERN 對 Nova Cell 的看法

對大規模的部署,Nova Cell 有幾個優勢:

  • 能夠保持對用戶只有單端點可見(single endpoint to users)
  • 能夠增加基礎架構的可用性和彈性(increase the availability and resilience of the Infrastructure)
  • 能夠避免超出 Nova 和其它外部模塊(比如 DB,MQ 等)的上限 (avoid that Nova and external components (DBs, message brokers) reach their limits)
  • 能夠隔離不同用戶 (isolate different user cases)

但是,Cell 目前還是有不少的局限,如下的功能不能和 Nova Cell 一起使用:

  • Security Groups; 
  • Manage aggregates on Top Cell; 
  • Availability Zone support; 
  • Server groups; 
  • Cell scheduler limited functionality;

2.2 本人的一點看法

  • 使用現有的 OpenStack 來支持 5000 個計算節點,那是非常牛的事情!這可能是目前最大的 OpenStack 生產系統私有雲部署規模。
  • 計算擴展性方面,使用 Nova cell 是一個解決方案,但是目前它的 V1 版本已經被凍結,V2 還在開發中,因此,要使用的話,需要做大量的開發和問題定位;而且,它還存在大量的局限性。
  • 網絡擴展性方面,Neutron 的擴展性和穩定性依然問題很大,CERN 也在一步步嘗試,期待他們使用 Neutron 的心得
  • 存儲擴展性方面,Ceph 居然能做到支撐 30PB 的數據量,這也是非常非常牛的事情!
  • Ceilometer 擴展性方面,以及性能和開銷等方面,默認情況下依然問題很大,CERN 做出了改進的非常好的示范
  • 謝謝 CERN 團隊的超強工作和無私分享

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM