柯文龍,王勇,葉苗,3,陳俊奇
(1.桂林電子科技大學(xué)信息與通信學(xué)院,廣西 桂林 541004;2.桂林電子科技大學(xué)計(jì)算機(jī)與信息安全學(xué)院,廣西 桂林 541004;3.桂林電子科技大學(xué)認(rèn)知無線電與信息處理省部共建教育部重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004)
全球范圍內(nèi)數(shù)據(jù)規(guī)模的高速增長(zhǎng)已成為信息產(chǎn)業(yè)界所面臨的巨大挑戰(zhàn)。根據(jù)國際數(shù)據(jù)公司(IDC,International Data Corporation)的數(shù)據(jù)統(tǒng)計(jì),全球數(shù)字領(lǐng)域數(shù)據(jù)量將由2018 年的33 ZB 增加到2025 年的175 ZB[1]。這種數(shù)據(jù)爆炸式增長(zhǎng)所帶來的挑戰(zhàn)可以使用云存儲(chǔ)技術(shù)來應(yīng)對(duì),云存儲(chǔ)系統(tǒng)采用數(shù)據(jù)中心網(wǎng)絡(luò)技術(shù)將大量存儲(chǔ)設(shè)備集成為統(tǒng)一整體,進(jìn)而提供海量且可擴(kuò)展的存儲(chǔ)能力[2]。目前,已有多種云存儲(chǔ)系統(tǒng)投入商業(yè)使用,包括Ceph[3]、OpenStack Swift、Dropbox 以及Google Drive 等。其中,Ceph 因其穩(wěn)定的架構(gòu)、開源的思想和統(tǒng)一存儲(chǔ)的設(shè)計(jì)模式,得到了越來越多云存儲(chǔ)系統(tǒng)使用者的青睞。
隨著云存儲(chǔ)系統(tǒng)規(guī)模的不斷擴(kuò)大,網(wǎng)絡(luò)問題逐漸成為云存儲(chǔ)系統(tǒng)的主要問題。云存儲(chǔ)網(wǎng)絡(luò)中的流調(diào)度問題,作為影響用戶體驗(yàn)的關(guān)鍵問題之一,正受到越來越多的關(guān)注。相比一般網(wǎng)絡(luò)環(huán)境下的流調(diào)度問題,云存儲(chǔ)網(wǎng)絡(luò)下的流調(diào)度更加復(fù)雜。首先,云存儲(chǔ)網(wǎng)絡(luò)中流量的傳輸機(jī)制更加多樣。為了提高數(shù)據(jù)存儲(chǔ)的安全性與可靠性,云存儲(chǔ)系統(tǒng)常使用多副本存儲(chǔ)機(jī)制。在多副本存儲(chǔ)機(jī)制下,用戶上傳的數(shù)據(jù)首先被存儲(chǔ)在主存儲(chǔ)節(jié)點(diǎn),再由主存儲(chǔ)節(jié)點(diǎn)分發(fā)至多個(gè)從存儲(chǔ)節(jié)點(diǎn)。這使云存儲(chǔ)網(wǎng)絡(luò)中不僅包含一對(duì)一的單播傳輸,還包含大量一對(duì)多的多播傳輸以降低數(shù)據(jù)分發(fā)時(shí)產(chǎn)生的冗余流量。其次,云存儲(chǔ)網(wǎng)絡(luò)中流量的類型也更加多樣。除了用戶執(zhí)行上傳下載時(shí)所產(chǎn)生的業(yè)務(wù)流量,作為一個(gè)大規(guī)模的分布式系統(tǒng),云存儲(chǔ)系統(tǒng)本身也包含豐富的背景業(yè)務(wù)流,不同類型的背景業(yè)務(wù)流對(duì)網(wǎng)絡(luò)性能的需求也不相同。如心跳數(shù)據(jù)流用于監(jiān)測(cè)系統(tǒng)各模塊是否工作正常,需要的傳輸帶寬較少,但對(duì)時(shí)延相對(duì)敏感;而遷移業(yè)務(wù)流用于各存儲(chǔ)節(jié)點(diǎn)之間的負(fù)載均衡,對(duì)時(shí)延要求不高,但需要較大的傳輸帶寬。
因此,針對(duì)更加復(fù)雜的云存儲(chǔ)網(wǎng)絡(luò)環(huán)境,如何制定高效的云存儲(chǔ)網(wǎng)絡(luò)流調(diào)度方法以提高用戶的使用體驗(yàn),已成為云存儲(chǔ)系統(tǒng)管理者所面臨的巨大挑戰(zhàn)。首先,不同類型的業(yè)務(wù)流對(duì)網(wǎng)絡(luò)性能的要求不同,如何在一個(gè)共享的云存儲(chǔ)系統(tǒng)中滿足不同業(yè)務(wù)流的服務(wù)質(zhì)量需求是流調(diào)度所面臨的一個(gè)挑戰(zhàn)。其次,網(wǎng)絡(luò)的整體利用率同樣重要,如何在提高不同業(yè)務(wù)流服務(wù)質(zhì)量的同時(shí)盡可能地實(shí)現(xiàn)網(wǎng)絡(luò)的負(fù)載均衡以提高整體利用率,是設(shè)計(jì)云存儲(chǔ)網(wǎng)絡(luò)流調(diào)度方法所要面對(duì)的另一挑戰(zhàn)。最后,在云存儲(chǔ)網(wǎng)絡(luò)存在大量多播傳輸任務(wù)的背景下,如何構(gòu)建流調(diào)度的多播樹,并最大化降低數(shù)據(jù)分發(fā)時(shí)產(chǎn)生的冗余流量,也是制定云存儲(chǔ)網(wǎng)絡(luò)流調(diào)度方法所要面臨的挑戰(zhàn)之一。
因此,迫切需要設(shè)計(jì)一種云存儲(chǔ)網(wǎng)絡(luò)環(huán)境下的多播流調(diào)度方法,以實(shí)現(xiàn)在降低冗余流量、提高系統(tǒng)負(fù)載均衡性能的同時(shí)提高不同業(yè)務(wù)流的服務(wù)質(zhì)量性能。雖然云存儲(chǔ)系統(tǒng)采用數(shù)據(jù)中心網(wǎng)絡(luò)技術(shù)整合存儲(chǔ)設(shè)備,但現(xiàn)有的數(shù)據(jù)中心網(wǎng)絡(luò)流調(diào)度方法大多針對(duì)流量模式符合長(zhǎng)尾分布的數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境,即90%的數(shù)據(jù)流為小流;剩余10%數(shù)據(jù)流為大流,卻占據(jù)了90%的網(wǎng)絡(luò)帶寬[4]。在這種數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境背景下,部分研究者提出針對(duì)所有數(shù)據(jù)流的通用調(diào)度方法[5-7],即不考慮不同業(yè)務(wù)流之間的差異性,對(duì)所有數(shù)據(jù)流采用通用的調(diào)度策略。也有研究者按數(shù)據(jù)流的大小將其分為“大象流”與“老鼠流”,并分別采用不同的調(diào)度機(jī)制[8-10]。這些方法雖然在設(shè)計(jì)的應(yīng)對(duì)場(chǎng)合取得了較好的效果,但難以應(yīng)對(duì)云存儲(chǔ)網(wǎng)絡(luò)環(huán)境中針對(duì)不同業(yè)務(wù)的多播流調(diào)度需求。
對(duì)此,本文在Ceph 云存儲(chǔ)網(wǎng)絡(luò)環(huán)境下,給出一種針對(duì)多業(yè)務(wù)場(chǎng)景的多播流調(diào)度方法,主要貢獻(xiàn)如下。
1)提出Ceph 云存儲(chǔ)網(wǎng)絡(luò)中業(yè)務(wù)優(yōu)先級(jí)區(qū)分的多播流調(diào)度優(yōu)化模型。模型根據(jù)不同業(yè)務(wù)流對(duì)網(wǎng)絡(luò)性能的不同需求以及當(dāng)前網(wǎng)絡(luò)的狀態(tài)信息,為各業(yè)務(wù)流定制最佳的傳輸路徑。通過最小化全網(wǎng)流量、最小化累積加權(quán)時(shí)延以及最小化最大鏈路帶寬利用率來提高系統(tǒng)的服務(wù)質(zhì)量性能。
2)提出基于理想解法(TOPSIS,technique for order preference by similarity to ideal solution)與最大公共子路徑的多播流調(diào)度方法(MFSTM,multicasting flow scheduling method based on TOPSIS and maximum common sub-path),將多播調(diào)度任務(wù)分解為多個(gè)單播調(diào)度的多屬性決策問題,并結(jié)合尋找最大公共子路徑的方法,設(shè)計(jì)求解多播流調(diào)度問題。
3)Mininet 搭建模擬Ceph 云存儲(chǔ)網(wǎng)絡(luò)環(huán)境,驗(yàn)證MFSTM 的有效性與適用性。模擬平臺(tái)驗(yàn)證表明,MFSTM 多播流調(diào)度方法可以在降低冗余流量、提高網(wǎng)絡(luò)負(fù)載均衡性能的同時(shí),減少高優(yōu)先級(jí)業(yè)務(wù)流的傳輸時(shí)延。
在大規(guī)模云存儲(chǔ)網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)流調(diào)度技術(shù)對(duì)云存儲(chǔ)網(wǎng)絡(luò)的性能具有重要影響。它是指對(duì)于云存儲(chǔ)系統(tǒng)中各項(xiàng)服務(wù)產(chǎn)生的數(shù)據(jù)流,通過調(diào)度這些數(shù)據(jù)流在云存儲(chǔ)網(wǎng)絡(luò)中的傳輸路徑、傳輸優(yōu)先級(jí)等,來優(yōu)化網(wǎng)絡(luò)流量的傳輸,提高用戶的使用體驗(yàn)[11]。在優(yōu)化傳輸路徑方面,ECMP(equal cost multipath)[12]為所有數(shù)據(jù)流隨機(jī)選擇一條可達(dá)目的節(jié)點(diǎn)的傳輸路徑,其目標(biāo)是充分利用數(shù)據(jù)中心網(wǎng)絡(luò)中存在多路徑的特點(diǎn),利用哈希的方式將數(shù)據(jù)流均衡地分配到各個(gè)傳輸路徑之上。Hedera[13]是一種集中控制式的流量調(diào)度方法,它將數(shù)據(jù)流按大小分類,并將大流分配到剩余帶寬較多的傳輸路徑上。在優(yōu)化傳輸優(yōu)先級(jí)方面,PDQ(preemptive distributed quick)[14]是一種以搶占方式執(zhí)行最小任務(wù)優(yōu)先的啟發(fā)式流調(diào)度方法,以數(shù)據(jù)流的剩余時(shí)間為傳輸優(yōu)先級(jí)的評(píng)判依據(jù),剩余時(shí)間越小的數(shù)據(jù)流具有越高的傳輸優(yōu)先級(jí)。pFabric[15]將數(shù)據(jù)流的剩余量大小作為傳輸優(yōu)先級(jí)的評(píng)判依據(jù),剩余量越小的數(shù)據(jù)流具有越高的傳輸優(yōu)先級(jí)。
上述流調(diào)度方法大多針對(duì)點(diǎn)對(duì)點(diǎn)的單播傳輸環(huán)境,然而隨著網(wǎng)絡(luò)業(yè)務(wù)越來越復(fù)雜,一對(duì)多的多播發(fā)送場(chǎng)景也越來越多。交互式網(wǎng)絡(luò)電視業(yè)務(wù)的視頻音頻分發(fā)[16]、云存儲(chǔ)系統(tǒng)的多副本復(fù)制[17]、傳感器監(jiān)視數(shù)據(jù)的分發(fā)[18]等業(yè)務(wù)都伴隨大量的多播傳輸需求?,F(xiàn)有的多播流調(diào)度技術(shù)大多結(jié)合軟件定義網(wǎng)絡(luò)(SDN,software defined network)技術(shù),通過對(duì)網(wǎng)絡(luò)狀態(tài)信息的采集以及采用集中控制的思想提高對(duì)網(wǎng)絡(luò)的管理效率。RMMR(robust multipath multicast routing)[19]針對(duì)視頻流的分發(fā)場(chǎng)景,通過使用基于SDN 的多路徑多播流調(diào)度機(jī)制,獲得了比傳統(tǒng)網(wǎng)際互連協(xié)議(IP,internet protocol)多播機(jī)制更低的分組丟失率以及更好的網(wǎng)絡(luò)負(fù)載均衡能力。BCMS(multicast scheduling with bounded congestion)[20]是針對(duì)胖樹拓?fù)湔归_討論的數(shù)據(jù)中心網(wǎng)絡(luò)多播流調(diào)度方法,它根據(jù)多播業(yè)務(wù)流的網(wǎng)絡(luò)帶寬需求以及當(dāng)前網(wǎng)絡(luò)各鏈路的剩余帶寬情況,為每個(gè)多播業(yè)務(wù)流計(jì)算最佳的傳輸路徑,以實(shí)現(xiàn)網(wǎng)絡(luò)擁塞控制與負(fù)載均衡。MSaSDN[21]針對(duì)基于胖樹拓?fù)涞臄?shù)據(jù)中心網(wǎng)絡(luò),提出了基于最小化鏈路擁塞開銷的多播樹構(gòu)建方法,提高了網(wǎng)絡(luò)的負(fù)載均衡性能。MSaMC[22]針對(duì)目前SDN 網(wǎng)絡(luò)狀態(tài)測(cè)量的滯后性問題,通過結(jié)合馬爾可夫鏈,利用當(dāng)前時(shí)隙的擁塞概率來預(yù)測(cè)下一時(shí)隙的擁塞概率,提高了網(wǎng)絡(luò)的吞吐量并降低了數(shù)據(jù)流的平均傳輸時(shí)延。DuSM[8]針對(duì)數(shù)據(jù)中心網(wǎng)絡(luò)的多播流調(diào)度問題,將數(shù)據(jù)流按大小分為“大象流”與“老鼠流”,針對(duì)“老鼠流”,將其多播任務(wù)轉(zhuǎn)化為多個(gè)單播任務(wù),以降低交換機(jī)所需的流表數(shù)量;針對(duì)“大象流”,構(gòu)建多個(gè)共享樹,以實(shí)現(xiàn)其在多鏈路上的負(fù)載均衡。
上述多播流調(diào)度方法大多針對(duì)所有數(shù)據(jù)流給出通用的調(diào)度策略,或是僅按數(shù)據(jù)流的大小進(jìn)行分類并給出2 種調(diào)度機(jī)制。然而在云存儲(chǔ)網(wǎng)絡(luò)環(huán)境下,出于成本的考慮,一個(gè)云存儲(chǔ)系統(tǒng)往往由多業(yè)務(wù)所共享。不同業(yè)務(wù)產(chǎn)生的數(shù)據(jù)流對(duì)網(wǎng)絡(luò)性能的要求不盡相同。如在以視頻業(yè)務(wù)為主的網(wǎng)絡(luò)環(huán)境下,網(wǎng)絡(luò)帶寬是需要考慮的重點(diǎn)因素[23]。在以游戲業(yè)務(wù)為主的網(wǎng)絡(luò)環(huán)境下,時(shí)延是用戶考量的重點(diǎn)[24]。而在以分布式計(jì)算任務(wù)為主的網(wǎng)絡(luò)環(huán)境下,不僅需要考慮一對(duì)多發(fā)送帶來的多播傳輸問題[25],還需要考慮多對(duì)一發(fā)送所帶來的TCP-incast 問題[26]。因此,在云存儲(chǔ)網(wǎng)絡(luò)這種較為復(fù)雜的環(huán)境下采用單一的調(diào)度策略往往難以取得理想的效果。
因此,網(wǎng)絡(luò)流調(diào)度方法需要根據(jù)不同業(yè)務(wù)場(chǎng)景下各業(yè)務(wù)流對(duì)網(wǎng)絡(luò)性能的不同需求給出定制化的解決方案。本文針對(duì)現(xiàn)有網(wǎng)絡(luò)流調(diào)度方法難以處理云存儲(chǔ)網(wǎng)絡(luò)中多業(yè)務(wù)流的不同多播調(diào)度需求問題,以Ceph 云存儲(chǔ)系統(tǒng)為代表,結(jié)合SDN 中的集中控制思想,給出一種支持業(yè)務(wù)優(yōu)先級(jí)區(qū)分的云存儲(chǔ)網(wǎng)絡(luò)多播流調(diào)度方法。
本節(jié)首先簡(jiǎn)單介紹基于SDN 與胖樹拓?fù)涞腃eph 云存儲(chǔ)系統(tǒng)基本工作機(jī)制并分析其流量構(gòu)成,然后對(duì)云存儲(chǔ)網(wǎng)絡(luò)環(huán)境下的多播流調(diào)度問題進(jìn)行分析與建模。建模目標(biāo)是在降低系統(tǒng)冗余流量、提高系統(tǒng)負(fù)載均衡性能的同時(shí),減少高優(yōu)先級(jí)業(yè)務(wù)流的傳輸時(shí)延,從而提高系統(tǒng)的服務(wù)質(zhì)量性能。
對(duì)數(shù)據(jù)流的傳輸路徑進(jìn)行合理調(diào)度需要基于當(dāng)前的網(wǎng)絡(luò)狀態(tài)信息。SDN 作為一種新的網(wǎng)絡(luò)模式,采用集中控制的思想,將控制平面與數(shù)據(jù)平面相分離,提高了網(wǎng)絡(luò)狀態(tài)測(cè)量以及網(wǎng)絡(luò)管理的靈活性。本文采用前期工作中基于SDN 的網(wǎng)絡(luò)狀態(tài)測(cè)量方法[27]實(shí)時(shí)更新并維護(hù)系統(tǒng)網(wǎng)絡(luò)中各鏈路的狀態(tài)信息,為流調(diào)度工作提供數(shù)據(jù)支撐。胖樹拓?fù)涫钱?dāng)前數(shù)據(jù)中心網(wǎng)絡(luò)中最常見的多根樹拓?fù)渲?,它為網(wǎng)絡(luò)內(nèi)部各源目的節(jié)點(diǎn)之間構(gòu)建多條并行路徑,提高了網(wǎng)絡(luò)內(nèi)部東西向流量的吞吐量并降低了單點(diǎn)故障與網(wǎng)絡(luò)熱點(diǎn)的出現(xiàn)概率。圖1 展示了基于SDN 與4 叉胖樹的Ceph 云存儲(chǔ)系統(tǒng),其中pod 表示一組直接互聯(lián)的匯聚及邊緣交換機(jī)。
圖1 基于SDN 與4 叉胖樹的Ceph 云存儲(chǔ)系統(tǒng)
本文主要探討處于多副本工作模式下的Ceph集群,即用戶上傳一份數(shù)據(jù)至某個(gè)Ceph 節(jié)點(diǎn)后,該Ceph 節(jié)點(diǎn)會(huì)將數(shù)據(jù)復(fù)制并以多播傳輸?shù)姆绞椒职l(fā)至其他Ceph 節(jié)點(diǎn)進(jìn)行多副本存儲(chǔ),以提高數(shù)據(jù)的安全性與可靠性。除了用戶執(zhí)行上傳/下載操作產(chǎn)生的業(yè)務(wù)數(shù)據(jù)流之外,作為一個(gè)大規(guī)模的分布式系統(tǒng),Ceph 集群也包含了心跳數(shù)據(jù)流和遷移數(shù)據(jù)流在內(nèi)的背景業(yè)務(wù)流。雖然Ceph 的數(shù)據(jù)遷移一般發(fā)生于系統(tǒng)空閑時(shí),但由于數(shù)據(jù)遷移的時(shí)間常長(zhǎng)達(dá)數(shù)小時(shí),因此會(huì)出現(xiàn)遷移數(shù)據(jù)流與業(yè)務(wù)數(shù)據(jù)流同時(shí)存在的場(chǎng)景。在這種場(chǎng)景下,Ceph 云存儲(chǔ)網(wǎng)絡(luò)中主要包含如下3 種類型的流量。
1)心跳數(shù)據(jù)流,用于監(jiān)測(cè)Ceph 各節(jié)點(diǎn)是否正常工作。其擁有最高的傳輸優(yōu)先級(jí),對(duì)時(shí)延高度敏感,需要的傳輸帶寬較少。
2)用戶業(yè)務(wù)數(shù)據(jù)流,由用戶執(zhí)行的上傳/下載任務(wù)產(chǎn)生。其完成時(shí)間直接影響用戶的使用體驗(yàn),具有較高的傳輸優(yōu)先級(jí),對(duì)時(shí)延較為敏感,需要的傳輸帶寬較多。
3)系統(tǒng)遷移數(shù)據(jù)流數(shù)據(jù)流,由Ceph 系統(tǒng)的負(fù)載均衡機(jī)制產(chǎn)生。其時(shí)延不會(huì)影響系統(tǒng)的正常運(yùn)行以及用戶的使用體驗(yàn),傳輸優(yōu)先級(jí)最低,但需要的網(wǎng)絡(luò)帶寬較多。
云存儲(chǔ)網(wǎng)絡(luò)可以表示為G=(V,E),其中,V表示網(wǎng)絡(luò)中的頂點(diǎn),對(duì)應(yīng)物理環(huán)境中的SDN 交換機(jī);E表示頂點(diǎn)之間的邊。e=(εe,δe)表示從頂點(diǎn)εe到頂點(diǎn)δe的鏈路。第一個(gè)目標(biāo)函數(shù)f1為找到使全網(wǎng)流量最小化的多播傳輸路徑。
其中,b?表示多播流?所需要的傳輸帶寬;be表示鏈路e的最大帶寬容量;式(2)所示約束條件保證了每個(gè)鏈路e上所分配的數(shù)據(jù)流的帶寬之和不大于鏈路的帶寬容量;x?e為一個(gè)二進(jìn)制的決策參數(shù),x?e=0 表示多播流?未經(jīng)過鏈路e,x?e=1 表示多播流?經(jīng)過了鏈路e。本文所用的符號(hào)及其對(duì)應(yīng)的含義如表1 所示。
表1 符號(hào)及其對(duì)應(yīng)的含義
除了最小化全網(wǎng)流量以降低云存儲(chǔ)網(wǎng)絡(luò)的整體負(fù)載外,為了進(jìn)一步提高用戶的使用體驗(yàn),需要最小化累積加權(quán)時(shí)延,對(duì)應(yīng)目標(biāo)函數(shù)f2為
其中,w?表示多播流?對(duì)時(shí)延的敏感系數(shù),它由業(yè)務(wù)流的特性決定,對(duì)時(shí)延越敏感的數(shù)據(jù)流對(duì)應(yīng)的w?值越大;k表示一源到多端的多播傳輸路徑;p表示k中源到某一個(gè)端節(jié)點(diǎn)的單播傳輸路徑;d?p表示數(shù)據(jù)流經(jīng)路徑p的傳輸時(shí)延;約束條件(5)保證了每個(gè)多播路徑k上所分配的數(shù)據(jù)流的帶寬之和不大于多播路徑的瓶頸帶寬;約束條件(6)確保了每條多播流?必須選擇且只能選擇一個(gè)多播傳輸路徑;約束條件(7)保證了被選擇的多播路徑需要滿足數(shù)據(jù)流的最大傳輸時(shí)延限制;x?k為一個(gè)二進(jìn)制的決策參數(shù),x?k=0 表示多播流?未經(jīng)過多播路徑k,x?k=1表示多播流?經(jīng)過了多播路徑k。
在提高各業(yè)務(wù)流服務(wù)質(zhì)量的同時(shí),整體系統(tǒng)的負(fù)載均衡性能同樣重要。最小化最大鏈路帶寬使用率的目標(biāo)函數(shù)f3為
其中,約束條件(10)保證了每個(gè)鏈路e上所分配的數(shù)據(jù)流的帶寬之和不大于鏈路的帶寬容量,x?e為數(shù)據(jù)流進(jìn)行鏈路選擇的二進(jìn)制決策參數(shù)。
至此得到了在云存儲(chǔ)網(wǎng)絡(luò)中,針對(duì)多業(yè)務(wù)多播流調(diào)度問題的3 個(gè)目標(biāo)函數(shù),分別是最小化全網(wǎng)流量、最小化累積加權(quán)時(shí)延以及最小化最大鏈路帶寬使用率。由于這3 個(gè)目標(biāo)函數(shù)不完全相互獨(dú)立,無法通過單獨(dú)處理同時(shí)得出各自的最優(yōu)解,因此整體的優(yōu)化目標(biāo)函數(shù)Z為
針對(duì)上述云存儲(chǔ)網(wǎng)絡(luò)中不同業(yè)務(wù)流的多播調(diào)度問題,本文提出了基于理想解與最大公共子路徑的流調(diào)度方法。
Z的3 個(gè)子目標(biāo)函數(shù)難以同時(shí)取得最小值,即難以同時(shí)找到滿足3 個(gè)子目標(biāo)的最優(yōu)解。由于在Ceph 云存儲(chǔ)網(wǎng)絡(luò)中,提高多副本數(shù)據(jù)多播分發(fā)的效率可以有效降低用戶業(yè)務(wù)數(shù)據(jù)流的規(guī)模,進(jìn)而降低系統(tǒng)負(fù)載并提高用戶使用體驗(yàn)。因此,MFSTM 將最小化全網(wǎng)流量作為主要優(yōu)化目標(biāo)。在找到一組滿足最小化全網(wǎng)流量的解集后,MFSTM 再根據(jù)剩余的優(yōu)化目標(biāo)選擇其中的最佳傳輸路徑。具體的求解流程使用基于理想解的多屬性決策方法以及最大公共子路徑方法來實(shí)現(xiàn)。
針對(duì)一個(gè)多播流的發(fā)送請(qǐng)求flow?=(τ,T,b?,d?),其中,τ表示數(shù)據(jù)流的源節(jié)點(diǎn),T={t1,t2,…,ts}為該多播流的目的節(jié)點(diǎn)集合,b?、d?分別為數(shù)據(jù)流?傳輸所需的帶寬和最大傳輸時(shí)延閾值。MFSTM 首先使用基于SDN 的網(wǎng)絡(luò)狀態(tài)測(cè)量技術(shù)找出同時(shí)滿足數(shù)據(jù)流傳輸時(shí)延以及帶寬需求的鏈路集合;然后針對(duì)源節(jié)點(diǎn)與目的節(jié)點(diǎn)集合中的每個(gè)節(jié)點(diǎn)分別構(gòu)建點(diǎn)對(duì)點(diǎn)傳輸路徑,基于理想解法找出每個(gè)點(diǎn)對(duì)點(diǎn)傳輸?shù)那唉莻€(gè)最優(yōu)傳輸路徑;最后通過尋找各個(gè)點(diǎn)對(duì)點(diǎn)路徑之間的最大公共子路徑來確定多播樹,多播樹的分發(fā)節(jié)點(diǎn)為最大公共子路徑中的最后一個(gè)節(jié)點(diǎn)。
合適網(wǎng)絡(luò)狀態(tài)參數(shù)的選取對(duì)于理想解這種多屬性決策方法的效果起決定性作用。本文針對(duì)云存儲(chǔ)網(wǎng)絡(luò)環(huán)境下的多播流調(diào)度場(chǎng)景,選擇傳輸路徑的剩余最大瓶頸帶寬、傳輸路徑的平均端到端時(shí)延以及核心交換機(jī)上的流表數(shù)量作為決策參數(shù)。這些決策參數(shù)表示為
其中,P表示數(shù)據(jù)流端到端傳輸路徑的集合,每條路徑p由多個(gè)鏈路e連接構(gòu)成。這些路徑的集合可以由Dijkstra[28]算法得出,如式(20)所示。
其中,BP表示每條傳輸路徑的剩余最大瓶頸帶寬的集合,由于每個(gè)路徑p由多個(gè)鏈路e連接構(gòu)成,路徑p的剩余最大瓶頸帶寬即為構(gòu)成它的各個(gè)鏈路e中的最小剩余帶寬值。這里的鏈路剩余帶寬可以通過基于SDN 的網(wǎng)絡(luò)狀態(tài)測(cè)量方法[27]得出,如式(21)所示。
其中,DP表示數(shù)據(jù)流分別經(jīng)過每條傳輸路徑的端到端時(shí)延集合。這里的端到端時(shí)延可以通過基于SDN 的網(wǎng)絡(luò)狀態(tài)測(cè)量方法[27]得出。
其中,OP表示每條路徑所經(jīng)過的核心交換機(jī)中已存在的流表數(shù)量的集合。流表數(shù)量越多則流表查找時(shí)延越高,同時(shí)選擇通過流表數(shù)量較多的核心交換機(jī)也會(huì)增加數(shù)據(jù)流沖突的概率。這里的交換機(jī)流表數(shù)量可以通過SDN 中的OpenFlow 協(xié)議獲得。
如式(19)~式(22)所示,MFSTM 在程序初始化時(shí)即采用Dijkstra 算法計(jì)算出任意2 個(gè)存儲(chǔ)節(jié)點(diǎn)之間的傳輸路徑,并存儲(chǔ)于專門的數(shù)據(jù)表中,再使用基于SDN 的網(wǎng)絡(luò)狀態(tài)測(cè)量方法實(shí)時(shí)更新這些路徑的剩余帶寬、平均傳輸時(shí)延等信息。因此,在后續(xù)的最優(yōu)路徑計(jì)算過程中,可以直接遍歷數(shù)據(jù)表以獲得當(dāng)前的鏈路狀態(tài)信息,降低重復(fù)路徑發(fā)現(xiàn)所帶來的計(jì)算開銷。
MFSTM 在處理一個(gè)包含s個(gè)目的節(jié)點(diǎn)的一對(duì)多的多播流請(qǐng)求時(shí),首先將此多播流任務(wù)分解為s個(gè)點(diǎn)對(duì)點(diǎn)的單播任務(wù),并分別使用基于理想解的路徑計(jì)算方法找到每個(gè)單播任務(wù)的前η個(gè)最優(yōu)路徑。
理想解法是一種有效的多屬性決策方案,該方案從歸一化的原始數(shù)據(jù)矩陣中構(gòu)造出決策問題的正理想解和負(fù)理想解。通過計(jì)算各方案與正、負(fù)理想解的距離作為評(píng)價(jià)方案的準(zhǔn)則。MFSTM 中基于理想解的單播路徑計(jì)算方法如下。
步驟1基于SDN的網(wǎng)絡(luò)狀態(tài)測(cè)量與候選路徑選取
針對(duì)云存儲(chǔ)網(wǎng)絡(luò)G=(V,E),其中,V為網(wǎng)絡(luò)中的節(jié)點(diǎn),對(duì)應(yīng)物理環(huán)境中的 SDN 交換機(jī);E={e1,e2,…,eq}表示節(jié)點(diǎn)之間的邊。MFSTM 首先利用SDN 對(duì)網(wǎng)絡(luò)鏈路狀態(tài)進(jìn)行周期性的測(cè)量,實(shí)時(shí)維護(hù)一張包含所有鏈路E及其對(duì)應(yīng)鏈路信息的數(shù)據(jù)表M=(E,D,B,O),其中,D={de1,de2,…,deq}和B={be1,be2,…,beq}分別對(duì)應(yīng)鏈路集合E中各子鏈路的平均傳輸時(shí)延集合與剩余帶寬集合,O={o1,o2,…,on}為各核心交換機(jī)中當(dāng)前流表數(shù)量的集合。針對(duì)一個(gè)單播流傳輸任務(wù)flowφ=(τφ,tφ,bφ,dφ),其中,τφ和tφ分別表示單播流φ的源節(jié)點(diǎn)與目的節(jié)點(diǎn),bφ和dφ分別表示單播流φ對(duì)鏈路帶寬和傳輸時(shí)延的要求。MFSTM 首先根據(jù)數(shù)據(jù)流對(duì)傳輸路徑的性能需求來對(duì)現(xiàn)有的網(wǎng)絡(luò)進(jìn)行過濾,再使用基于Dijkstra 的路徑發(fā)現(xiàn)算法找到所有的候選路徑集P*,如式(23)所示。
并滿足P*?P,對(duì)于?e∈P*,有be≥bφ且dp≤dφ。
步驟2決策矩陣的構(gòu)造及其歸一化處理
基于上述選取的決策參數(shù),給出決策矩陣M。
其中,矩陣的每一行表示一種決策參數(shù),每一列表示一個(gè)候選的端到端傳輸路徑。
為了消除不同決策參數(shù)間不同量綱帶來的影響,采用極差標(biāo)準(zhǔn)化方法對(duì)決策矩陣進(jìn)行歸一化處理。處理方式如式(25)和式(26)所示。
其中,式(25)用于處理成本型決策參數(shù),如鏈路的傳輸時(shí)延以及交換機(jī)中的流表數(shù)量,這類決策參數(shù)的特點(diǎn)是越小的值對(duì)應(yīng)越好的效果;式(26)用于處理效益型決策參數(shù),如鏈路的剩余帶寬容量,這類參數(shù)的特點(diǎn)是越大的值對(duì)應(yīng)越好的效果。
最終,得到經(jīng)過標(biāo)準(zhǔn)化處理的決策矩陣M*。
步驟3加權(quán)決策矩陣的構(gòu)建及其正負(fù)理想解的確定
不同業(yè)務(wù)的數(shù)據(jù)流對(duì)不同網(wǎng)絡(luò)參數(shù)的敏感程度不同。如在云存儲(chǔ)網(wǎng)絡(luò)中,心跳數(shù)據(jù)流對(duì)傳輸時(shí)延的敏感性較高,但對(duì)帶寬的敏感性較低;而遷移數(shù)據(jù)流對(duì)時(shí)延的敏感性較低,但出于網(wǎng)絡(luò)負(fù)載均衡的考慮,會(huì)傾向選擇剩余帶寬較大的傳輸路徑。為3.1 節(jié)介紹的3 種業(yè)務(wù)數(shù)據(jù)流分別構(gòu)建權(quán)重系數(shù)向量W為
其中,wb、wd、wo分別表示業(yè)務(wù)流對(duì)鏈路剩余帶寬、鏈路平均端到端時(shí)延以及鏈路中核心交換機(jī)上的流表數(shù)量的權(quán)重系數(shù)。各權(quán)重系數(shù)一般通過實(shí)驗(yàn)的方式獲取[29],本文設(shè)定的權(quán)重系數(shù)將在實(shí)驗(yàn)部分進(jìn)行介紹。
根據(jù)權(quán)重系數(shù)向量得出不同業(yè)務(wù)流所對(duì)應(yīng)的加權(quán)決策矩陣。以時(shí)延敏感流為例,其加權(quán)決策矩陣Z的元素Zij為
其中,i∈{1,2,3},j∈{1,2,…,n}。
根據(jù)加權(quán)決策矩陣得出其正負(fù)理想解
其中,P+表示加權(quán)決策矩陣的正理想解,由所有候選路徑中每種決策參數(shù)的最大值構(gòu)成;P?表示加權(quán)決策矩陣的負(fù)理想解,由所有候選路徑中每種決策參數(shù)的最小值構(gòu)成。
步驟4計(jì)算每個(gè)候選傳輸路徑到正、負(fù)理想解的距離
其中,Zij為候選傳輸路徑[Z1j,Z2j,Z3j]T中的一個(gè)元素,分別為各候選路徑到其到正負(fù)理想解的歐氏距離。
步驟5計(jì)算每個(gè)候選路徑與最優(yōu)候選路徑的相對(duì)貼近度為
其中,相對(duì)貼近度越大表示該傳輸路徑越適合當(dāng)前的單播流任務(wù)。
多播傳輸路徑的數(shù)據(jù)分發(fā)節(jié)點(diǎn)應(yīng)盡量靠近接收節(jié)點(diǎn),以最小化系統(tǒng)的冗余流量。針對(duì)一個(gè)具有s個(gè)目的節(jié)點(diǎn)的多播流發(fā)送請(qǐng)求,MFSTM 根據(jù)前述基于理想解的單播流路徑計(jì)算方法,為每個(gè)單播流計(jì)算出η個(gè)符合其對(duì)網(wǎng)絡(luò)性能需求的最優(yōu)單播路徑,得到{η1}+{η2}+…+{ηs}共η s個(gè)單播路徑。每個(gè)路徑p由一組有序的鏈路e連接構(gòu)成,其中e=(εe,δe)表示從相鄰節(jié)點(diǎn)εe到δe的鏈路。
定義1若路徑p滿足如下條件,則稱p為一組單播流路徑{η1}+{η2}+…+{ηs}中的最大公共子路徑。
條件1p同時(shí)分別為路徑集合{η1}、{η2}、{ηs}中某單播路徑的子路徑。
條件2沒有其他符合條件1 的路徑p'包含比p更多的鏈路e。
若ex為從發(fā)送節(jié)點(diǎn)出發(fā)的最大公共子路徑p中的最后一個(gè)有序鏈路,則MFSTM 選擇ex=(εex,δex)中的節(jié)點(diǎn)δex作為多播樹中的數(shù)據(jù)分發(fā)節(jié)點(diǎn),并分別根據(jù)原單播路徑建立從δex出發(fā)至各接收節(jié)點(diǎn)的多播分發(fā)路徑,從而完成多播樹的構(gòu)建。若存在多個(gè)滿足最小化全網(wǎng)流量這一條件的多播樹,則從中選擇具有最大累計(jì)相對(duì)貼近度Ctotal的多播樹,具體計(jì)算如式(35)所示。
其中,s表示多播流的接收節(jié)點(diǎn)數(shù)量,φ表示發(fā)送節(jié)點(diǎn)至某一個(gè)接收節(jié)點(diǎn)的單播任務(wù)流,j表示每個(gè)單播流φ可以選擇的候選路徑,表示單播流φ根據(jù)式(34)在各候選路徑j(luò)中可以得到的最大相對(duì)貼近度。
最后,通過一個(gè)調(diào)度實(shí)例來進(jìn)一步說明MFSTM 構(gòu)建多播路徑的基本流程。假設(shè)有一個(gè)多播任務(wù)流{1,(2,3),b,d},表示其發(fā)送節(jié)點(diǎn)為交換機(jī)1,接收節(jié)點(diǎn)為交換機(jī)2 與交換機(jī)3,所需帶寬和時(shí)延約束分別為b和d。MFSTM 首先將此多播任務(wù)分解為2 個(gè)單播任務(wù),分別為{1,2,b,d}與{1,3,b,d};其次,利用基于理想解的最優(yōu)單播路徑計(jì)算方法分別為2 個(gè)單播任務(wù)計(jì)算滿足約束條件的最優(yōu)單播路徑集,這里取每個(gè)路徑集中包含的路徑數(shù)量η=2。如圖2(a)所示,為單播任務(wù){(diào)1,2,b,d}計(jì)算得出的最優(yōu)路徑集為{[1,4,7,5,2],[1,4,8,5,2]}。如圖2(b)所示,為單播任務(wù){(diào)1,3,b,d}計(jì)算得出的最優(yōu)路徑集為{[1,4,8,6,3],[1,4,9,6,3]}。最后,找到2 個(gè)解集從發(fā)送節(jié)點(diǎn)出發(fā)的最大公共子路徑為[1,4,8]。通過將交換機(jī)8 作為多播樹的分發(fā)節(jié)點(diǎn),并按原單播路徑建立從交換機(jī)8 至各接收節(jié)點(diǎn)的多播分發(fā)路徑,得到如圖2(c)中所示的多播路徑[1,4,8,(5,6),(2,3)]。
圖2 MFSTM 的調(diào)度實(shí)例
本節(jié)對(duì)MFSTM 多播流調(diào)度方法進(jìn)行實(shí)驗(yàn)設(shè)置與性能評(píng)估。實(shí)驗(yàn)使用Mininet[30]網(wǎng)絡(luò)模擬器構(gòu)建實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)?,并在開源的SDN 控制器RYU[31]上部署 MFSTM 流調(diào)度方法的邏輯,最后使用TCPreplay[32]重放真實(shí)的Ceph 云存儲(chǔ)系統(tǒng)業(yè)務(wù)數(shù)據(jù)流[33]以測(cè)試流調(diào)度方法的性能。整體實(shí)驗(yàn)平臺(tái)搭建于一臺(tái)曙光A840r-G 服務(wù)器上,服務(wù)器擁有64 核×2.1 GHz 處理器,64 GB 內(nèi)存以及600 GB 硬盤。其中,每個(gè)處理器核被用于單獨(dú)處理一個(gè)TCPreplay進(jìn)程,使其能夠以恒定速率發(fā)送一個(gè)長(zhǎng)數(shù)據(jù)流。
在實(shí)驗(yàn)拓?fù)溥x擇方面,由于Ceph 云存儲(chǔ)系統(tǒng)中用戶業(yè)務(wù)數(shù)據(jù)的多個(gè)副本常被存儲(chǔ)于不同的pod中以提高數(shù)據(jù)的安全性。因此,圖1 所示拓?fù)淇梢猿橄鬄閳D3。實(shí)驗(yàn)中利用Mininet 2.3.0 構(gòu)建圖3 中的網(wǎng)絡(luò)拓?fù)渥鳛閷?shí)驗(yàn)系統(tǒng)拓?fù)?,并設(shè)定鏈路帶寬為50 Mbit/s。
圖3 實(shí)驗(yàn)系統(tǒng)拓?fù)?/p>
在數(shù)據(jù)流選擇方面,如前文所述,本文主要探討多副本工作模式下,Ceph 集群執(zhí)行數(shù)據(jù)遷移任務(wù)出現(xiàn)用戶業(yè)務(wù)數(shù)據(jù)時(shí)的網(wǎng)絡(luò)流調(diào)度問題。此時(shí),系統(tǒng)中的數(shù)據(jù)流包括心跳數(shù)據(jù)流、用戶業(yè)務(wù)數(shù)據(jù)流以及系統(tǒng)遷移數(shù)據(jù)流。實(shí)驗(yàn)采用本文前期工作中采集的Ceph 云存儲(chǔ)集群真實(shí)數(shù)據(jù)流[33],數(shù)據(jù)流的統(tǒng)計(jì)特征如表2 所示。
表2 Ceph 云存儲(chǔ)系統(tǒng)中不同業(yè)務(wù)流的統(tǒng)計(jì)特征
表2 中的不同業(yè)務(wù)流在采集時(shí)被分別保存為不同的pcap 文件。在本文的實(shí)驗(yàn)過程中,通過使用TCPreplay 重放這些pcap 數(shù)據(jù)流,以模擬真實(shí)的Ceph 云存儲(chǔ)系統(tǒng)運(yùn)行環(huán)境,每輪模擬實(shí)驗(yàn)的測(cè)試時(shí)長(zhǎng)設(shè)定為180 s。對(duì)于用戶業(yè)務(wù)數(shù)據(jù)流以及系統(tǒng)遷移數(shù)據(jù)流,流量的重放速度與其自身的流速率相同,分別為12.93 Mbit/s 以及4.36 Mbit/s。對(duì)于心跳數(shù)據(jù)流,為了降低模擬實(shí)驗(yàn)環(huán)境中的分組丟失率,將對(duì)它的重放速率設(shè)定為1 Mbit/s。同時(shí),受限于模擬實(shí)驗(yàn)的測(cè)試時(shí)長(zhǎng),只重放系統(tǒng)遷移數(shù)據(jù)流的前40 000 個(gè)數(shù)據(jù)分組,以使其流的持續(xù)時(shí)間降低至78 s,從而可以在測(cè)試時(shí)長(zhǎng)內(nèi)完成流的全部發(fā)送。
為了進(jìn)一步測(cè)試流調(diào)度方法在不同網(wǎng)絡(luò)負(fù)載下的性能,實(shí)驗(yàn)設(shè)置了3 種流量負(fù)載場(chǎng)景。
1)低負(fù)載場(chǎng)景:60 條心跳數(shù)據(jù)流,10 條用戶業(yè)務(wù)數(shù)據(jù)流,10 條系統(tǒng)遷移數(shù)據(jù)流。
2)中負(fù)載場(chǎng)景:60 條心跳數(shù)據(jù)流,20 條用戶業(yè)務(wù)數(shù)據(jù)流,20 條系統(tǒng)遷移數(shù)據(jù)流。
3)高負(fù)載場(chǎng)景:60 條心跳數(shù)據(jù)流,30 條用戶業(yè)務(wù)數(shù)據(jù)流,30 條系統(tǒng)遷移數(shù)據(jù)流。
因?yàn)樾奶鴶?shù)據(jù)流是以恒定周期在不同Ceph 節(jié)點(diǎn)之間進(jìn)行傳輸?shù)?,所以其流?shù)目在測(cè)試時(shí)長(zhǎng)確定時(shí)保持不變。在每輪測(cè)試過程中,隨機(jī)選擇一個(gè)Ceph 節(jié)點(diǎn)作為數(shù)據(jù)的發(fā)送節(jié)點(diǎn),并在180 s 內(nèi)周期性地為每條數(shù)據(jù)流開啟一個(gè)TCPreplay 進(jìn)程以執(zhí)行數(shù)據(jù)流的發(fā)送。對(duì)于心跳數(shù)據(jù)流和系統(tǒng)遷移數(shù)據(jù)流,因其點(diǎn)對(duì)點(diǎn)的業(yè)務(wù)特性,TCPreplay 為其隨機(jī)選擇一個(gè)剩余Ceph 節(jié)點(diǎn)作為數(shù)據(jù)的接收節(jié)點(diǎn),執(zhí)行單播發(fā)送;對(duì)于用戶業(yè)務(wù)流,按常見三副本存儲(chǔ)模式下主副本需要向其他2 個(gè)從副本進(jìn)行數(shù)據(jù)備份的業(yè)務(wù)場(chǎng)景,TCPreplay 為其隨機(jī)選擇2 個(gè)剩余Ceph 節(jié)點(diǎn)作為數(shù)據(jù)的接收節(jié)點(diǎn),執(zhí)行多播發(fā)送。具體的流量調(diào)度以及鏈路選擇采用MFSTM多播流調(diào)度算法,其中單播流被認(rèn)為是只有一個(gè)接收節(jié)點(diǎn)的特殊多播流進(jìn)行處理。MFSTM 對(duì)心跳數(shù)據(jù)流、用戶業(yè)務(wù)數(shù)據(jù)流、系統(tǒng)遷移數(shù)據(jù)流設(shè)定的權(quán)重系數(shù)向量分別為[0,0.5,0.5]、[0.5,0.4,0.1]、[1,0,0]。
實(shí)驗(yàn)將本文給出的MFSTM 與ECMP[11]以及BCMS[19]進(jìn)行對(duì)比。其中,ECMP 是數(shù)據(jù)中心網(wǎng)絡(luò)中最常見的流調(diào)度方法之一,它采用哈希的方式為數(shù)據(jù)流在多條可達(dá)的路徑中隨機(jī)選擇一條作為傳輸路徑,以實(shí)現(xiàn)負(fù)載均衡。當(dāng)ECMP 處理多播流時(shí),需要將一個(gè)多播流分解成多個(gè)點(diǎn)對(duì)點(diǎn)的單播流分別進(jìn)行處理。BCMS 是一種有效的針對(duì)胖樹網(wǎng)絡(luò)拓?fù)涞亩嗖チ髡{(diào)度方法,它根據(jù)多播數(shù)據(jù)流的帶寬需求以及當(dāng)前的網(wǎng)絡(luò)狀態(tài)為多播流選擇合適的傳輸路徑,以實(shí)現(xiàn)網(wǎng)絡(luò)擁塞控制以及負(fù)載均衡。實(shí)驗(yàn)的對(duì)比項(xiàng)包括總體帶寬利用率、不同鏈路間的帶寬利用率標(biāo)準(zhǔn)差、核心交換機(jī)上的流表數(shù)量以及不同業(yè)務(wù)流的平均傳輸時(shí)延,每組實(shí)驗(yàn)測(cè)試5 次,實(shí)驗(yàn)結(jié)果取平均值。
圖4 給出了在不同負(fù)載場(chǎng)景下,實(shí)驗(yàn)系統(tǒng)各鏈路之間帶寬利用率的標(biāo)準(zhǔn)差。標(biāo)準(zhǔn)差越小表明各鏈路之間的帶寬利用率越均衡,系統(tǒng)網(wǎng)絡(luò)的負(fù)載均衡性能越好。如圖4 所示,3 種方法下的帶寬利用率標(biāo)準(zhǔn)差在0~42 s 都呈現(xiàn)快速上升的狀態(tài),并在42 s后保持相對(duì)穩(wěn)定。這是由于占用帶寬最多的用戶業(yè)務(wù)數(shù)據(jù)流擁有39.31 s 的流持續(xù)時(shí)間。在約42 s 處,第一條用戶業(yè)務(wù)數(shù)據(jù)流完成傳輸,此后系統(tǒng)網(wǎng)絡(luò)中的用戶業(yè)務(wù)數(shù)據(jù)流數(shù)目保持恒定,從而使系統(tǒng)的整體負(fù)載達(dá)到相對(duì)穩(wěn)定的狀態(tài)。
圖4 鏈路帶寬利用率標(biāo)準(zhǔn)差
實(shí)驗(yàn)結(jié)果表明,在低、中、高3 種負(fù)載場(chǎng)景下,使用MFSTM 時(shí)帶寬利用率標(biāo)準(zhǔn)差的平均值分別比使用ECMP 時(shí)降低了30.8%、29.8%以及22.9%,取得了與BCMS 相近的負(fù)載均衡效果。這是由于ECMP 在進(jìn)行路徑選擇時(shí)為所有數(shù)據(jù)流隨機(jī)選擇路徑,若將多條大流分配到同一路徑則會(huì)造成網(wǎng)絡(luò)負(fù)載的不均衡。而MFSTM 與BCMS 在進(jìn)行路徑選擇時(shí)會(huì)考慮網(wǎng)絡(luò)當(dāng)前的狀態(tài),為數(shù)據(jù)流選擇剩余帶寬較多的路徑進(jìn)行傳輸。
系統(tǒng)的總體帶寬利用率如式(36)所示。
其中,e表示實(shí)驗(yàn)系統(tǒng)拓?fù)渲邢噜徑粨Q機(jī)之間的網(wǎng)絡(luò)鏈路,be表示鏈路e的最大傳輸帶寬,euse表示當(dāng)前時(shí)刻鏈路e的帶寬利用率。圖5 給出了在不同負(fù)載場(chǎng)景下實(shí)驗(yàn)系統(tǒng)的總體帶寬利用率。當(dāng)實(shí)驗(yàn)系統(tǒng)處于低、中負(fù)載場(chǎng)景下,使用MFSTM 時(shí)系統(tǒng)總體帶寬利用率的上升速度相比使用ECMP 時(shí)更慢,且在所有測(cè)量時(shí)刻下的總體帶寬利用率平均值比使用ECMP 時(shí)的總體帶寬利用率分別下降了17.8%和12.7%,取得了與BCMS 相近的效果。這是由于MFSTM 與BCMS 為用戶業(yè)務(wù)數(shù)據(jù)流建立了有效的多播傳輸路徑,節(jié)約了網(wǎng)絡(luò)傳輸帶寬。
然而,在如圖5(c)所示的高負(fù)載場(chǎng)景下,雖然使用MFSTM 下的系統(tǒng)總體帶寬利用率在上升階段低于ECMP,但在42 s 后的負(fù)載相對(duì)穩(wěn)定階段,使用MFSTM 擁有比使用ECMP 更高的總體帶寬利用率。這是由于在高負(fù)載場(chǎng)景下,MFSTM 根據(jù)鏈路的剩余帶寬對(duì)數(shù)據(jù)流進(jìn)行了合理的分配,避免了多條大流選擇相同傳輸路徑而產(chǎn)生的鏈路擁塞,提高了系統(tǒng)在高負(fù)載場(chǎng)景下的網(wǎng)絡(luò)吞吐量。MFSTM 與BCMS 擁有相近的總體帶寬利用率,因?yàn)樵趯?shí)驗(yàn)設(shè)計(jì)的云存儲(chǔ)流量模式下,即多播流的接收節(jié)點(diǎn)有2 個(gè)且分布在不同的pod 中,MFSTM 與BCMS 同時(shí)選擇了各核心交換機(jī)作為多播路徑中的數(shù)據(jù)分發(fā)節(jié)點(diǎn),實(shí)現(xiàn)了最大化降低系統(tǒng)冗余流量。
圖6 給出了在完成全部數(shù)據(jù)流的發(fā)送后,實(shí)驗(yàn)系統(tǒng)拓?fù)鋱D中4 臺(tái)核心交換機(jī)上流表數(shù)量的標(biāo)準(zhǔn)差。由于實(shí)驗(yàn)過程中的數(shù)據(jù)流都是在不同pod 之間進(jìn)行傳輸,因此其傳輸路徑必須通過且只通過一臺(tái)核心交換機(jī)。每當(dāng)一條數(shù)據(jù)流被分配到一條傳輸路徑上時(shí),SDN 控制器會(huì)向這條路徑上的所有交換機(jī)下發(fā)2 條流表,分別對(duì)應(yīng)數(shù)據(jù)流的往返傳輸路徑。因此,各核心交換機(jī)上的流表數(shù)量越均衡,表明數(shù)據(jù)流在不同傳輸路徑上的調(diào)度越均衡。同時(shí),這也避免了多條流表集中于某一臺(tái)核心交換機(jī),降低了交換機(jī)所需的最大流表空間,節(jié)約了寶貴的流表資源。
圖5 鏈路帶寬利用率標(biāo)準(zhǔn)差
如圖6 所示,MFSTM 在所有負(fù)載場(chǎng)景下都擁有最小的核心交換機(jī)流表數(shù)量標(biāo)準(zhǔn)差。這是由于MFSTM 在對(duì)高優(yōu)先級(jí)流進(jìn)行路徑選擇時(shí),會(huì)優(yōu)先選擇具有更小流表數(shù)量的核心交換機(jī)所在的路徑,可以降低數(shù)據(jù)流在傳輸過程中的流表查找時(shí)延。
圖6 核心交換機(jī)之間流表數(shù)量的標(biāo)準(zhǔn)差
圖7 平均傳輸時(shí)延
圖7 給出了具有不同傳輸優(yōu)先級(jí)的業(yè)務(wù)流在不同負(fù)載場(chǎng)景下的平均傳輸時(shí)延。對(duì)于單播業(yè)務(wù)流,實(shí)驗(yàn)中記錄的是其端到端傳輸時(shí)延;對(duì)于具有多個(gè)接收節(jié)點(diǎn)的多播業(yè)務(wù)流,實(shí)驗(yàn)中記錄的是發(fā)送節(jié)點(diǎn)與最后一個(gè)收到數(shù)據(jù)的接收節(jié)點(diǎn)之間的端到端傳輸時(shí)延。在如圖7(a)所示的低負(fù)載場(chǎng)景下,不同方法之間各業(yè)務(wù)流的平均傳輸時(shí)延沒有較為明顯的差異。這是由于在低負(fù)載場(chǎng)景下,交換機(jī)可以有效處理數(shù)據(jù)流的轉(zhuǎn)發(fā),即使多條數(shù)據(jù)流被分配到同一傳輸路徑,傳輸時(shí)延也不會(huì)有明顯的增加。在中負(fù)載以及高負(fù)載場(chǎng)景下,MFSTM 與BCMS 因較好的網(wǎng)絡(luò)負(fù)載均衡性能,避免了ECMP 下因鏈路擁塞而導(dǎo)致的傳輸時(shí)延大幅上升。
更重要的是,對(duì)于傳輸優(yōu)先級(jí)較高的心跳數(shù)據(jù)流與用戶業(yè)務(wù)數(shù)據(jù)流,MFSTM 具有更小的傳輸時(shí)延。如圖7(b)和圖7(c)所示,與BCMS 相比,在中、高負(fù)載場(chǎng)景下使用MFSTM,可以使具有最高傳輸優(yōu)先級(jí)的心跳數(shù)據(jù)流的傳輸時(shí)延分別下降37.9%和9.0%。對(duì)于具有次高傳輸優(yōu)先級(jí)的用戶業(yè)務(wù)數(shù)據(jù)流,在中、高負(fù)載場(chǎng)景下使用MFSTM 可以比使用BCMS 分別降低14.9%和7.5%的平均傳輸時(shí)延。實(shí)驗(yàn)結(jié)果表明,本文給出的MFSTM 可以降低高優(yōu)先級(jí)流的平均傳輸時(shí)延,從而為系統(tǒng)提供更好的服務(wù)質(zhì)量性能。
針對(duì)Ceph 云存儲(chǔ)網(wǎng)絡(luò)環(huán)境中不同業(yè)務(wù)流對(duì)網(wǎng)絡(luò)性能的差異化需求,本文給出了一種基于理想解與最大公共子路徑的多播流調(diào)度方法,以實(shí)現(xiàn)支持業(yè)務(wù)優(yōu)先級(jí)區(qū)分的多播流調(diào)度。首先將多播業(yè)務(wù)流分解為多個(gè)單播任務(wù),給出一種基于理想解法的最優(yōu)單播路徑選擇方法,為各單播任務(wù)尋找符合其對(duì)網(wǎng)絡(luò)性能需求的最優(yōu)單播路徑集;再通過各路徑集間的最大公共子路徑確定多播樹的數(shù)據(jù)分發(fā)節(jié)點(diǎn)以構(gòu)建多播傳輸路徑。實(shí)驗(yàn)結(jié)果表明,MFSTM可以在降低冗余流量、提高網(wǎng)絡(luò)負(fù)載均衡性能的同時(shí),降低高優(yōu)先級(jí)流的傳輸時(shí)延,提高了系統(tǒng)的服務(wù)質(zhì)量性能。下一步計(jì)劃在更大規(guī)模的云存儲(chǔ)網(wǎng)絡(luò)環(huán)境中測(cè)試并優(yōu)化MFSTM 的性能。在基于SDN 的大規(guī)模云存儲(chǔ)網(wǎng)絡(luò)環(huán)境中,SDN 控制器需要定期向更多的交換機(jī)發(fā)送探測(cè)分組并處理回復(fù)以實(shí)時(shí)維護(hù)全網(wǎng)的狀態(tài)信息。單個(gè)SDN 控制器的集中控制和管理將成為瓶頸,需要使用多個(gè)SDN控制器進(jìn)行協(xié)同管理,將涉及SDN 多控制器的控制域劃分、協(xié)同通信以及數(shù)據(jù)一致性。這些都是需要后續(xù)進(jìn)行的更有意義的研究工作。