DOITAPP
DOIT數據智能產業媒體與服務平臺
立即打開
DOITAPP
DOIT數據智能產業媒體與服務平臺
立即打開

如何并發創建2000虛擬機?浪潮ICOS分布式鎖方案了解一下 浪潮云海InCloud

浪潮云海InCloud OpenStack 5.6(ICOS 5.6)于2019完成單一集群規模達500節點的測試,驗證了商業發行版的優越性和穩定性,為生產環境部署提供了參考。浪潮陸續推ICOS 5.6對社區版的深度優化介紹,本篇分享解決并發創建2000虛擬機的秘密。

   并發創建虛擬機是云計算最常見的應用場景之一,幾乎所有的云計算廠商都有相對成熟的解決方案,可以支持數百規模的虛擬機并發創建。然而當并發規模突破1000量級后,確保虛擬機100%成功創建的難度急劇增加,僅有少數廠商的產品能夠達到這一水平。

在浪潮基于OpenStack Rocky版本進行的全球最大規模單一集群測試中,浪潮云海InCloud OpenStack 5.6(ICOS5.6)成功完成了100%并發創建2000虛擬機的極限挑戰,其首創的分布式鎖方案很好地解決了由于Neutron(OpenStack網絡組件)瓶頸導致的IP地址沖突問題。

IP地址沖突導致并發創建800虛擬機失敗

本次大規模測試過程中,進行并發創建800虛擬機時發現總有失敗出現,不能達到100%的成功率,查看Nova(OpenStack核心組件,負責管理和維護計算資源)日志發現如圖1所示。

圖1  并發創建800虛擬機失敗提示

Neutron日志也報錯,如圖2所示。

圖2  Neutron日志報錯提示

在對Neutron分配IP機制進行深入研究后,ICOS網絡團隊發現原生社區分配IP設計存在缺陷,無鎖設計必然導致IP分配產生沖突。沖突產生的根源在于并發情況下同時讀取ipam_allocate表并分配可用IP(分配完成后并不立即commit到數據庫),會大概率導致IP沖突,同時由于create_port_db封裝方式,會將創建port、創建可用IP、可用IP保存到IPS表,這三個事務共同commit,進一步加劇了沖突概率。分析如圖3所示。

圖3  無鎖設計導致IP分配產生沖突

針對這一問題,社區提供的解決方案是為create_port增加retry裝飾器,一旦監測到提交數據庫失敗后重新執行create_port來解決沖突,其默認休息0.1秒,最大重試10次。不過,在并發規模過大時,由于間隔較短且重試次數偏少,很容易出現retry次數耗盡也無法成功創建虛擬機的情況,浪潮在并發創建800虛擬機出現失敗的原因即在于此。

尋找最優解 獨創分布式鎖方案

經歷并發創建800虛擬機失敗后,ICOS網絡團隊嘗試增加retry重試次數并加長重試間隔,將設置調整為重試次數20,間隔0.5秒,實現了并發創建800 虛擬機成功,如圖4所示。

圖4  成功并發創建800 虛擬機

但這一優化方案并非最優解,次數增加與間隔延長帶來的通信開銷與CPU資源占用嚴重:大批量創建虛擬機,創建端口時間有概率增長,理論最壞情況為[0.5, 1, 2, 4, 8, 10, 10, … 10] 共165.5秒,需要延長Nova等待vf_plugged時間,與此同時由于最大重試20次,期間Neutron server異常繁忙,占用大量CPU資源。

擺在ICOS網絡團隊面前的問題是,如果800并發就產生如此高的資源占用,那么在2000并發的情況下,平臺性能是否足以支撐100%的成功率?有沒有更好的優化方案?最終,ICOS網絡團隊開發了分布式鎖方案,成功完成了并發創建2000虛擬機。

浪潮獨創的分布式鎖方案采用了新的IPAM_DLM驅動,引入OpenStack Tooz項目,基于原有的IP分配算法對分配IP過程增加分布式鎖,解決IP分配沖突。

解決IP地址分配沖突問題與酒店辦理入住的場景非常相似,假設有10名前臺負責同時到店的800位客人入住,retry的機制是前臺僅負責隨機分配房卡,由客人自行前往確認該房間是否可以入住,若已有人入住則返回前臺重新分配新房間;而分布式鎖方案的機制則是所有前臺臨時共享一個獨立數據庫,基于“先到先得”原則,任一房間一旦在數據庫中已經登記則自動鎖定,確保了每位領到房卡的客人一定可以入住該房間。

IPAM_DLM設計序列圖如圖5所示。

圖5  IPAM_DLM設計序列圖

在更新Neutron代碼后,采用etcd作為分布式鎖后端,重新測試并發創建800虛擬機的平均時長相比優化后的retry方案減少了18秒,load duration時間大幅縮短。如圖6所示。

圖6  ICOS分布式鎖方案效果

目前,浪潮已經將分布式鎖解決方案作為BP提交社區,并且得到社區的認可(BP已合入)。隨后,浪潮將正式向社區提交代碼。

未經允許不得轉載:DOIT » 如何并發創建2000虛擬機?浪潮ICOS分布式鎖方案了解一下 浪潮云海InCloud

免费六肖中特