StarlingX是什麼?node
說到StarlingX,要先說兩個公司,(Intel)英特爾和WindRiver(風河)。英特爾咱們都知道是美國一家主要以研製CPU處理器的公司,是全球最大的我的計算機零件和CPU製造商,它成立於1968年,具備50年產品創新和市場領導的歷史。那麼風河是傢什麼樣的公司呢?python
風河是智能互聯繫統軟件的全球領導者,提供全面的邊緣到雲軟件產品套件,旨在幫助各關鍵基礎設施公司應對系統發展和現代化過程當中面臨的挑戰和機遇,最大限度地實現物聯網的價值。和蘋果、谷歌同樣,風河也是在車庫起家。linux
1981年勞倫斯伯克利國家實驗室前研究員JerryFiddler在加利福尼亞州伯克利市的一個車庫裏建立了風河公司。1987年風河推出了VxWorks,是首個具備跨計算機網絡通訊能力的實時操做系統(RTOS),VxWorks也是目前應用最普遍的RTOS(實時操做系統),VxWorks平臺用途普遍,支持美國國家航空航天局(NASA)的好奇號漫遊車、網絡設備、工廠機器人及其餘許多類型的工業設備。VxWorks還用在與消費者接觸的硬件(好比醫療設備)中。2009年,風河被英特爾收購,2018年4月英特爾又把風河賣給了TPGCapitalLP。git
2014年6月,風河公司針對WindRiver Carrier Grade Communications Server成立了TitaniumCloud生態系統項目。設計目標就是要成爲電信網絡應用軟件理想的雲操做系統平臺,以最高的可靠性地運行網絡虛擬化功能。經過本項目,風河將與其合做夥伴針對NFV (Network Functions Virtualization,網絡功能虛擬化)基礎設施部署提供通過優化且可互操做的硬件和軟件解決方案,以加快服務提供商以及TEM (Telecom Equipment Manufacturers,電信設備製造商) 產品上市步伐。vim
正如項目名稱Titanium所示,風河合做夥伴生態系統將圍繞電信級通訊服務器(Carrier Grade Communications Server)平臺創建功能強大的解決方案陣容。經過與風河公司的電信行業專家密切合做,Titanium Cloud項目合做夥伴將對其現有標準產品進行優化,以便更加充分利用Wind River平臺的所有功能。api
電信級通訊服務器是一組集成化、支持NFV基礎設施達到電信網絡所要求的運營商級高可靠性軟件。傳統電信網絡的可靠性都已達到6個9的級別(99.9999%)或換算爲一年30秒停機時間,而基於IT應用的企業級軟件平臺的可靠性則一般僅爲3個9(99.9%),也就是每一年約有9個小時的停機時間,這會形成嚴重的成本和收入損失。電信級通訊服務器是惟一可以讓服務提供商向虛擬化基礎設施過渡後仍能達到保持6個9級別的高可靠性商用級網絡功能虛擬化服務器解決方案,並保持可以知足「永不停機」的要求。bash
除此以外,經過加速虛擬網絡功能(VNF,Virtual Network Functions)的性能,提供簡化的虛擬網絡功能安裝、管理和維護步驟的功能,電信級通訊服務器支持客戶在網絡中逐步部署虛擬網絡功能時,最大程度地下降資本支出 (CAPEX)和運營支出 (OPEX) 。服務器
風河Titanium Cloud最初構建在OpenStack等開源組件上, 而後對其進行擴展和加固, 以知足關鍵的基礎設施需求, 包括: 高可用性、故障管理和性能管理,可用於NFV電信雲、邊緣雲、工業物聯網等場景。網絡
今天說的StarlingX項目就是基於WindRiver的產品Titanimu Cloud R5版本基礎上修改而來。 2018年5月, Intel和風河宣佈將其電信雲/邊緣雲的商業產品TitaniumCloud中的部分組件開源, 命名爲StarlingX, 並提交給OpenStack Foundation管理。python2.7
2018年10月,OpenStack社區發佈了StarlingX首個版本,最初的starlingX主要是經過6大組件,來完成對Openstack的安裝部署,監控管理等。
服務管理(Service Management)—— stx-ha
從名字能夠看出,就是用來作系統可靠性性的簡稱(SM)。
1.SM對kenrel中的進程調度進行擴展,增長了信號量,從而能夠第一時間獲取到監控的進程死亡的信號,從而觸發進程從新拉起的工做。
2.SM複用了pacemaker中ocf腳本,能夠用它來作服務的拉起。這裏主要是對floating IP,nfs等資源的監控
3.SM也使用了init.d的腳本,來對openstack以及其餘組件的服務進行拉起動做。
所以,在StarlingX平臺上啓動/中止相關服務,要使用sm-restart/sm-unmanager等命令來進行。
故障管理(Fault Managerment)——stx-fault
該模塊就是用來作事件告警收集的模塊,簡稱(FM)
其餘模塊經過fm-api來直接發送告警或者事件信息給fm-manager
軟件管理(Software Managerment)——stx-update
該模塊主要提供了在StarlingX,如何製做patch的工具,同時也有patch的服務,用來管理升級/降級等功能。
基礎管理(Bare Metal Managerment)——stx-metal
該模塊是StarlingX中比較重要的一部分。整個平臺的有機結合都是靠它。
該工程是從WindRiver本身的MTCE平臺開源而來。
1. 提供了rmon對資源進行監控,好比cpu/memory等。
2. 提供了pmon對進程進性監控。這個模塊的監控和sm是有區別的。SM主要管理Openstack整個服務及相關資源。pmon只管理基礎進程,好比ssh等等。
值得一提的是,在StarlingX中的計算節點是不安裝SM服務的,因此nova-compute等服務,也是由pmon來監控。
3. hbs服務,對整個平臺提供了心跳檢測服務。
4. hwmond服務,提供了對服務器BMC的服務。
5. Mtc服務,總管MTCE平臺其餘服務模塊,對外提供接口。
平臺調度(Platform Orchestration)—— stx-nfv
從名字來看就能夠看到,這個模塊是在NFV場景下來豐富openstack功能的組件。
1. 提供了nova-api-proxy的模塊,直接監聽了nova的8774端口來攔截nova的請求,而後將一些須要處理的請求發送給VIM模塊。其餘透傳給nova。
2. Nfv-vim模塊,用來作一些NFV場景下邏輯處理功能,例如VM的HA功能。
3. Guest-server模塊。這個模塊用來提供了一套api及機制,經過在虛擬機中安裝agent,達到從平臺側獲取虛擬機心跳等功能。
配置管理(Configuration Managerment)——stx-config
該模塊用來對StarlingX中的組件以及openstack服務進行安裝配置的。
1. sysinv服務提供整個軟件的狀態管理,配置的修改等。
2.Controllerconfig/computeconfig等提供了根據角色來進行配置的設置。
每一次啓動時候這類服務都會從新執行。來保證系統在重啓後能恢復到正常配置。
以Ubuntu 16.04 LTS 64-bit爲例:
(1) 更新操做系統1. #sudo apt-get update
(2)安裝stx-tools工具項目1. #cd $home2. #git clone git://git.openstack.org/openstack/stx-tools
(3)安裝依賴包1. #cd $HOME/stx-tools/deployment/libvirt/2. #bash install_packages.sh
(4)製做StarlingX的ISO鏡像可參考https://wiki.openstack.org/wiki/StarlingX/Developer_Guide進行鏡像製做。注意:· 下載依賴包時, 因爲衆所周知的緣由, 國內訪問有問題, 因此最好設置http代理下載, 或者使用國外虛擬機上進行鏡像製做。· 經過源碼編譯、打包成RPM包, 這個過程很長, 筆者的虛擬機上跑了約12個小時, 請耐心等待· 編譯各RPM源代碼時使用了linux的mock隔離環境, 其log位置在/localdisk/loadbuild/user/starlingx/std/results/user-starlingx-tis-r5-pike-std/XXX包名/build.log· 若是碰到報錯:ERROR:Command failed: 09:08:15 # mount -n -t tmpfs -o mode=0755 -onr_inodes=0 -o size=5g mock_chroot_tmpfs/localdisk/loadbuild/user/starlingx/std/mock/b1/root 能夠嘗試修改:/usr/lib/python2.7/site-packages/mockbuild/plugins/tmpfs.pyself.optArgs +=['-o', 'nr_inodes=500000]
(5)複製鏡像到bootimage.iso1. #cp <starlingx iso image> $HOME/stx-tools/deployment/libvirt/bootimage.iso
(6)關閉防火牆1. #sudo ufw disable2. Firewall stopped and disabled on system startup3. #sudo ufw status4. Status: inactive
(7)經過ISO鏡像啓動, 並按照提示進行安裝StarlingX, 詳情請參考:https://wiki.openstack.org/wiki/StarlingX/Installation_Guide_Virtual_Environment/Simplex
StarlingX平臺是一個完整、高可靠、可擴展的邊緣雲軟件堆棧,它將新服務與許多其餘開源項目結合到一個總體邊緣雲軟件堆棧中,爲邊緣計算、工業物聯網和電信應用構建一個有彈性的邊緣雲基礎設施。StarlingX不是OpenStack子項目。它自己就是一個完整的項目。同時,它使用了許多OpenStack服務來提供核心的計算、存儲和網絡功能。StarlingX的開源也是響應了Akraino項目。
Akraino Edge Stack是Linux基金會旗下的一個項目,它開發了一套開源軟件堆棧,支持針對邊緣計算系統和應用軟件優化的高可用性雲服務,18年8月宣佈從成立階段進入到執行階段。Akraino Edge Stack旨在爲企業邊緣、OTT(Over the Top)邊緣和運營商邊緣網絡改善邊緣雲基礎設施的情況。它將爲用戶提供新的靈活性,以便快速擴展邊緣雲服務,最大限度地利用邊緣處支持的應用程序和功能,並有助於爲必須始終運行的系統確保可靠性。
StarlingX將來將會朝着容器化方向發展, 將會把openstack等組件作在容器中, 並可以使用K8S來管理。從功能上來看, StarlingX在系統HA、性能調優、軟件管理、故障監控方面有很好的參考價值, 很適合OpenStack開發人員研究。
小彩蛋: StarlingX的第二個版本將在今年第三季度推出!
參考文獻
1.OpenStack StarlingX 組件詳解,
做者:開源雲中文社區
2.淺談高性能邊緣雲軟件堆棧StarlingX,
做者:steve
3.電信雲/邊緣雲虛擬層軟件StarlingX介紹,
做者:趙怡
4.開源邊緣計算項目:讓你真正明白什麼是StarlingX,
做者:肖丁