作者簡(jiǎn)介:江睿,畢業(yè)于北京理工大學(xué),現(xiàn)為滴滴公司云計(jì)算資深技術(shù)工程師。聚焦領(lǐng)域 SDN,云網(wǎng)絡(luò)安全與監(jiān)控等。
一、ONOS的一致性保障
ONOS主要包括兩類一致性機(jī)制,最終一致性和強(qiáng)一致性,最終一致性采用樂(lè)觀異步復(fù)制和基于Gossip的熵減方式來(lái)實(shí)現(xiàn),樂(lè)觀異步復(fù)制可以高效的實(shí)現(xiàn)最終一致,但是一旦集群中發(fā)生節(jié)點(diǎn)脫離集群或者重啟的情況整體集群就會(huì)出現(xiàn)越來(lái)越失序的現(xiàn)象,基于Gossip的熵減方案就是為了解決此類問(wèn)題,集群中的節(jié)點(diǎn)定期(通常間隔三到五秒)地隨機(jī)選擇一個(gè)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步,大多數(shù)情況下,熵減互動(dòng)是平常的,因?yàn)槊總€(gè)控制器已經(jīng)知道發(fā)生在網(wǎng)絡(luò)中的每一個(gè)事件。 但是當(dāng)一個(gè)控制器狀態(tài)稍微漂移時(shí),這個(gè)機(jī)制很快就會(huì)檢測(cè)到這個(gè)狀態(tài),并使控制器重新同步。 這種方法還具有快速將新加入的控制器和其他的控制器進(jìn)行同步的好處。 新加入的控制器與現(xiàn)有控制器之間的第一次熵減互動(dòng)將很快實(shí)現(xiàn)節(jié)點(diǎn)同步,而不需要單獨(dú)的備份/發(fā)現(xiàn)機(jī)制。
在動(dòng)態(tài)擴(kuò)容的情況下,動(dòng)態(tài)節(jié)點(diǎn)的加入會(huì)對(duì)最終一致性產(chǎn)生影響,表現(xiàn)為新的節(jié)點(diǎn)加入集群,在和其他節(jié)點(diǎn)的熵減交互以及樂(lè)觀復(fù)制中最終和整體集群達(dá)到一致。這部分涉及的子系統(tǒng)包括Device和Link子系統(tǒng)。
而Device,Link子系統(tǒng)也會(huì)影響到Topo子系統(tǒng),所以在進(jìn)行節(jié)點(diǎn)動(dòng)態(tài)擴(kuò)容時(shí),新加入節(jié)點(diǎn)在實(shí)現(xiàn)最終一致的過(guò)程中如果不承載業(yè)務(wù)的話影響較小。
強(qiáng)一致性的保障通過(guò)Raft算法來(lái)實(shí)現(xiàn),ONOS考慮到容錯(cuò)和性能的通盤考慮,選擇了分區(qū)機(jī)制和備份冗余機(jī)制。
分區(qū)機(jī)制是指ONOS對(duì)任意一個(gè)支持強(qiáng)一致性的分布式原語(yǔ)(主要包括其分布式數(shù)據(jù)結(jié)構(gòu))支持分區(qū)機(jī)制,而在每一個(gè)分區(qū)中支持多個(gè)節(jié)點(diǎn)之間的備份冗余,實(shí)現(xiàn)了CAP理論的折衷性考慮。
二、ONOS邏輯時(shí)鐘
在分布式系統(tǒng)中時(shí)鐘是個(gè)重要的概念,ONOS選取了以MasterShip Term和本地事件序列號(hào)的方式來(lái)進(jìn)行統(tǒng)計(jì)。其理論依據(jù)如下:
1.網(wǎng)絡(luò)控制器的控制離不開(kāi)設(shè)備,所有的網(wǎng)絡(luò)事件都是最終都能關(guān)聯(lián)到設(shè)備上
2.MasterShipTerm是全局強(qiáng)一致的,依賴這個(gè)數(shù)據(jù)做時(shí)鐘的可靠性高
3.控制器依賴從設(shè)備收上來(lái)的信息來(lái)發(fā)出網(wǎng)絡(luò)事件,而真正拋出事件的只有Master,Master維護(hù)著對(duì)應(yīng)設(shè)備上報(bào)事件的序列號(hào),在每一個(gè)Term周期內(nèi)從0開(kāi)始單調(diào)遞增
三、動(dòng)態(tài)擴(kuò)容對(duì)強(qiáng)一致性的影響
當(dāng)前ONOS大部分子系統(tǒng)都采用的是強(qiáng)一致性的方式,包括:FlowRule, Host, MasterShip等,其中MasterShip是整體集群數(shù)的強(qiáng)一致,其他子系統(tǒng)是基于Partition內(nèi)部節(jié)點(diǎn)的強(qiáng)一致。所以O(shè)NOS集群的宕機(jī)風(fēng)險(xiǎn)和Partition Member數(shù)量有關(guān),如果Partition Member只有三個(gè)節(jié)點(diǎn),那么兩臺(tái)設(shè)備宕機(jī)就會(huì)造成系統(tǒng)問(wèn)題。
在節(jié)點(diǎn)動(dòng)態(tài)加入集群的場(chǎng)景下,最大的問(wèn)題是要防止出現(xiàn)腦裂,所謂腦裂就是一個(gè)集群中同時(shí)出現(xiàn)兩個(gè)Leader的場(chǎng)景,在集群節(jié)點(diǎn)減少的情況下不會(huì)出現(xiàn),但是在集群添加節(jié)點(diǎn)時(shí)會(huì)出現(xiàn)這種場(chǎng)景,如下圖所示:
在上圖所示的場(chǎng)景之下,假如新的Server先以新配置啟動(dòng),而舊的Server逐步以新配置運(yùn)行,此時(shí)會(huì)存在新配置的大多數(shù)和舊配置的大多數(shù)共存的情況,操作不慎會(huì)導(dǎo)致集群存在兩個(gè)Leader進(jìn)而腦裂的情況。
ONOS的raft算法采用Copycat實(shí)現(xiàn),其支持動(dòng)態(tài)節(jié)點(diǎn)的加入,但是這個(gè)方法不同于Raft論文中提到的兩階段添加的方案,而是采用了單節(jié)點(diǎn)添加方案來(lái)避免出現(xiàn)腦裂的情況,這樣使得方案更簡(jiǎn)單但是相對(duì)操作會(huì)麻煩一些。另外在新加入節(jié)點(diǎn)開(kāi)始進(jìn)行數(shù)據(jù)同步時(shí),業(yè)務(wù)要盡量避免寫(xiě)入。以免影響讀寫(xiě)性能。
四、ONOS帶狀態(tài)重啟
帶狀態(tài)重啟也是生產(chǎn)環(huán)境中非常重要的一點(diǎn)。ONOS大部分分布式數(shù)據(jù)結(jié)構(gòu)都是支持持久化的,部分不支持的主要是最終一致性數(shù)據(jù)結(jié)構(gòu)。 這其中ECMap必須配置持久性選項(xiàng)才能將條目寫(xiě)入磁盤,否則在集群關(guān)閉時(shí)會(huì)丟失。
但是大多數(shù)分布式原語(yǔ)(強(qiáng)一致性)使用了Raft集群,并且它們是持久化的。 ConsistentMap,ConsistentTreeMap,DocumentTree,DistributedSet,LeaderElector以及這些基元的所有Async *版本都使用單個(gè)Raft分區(qū)或所有Raft分區(qū)。 這些原語(yǔ)有效地由持久的復(fù)制日志支持,該日志將從該/ data目錄中讀取,并在重新啟動(dòng)群集時(shí)重播。
- 愛(ài)立信主導(dǎo)的電信API聯(lián)合體任命CEO,并正式啟用公司名Aduna
- 到2030年,邊緣計(jì)算將主導(dǎo)數(shù)據(jù)處理
- 千家早報(bào)|蘋果、谷歌、三星將接受智能家居產(chǎn)品的Matter認(rèn)證;LG和三星為其電視添加微軟Copilot AI助手——2025年01月09日
- 新疆移動(dòng)原副總經(jīng)理劉英杰被決定逮捕
- Verizon與三星、聯(lián)發(fā)科試驗(yàn)6CA技術(shù):實(shí)驗(yàn)室環(huán)境下行速率5.5Gbps
- 貝森看好系統(tǒng)集成商發(fā)展專網(wǎng):建議成為MVNO
- 諾基亞為月球4G網(wǎng)絡(luò)起飛做好準(zhǔn)備
- 警鐘長(zhǎng)鳴!又一低空獨(dú)角獸,申請(qǐng)破產(chǎn)
- Verizon與三星、聯(lián)發(fā)科試驗(yàn)6CA技術(shù):實(shí)驗(yàn)室環(huán)境下行速率5.5Gbps
- 貝森看好系統(tǒng)集成商發(fā)展專網(wǎng):建議成為MVNO
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。