余達(dá)明,張 震
暨南大學(xué) 信息科學(xué)技術(shù)學(xué)院,廣州510632
數(shù)據(jù)中心網(wǎng)絡(luò)是云計算的基礎(chǔ),許多在線服務(wù),如搜索、郵件、視頻流以及基礎(chǔ)設(shè)施服務(wù),如GFS(Google file system)、Map-Reduce、BigTable等,都是通過數(shù)據(jù)中心網(wǎng)絡(luò)為用戶提供服務(wù)的。數(shù)據(jù)中心網(wǎng)絡(luò)是由海量服務(wù)器、存儲設(shè)備和網(wǎng)絡(luò)設(shè)備構(gòu)成的一個網(wǎng)絡(luò)結(jié)構(gòu)。這意味著,數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計對整個數(shù)據(jù)中心網(wǎng)絡(luò)的性能起著重要作用。
根據(jù)服務(wù)器是否參與數(shù)據(jù)轉(zhuǎn)發(fā),數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)可以劃分為兩類:以交換機為中心的互連結(jié)構(gòu)和以服務(wù)器為中心的互連結(jié)構(gòu)。典型的以交換機為中心的數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)通常為層次型結(jié)構(gòu),并且能支持部署數(shù)以萬計的服務(wù)器。與此相對,以服務(wù)器為中心的數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)借助服務(wù)器的網(wǎng)絡(luò)接口卡(network interface controller,NIC)完成數(shù)據(jù)轉(zhuǎn)發(fā)。通過大量服務(wù)器NIC 之間的連接以及低端交換機的使用,避免了以交換機為中心方案的布線復(fù)雜和高昂的交換機成本。
近年來,隨著數(shù)字化信息的普及,網(wǎng)絡(luò)數(shù)據(jù)量呈現(xiàn)海量增長。為了處理這些海量增長的數(shù)據(jù),許多大型數(shù)據(jù)中心被構(gòu)建起來。這些大型數(shù)據(jù)中心中含有海量的硬件、軟件和數(shù)據(jù)資源,可以動態(tài)為數(shù)百萬用戶提供服務(wù)。然而,隨著網(wǎng)絡(luò)數(shù)據(jù)量和用戶數(shù)量的不斷增加,數(shù)據(jù)中心需要不斷擴(kuò)展,例如:谷歌的數(shù)據(jù)中心的數(shù)據(jù)量大概每年翻一番。隨著5G 網(wǎng)絡(luò)在世界各地投入使用,全球范圍內(nèi)接入到互聯(lián)網(wǎng)的終端設(shè)備將大大增加。因此,未來數(shù)據(jù)的增加速度將比以往更快。數(shù)據(jù)量的增長對數(shù)據(jù)中心網(wǎng)絡(luò)的設(shè)計提出了更高的要求:
(1)高擴(kuò)展性:為了應(yīng)對快速增長的業(yè)務(wù)需求和數(shù)據(jù)量,數(shù)據(jù)中心網(wǎng)絡(luò)需要不斷地添加設(shè)備以提升整個網(wǎng)絡(luò)的計算和儲存能力,而在擴(kuò)展過程中,當(dāng)前網(wǎng)絡(luò)的性能不會受到影響。
(2)高帶寬:隨著不同在線應(yīng)用的出現(xiàn),數(shù)據(jù)中心的流量特性也發(fā)生了巨大變化,從原來80%的外部用戶與數(shù)據(jù)中心內(nèi)部服務(wù)器之間交互的“南北”流量,變?yōu)?0%的需要大量服務(wù)器協(xié)同完成工作的“東西”流量。高帶寬是數(shù)據(jù)中心網(wǎng)絡(luò)性能的重要指標(biāo)。
(3)高容錯率:設(shè)備和鏈路的故障會嚴(yán)重影響數(shù)據(jù)中心網(wǎng)絡(luò)的性能。隨著數(shù)據(jù)中心規(guī)模的不斷變大,故障也會變得越發(fā)頻繁。如何在故障條件下保持網(wǎng)絡(luò)的整體性能也是設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)的巨大挑戰(zhàn)。
(4)成本效益:當(dāng)前數(shù)據(jù)中心的花費主要由四部分組成,45%用于服務(wù)器(中央處理器、內(nèi)存和存儲系統(tǒng)),25%用于基礎(chǔ)設(shè)施(電力調(diào)配和散熱),15%用于能耗(電力成本),15%用于網(wǎng)絡(luò)(鏈路、傳輸設(shè)備)。數(shù)據(jù)中心網(wǎng)絡(luò)的設(shè)計必須在性能和成本之間取得平衡。
為此,本文提出了一種基于笛卡爾乘積圖的新型數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)FSDC(flexible and highly scalable data center network)。采用不同結(jié)構(gòu)的基礎(chǔ)圖可以構(gòu)建不同類型的笛卡爾乘積圖?;诓煌牡芽柍朔e圖,可以采用商用端口交換機和2 端口服務(wù)器構(gòu)建不同類型的FSDC 數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)。由于笛卡爾乘積圖底層基礎(chǔ)圖的不同,F(xiàn)SDC 數(shù)據(jù)中心網(wǎng)絡(luò)可以以不同的規(guī)模進(jìn)行擴(kuò)展,具有良好的靈活性和高可擴(kuò)展性。
通過對FSDC 拓?fù)湫再|(zhì)的分析、能耗對比分析以及吞吐量模擬實驗,結(jié)果表明,與當(dāng)前其他數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)相比,F(xiàn)SDC 在性能和成本效益方面取得了良好的平衡。
隨著近年來大數(shù)據(jù)以及云計算的快速發(fā)展,學(xué)術(shù)界和工業(yè)界都對數(shù)據(jù)中心網(wǎng)絡(luò)開展了許多研究工作。
考慮到傳統(tǒng)三層結(jié)構(gòu)的不足,F(xiàn)ares 等人提出了一種改進(jìn)的三層結(jié)構(gòu),即FatTree。該結(jié)構(gòu)可使用大量鏈路和小型交換機進(jìn)行擴(kuò)展,通過部署大量的冗余交換機和鏈路,F(xiàn)atTree 能實現(xiàn)1:1 的超額訂購。VL2和Potland都是基于FatTree 的結(jié)構(gòu)構(gòu)建的,它們分別通過平面尋址和分層尋址提供“即插即用”的功能。然而,F(xiàn)atTree 的可擴(kuò)展性受限于交換機端口數(shù)目,即,如果需要擴(kuò)展FatTree,則必須更換高層的交換機以提供更多的交換機端口。隨著層數(shù)的不斷增加,F(xiàn)atTree的構(gòu)建成本會不斷升高。
DCell是一種遞歸定義的數(shù)據(jù)中心結(jié)構(gòu),DCell結(jié)構(gòu)中的服務(wù)器具有多端口網(wǎng)卡。高層的DCell 通過一定數(shù)量的底層DCell 互相連接而構(gòu)建。DCell 利用其分布式容錯路由協(xié)議將流量均勻分散到不同鏈路當(dāng)中,以實現(xiàn)高容錯和高帶寬。DCell 使用多端口服務(wù)器和復(fù)雜的布線來替代昂貴的核心交換機,而使用多端口的服務(wù)器會增加成本開銷。
BCube利用服務(wù)器的多端口進(jìn)行拓?fù)涞倪B接。將數(shù)據(jù)中心硬件設(shè)備部署在集裝箱中,減輕了BCube 布線的問題,最大化其鏈路資源豐富的優(yōu)勢,使得部署更加簡單。當(dāng)需要擴(kuò)展時,只需互連若干個規(guī)模相同的集裝箱即可。此外,BCube 使用多端口服務(wù)器互連多個交換機,并把路由線路的選擇放置在服務(wù)器上。實驗證明,BCube 能支持各種帶寬密集型的應(yīng)用程序,并且擁有良好的容錯能力,但是大規(guī)模使用多端口服務(wù)器不可避免地會帶來開銷增加。
XDCent使用多端口的服務(wù)器進(jìn)行數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)的構(gòu)建,并且與BCube 的連接模式非常相似。XDCent首先依照BCube的互連方式構(gòu)建數(shù)據(jù)中心網(wǎng)絡(luò),直到各個服務(wù)器只剩余1 個端口。然后,利用各服務(wù)器剩余的端口,采用非完整復(fù)合圖方式進(jìn)行連接,確保了整個結(jié)構(gòu)能持續(xù)擴(kuò)展。
FiConn是一種以服務(wù)器為中心數(shù)據(jù)中心結(jié)構(gòu),采用2 端口的服務(wù)器和低端商用交換機構(gòu)建。與DCell 相似,F(xiàn)iConn 也是通過遞歸方法構(gòu)建的。與DCell 不同,F(xiàn)iConn 在遞歸擴(kuò)展過程中會預(yù)留一部分服務(wù)器端口用于以后的擴(kuò)展。也就是說,F(xiàn)iConn 的擴(kuò)展過程不受交換機端口數(shù)和服務(wù)器端口數(shù)的限制。在FiConn 中,同一層但不同分區(qū)的部分進(jìn)行通信時,只依賴于一條鏈路,導(dǎo)致對分帶寬較低,吞吐量和容錯性受到較大的影響。
不同于現(xiàn)有的結(jié)構(gòu),本文提出了一種全新數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)FSDC,它擁有以下的特性:
(1)靈活擴(kuò)展:FSDC 不僅擁有高擴(kuò)展性,并且能根據(jù)現(xiàn)實需求來選擇不同的擴(kuò)展規(guī)模。
(2)成本效益:FSDC 具有較好的成本能耗優(yōu)勢。
(3)高容錯性:FSDC 提供了一種高效的容錯路由機制來應(yīng)對數(shù)據(jù)中心可能出現(xiàn)的各種類型故障,保證了通信效率。
本章首先介紹笛卡爾乘積圖的定義;隨后給出FSDC 網(wǎng)絡(luò)結(jié)構(gòu)的構(gòu)建方法,并且分析其拓?fù)涮匦?;最后根?jù)其拓?fù)涮匦栽O(shè)計出FSDC 結(jié)構(gòu)的路由算法。表1 列出了本文中常用的一些符號。
表1 文中常用符號Table 1 Denotations used in this paper
笛卡爾乘積圖可以由兩個無向圖和構(gòu)成,即=?,其具體定義如下:
笛卡爾乘積圖=?中的節(jié)點與邊的定義如下:
(1)節(jié)點定義:={(,)|∈,∈}。
(2)邊定義:={(,)|=且(,)∈,或=且(,)∈}。
如圖1 所示,乘積圖由和構(gòu)成,其中為四節(jié)點環(huán)圖,為三節(jié)點環(huán)圖。
圖1 笛卡爾乘積圖Fig.1 Cartesian product graph
根據(jù)定義1,可以推斷出圖的度數(shù)等于圖和圖度數(shù)之和。這表示,只要和的度數(shù)之和等于,就能靈活地構(gòu)建具有相同度數(shù)的不同種類的笛卡爾乘積圖。
FSDC 是一種基于笛卡爾乘積圖,并通過遞歸的方式構(gòu)建的數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu),其中笛卡爾乘積圖G=??…?是由1 個和(-1)個通過笛卡爾乘積獲得,這里被稱為基礎(chǔ)圖,被稱為擴(kuò)展圖。由笛卡爾積的定義可知,圖G可以通過擴(kuò)展圖繼續(xù)進(jìn)行擴(kuò)展,擴(kuò)展形成的G的節(jié)點數(shù)量是G的倍,其中為擴(kuò)展圖節(jié)點數(shù)量。
選擇節(jié)點數(shù)為的環(huán)圖和-1 個節(jié)點數(shù)為的環(huán)圖來構(gòu)建一個笛卡爾乘積圖G。利用臺2 口服務(wù)器連接一個端口交換機組成FSDC 的基本單元,稱之為。將G中的所有節(jié)點用替換,再通過服務(wù)器的備用端口連接不同的。最后,能夠獲得一個FSDC(,)結(jié)構(gòu)。FSDC 的具體定義如下:
FSDC(,)結(jié)構(gòu)中節(jié)點和邊的定義:
(1)交換機和服務(wù)器分別定義為(x…;0)和(x…;),其中1 ≤≤(-1),0 ≤x≤(-1),0 ≤≤(-1),1 ≤≤。
(2)在FSDC(,)中存在三種類型的邊:
①交換機與服務(wù)器之間的邊:
②第1 層的服務(wù)器與服務(wù)器之間的邊:
③第層服務(wù)器與服務(wù)器之間的邊:
其 中,+(-1)(-1)≤≤+(-1)-1,′=2(+-)--,′=(+x)mod。
圖2 是FSDC 結(jié)構(gòu)的一個示例,一個6 端口交換機連接6 個服務(wù)器形成一個,使用去替換圖1 中的節(jié)點,進(jìn)而得到一個(3,4) 結(jié)構(gòu)。此外,通過不同的笛卡爾乘積圖,采用相同類型的交換機可以構(gòu)建出不同種類的FSDC 結(jié)構(gòu)。如圖3,使用了相同類型的6 端口交換機可以構(gòu)建另一種FSDC結(jié)構(gòu)(3,3)。
圖2 FSDC2(3,4)結(jié)構(gòu)Fig.2 FSDC2(3,4) structure
圖3 FSDC2(3,3)結(jié)構(gòu)Fig.3 FSDC2(3,3)structure
根據(jù)笛卡爾積的定義,圖G可以通過擴(kuò)展圖進(jìn)一步擴(kuò)展形成G。基于G,F(xiàn)SDC 網(wǎng)絡(luò)結(jié)構(gòu)也可由層的FSDC(,)擴(kuò)展為+1層的FSDC(,)。FSDC(,) 是由個FSDC(,)構(gòu)成的。如圖4 所示,(3,4)結(jié)構(gòu)可進(jìn)一步擴(kuò)展為(3,4)結(jié)構(gòu)。
圖4 FSDC3(3,4)結(jié)構(gòu)Fig.4 FSDC3(3,4)structure
在FSDC 中,每個服務(wù)器使用一個端口連接中的交換機,使用另一個端口來互聯(lián)不同中的服務(wù)器。此外,服務(wù)器(x…;)由兩部分組成,其中,(x…)表示服務(wù)器所在的序列號,表示中服務(wù)器的序列號。當(dāng)∈[1,-1]時,當(dāng)前服務(wù)器為第一層服務(wù)器,而當(dāng)∈[+(-1)(-1),+(-1)-1]時,當(dāng)前服務(wù)器為第(+1)層服務(wù)器。
根據(jù)定義1和定義2,可以推論出定理1和定理2。
在FSDC(,)中,交換機數(shù)量為×t,服務(wù)器數(shù)量為××t,邊數(shù)量為3(××t)/2。
FSDC(,)中,的數(shù)量等于G的節(jié)點數(shù),而一個包含1臺交換機和臺服務(wù)器。因此,交換機數(shù)量為×t,而服務(wù)器數(shù)量為××t。此外,因為FSDC(,)中所有服務(wù)器端口都占用,所以邊的數(shù)量為3(××t)/2。
FSDC(,)中服務(wù)器數(shù)量為FSDC(,)中的服務(wù)器數(shù)量的倍,其中為的節(jié)點數(shù)量(≥2)。
由定理1 可得,FSDC(,)包含××t臺服務(wù)器,而FSDC(,)包含××t臺服務(wù)器。因此:
根據(jù)定理2,當(dāng)FSDC 結(jié)構(gòu)由-1 層擴(kuò)展為層時,整個網(wǎng)絡(luò)擴(kuò)大了倍。
作為拓?fù)鋵傩?,直徑可用于衡量互?lián)網(wǎng)絡(luò)中的通信時延,直徑小意味著網(wǎng)絡(luò)中通信延遲低。以()表示圖的直徑,其中圖的直徑為圖中任意兩頂點之間的最短距離的最大值。
由于FSDC(,) 中的服務(wù)器總數(shù)為=××t,FSDC(,)的直徑為(logN)。這表示FSDC(,)結(jié)構(gòu)的直徑較小。
當(dāng)互連網(wǎng)絡(luò)的邊數(shù)與帶寬相等時,對分帶寬可以定義為將網(wǎng)絡(luò)的節(jié)點集合劃分為兩個相等子集合時所需移除邊數(shù)的最小值。如果網(wǎng)絡(luò)具有較大的對分帶寬,則說明該網(wǎng)絡(luò)具有更高的吞吐量和更好的容錯性。對于數(shù)據(jù)中心網(wǎng)絡(luò)而言,可以假設(shè)當(dāng)前網(wǎng)絡(luò)的邊數(shù)與帶寬相等,則通過將拓?fù)鋭澐譃閮蓚€大小相等的子結(jié)構(gòu),然后計算其中一個子結(jié)構(gòu)的邊數(shù)量,以此來表示當(dāng)前網(wǎng)絡(luò)的對分帶寬。
FSDC(,)的對分帶寬不大于3(××t)/4。
FSDC(,)的對分帶寬可以分為以下三種條件討論:
(1)是偶數(shù)
當(dāng)為偶數(shù)時,FSDC(,)的拓?fù)錇閷ΨQ結(jié)構(gòu)。通過移去第層一部分邊來將FSDC(,)劃分為兩個大小相等子結(jié)構(gòu)。因為FSDC(,)包含3(××t)/2條邊,所以子結(jié)構(gòu)的邊數(shù)少于3(××t)/4。
(2)是奇數(shù),是偶數(shù)
由圖2 可知,當(dāng)滿足條件(2)時,FSDC(,)也是對稱結(jié)構(gòu)。因此,該結(jié)構(gòu)也能劃分為兩個完全相等的子結(jié)構(gòu),但需要移除的邊分布在第1 層到第層。故每個子結(jié)構(gòu)的邊數(shù)少于3(××t)/4。
(3)和都是奇數(shù)
如圖3,當(dāng)嘗試使用條件(2)中描述的方法將網(wǎng)絡(luò)分為兩個相同部分時,其中一個結(jié)構(gòu)會比另一個結(jié)構(gòu)多一個。但是,隨著網(wǎng)絡(luò)規(guī)模的增長,可以逐漸忽略這個多余的,因為它在子結(jié)構(gòu)中所占比例越來越少,即對結(jié)構(gòu)的影響逐漸減少,所以可以把這兩個子結(jié)構(gòu)視為大小相等。因此子結(jié)構(gòu)的邊數(shù)少于3(××t)/4。
因為FSDC(,)中包含的服務(wù)器數(shù)量為=××t,所以其對分帶寬為()。
容錯路由算法可以繞過故障設(shè)備或鏈路,并快速到達(dá)目標(biāo)節(jié)點。根據(jù)FSDC(,)的連接模式,當(dāng)網(wǎng)絡(luò)擴(kuò)展到第層時,第層的服務(wù)器使用其備用端口互連不同的。針對FSDC,本文提出了一種容錯路由算法,此路由算法主要利用笛卡爾乘積圖中不同節(jié)點之間存在多條路徑的性質(zhì)。算法1 的路由原理是,對于任何一對不同位(x,y)(0 ≤≤-1),在第(+1)層的兩個服務(wù)器之間存在一條邊或路徑,可以轉(zhuǎn)換不同位為相同位。因此,源服務(wù)器到目標(biāo)服務(wù)器的路徑可以通過遞歸計算得到。
FSDC 容錯路由算法
算法1描述了如何從源服務(wù)器發(fā)送數(shù)據(jù)到目標(biāo)服務(wù)器的詳細(xì)過程。首先,通過函數(shù)-()得到和之間不同位(x≠y)的數(shù)量(第1 行),如果等于0,則和在同一個,可以直接返回路徑即可(第2 行)。否則,尋找一對不同位,并將該不同位的對所在的層次位置返回給(第3 行)。使用參數(shù)、x和y,可以得到一條第(+1)層的鏈路(,′),通過該鏈路可以將x轉(zhuǎn)換為y(第4 行)。接下來,測試該鏈路的狀態(tài),若鏈路正常,則返回由(,),(,′),(′,)組成的完整路徑(第5 行);若鏈路失效,則尋找第(+1)層中其他的鏈路(,′),通過該鏈路可以將u轉(zhuǎn)換為y。然后,構(gòu)建一條中間路徑(,′)來繞過當(dāng)前失效的鏈路(第6~8 行)。最后,返回一條由(,)、(,′)、(′,)組成的路徑。
當(dāng)網(wǎng)絡(luò)中不存在任何設(shè)備故障或鏈路失效的情況下,算法1 的路由路徑會構(gòu)建從源服務(wù)器和目標(biāo)服務(wù)器之間的最短路徑。例如,若圖2 中網(wǎng)絡(luò)設(shè)備和鏈路都正常,源服務(wù)器和目標(biāo)服務(wù)器分別為[0,2;1]和[2,1;2],則路由算法構(gòu)建的最短路徑如下:
當(dāng)網(wǎng)絡(luò)中存在設(shè)備故障或鏈路失效的情況時,容錯路由算法會通過檢測,繞過故障設(shè)備或鏈路,通過有效的鏈路建立從源服務(wù)器到目標(biāo)服務(wù)器的一條非最優(yōu)路徑。例如,若圖2 中源服務(wù)器和目標(biāo)服務(wù)器分別為[0,2;1]和[2,1;2],而[0,1;3]到[1,1;4]的鏈路失效。算法1 在到達(dá)服務(wù)器[0 ,1;3],發(fā)現(xiàn)鏈路失效后,會即時選擇一個中間服務(wù)器[0,1;4]繞過當(dāng)前失效的鏈路,則整個路由路徑為:
本章將FSDC 與其他數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)的性能進(jìn)行對比,包括FatTree、BCube、DCell 和FiConn 等結(jié)構(gòu)。分析比較的內(nèi)容包括:網(wǎng)絡(luò)拓?fù)湫再|(zhì)、可擴(kuò)展性、吞吐量、成本和能耗等。為了便于比較,假設(shè)所有數(shù)據(jù)中心結(jié)構(gòu)包含相同數(shù)量的服務(wù)器,并且使用相同類型的端口交換機。
網(wǎng)絡(luò)拓?fù)湫再|(zhì)對數(shù)據(jù)中心網(wǎng)絡(luò)的性能有重大影響,如直徑可以用于衡量網(wǎng)絡(luò)中的通信時延,網(wǎng)絡(luò)直徑小代表當(dāng)前網(wǎng)絡(luò)中通信時延低。對分帶寬可以衡量網(wǎng)絡(luò)的吞吐量和容錯性,較大的對分帶寬意味著較高的網(wǎng)絡(luò)吞吐量和更好的容錯性。表2 列出了FatTree、BCube、DCell、FiConn 和FSDC 的主要拓?fù)湫再|(zhì),包括可擴(kuò)展性、靈活性、直徑、對分帶寬、交換機數(shù)量和邊的數(shù)量等。
由表2 可知,F(xiàn)atTree 的直徑為2 乘以它的拓?fù)涓叨?,即直徑? lb。DCell 和FiConn 直徑的準(zhǔn)確值未知,但它們的上界都為2 logN-1。BCube 是所有結(jié)構(gòu)中網(wǎng)絡(luò)直徑最小的,其直徑為logN。而FSDC與DCell、FiConn 的直徑相近,為logN。
表2 FSDC 與其他數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)的性質(zhì)比較Table 2 Characteristics comparison of FSDC with other data center network structures
FatTree和BCube的對分帶寬都為/2,而DCell、FiConn 確切的對分帶寬仍然未知,但它們的下界為/(4 logN) 。FSDC 的對分帶寬的上界為3/4,其值與FatTree、BCube 相似,但大于DCell 和FiConn。
如表2 所示,BCube 和DCell 的擴(kuò)展受限于所使用服務(wù)器的端口數(shù)。當(dāng)數(shù)據(jù)中心需要擴(kuò)展時,需要服務(wù)器增加更多的NIC 端口。因為每次擴(kuò)展都預(yù)留了服務(wù)器端口,F(xiàn)iConn 的擴(kuò)展性不會受限于交換機端口數(shù)和服務(wù)器端口數(shù)。FatTree 和FSDC 的擴(kuò)展性則受限于交換機的端口數(shù),這表示當(dāng)交換機的端口數(shù)被使用完時,將無法添加設(shè)備到這些網(wǎng)絡(luò)結(jié)構(gòu)中。唯一的解決辦法是把當(dāng)前網(wǎng)絡(luò)使用的交換機更換為端口數(shù)量更多的交換機。FatTree 結(jié)構(gòu)能容納的服務(wù)器數(shù)量過少,如使用196 端口交換機構(gòu)建的FatTree,最多只能部署1 882 384 臺服務(wù)器。表3 展示了FatTree 和FSDC 使用相同端口交換機所構(gòu)建的網(wǎng)絡(luò)能容納的服務(wù)器數(shù)量,可以看到FSDC 的服務(wù)器數(shù)量遠(yuǎn)高于FatTree。此外,多端口交換機的價格會比較昂貴,如果大量使用來構(gòu)建數(shù)據(jù)中心的話會使得成本非常高。因此,隨著規(guī)模的不斷擴(kuò)大,F(xiàn)atTree的構(gòu)建成本會急速增加。
大多數(shù)以服務(wù)器為中心的數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)是通過遞歸式構(gòu)建的,而這些結(jié)構(gòu)會存在這樣一個問題,即,每次擴(kuò)展服務(wù)器的數(shù)量會出現(xiàn)海量的增加。例如,使用8 端口交換機構(gòu)建一個DCell 網(wǎng)絡(luò)結(jié)構(gòu),包含72 臺服務(wù)器,包含5 256 臺服務(wù)器,而的服務(wù)器數(shù)量為27 630 792。這種擴(kuò)展方式不符合現(xiàn)實的需求,并且會帶來大量的資源浪費。如定理2 所述,每次擴(kuò)展過程中,F(xiàn)SDC 結(jié)構(gòu)的服務(wù)器數(shù)量可以增加到原來的倍。這意味著,通過選擇不同的參數(shù),F(xiàn)SDC 可以具有更好的可擴(kuò)展性。
對于FatTree、FiConn、DCell 和BCube 等數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)而言,當(dāng)確定了構(gòu)建數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)的交換機類型之后,即交換機端口數(shù)確定之后,這些數(shù)據(jù)中心網(wǎng)絡(luò)的結(jié)構(gòu)就已經(jīng)固定了,其構(gòu)建靈活性較差。
基于笛卡爾乘積圖的性質(zhì),可以通過選擇不同的基礎(chǔ)圖和擴(kuò)展圖,使用相同類型的交換機來構(gòu)造不同類型的FSDC 結(jié)構(gòu)。如表3 所示,當(dāng)使用16 端口交換機可以構(gòu)建不同類型的FSDC 結(jié)構(gòu),這些FSDC結(jié)構(gòu)具有不同的服務(wù)器數(shù)量,其擴(kuò)展性也有很大的彈性空間。由此可見,F(xiàn)SDC 結(jié)構(gòu)比其他數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)具有更好的靈活性,更適合于構(gòu)建大規(guī)模的數(shù)據(jù)中心網(wǎng)絡(luò)。
表3 服務(wù)器數(shù)量的比較Table 3 Comparison of the number of servers
為比較不同結(jié)構(gòu)的吞吐量,本文使用mtCloudSim模擬器進(jìn)行流量模擬。mtCloudSim 是基于文獻(xiàn)[27]提出來的方法,用于模擬現(xiàn)實中數(shù)據(jù)中心的數(shù)據(jù)流的轉(zhuǎn)發(fā)過程。mtCloudSim 使用圖來表示數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu),其中鏈路對應(yīng)結(jié)構(gòu)中的邊。根據(jù)文獻(xiàn)[28],機架之間不同服務(wù)器的往返時間(round-trip time,RTT)約為100 μs。因此可以把流的RTT 設(shè)置為從源主機到目標(biāo)主機之間最短距離乘以100 μs。對于數(shù)據(jù)集,本文使用了文獻(xiàn)[27]中的綜合流工作負(fù)載,其中包含80 000個流,總大小為4 TB。最小的流為1 KB,最大的流為1 GB,主機范圍從0 到4 096,且工作流的產(chǎn)生是隨機生成的。
模擬實驗構(gòu)建了5 個不同的拓?fù)浣Y(jié)構(gòu),分別為FatTree、BCube、DCell、FiConn 和FSDC。實驗中設(shè)定不同結(jié)構(gòu)的服務(wù)器數(shù)量約為5 000 臺,鏈路的傳輸速率設(shè)置為2 Gbit/s。圖5 展示了5 個數(shù)據(jù)中心結(jié)構(gòu)的吞吐量變化與完成轉(zhuǎn)發(fā)所需的時間。由于有大量的交換機和冗余鏈路,F(xiàn)atTree 和BCube 不僅實現(xiàn)了約為300 Gbit/s 的最高帶寬,而且還最先完成了數(shù)據(jù)的傳輸。DCell 和FSDC 則在使用較少的交換機和鏈路情況下,實現(xiàn)了較好的吞吐量,約為280 Gbit/s。此外FSDC 的數(shù)據(jù)傳輸時長只比FatTree 和BCube 多10 s。FiConn的吞吐量只有250 Gbit/s,并且傳輸時長比其他結(jié)構(gòu)多出幾十秒。這與FiConn的連接模式,即不同部分之間只有一條鏈路互連,有很大的關(guān)系。當(dāng)鏈路的帶寬完全被占用時,傳輸被嚴(yán)重延遲。
圖5 不同結(jié)構(gòu)的吞吐量Fig.5 Throughput of different structures
成本和能耗是建立數(shù)據(jù)中心網(wǎng)絡(luò)需要考慮到的兩個重要因素。為了全面分析這兩個因素,本文構(gòu)建了4 種不同規(guī)模的數(shù)據(jù)中心網(wǎng)絡(luò),其服務(wù)器數(shù)量分別為1 024、2 048、4 096 和8 192 臺。
表4 中列舉出在構(gòu)建網(wǎng)絡(luò)時所用到的交換機和NIC 設(shè)備的價格與能耗。因為網(wǎng)絡(luò)規(guī)模相等且使用相同類型的服務(wù)器,所以可以忽略服務(wù)器的價格與能耗。盡管交換機和NIC 的價格隨市場變動,但不同價格不會影響比較結(jié)果。
表4 設(shè)備價格與能耗Table 4 Price and power consumption of devices
如圖6 所示,BCube 和DCell 的總成本和總能耗比其他的結(jié)構(gòu)更高,這是因為它們的服務(wù)器需要裝配具有多端口的NIC。FatTree使用了最多數(shù)量的交換機,因此其交換機成本比其他結(jié)構(gòu)更大。而FiConn 和FSDC 則是這些結(jié)構(gòu)中成本和能耗最低的。由于鏈路數(shù)量也是一個影響成本的重要因素,圖6 也給出了不同結(jié)構(gòu)的鏈路數(shù)量的變化。
從圖6 可知,隨著網(wǎng)絡(luò)的不斷擴(kuò)展,F(xiàn)iConn 和FSDC 的成本、能耗和鏈路數(shù)量保持著較低的增長速度。而FSDC 具有比FiConn 更好的靈活性、可擴(kuò)展性和吞吐量,因此FSDC 結(jié)構(gòu)更適合于以低成本構(gòu)建一個低能耗的數(shù)據(jù)中心網(wǎng)絡(luò)。
圖6 成本、能耗和鏈路花費的對比Fig.6 Comparison of cost,power,and links
本文提出了一種基于笛卡爾乘積圖的新型數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)FSDC。通過選擇不同的基礎(chǔ)圖和擴(kuò)展圖,可以實現(xiàn)不同比例的靈活擴(kuò)展。在分析了FSDC 的拓?fù)涮匦缘那疤嵯?,提出一種基于笛卡爾乘積圖性質(zhì)的容錯路由算法。最后通過與其他數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)的對比和分析,說明了FSDC 在直徑、對分帶寬和擴(kuò)展性方面具有良好的平衡。
FSDC 結(jié)構(gòu)是通過兩個環(huán)圖之間的笛卡爾積所構(gòu)建的數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)。未來可以嘗試用其他不同的圖來構(gòu)建笛卡爾乘積圖,以此獲得具有更好拓?fù)涮匦缘臄?shù)據(jù)中心網(wǎng)絡(luò)。此外,除了以服務(wù)器為中心和以交換機為中心的方案外,如何使用笛卡爾乘積圖構(gòu)建其他類型的數(shù)據(jù)中心網(wǎng)絡(luò)也是未來的工作之一。