大規模裸機管理難? UMCloud張文墨教你如何用OpenStack來搞定
原創【51CTO.com原創稿件】2018年5月18-19日,由51CTO主辦的全球軟件與運維技術峰會在北京召開。此次峰會圍繞人工智能、大數據、物聯網、區塊鏈等12大核心熱點,匯聚海內外60位一線專家,是一場高端的技術盛宴,也是***IT技術人才學習和人脈拓展不容錯過的平臺。
在19日上午的“OpenStack創新實戰”分論壇現場,UMCloud架構總監張文墨帶來了主題為《OpenStack大規模裸機管理的***實踐》的精彩演講,與參會者分享了UMCloud在很多裸機項目實踐中總結的一臺方法論和解決方案。
UMCloud架構總監張文墨
利用OpenStack統一管理裸機
據張文墨介紹,目前UMCloud在上海、南京、成都、佛山和北京建立了5個數據中心,共計4000+臺裸機,5個數據中心都存在已有OpenStack集群,而且5個集群里都需要同時添加800到2000個不同的節點,這些節點都要被OpenStack統一管理。
經過UMCloud多次技術選型之后,最終選用了OpenStack O版的Ironic來實現集群管理。為什么選擇Ironic?對此,張文墨解釋說,Ironic有三大功能非常實用:自動化獲取裸機配置信息、提供裸機系統自動化安裝/擦除功能、可以像管理OpenStack虛擬機一樣管理裸機。Ironic優點在于單個集群可支持超過3000臺裸機,還可與OpenStack其他組件聯動。
當然,張文墨也承認,在面對小規模集群的時候, Ironic的功能、性能、管理方式已經能夠滿足大多數需求,但是在超過幾百臺甚至千臺以上的大規模裸機管理的時候,它還是有些不足的。
他舉例道,例如Ironic沒有樹狀結構,對裸機信息的錄入和處理也比較復雜。第二個最嚴重的問題就在于無法管理裸機的網絡。最直接的原因實際上就是因為Ironic并沒有辦法去管理和配置交換機。第三個不足就是所有裸機被放在一個大池中,造成大規模管理缺陷。例如:客戶有2000臺裸機,想在轉碼業務域用幾個機架,再用外部的幾個機架,而Ironic目前沒有這種區分方式。所有的裸機都在一個大池中,就是所有的業務都混在一起。因此,使用Ironic管理大規模裸機還是不足的。
做大規模Ironic的裸機管理時的五大關鍵點
“所以,我們在做一個大規模Ironic的裸機管理時就主要關注了五點。”張文墨透露,分別是:大規模裸機的信息自動化錄入、大規模裸機硬件信息的自動化收集、大規模裸機信息自動化處理、上層交換機網絡的自動配置、裸機的池化。
在正式解讀這五大關鍵點之前,張文墨先為大家展示了下面這張網絡架構圖:
張文墨解說道,這個架構唯一的目的是為裸機的服務器來服務的,就圖中下面的Bare Metal server(橙色區域)。Bare Metal server左側紅線是一個基礎的IPM管理網段,它的重點是Ironic Conductor(綠色區域),這個組件主要用來完成對Bare Metal server的電源周期管理,包括開機、關機、重啟、硬盤啟動等配置;Bare Metal server右側的橙色線是帶外1G的Inspect(裸機信息的自動化收集);Bare Metal server下面做捆綁的線,連接到網管交換機,而后連接到Zabbix Server網管服務器。實際上,這條線是作為一個裸機的自動監控存在的;Bare Metal server上面的捆綁線,左側的是業務網段,右側的是存儲網段。這個圖是最初的概念圖,后期UMCloud做了小調整。
回到剛剛提到的五大關鍵點,張文墨一一進行了分析解讀。
大規模裸機的信息自動化錄入:裸機信息錄入的技術含量并不高,但是耗時較大,這是項目實施***的挑戰。這就要求硬件集成符合三個標準:標準布線、標準配置、標準制表,然后按照一定的規則通過腳本自動錄入。
大規模裸機硬件信息的自動化收集:裸機信息的自動采集,使用的是Ironic Inspector /Conductor。首先,利用Conductor通過IPMI將裸機開機;然后,裸機通過PXE從Inspector拿到內存操作系統;***,操作系統通過內置的IPA向Inspector上報裸機信息。
大規模裸機信息自動化處理:裸機信息處理流程的***步,就是將未接線的網絡接口刪除;第二步,指定安裝操作系統的網絡接口;第三步,將指定的業務口進行綁定。完成以上任務的關鍵在于local_link_information。
上層交換機網絡的自動配置:前面三點主要都是效率上的優化,可以大大減少管理裸機的時間,但仍舊無法管理交換機的網絡。于是,UMCloud首先引入了SDN交換機,與華為達成合作。雙方在裸機的管理上進行了適配和開發,摸索出下圖所示的流程,使得OpenStack可以通過SDN來自動控制交換機,實現自動化管理。
裸機的池化:其含義就是按照業務需求、物理位置等標準在同一大裸機池中劃分出若干小的池。實現方法就是,先在裸機中使用capabilities參數,然后在相應裸機flavor的元數據中加以匹配。
據了解,經過UMCloud的技術實踐后,目前他們裸機下發速度可以達到每天300臺裸機(按10小時算),切換業務/業務擴容的速度為每20分鐘30臺。此外,UMCloud 20個裸機資源池,可以實現池內裸機自動分配,池間隔離。
以上內容是51CTO記者根據UMCloud架構總監張文墨在WOT2018全球軟件與運維技術峰會的演講內容整理,更多關于WOT的內容請關注51cto.com。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】