国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FCSAN心跳的電力云平臺虛擬機HA實現(xiàn)

2020-09-26 12:26:14田富強佘文魁胡波
科技創(chuàng)新導(dǎo)報 2020年19期
關(guān)鍵詞:虛擬機

田富強 佘文魁 胡波

摘? 要:隨著業(yè)務(wù)系統(tǒng)上云規(guī)模的不斷擴大,云平臺對虛擬機可用性要求越來越高。為了進一步提升虛擬機的可用性,減少業(yè)務(wù)停機時間,平臺需要在短時間內(nèi)將虛擬機及業(yè)務(wù)恢復(fù)運行,同時必須防止因判定條件不充分導(dǎo)致虛擬機腦裂。這依賴于HA(High Availability)對資源池中眾多計算節(jié)點的狀態(tài)進行實時準確的判定。針對電力云平臺虛擬機HA,本文全新提出通過FCSAN的邏輯卷心跳信號來增強對主機狀態(tài)感知的方案。經(jīng)測試,該方案相比僅通過以太網(wǎng)絡(luò)來確認主機心跳信號的方式要更可靠。

關(guān)鍵詞:基礎(chǔ)設(shè)施及服務(wù)? 高可用? 虛擬機? 心跳? 光纖存儲

中圖分類號:TP302 ? ? ? ? ? 文獻標識碼:A 文章編號:1674-098X(2020)07(a)-0117-04

Abstract: With the continuous expansion of cloud scale on business systems, cloud platforms have increasingly higher requirements on the availability of virtual machines. In order to further improve the availability of virtual machines and reduce business downtime, the platform needs to resume the virtual machines and services within a short period of time. At the same time, it must prevent the virtual machine from being split due to insufficient judgment conditions. This relies on HA (High Availability) to accurately determine the state of many computing nodes in the resource pool in real time. For the power cloud platform virtual machine HA, this paper proposes a new solution to enhance the host state awareness through the FCSAN logical volume heartbeat signal. After testing, this scheme is more reliable than the way to confirm the host heartbeat signal only through the Ethernet network.

Key Words: Infrastructure and services; High availability; Virtual machines; Heartbeat; Fiber storage

在大型云平臺中,往往以數(shù)千臺設(shè)備來承載數(shù)萬個虛擬機運行,任意一臺物理設(shè)備和環(huán)境的故障都可能導(dǎo)致多個虛擬機承載業(yè)務(wù)的中斷。虛擬機HA的任務(wù)是在短時間內(nèi)將所有故障虛擬機恢復(fù)運行。目前,各種云平臺虛擬機HA的方案大同小異,主要還是采用心跳機制,IPMI在本場景上僅可用于識別物理機電源狀態(tài),信息不充分。多數(shù)云平臺采用分布式存儲,其節(jié)點間通信方式為以太網(wǎng),當以太網(wǎng)絡(luò)不穩(wěn)定時缺少第三方的判定依據(jù),容易對虛擬機誤操作導(dǎo)致腦裂。VMware的HA方案借助其vmfs,通過虛擬機文件鎖來避免腦裂,但VMware需要較高的購買費用。

在電力云平臺資源池的架構(gòu)中,物理服務(wù)器被劃分為多個集群,一個機房通常會配備一臺或多臺FCSAN來存放虛擬機磁盤鏡像。云平臺中一般存在一個或多個控制中心用于資源池的整體調(diào)控。計算節(jié)點是分散在不同的機架甚至可能在不同機房中,這些物理服務(wù)器節(jié)點通常通過以太網(wǎng)絡(luò)來進行通信。HA的實現(xiàn)首先需要依賴控制中心對每個服務(wù)器節(jié)點的狀態(tài)進行實時精準的感知,而基于以太網(wǎng)絡(luò)的通信則是用于感知節(jié)點狀態(tài)的主要途徑。為了安全,物理機不能通過業(yè)務(wù)網(wǎng)絡(luò)通信,管理網(wǎng)絡(luò)將作為唯一的通信通道。管理網(wǎng)故障時,虛擬機可能仍然正常運行,而控制中心卻無法感知虛擬機及其宿主機的任何信號,HA的調(diào)度將變得兩難。在判定不充分的情況下,很容易導(dǎo)致虛擬機腦裂。實際情況更復(fù)雜,可能出現(xiàn)網(wǎng)絡(luò)間歇性閃斷,服務(wù)器還可能自動重啟、死機等情況,這些都不是單一的以太網(wǎng)感知方式能夠有效應(yīng)對的。本文將介紹通過FCSAN的信號補償機來提升虛擬機HA的可靠性的整體方案。

1? HA方案概述

本方案包括心跳保持、HA遷移觸發(fā)、FCSAN心跳機制、多機房HA結(jié)構(gòu)、調(diào)度模塊設(shè)計5個部分。

如圖1,電力云平臺采用無固定中心結(jié)構(gòu)部署,基于“控制中心/代理”模式架構(gòu),控制中心采用pacemaker集群方式部署,數(shù)據(jù)庫采用雙節(jié)點相互實時同步,避免出現(xiàn)單點故障。FCSAN存儲和管理網(wǎng)均采用雙鏈路冗余部署。承載虛擬機網(wǎng)絡(luò)的業(yè)務(wù)網(wǎng)與管理網(wǎng)絡(luò)是隔離的,此處不能用于HA管理通信。

控制中心需要實時感知計算節(jié)點是否處于“可聯(lián)系”狀態(tài),當控制中心在一定時間內(nèi)無法通過任何途徑感知計算節(jié)點時,控制中心將虛擬機調(diào)度到其它可用的計算節(jié)點上運行。計算節(jié)點需要不斷檢查本節(jié)點是否處于“失聯(lián)”的狀態(tài),計算節(jié)點檢測到自己“失聯(lián)”時,會從本機移除虛擬機運行權(quán),以避免腦裂。

1.1 心跳保持

在資源池中主要將“虛擬機”和“物理機”作為關(guān)注點,系統(tǒng)通過實時保持計算節(jié)點和控制中心的心跳信號來確認它們的正常運行狀態(tài)。正常情況下,計算節(jié)點將不間斷地通過管理網(wǎng)向控制中心發(fā)送心跳信號,控制中心被動接收心跳信號。計算節(jié)點基于TCP/IP發(fā)送正常心跳,控制中心對計算節(jié)點的TCP心跳請求進行響應(yīng),響應(yīng)內(nèi)容包含控制中心的實時信息,因為控制中心節(jié)點在集群中也是動態(tài)變化的(見圖2)。

當正常心跳不能保持并達到超時時間,HA將進入心跳異常處理,心跳異常處理也將直到正常心跳的恢復(fù)或異常處理完畢為止。心跳雙方的異常處理策略如下。

(1)控制中心異常心跳策略。

當控制中心無法接收到計算節(jié)點的正常心跳,且達到超時時間,將采取以下方式和順序主動獲取計算節(jié)點的信號,直到條件成立。如果條件不成立或超時則進行下一步驟。①搜集計算節(jié)點所有有效IP地址,并發(fā)地發(fā)起ICMP請求直到響應(yīng)或超時為止。②主動多次嘗試通過計算集群代理節(jié)點獲取計算節(jié)點向FCSAN中寫入的心跳信號,直到取得信號變化或超時為止。③通過對所有網(wǎng)卡旁路監(jiān)聽,直到獲取到來自目標的信號或超時為止。

(2)計算節(jié)點心跳策略。

當計算節(jié)點無法向控制中心發(fā)送成功正常心跳信號,且達到超時時間,將采取以下方式和順序向控制中心或本集群的FCSAN持續(xù)地發(fā)送心跳信號,直到條件成立。如果條件不成立或超時則進行下一步驟。①檢查本機所有網(wǎng)卡,找到狀態(tài)正常的網(wǎng)卡或超時為止。②搜集控制中心所有有效IP地址,并發(fā)地發(fā)起ICMP請求直到響應(yīng)或超時為止。③向本集群的FCSAN發(fā)送心跳信號,直到信號發(fā)送成功或超時為止。

心跳策略必須要求控制中心和計算節(jié)點雙方在同一時間執(zhí)行才能確保策略的有效性。在正常心跳下,是由策略雙方共同完成一次成功心跳,一旦正常心跳出現(xiàn)中斷,雙方將在同一時間點被心跳雙方感知到。但是控制中心很可能因故障的發(fā)生(如網(wǎng)絡(luò)中斷時無法讀寫數(shù)據(jù)庫)不能正常完成策略的處理。

為了防止心跳策略雙方執(zhí)行時間不對等問題,我們引入“HA故障檢測時段”,它的時間的定義范圍是從最后一次正常心跳的時間開始到數(shù)分鐘后為止。故障的判定和相關(guān)處理只在該時間階段進行,過時則不再處理。否則可能出現(xiàn)信號不對稱導(dǎo)致錯誤感知,使計算節(jié)點正常運行情況下又將虛擬機啟動到其它計算節(jié)點。這種情況下,存儲中的同一份虛擬機磁盤鏡像將被兩個實例同時讀寫,這就形成虛擬機腦裂。腦裂發(fā)生后,虛擬機關(guān)鍵數(shù)據(jù)很可能損壞,造成較大損失。

1.2 HA遷移觸發(fā)

當控制中心依次嘗試完所有途徑均無法檢測到來自計算節(jié)點的信號時,會將該計算節(jié)點上的虛擬機遷移到其它可用計算節(jié)點上。虛擬機遷移分為帶內(nèi)存遷移和不帶內(nèi)存遷移兩種情況。

(1)帶內(nèi)存遷移。

當因計算節(jié)點所有網(wǎng)絡(luò)均發(fā)生故障,而存儲可訪問時,虛擬機將無法與外界通信,服務(wù)也就中斷了。如果需要帶內(nèi)存恢復(fù)服務(wù),可將虛擬機的內(nèi)存保存先在FCSAN存儲中,然后再從其它計算節(jié)點通讀取存儲中的內(nèi)存進行恢復(fù)。具體做法(見圖3):可在存儲上為虛擬機專門創(chuàng)建一個LV(Logical Volume)來臨時保存內(nèi)存,LV通過文件系統(tǒng)格式化后掛載到虛擬機的宿主機,然后通過宿主機將內(nèi)存寫入文件系統(tǒng)(KVM等虛擬機均支持將內(nèi)存轉(zhuǎn)存到文件),內(nèi)存保存完成后,虛擬機運行實例將被銷毀,在FCSAN上進行標記,控制中心就可以在其它計算節(jié)點上將虛擬機內(nèi)存文件系統(tǒng)先掛載,然后直接從內(nèi)存文件恢復(fù)虛擬機。

(2)不帶內(nèi)存遷移。

當因計算節(jié)點宕機導(dǎo)致的故障,虛擬機內(nèi)存直接丟失掉了,這種情形將由控制中心為虛擬機在集群內(nèi)尋找另一個可用的計算節(jié)點重新啟動虛擬機。當計算節(jié)點的以太網(wǎng)絡(luò)和FCSAN通道均無法通信時,計算節(jié)點將虛擬機運行實例直接銷毀。

不帶內(nèi)存遷移可確保虛擬機更快地恢復(fù)運行,帶內(nèi)存遷移將需要耗費較長的時間,因此在設(shè)定虛擬機恢復(fù)級別時需要根據(jù)實際業(yè)務(wù)需要來確定。

1.3 FCSAN心跳機制

針對每個物理機計算集群,需要從FCSAN上劃分一個LUN,并通過LVM的方式管理。HA將為集群中的每一個計算節(jié)點創(chuàng)建一個LV。下文將該LV稱之為“光纖心跳塊”,它將以物理機ID號作為命名依據(jù)。計算節(jié)點采用向光纖心跳塊寫數(shù)據(jù)的方式發(fā)送心跳??刂浦行膹膶?yīng)光纖心跳塊中讀取光纖心跳信號。由于腦裂本身是因兩個虛擬機實例對FCSAN中的虛擬機磁盤產(chǎn)生了雙寫造成的,因此從避免腦裂的角度來看,以FCSAN的信號作為計算節(jié)點可用性判定依據(jù)比其它條件更充分。

光纖心跳信號設(shè)計。

取0-N的正整數(shù),每一次心跳信號將順序地將這些數(shù)值通過二進制形式寫入到光纖心跳塊的起始位置,達到最大值后又從0開始遞增。使得信號寫入期間,控制中心能夠從光纖心跳塊上讀取到在0-N間變化的數(shù)值。

1.4 多機房HA結(jié)構(gòu)

當需要將多個機房中的設(shè)備納入同一個資源池管理時,控制集群只會部署在其中一個機房。而不同機房往往是配備的獨立的FCSAN存儲,不同機房間存儲鏈路不互通。

如圖4,這種情況下,控制中心無法直接訪問機房二中的光纖心跳塊。針對這種情況,控制中心將選舉一個代理節(jié)點來讀取光纖塊心跳。下文稱該節(jié)點為“HA檢測代理”??刂浦行拿恳淮巫x取光纖心跳信號時,均需要從集群2中動態(tài)選舉一個可用的計算節(jié)點作為“HA檢測代理”。HA檢測代理實時監(jiān)聽來自控制中心的信號讀取請求,并將讀取結(jié)果返回給控制中心。

1.5 調(diào)度模塊設(shè)計

為了確保HA調(diào)度過程中,每一個環(huán)節(jié)互不影響,同時也不受某一臺物理機環(huán)境故障的影響,我們將HA的每個環(huán)節(jié)設(shè)計為獨立的模塊(見表1)。HA調(diào)度模塊如下:

T指的是輪循任務(wù),確保動作的持續(xù)性。L指的是事件監(jiān)聽器,L負責多線程處理T發(fā)起的事件請求,采用消息和事件監(jiān)聽模式實現(xiàn),確保故障可以被大規(guī)模持續(xù)處理。

2? 驗證測試

我們針對云平臺中常見的網(wǎng)絡(luò)故障場景,分別采用某個基于openstack架構(gòu)的云平臺軟件(因涉及商業(yè)問題不便公開,下文稱為X方案)與采用本方案的云平臺軟件進行對比測試。X方案主要采用以太網(wǎng)絡(luò)心跳和IPMI作為故障感知方式。

測試環(huán)境準備:先后分別采用相同的5臺物理機搭建云平臺,通過相同的5臺虛擬機鏡像克隆20臺虛擬機,每臺物理機運行4臺虛擬機,分別按相同順序?qū)γ總€測試場景進行3組操作,操作過程中對虛擬機進行ping操作,記錄每一次中斷時間。測試結(jié)果見表2。

3? 結(jié)語

相比僅采用以太網(wǎng)絡(luò)心跳和IPMI作為故障感知方式的云平臺HA方案,本方案在網(wǎng)絡(luò)故障場景下能較好地避免對虛擬機進行誤操作,云平臺虛擬機的可用性更高。在一定條件下,采用帶內(nèi)存遷移來恢復(fù)故障虛擬機可更快地恢復(fù)業(yè)務(wù)。采用全異步方式進行HA調(diào)度可在同時出現(xiàn)大量故障的場景中更快地完成虛擬機恢復(fù)。

參考文獻

[1] VMware,Inc.Patent Issued for VM Availability during Management and VM Network Failures in Host Computing Systems (USPTO 9465704)[J].Computer Weekly News,2016.

[2] 佘文魁,袁亮,田富強,等.基于KVM虛擬化平臺的輕量級HA機制研究[J].電子世界,2018(12):45-46.

[3] 陳天翼.FCSAN為智能化騰飛插上翅膀[J].中國公共安全,2019(Z1):107-108.

[4] 白偉華.面向云計算的小粒度應(yīng)用容器模型研究與應(yīng)用[D].廣州:華南理工大學,2017.

[5] 郭煜.可信云體系結(jié)構(gòu)與關(guān)鍵技術(shù)研究[D].北京:北京交通大學,2017.

[6] 杜威科.基于Kubemetes的大數(shù)據(jù)流式計算Spark平臺設(shè)計與實現(xiàn)[D].南京:南京郵電大學,2017.

猜你喜歡
虛擬機
基于VMware的計算機網(wǎng)絡(luò)課程虛擬實驗平臺搭建
東方教育(2016年8期)2017-01-17 20:13:28
虛擬機技術(shù)在計算機安全技術(shù)實驗教學中的應(yīng)用
東方教育(2016年8期)2017-01-17 13:00:15
還原卡與虛擬機技術(shù)在計算機實驗室中的使用對比陳治
虛擬機技術(shù)在計算機組裝課堂中的應(yīng)用
虛擬機服務(wù)器在教學實踐中的探索研究
淺談計算機系統(tǒng)虛擬化網(wǎng)絡(luò)設(shè)置方案
基于虛擬機的軟件保護系統(tǒng)研究與設(shè)計
任務(wù)驅(qū)動教學法在《網(wǎng)絡(luò)應(yīng)用服務(wù)管理》教學中的應(yīng)用
虛擬機局域網(wǎng)組建技術(shù)應(yīng)用初探
虛擬機在中職企業(yè)網(wǎng)搭建中的應(yīng)用
民县| 拜城县| 永嘉县| 香格里拉县| 廊坊市| 安西县| 喜德县| 永春县| 顺平县| 日照市| 宁陕县| 景德镇市| 河东区| 仪征市| 丽江市| 桃园市| 南汇区| 徐州市| 宁化县| 江油市| 合阳县| 大邑县| 潜江市| 百色市| 永川市| 高淳县| 北川| 海原县| 榕江县| 上杭县| 凤城市| 宁南县| 长治市| 正阳县| 莫力| 即墨市| 宣威市| 绥德县| 遵义市| 东方市| 黔江区|