靠谱的3d北京赛车qq群|北京赛车冠亚对刷套利
歡迎光臨第一論文網,權威的論文發表,我們將竭誠為您服務!
您的位置: 第一論文網 -> 企業管理論文 -> 文章內容

中小企業OpenStack云平臺高可用技術研究與實現

作者:admin 更新時間:2019年02月28日 08:14:43

  隨著網絡技術的快速發展,中小企業私有化云平臺建設日益迫切,用戶對云平臺在穩定方面提出了更高的要求。保證云服務的高可用性,就是保證用戶業務的連續性。企業自身的私有云出現問題,則會導致公司運營癱瘓,損失將會更大。中小企業的私有云更需要穩定可靠,對私有云高可用研究更加迫切。


  近年來,針對不同OpenStack云平臺提出了多種系統高可用解決方案。有控制節點采用Keepalived+haproxy實現平臺的雙活模式高可用[1],也有采用pacemaker+corosysnc實現主從模式高可用[2]。這些方案雖然實現了云平臺控制節點的高可用,但是在物理網絡方面和存儲方面的高可用有很多不足。對于中小企業來說,后期運維成本過高。


  為了實現OpenStack云平臺的高可用性,從硬件、軟件和策略等多方面進行分析和設計,提出了一套基于Keepalived+多網卡綁的解決方案提高OpenStack云平臺的高可用性。


  1云平臺高可用性基本原理


  云計算分為SaaS,PaaS,IaaS三大服務模式,即軟件即服務、平臺即服務和基礎即服務。OpenStack是由RackSpace和NASA共同開發的云計算平臺,幫助服務商和企業內部實現類似亞馬遜EC2和S3的云基礎架構服?眨?屬于IAAS服務模式。


  高可用性(HighAvailability,HA)用來描述一個系統經過專門的設計,以減少停工時間,而保持其服務的高度可用性[3]。


  HA分為兩類:(1)Active/PassiveHA,稱為主備集群模式,備用節點處于監聽和備份模式,故障發生時及時切換,替代主設備提供服務。(2)Active/ActiveHA,稱為雙主集群模式,集群中節點互備互援,每個節點都提供服務[4]。


  2高可用云平臺設計與實現


  控制節點高可用集群提供控制節點中各個服務的高可用性,保障對整個集群管理能力的正常運行。


  2.1控制節點高可用集群


  控制節點中所運行的OpenStack服務都是無狀態的,各個組件之間只依賴消息隊列進行通信[3]。OpenStack的keystone,glance,nova,neutron和horizon通過keealived提供虛擬IP(VIP)來實現高可用,并對外提供服務。Mariadb和Rabbitmq直接在兩臺控制節點上搭建雙主集群。故對控制節點高可用集群采用雙機熱備模式。


  2.1.1Keepalived


  Keepalived是一個實現多機熱備的軟件。通過利用Keepalived所提供的的浮動IP功能,就可以簡單實現一個多機熱備高可用功能。主節點和備節點對外表現為一個虛擬IP,主節點會發送特定的消息給備節點,當備節點收不到這個消息時(此時主節點不可用),備節點會接管虛擬IP繼續提供服務[5]。


  首先,在主節點和備節點安裝Keepalived軟件及相關依賴包。在兩個節點中的Keepalived.conf文件中添加和修改選項,確定VIP。格式如下:


  virtual_ipaddress{VIP的具體IP地址)


  在主節點中確定主節點和優先級,在備用節點中確定備用節點和優先級,格式如下:


  vrrp_instanceVI_1{


  stateMASTER(備用節點改為:BACKUP)


  priority100(備用節點改為:90)


  )


  完成配置之后,在數據庫和消息隊列集群搭建完成之后,在配置文件加入關于數據庫和消息隊列的配置選項。


  2.1.2數據庫和消息隊列的雙主集群


  Mariadb雙活集群中的每一臺節點既是Master,又是另一節點的Slave。這樣,任何一方所做的變更,都會通過復制應用到另外一方的數據庫中。在兩個節點的配置文件中修改或者增加這些配置:server-id;啟用中繼日志和二進制日志;修改起始值和步長,以避免在Mariadb自動為INSERT語句選擇互相沖突的值;在Mariadb的命令行中執行如下命令:創建有復制權限的用戶。當上述配置完成后,相互指定對方為自己的主服務器,并啟動服務器復制進程。


  Rabbitmq集群模式大概分為3種:單一模式、普通模式和鏡像模式。本設計中的集群模式采用鏡像模式,可以解決普通模式出現的問題(當主節點出現故障,功能就無法實現)。同時與普通模式的不同之處在于消息實體會主動在鏡像節點間同步,而不是用戶取數據時臨時拉取。


  集群中分為兩類節點:內存節點和磁盤節點。內存節點,一般只保存狀態到內存中,這樣執行效率高,但是不易保存。磁盤節點,保存狀態到內存和磁盤中,這樣更可靠。本設計采用節點為磁盤節點的鏡像模式集群。


  2.2物理網絡的高可用


  平臺系統中的物理網絡是由網卡、網線和交換機等構成的。網卡作為節點之間數據交換的唯一出口,節點上的網卡損壞、網卡失效、網絡電纜中斷,都會導致節點之間的連接失敗,造成云平臺系統癱瘓。多網卡鏈路綁定策略(MulitipleNetworkChannelBonding,MNCB)能夠提高物理網絡的高可用性。通過網卡綁定,將多塊網卡虛擬成一塊邏輯網卡進行工作,自動分擔負載。將各網卡合成在一起為各個網段共同提供高帶寬的服務。當其中一塊物理網卡出現故障時,其他物理網卡可以快速承擔故障網卡的工作,保障整個工作流程的延續,既可以提升主機的網絡吞吐量,又提供了網絡的高可用性[6]。


  2.3測試


  本文采用2臺控制節點,2臺計算節點。各節點配置雙網卡,管理網絡為192.168.0.0/24。所有節點安裝的操作系統為Centos7.1-Server,OpenStack版本為Kilo。


  對該云平臺的高可用性性能進行測試,具體測試步驟及結果如下。


  (1)關閉任意一臺控制節點,測試確認控制節點相關服務組件、mariadb和rabbitmq均能提供正常服務,然后測試計算節點和存儲節點。


  (2)斷開云平臺任一節點的任意一條網線,此時OpenStack云平臺能正常工作。


  通過以上2個實驗得出,此高可用性方案可以對單點故障進行檢測和處理,實現了OpenStack云平臺的高可用服務。


  3結語


  采用了Keepalived模式設計的控制節點集群為OpenStack云平臺實現服務的高可用提供便利。隨著公司的業務發展,OpenStack云平臺規模也會擴大,其中的虛擬機量和數據量都會增加。如果加入Ceph集群的高擴展性并在后期增加osd和節點,可以更好地提高OpenStack云平臺的高可用性。

靠谱的3d北京赛车qq群