SDN助力數(shù)據(jù)中心實(shí)現(xiàn)網(wǎng)絡(luò)資源的真正池化
隨著云計算技術(shù)的發(fā)展,傳統(tǒng)數(shù)據(jù)中心組網(wǎng)在網(wǎng)絡(luò)能力上的不足越來越明顯,主要體現(xiàn)在兩個方面,一是網(wǎng)絡(luò)虛擬化的支持能力不足,二是不支持業(yè)務(wù)自動化部署和靈活編排。數(shù)據(jù)中心網(wǎng)絡(luò)引入SDN控制器,基于集中控制、轉(zhuǎn)控分離的架構(gòu)實(shí)現(xiàn)網(wǎng)絡(luò)資源全局集中管控、智能調(diào)度,提高了網(wǎng)絡(luò)資源利用率;基于開放可編程的接口,實(shí)現(xiàn)業(yè)務(wù)的自動化快速開通部署。
SDN助力數(shù)據(jù)中心真正池化
SDN數(shù)據(jù)中心為多租戶提供虛擬、隔離、可擴(kuò)展、自管理的NaaS(Network as a Service),SDN助力云計算數(shù)據(jù)中心實(shí)現(xiàn)網(wǎng)絡(luò)資源的真正池化,使數(shù)據(jù)中心網(wǎng)絡(luò)在云計算時代實(shí)現(xiàn)網(wǎng)隨云動。
SDN控制器在數(shù)據(jù)中心的引入,極大提升了數(shù)據(jù)中心網(wǎng)絡(luò)的承載和服務(wù)能力。但同時,SDN控制器作為整個數(shù)據(jù)中心網(wǎng)絡(luò)的“大腦”,其高可靠部署對數(shù)據(jù)中心網(wǎng)絡(luò)的安全穩(wěn)定運(yùn)行非常重要。
SDN控制器的高可靠性分為兩個層面,分別是設(shè)備層面的高可靠和業(yè)務(wù)層面的高可靠。設(shè)備層面的高可靠是指SDN控制器設(shè)備硬件、軟件本身具有主備冗余的高可靠,在單一硬件和軟件模塊故障時SDN控制器依然能穩(wěn)定可靠運(yùn)行。業(yè)務(wù)層面的高可靠是指SDN控制器對網(wǎng)絡(luò)業(yè)務(wù)配置的高可靠下發(fā)以及業(yè)務(wù)配置數(shù)據(jù)的高可靠存儲,比如配置事物全局一致性、南向數(shù)據(jù)一致性等功能。
SDN控制器的部署有單節(jié)點(diǎn)、單集群的部署,也有能滿足更高可靠性的異地災(zāi)備的主備集群部署。本文從單集群和主備集群的規(guī)劃與部署兩個方面,較詳細(xì)地闡述了SDN控制器高可靠規(guī)劃、部署與實(shí)現(xiàn)。
SDN控制器單集群規(guī)劃與部署單集群內(nèi)部,北向模塊、數(shù)據(jù)庫、南向模塊應(yīng)至少提供一主一備的冗余部署。
單集群部署的SDN控制器,要求集群內(nèi)節(jié)點(diǎn)服務(wù)器數(shù)量≥3臺,節(jié)點(diǎn)劃分為Leader和Follower的角色。Leader節(jié)點(diǎn)負(fù)責(zé)集群內(nèi)各節(jié)點(diǎn)業(yè)務(wù)的統(tǒng)一調(diào)度管理,當(dāng)有節(jié)點(diǎn)故障的時候,Leader節(jié)點(diǎn)負(fù)責(zé)將故障節(jié)點(diǎn)下的設(shè)備進(jìn)行重新分配。Leader節(jié)點(diǎn)故障時,F(xiàn)ollower經(jīng)選舉比較,優(yōu)先級最高的Follower角色轉(zhuǎn)換成Leader節(jié)點(diǎn)。
北向Portal模塊應(yīng)能通過主備冗余方式或者多活方式,對外為北向應(yīng)用、協(xié)同層或云平臺提供統(tǒng)一的浮動IP,通過北向接口接收應(yīng)用、協(xié)同層的控制信息。
Portal模塊通過輪詢方式將北向接收到的指令發(fā)放給集群內(nèi)節(jié)點(diǎn),由集群內(nèi)節(jié)點(diǎn)計算處理,并通過南向接口完成向設(shè)備配置的下發(fā)。
北向的負(fù)載均衡調(diào)度模塊應(yīng)能動態(tài)檢測各節(jié)點(diǎn)北向接口狀態(tài),當(dāng)檢測到某節(jié)點(diǎn)的北向接口狀態(tài)異常時,能標(biāo)記該節(jié)點(diǎn)為不可用,并出發(fā)節(jié)點(diǎn)異常告警,停止北向請求到該節(jié)點(diǎn)的發(fā)放。當(dāng)北向接口檢測到節(jié)點(diǎn)恢復(fù)正常后,能重新標(biāo)記為可用,并重新將節(jié)點(diǎn)加入到北向請求接收的隊(duì)列當(dāng)中。
集群內(nèi)控制器南向模塊應(yīng)能至少支持建立控制器節(jié)點(diǎn)到轉(zhuǎn)發(fā)設(shè)備間的一主一備雙連接,即轉(zhuǎn)發(fā)設(shè)備能和集群內(nèi)兩個控制器節(jié)點(diǎn)建立連接,默認(rèn)通過主連接管理轉(zhuǎn)發(fā)設(shè)備,當(dāng)主連接的控制器節(jié)點(diǎn)故障時,自動切換到備連接管理轉(zhuǎn)發(fā)設(shè)備,同時將備連接切換為主連接,并重新再給該設(shè)備建立一個備連接。
控制器集群內(nèi)應(yīng)能支持配置事物全局一致性,即一個業(yè)務(wù)配置涉及集群內(nèi)多個節(jié)點(diǎn)、數(shù)據(jù)庫節(jié)點(diǎn)、網(wǎng)絡(luò)控制節(jié)點(diǎn)、轉(zhuǎn)發(fā)設(shè)備節(jié)點(diǎn)時,應(yīng)確保每個節(jié)點(diǎn)都能成功,如果中間某個節(jié)點(diǎn)異常,則全部配置事物回滾。
SDN控制器應(yīng)支持南向數(shù)據(jù)一致性,即當(dāng)控制器和南向轉(zhuǎn)發(fā)設(shè)備之間出現(xiàn)配置不一致時,控制器能進(jìn)行南向差異發(fā)現(xiàn)和差異修復(fù),從而實(shí)現(xiàn)控制器和南向轉(zhuǎn)發(fā)設(shè)備配置一致。要求控制器能定期進(jìn)行差異化監(jiān)測,發(fā)現(xiàn)差異時,能主動觸發(fā)告警通知用戶,用戶查看和確認(rèn)后,由用戶發(fā)起以控制器為準(zhǔn)或者以轉(zhuǎn)發(fā)設(shè)備為準(zhǔn)的差異化修復(fù)。
SDN控制器應(yīng)支持系統(tǒng)備份功能,定期將控制器系統(tǒng)數(shù)據(jù)生成快照,并將快照信息備份存放到遠(yuǎn)端服務(wù)器。當(dāng)控制器系統(tǒng)出現(xiàn)不可恢復(fù)的故障時,可以使用歷史系統(tǒng)快照信息重新部署一套存有全部配置信息的相同控制器。
SDN控制器應(yīng)支持集群節(jié)點(diǎn)替換功能,集群內(nèi)某節(jié)點(diǎn)損壞(譬如服務(wù)器損壞,無法恢復(fù)),可以單獨(dú)使用新的服務(wù)器替換該故障節(jié)點(diǎn)。
SDN控制器集群部署在云計算數(shù)據(jù)中心場景時,應(yīng)規(guī)劃在管理網(wǎng)中,SDN控制器通過管理網(wǎng)和軟硬件轉(zhuǎn)發(fā)設(shè)備通信,下發(fā)流表、策略等。因此在云計算數(shù)據(jù)中心場景要求管理網(wǎng)獨(dú)立規(guī)劃,和業(yè)務(wù)網(wǎng)物理隔離,保證SDN控制器和轉(zhuǎn)發(fā)設(shè)備之間的高質(zhì)量連接。
SDN控制器支持主備集群的容災(zāi)部署為進(jìn)一步提高SDN控制器的可靠性,SDN控制器除了單集群部署,還應(yīng)能支持主備集群的容災(zāi)部署方式。主備集群部署在不同的地域。正常情況下,主控制器集群工作處理業(yè)務(wù),備集群運(yùn)行但不處理業(yè)務(wù)。主備集群容災(zāi)部署時,主集群業(yè)務(wù)數(shù)據(jù)庫與容災(zāi)備集群數(shù)據(jù)庫應(yīng)實(shí)現(xiàn)同步備份。
主備控制器集群間建立心跳連接,當(dāng)主控制器集群故障時,可自動或手動完成容災(zāi)切換。要求心跳間隔、心跳超時個數(shù)閾值可配置,心跳超時后觸發(fā)告警或者觸發(fā)自動主備倒換的動作可配置。
SDN控制器主備集群部署建議架構(gòu)如圖所示。
圖? SDN控制器主備集群部署建議架構(gòu)
為增強(qiáng)系統(tǒng)的穩(wěn)定性和可靠性,在規(guī)劃時建議不開啟故障時主備自動切換和故障恢復(fù)時的自動回切,建議人工手動方式進(jìn)行切換。管理員在接收到心跳超時告警時,人工確認(rèn)主備集群的工作狀態(tài),必要時進(jìn)行主備集群切換;故障恢復(fù)后,需要進(jìn)行回切時,應(yīng)該在確認(rèn)系統(tǒng)狀態(tài)后,在業(yè)務(wù)低峰時段進(jìn)行回切。
主備集群部署時,控制器集群北向?qū)覱penstack云平臺或者協(xié)同編排層,要求在Openstack云平臺或者協(xié)同編排層上配置主備集群的IP地址,并且定期檢查主備集群的角色、狀態(tài)。當(dāng)檢測到集群主備狀態(tài)變化并確認(rèn)后,能自動或人工修改主備角色狀態(tài)。建議在檢測到集群狀態(tài)變化時,觸發(fā)告警,在人工確認(rèn)后,修改主備角色狀態(tài)。
主備集群間帶寬和時延應(yīng)滿足集群需求,要求集群互聯(lián)預(yù)留帶寬≥1Gbit/s,集群互聯(lián)時延≤10ms。10ms內(nèi)異地容災(zāi)部署效果最好,超過10ms后可能會導(dǎo)致容災(zāi)數(shù)據(jù)丟失。當(dāng)集群互聯(lián)時延>10ms時,認(rèn)為備集群位置不具備集群部署條件,不建議進(jìn)行主備集群部署,應(yīng)進(jìn)行備集群位置重選以符合主備集群部署條件。