阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書-改_第1頁(yè)
阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書-改_第2頁(yè)
阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書-改_第3頁(yè)
阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書-改_第4頁(yè)
阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書-改_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 飛天開(kāi)放平臺(tái)技術(shù)白皮書 目錄文檔圖索引31.概述42. 體系架構(gòu)53. 飛天內(nèi)核64.分布式系統(tǒng)底層服務(wù)74.1.協(xié)調(diào)服務(wù)(女媧)74.2.遠(yuǎn)程過(guò)程調(diào)用(夸父)74.3. 安全管理(鐘馗)84.4. 分布式文件系統(tǒng)(盤古)84.5. 資源管理和任務(wù)調(diào)度(伏羲)94.6.集群監(jiān)控和部署11文檔圖索引圖 1 飛天體系架構(gòu)531.概述阿里云飛天開(kāi)放平臺(tái)是在數(shù)據(jù)中心的大規(guī)模Linux集群之上構(gòu)建的一套綜合性的軟硬件系統(tǒng),將數(shù)以千計(jì)的服務(wù)器聯(lián)成一臺(tái)“超級(jí)計(jì)算機(jī)”,并且將這臺(tái)超級(jí)計(jì)算機(jī)的存儲(chǔ)資源和計(jì)算資源,以公共服務(wù)的方式,輸送給互聯(lián)網(wǎng)上的用戶或者應(yīng)用系統(tǒng)。阿里云致力于打造云計(jì)算的基礎(chǔ)服務(wù)平臺(tái),注重為中

2、小企業(yè)提供大規(guī)模、低成本的云計(jì)算服務(wù)。阿里云的目標(biāo)是通過(guò)構(gòu)建飛天這個(gè)支持多種不同業(yè)務(wù)類型的公有云計(jì)算平臺(tái),幫助中小企業(yè)在云服務(wù)上建立自己的網(wǎng)站和處理自己的業(yè)務(wù)流程,幫助開(kāi)發(fā)者向云端開(kāi)發(fā)模式轉(zhuǎn)變,用方便、低廉的方式讓互聯(lián)網(wǎng)服務(wù)全面融入人們的生活,將網(wǎng)絡(luò) 濟(jì)模式帶入移動(dòng)互聯(lián)網(wǎng),構(gòu)建出以云計(jì)算為基礎(chǔ)的全新互聯(lián)網(wǎng)生態(tài)鏈。在此基礎(chǔ)上,實(shí)現(xiàn)阿里云成為互聯(lián)網(wǎng)數(shù)據(jù)分享第一平臺(tái)的目標(biāo)。 2. 體系架構(gòu) 圖 1 飛天體系架構(gòu)如圖2.1所示是飛天的體系架構(gòu)圖。整個(gè)飛天平臺(tái)包括飛天內(nèi)核(圖2.1中淺灰色組件)和飛天開(kāi)放服務(wù)(圖2.1中白色組件)兩大組成部分。飛天內(nèi)核為上層的飛天開(kāi)放服務(wù)提供存儲(chǔ)、計(jì)算和調(diào)度等方面的底層

3、支持,對(duì)應(yīng)于圖2.1 中的協(xié)調(diào)服務(wù)、遠(yuǎn)程過(guò)程調(diào)用、安全管理、資源管理、分布式文件系統(tǒng)、任務(wù)調(diào)度、集群部署和集群監(jiān)控模塊。 飛天開(kāi)放服務(wù)為用戶應(yīng)用程序提供了存儲(chǔ)和計(jì)算兩方面的接口和服務(wù),包括彈性計(jì)算服務(wù)(Elastic Compute Service,簡(jiǎn)稱ECS)、開(kāi)放存儲(chǔ)服務(wù)(OpenStorage Service,簡(jiǎn)稱OSS)、開(kāi)放結(jié)構(gòu)化數(shù)據(jù)服務(wù)(Open Table Service,簡(jiǎn)稱OTS)、關(guān)系型數(shù)據(jù)庫(kù)服務(wù)(Relational Database Service,簡(jiǎn)稱RDS)和開(kāi)放數(shù)據(jù)處理服務(wù)(Open DataProcessing Service,簡(jiǎn)稱ODPS),并基于彈性計(jì)算服務(wù)

4、提供了云服務(wù)引擎(Aliyun Cloud Engine,簡(jiǎn)稱ACE)作為第三方應(yīng)用開(kāi)發(fā)和Web應(yīng)用運(yùn)行和托管的平臺(tái)。 3. 飛天內(nèi)核 飛天內(nèi)核包含的模塊可以分為以下幾部分: 分布式系統(tǒng)底層服務(wù):提供分布式環(huán)境下所需要的協(xié)調(diào)服務(wù)、遠(yuǎn)程過(guò)程調(diào)用、安全管理和資源管理的服務(wù)。這些底層服務(wù)為上層的分布式文件系統(tǒng)、任務(wù)調(diào)度等模塊提供支持。 分布式文件系統(tǒng):提供一個(gè)海 的、可靠的、可擴(kuò)展的數(shù)據(jù)存儲(chǔ)服務(wù),將集群中各個(gè)節(jié)點(diǎn)的存儲(chǔ)能力聚集起來(lái),并能夠自動(dòng)屏蔽軟硬件故障,為用戶提供不間斷的數(shù)據(jù)訪問(wèn)服務(wù)。支持增 擴(kuò)容和數(shù)據(jù)的自動(dòng)平衡,提供類似于POSIX 的用戶空間文件訪問(wèn)API,支持隨機(jī)讀寫和追加寫的操作。 任務(wù)

5、調(diào)度:為集群系統(tǒng)中的任務(wù)提供調(diào)度服務(wù),同時(shí)支持強(qiáng)調(diào)響應(yīng)速度的在線服務(wù)(Online Service)和強(qiáng)調(diào)處理數(shù)據(jù)吞吐 的離線任務(wù)(BatchProcessing Job)。自動(dòng)檢測(cè)系統(tǒng)中故障和熱點(diǎn),通過(guò)錯(cuò)誤重試、針對(duì)長(zhǎng)尾作業(yè)并發(fā)備份作業(yè)等方式,保證作業(yè)穩(wěn)定可靠地完成。 集群監(jiān)控和部署:對(duì)集群的狀態(tài)和上層應(yīng)用服務(wù)的運(yùn)行狀態(tài)和性能指標(biāo)進(jìn)行監(jiān)控,對(duì)異常事件產(chǎn)生警報(bào)和記錄;為運(yùn)維人員提供整個(gè)飛天平臺(tái)以及上層應(yīng)用的部署和配置管理,支持在線集群擴(kuò)容、縮容和應(yīng)用服務(wù)的在線升級(jí)。 4.分布式系統(tǒng)底層服務(wù)4.1.協(xié)調(diào)服務(wù)(女媧)女媧(Nuwa)系統(tǒng)為飛天提供高可用的協(xié)調(diào)服務(wù)(Coordination Serv

6、ice),是構(gòu)建各類分布式應(yīng)用的核心服務(wù),它的作用是采用類似文件系統(tǒng)的樹(shù)形命名空間來(lái)讓分布式進(jìn)程互相協(xié)同工作。例如,當(dāng)集群變更導(dǎo)致特定的服務(wù)被迫改變物理運(yùn)行位置時(shí),如服務(wù)器或者網(wǎng)絡(luò)故障、配置調(diào)整或者擴(kuò)容時(shí),借助女媧可以使其他程序快速定位到該服務(wù)新的接入點(diǎn),從而保證了整個(gè)平臺(tái)的高可靠性和高可用性。 女媧基于類Paxos協(xié)議15,由多個(gè)女媧Server以類似文件系統(tǒng)的樹(shù)形結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),提供高可用、高并發(fā)用戶請(qǐng)求的處理能力。女媧的目錄表示一個(gè)包含文件的集合。與Unix中的文件路徑一樣,女媧中路徑是以“/”分割的,根目錄(Root entry)的名字是“/”,所有目錄的名字都是以“/”結(jié)尾的。與Uni

7、x文件路徑不一樣之處在于:女媧中所有文件或目錄都必須使用從根目錄開(kāi)始的絕對(duì)路徑。由于女媧系統(tǒng)的設(shè)計(jì)目的是提供協(xié)調(diào)服務(wù),而不是存儲(chǔ)大 數(shù)據(jù)的,所以 個(gè)文件的內(nèi)容(Value)的大小被限制在1MB 以內(nèi)。在女媧系統(tǒng)中, 個(gè)文件或目錄都保存有創(chuàng)建者的信息。一旦某個(gè)路徑被用戶創(chuàng)建,其他用戶就可以訪問(wèn)和修改這個(gè)路徑的值(即文件內(nèi)容或目錄包含的文件名)。 女媧支持Publish/Subscribe模式,其中一個(gè)發(fā)布者、多個(gè)訂閱者OnePublisher/Many Subscriber)的模式提供了基本的訂閱功能;另外,還可用通過(guò)多個(gè)發(fā)布者、多個(gè)訂閱者(Many Publisher/Many Subscri

8、ber)的方式提供分布式選舉(Distributed Election)和分布式鎖的功能。 再舉一個(gè)使用女媧來(lái)實(shí)現(xiàn)負(fù)載均衡的例子:提供某一服務(wù)的多個(gè)節(jié)點(diǎn),在服務(wù)啟動(dòng)的時(shí)候在女媧系統(tǒng)的同一目錄下創(chuàng)建文件,例如,server1創(chuàng)建文件 “nuwa:/cluster/myservice/server1”,server2在同一目錄下創(chuàng)建 “nuwa:/cluster/myservice/server2”。當(dāng)客戶端使用遠(yuǎn)程過(guò)程調(diào)用的時(shí)候,首先列舉女媧服務(wù)中“nuwa:/cluster/myservice”目錄下的文件,這樣就可以獲得server1和server2,客戶端隨后可以從中選擇一個(gè)節(jié)點(diǎn)發(fā)出自己的

9、請(qǐng)求,從而實(shí)現(xiàn)負(fù)載均衡。 4.2.遠(yuǎn)程過(guò)程調(diào)用(夸父)在分布式系統(tǒng)中,不同計(jì)算機(jī)之間只能通過(guò)消息交換的方式進(jìn)行通信。顯式的消息通信必須通過(guò)Socket接口編程,而遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,簡(jiǎn)稱RPC9)可以隱 顯式的消息交換,使得程序員可以 調(diào)用本地函數(shù)一樣來(lái)調(diào)用遠(yuǎn)程的服務(wù)。 夸父(Kuafu)是飛天內(nèi)核中負(fù)責(zé)網(wǎng)絡(luò)通信的模塊,它提供了一個(gè)RPC的接口,簡(jiǎn)化編寫基于網(wǎng)絡(luò)的分布式應(yīng)用??涓傅脑O(shè)計(jì)目標(biāo)是提供高可用(7 x 24小時(shí))、大吞吐(Gigabyte)、高效率、易用(簡(jiǎn)明API、多種協(xié)議和編程接口)的RPC服務(wù)。 RPC客戶端(RPC Client)通過(guò)URI

10、指定請(qǐng)求需要發(fā)送的RPC服務(wù)端(RPC Server)的地址,目前夸父支持兩種協(xié)議形式。 TCP:例如,tcp:/fooserver01:9000 Nuwa:例如,nuwa:/nuwa01/FooServer 與用流(stream)傳輸?shù)腡CP通信相比,夸父通信是以消息(Message)為單位的,支持多種類型的消息對(duì)象,包括標(biāo)準(zhǔn)字符串std:string和基于td:map 實(shí)現(xiàn)的若干string鍵值對(duì)。 夸父RPC同時(shí)支持異步(asynchronous)和同步(synchronous)的遠(yuǎn)程過(guò)程調(diào)用形式。 異步調(diào)用:RPC函數(shù)調(diào)用時(shí)不等接收到結(jié)果就會(huì)立即返回;用戶必須通過(guò)顯式調(diào)用接收函數(shù)取得請(qǐng)

11、求結(jié)果。 同步調(diào)用:RPC函數(shù)調(diào)用時(shí)會(huì)等待,直到接收到結(jié)果才返回。在實(shí)現(xiàn)中,同步調(diào)用是通過(guò)封裝異步調(diào)用來(lái)實(shí)現(xiàn)的。 在夸父的實(shí)現(xiàn)中,客戶端程序通過(guò)Unix Domain Socket與本機(jī)上的一個(gè)夸父代理(Kuafu Proxy)連接,不同計(jì)算機(jī)之間的夸父代理會(huì)建立一個(gè)TCP連接。這樣做的好處是可以更高效地使用網(wǎng)絡(luò)帶寬,系統(tǒng)可以支持上千臺(tái)計(jì)算機(jī)之間的互聯(lián)需求。此外,夸父利用女媧來(lái)實(shí)現(xiàn)負(fù)載均衡;對(duì)大塊數(shù)據(jù)的傳輸做了優(yōu)化;與TCP類似,夸父代理之間還實(shí)現(xiàn)了發(fā)送端和接收端的流控(Flow Control)機(jī)制。 4.3. 安全管理(鐘馗)鐘馗(Zhongkui)是飛天內(nèi)核中負(fù)責(zé)安全管理的模塊,它提供了

12、以用戶為單位的身份認(rèn)證和授權(quán),以及對(duì)集群數(shù)據(jù)資源和服務(wù)進(jìn)行的訪問(wèn)控制。 用戶的身份認(rèn)證(Authentication)是基于密鑰機(jī)制的。 用戶對(duì)資源的訪問(wèn)控制是基于權(quán)能(Capability)機(jī)制進(jìn)行授權(quán)(Authorization)的。 Capability是用于訪問(wèn)控制的一種數(shù)據(jù)結(jié)構(gòu),它定義了對(duì)一個(gè)或多個(gè)指定的資源(如目錄、文件、表等)所具有的訪問(wèn)權(quán)限。用戶訪問(wèn)飛天系統(tǒng)的資源時(shí)必須持有Capability,否則即視為非法。打個(gè)比方,如果把Capability理解為地鐵票,乘坐地鐵(對(duì)地鐵的一種訪問(wèn)方式)的時(shí)候必須要有Capability,即地鐵票。 密鑰對(duì)是基于公開(kāi)密鑰方法的,包括一個(gè)私鑰

13、和相對(duì)應(yīng)的公鑰。在飛天系統(tǒng)中,密鑰對(duì)用于數(shù)字簽名服務(wù),以保證Capability的不可偽造。換句話說(shuō),私鑰用于產(chǎn)生數(shù)字簽名(如簽發(fā)Capability),公鑰用于驗(yàn)證數(shù)字簽名的有效性(如驗(yàn)證簽發(fā)過(guò)的Capability的有效性)。 考慮到網(wǎng)絡(luò)通信時(shí)任何通信節(jié)點(diǎn)都是不可信的,所以即使是飛天自身模塊內(nèi)部之間的通信也同樣是需要認(rèn)證和授權(quán)的,而且驗(yàn)證的機(jī)制也完全一樣。 4.4. 分布式文件系統(tǒng)(盤古)盤古(Pangu)是一個(gè)分布式文件系統(tǒng),盤古的設(shè)計(jì)目標(biāo)是將大 通用機(jī)器的存儲(chǔ)資源聚合在一起,為用戶提供大規(guī)模、高可靠、高可用、高吞吐 和可擴(kuò)展的存儲(chǔ)服務(wù),是飛天內(nèi)核中的一個(gè)重要組成部分。 大規(guī)模:能夠支持

14、數(shù)十PB 級(jí)的存儲(chǔ)大?。?PB = 1000TB),總文件數(shù)達(dá)到億級(jí)。 數(shù)據(jù)高可靠性:保證數(shù)據(jù)和元數(shù)據(jù)(Metadata)是持久保存并能夠正確訪問(wèn)的,保證所有數(shù)據(jù)存儲(chǔ)在處于不同機(jī)架的多個(gè)節(jié)點(diǎn)上面(通常設(shè)置為3)。即使集群中的部分節(jié)點(diǎn)出現(xiàn)硬件和軟件故障,系統(tǒng)能夠檢測(cè)到故障并自動(dòng)進(jìn)行數(shù)據(jù)的備份和遷移,保證數(shù)據(jù)的安全存在。 服務(wù)高可用性:保證用戶能夠不中斷地訪問(wèn)數(shù)據(jù),降低系統(tǒng)的不可服務(wù)時(shí)間。即使出現(xiàn)軟硬件的故障、異常和系統(tǒng)升級(jí)等情況,服務(wù)仍可正常訪問(wèn)。 高吞吐 :運(yùn)行時(shí)系統(tǒng)I/O吞吐 能夠隨機(jī)器規(guī)模線性增長(zhǎng),保證響應(yīng)時(shí)間。 高可擴(kuò)展性:保證系統(tǒng)的容 能夠通過(guò)增加機(jī)器的方式得到自動(dòng)擴(kuò)展,下線機(jī)器存儲(chǔ)的

15、數(shù)據(jù)能夠自動(dòng)遷移到新加入的節(jié)點(diǎn)上。 同時(shí),盤古也能很好地支持在線應(yīng)用的低延時(shí)需求。在盤古系統(tǒng)中,文件系統(tǒng)的元數(shù)據(jù)存儲(chǔ)在多個(gè)主服務(wù)器(Master)上,文件內(nèi)容存儲(chǔ)在大 的塊服務(wù)器(Chunk Server)上??蛻舳顺绦蛟谑褂帽P古系統(tǒng)時(shí),首先從主服務(wù)器獲取元數(shù)據(jù)信息(包括接下來(lái)與哪些塊服務(wù)器交互),然后在塊服務(wù)器上直接進(jìn)行數(shù)據(jù)操作。由于元數(shù)據(jù)信息很小,大 的數(shù)據(jù)交互是客戶端直接與塊服務(wù)器進(jìn)行的,因此盤古采用少 的主服務(wù)器來(lái)管理元數(shù)據(jù),并使用Paxos協(xié)議15保證元數(shù)據(jù)的一致性。此外,塊大小被設(shè)置為64MB,進(jìn)一步 少了元數(shù)據(jù)的大小,因此可以將元數(shù)據(jù)全部放到內(nèi)存里,從而使得主服務(wù)器能夠處理大 的

16、并發(fā)請(qǐng)求。 塊服務(wù)器負(fù)責(zé)存儲(chǔ)大小為64MB的數(shù)據(jù)塊。在向文件寫入數(shù)據(jù)之前,客戶端將建立到3個(gè)塊服務(wù)器的連接,客戶向主副本(Replica)寫入數(shù)據(jù)以后,由主副本負(fù)責(zé)向其他副本發(fā)送數(shù)據(jù)。與直接由客戶端向三個(gè)副本寫入數(shù)據(jù)相比,這樣可以 少客戶端的網(wǎng)絡(luò)帶寬使用。塊副本在放置的時(shí)候,為保證數(shù)據(jù)可用性和最大化地使用網(wǎng)絡(luò)帶寬,會(huì)將副本放置在不同機(jī)架上,并優(yōu)先考慮磁盤利用率低的機(jī)器。當(dāng)硬件故障或數(shù)據(jù)不可用造成數(shù)據(jù)塊的副本數(shù)目達(dá)不到3份的時(shí)候,數(shù)據(jù)塊會(huì)被重新復(fù)制。為保證數(shù)據(jù)的完整性,整塊數(shù)據(jù)在寫入時(shí)會(huì)同時(shí)計(jì)算一個(gè)校驗(yàn)值,與數(shù)據(jù)同時(shí)寫入磁盤。當(dāng)讀取數(shù)據(jù)塊的時(shí)候,塊服務(wù)器會(huì)再次計(jì)算校驗(yàn)值與之前存入的值是否相同,如

17、果不同就說(shuō)明數(shù)據(jù)出現(xiàn)了錯(cuò)誤,需要從其他副本重新讀取數(shù)據(jù)。 在線應(yīng)用對(duì)盤古提出了與離線應(yīng)用不同的挑戰(zhàn):OSS、OTS要求低時(shí)延數(shù)據(jù)讀寫,ECS在要求低時(shí)延的同時(shí)還需要具備隨機(jī)寫的能力。針對(duì)這些需求,盤古實(shí)現(xiàn)了事務(wù)日志文件和隨機(jī)訪問(wèn)文件,用以支撐在線應(yīng)用。其中,日志文件通過(guò)多種方法對(duì)時(shí)延進(jìn)行了優(yōu)化,包括設(shè)置更高的優(yōu)先級(jí)、由客戶端直接寫多份拷貝而不是用傳統(tǒng)的流水線方式、寫入成功,不過(guò)Master確認(rèn)等。隨機(jī)訪問(wèn)文件則允許用戶隨機(jī)讀寫,同時(shí)也應(yīng)用了類似日志文件的時(shí)延優(yōu)化技術(shù)。 4.5. 資源管理和任務(wù)調(diào)度(伏羲)伏羲(Fuxi)是飛天內(nèi)核中負(fù)責(zé)資源管理和任務(wù)調(diào)度的模塊,同時(shí)也為應(yīng)用開(kāi)發(fā)提供了一套編程基

18、礎(chǔ)框架。伏羲同時(shí)支持強(qiáng)調(diào)響應(yīng)速度的在線服務(wù)和強(qiáng)調(diào)處理數(shù)據(jù)吞吐量的離線任務(wù)。在伏羲中,這兩類應(yīng)用分別簡(jiǎn)稱為Service和Job。 在資源管理方面,伏羲主要負(fù)責(zé)調(diào)度和分配集群的存儲(chǔ)、計(jì)算等資源給上層應(yīng)用;管理運(yùn)行在集群節(jié)點(diǎn)上任務(wù)的生命周期;在多用戶運(yùn)行環(huán)境中,支持計(jì)算額度、訪問(wèn)控制、作業(yè)優(yōu)先級(jí)和資源搶占,達(dá)到在保障公平的前提下,有效地共享集群資源。 在任務(wù)調(diào)度方面,伏羲面向海 數(shù)據(jù)處理和大規(guī)模計(jì)算類型的復(fù)雜應(yīng)用,提供了一個(gè)數(shù)據(jù)驅(qū)動(dòng)的多級(jí)流水線并行計(jì)算框架,在表述能力上兼容MapReduce12、Map-Reduce-Merge等多種編程模式;自動(dòng)檢測(cè)故障和系統(tǒng)熱點(diǎn),重試失敗任務(wù),保證作業(yè)穩(wěn)定可靠

19、運(yùn)行完成;具有高可擴(kuò)展性,能夠根據(jù)數(shù)據(jù)分布優(yōu)化網(wǎng)絡(luò)開(kāi)銷。 伏羲中應(yīng)用了“Master/Worker”工作模型。其中,Master 負(fù)責(zé)進(jìn)行資源申請(qǐng)和調(diào)度、為Worker 創(chuàng)建工作計(jì)劃(Plan)并監(jiān)控Worker的生命周期,Worker 負(fù)責(zé)執(zhí)行具體的工作計(jì)劃并及時(shí)向Master匯報(bào)工作狀態(tài)(Status)。此外,Master 支持多級(jí)模式,即一個(gè)Master可以隸屬于另外一個(gè)Master之下。 伏羲Master負(fù)責(zé)整個(gè)集群資源管理和調(diào)度,處理Job/Service啟動(dòng)、停止、Failover等生命周期的維護(hù)。同時(shí)伏羲Master支持多用戶額度配置、Job/Service的多優(yōu)先級(jí)設(shè)置和動(dòng)態(tài)資

20、源搶占邏輯,可以說(shuō)是飛天的“大腦”。伏羲對(duì)資源調(diào)度是多維度的,可以根據(jù)CPU、內(nèi)存等系統(tǒng)資源,以及應(yīng)用自定義的虛擬資源對(duì)整個(gè)機(jī)群進(jìn)行資源分配和調(diào)度。 土伯(Tubo)是部署在 臺(tái)由伏羲管理的機(jī)器上的后臺(tái)進(jìn)程,負(fù)責(zé)收集并向伏羲Master報(bào)告本機(jī)的狀態(tài),包括系統(tǒng)資源的消耗、Master或Worker進(jìn)程的運(yùn)行、等待、完成和失敗事件,并根據(jù)伏羲Master或者Job/Service Master 的指令,啟動(dòng)或殺死指定的Master或Worker進(jìn)程。同時(shí)土伯還負(fù)責(zé)對(duì)計(jì)算機(jī)健康狀況進(jìn)行監(jiān)控,對(duì)異常Worker(比如內(nèi)存超用)進(jìn)行及時(shí)的清理和匯報(bào)。 對(duì)于在線服務(wù)(Service),由伏羲Master

21、負(fù)責(zé)Service Master的啟動(dòng)與狀態(tài)監(jiān)控,處理相應(yīng)Service Master的資源申請(qǐng)請(qǐng)求。Service Master負(fù)責(zé)管理Service Worker的任務(wù)分配、生命周期管理以及Failover的管理。 對(duì)于離線任務(wù)(Job),伏羲Master負(fù)責(zé)Job Master的啟動(dòng)與狀態(tài)監(jiān)控,處理相應(yīng)Job Master的資源申請(qǐng)請(qǐng)求。Job Master根據(jù)用戶輸入的Job 述文件,將任務(wù)分解成一個(gè)或以上的Task,單個(gè)Task的資源申請(qǐng)、Task Worker的調(diào)度和生命周期維護(hù)由Task Master負(fù)責(zé)。 4.5.1. 在線服務(wù)調(diào)度在飛天內(nèi)核中,單個(gè)Service都有一個(gè)Ser

22、vice Master和多個(gè)不同角色(Role)的Service Worker,它們一起協(xié)同工作來(lái)完成整個(gè)服務(wù)的功能。ServiceMaster是伏羲Master管理下的子Master(Child Master),它負(fù)責(zé)這個(gè)Service 相關(guān)的資源申請(qǐng)、狀態(tài)維護(hù)以及故障恢復(fù),并定期與伏羲Master進(jìn)行交互,確保整個(gè)Service正確、正常地運(yùn)行。 個(gè)Service Worker的角色和執(zhí)行的動(dòng)作,都是由用戶來(lái)定義的。Service Worker負(fù)責(zé)處理一個(gè)到多個(gè)數(shù)據(jù)分片(Partition),同一時(shí)刻一個(gè)分片只會(huì)被分配到一個(gè)Service Worker處理。將數(shù)據(jù)分割成為互不相關(guān)的分片,然

23、后將不同分片給不同Service Worker來(lái)處理是構(gòu)建大規(guī)模應(yīng)用服務(wù)的關(guān)鍵特性。數(shù)據(jù)分片是一個(gè)抽象的概念,在不同的應(yīng)用中有不同的含義。 在服務(wù)運(yùn)行的過(guò)程中, 個(gè)Service的數(shù)據(jù)分片的數(shù)目和內(nèi)容都是可以動(dòng)態(tài)變化的,應(yīng)用程序可以根據(jù)實(shí)際需要對(duì)數(shù)據(jù)分片動(dòng)態(tài)地進(jìn)行加載(Load)、卸載(Unload)、分裂(Split)和遷移(Migrate)等操作。 4.5.2. 離線任務(wù)調(diào)度 在飛天中,一個(gè)離線任務(wù)(Job)的執(zhí)行過(guò)程被抽象為一個(gè)有向無(wú)環(huán)圖(Directed Acyclic Graph,簡(jiǎn)稱DAG):圖上單個(gè)頂點(diǎn)對(duì)應(yīng)一個(gè)Task, 條邊對(duì)應(yīng)一個(gè)Pipeline。一個(gè)連接的兩個(gè)Task的Pi

24、peline表示前一個(gè)Task的輸出是后一個(gè)Task的輸入。離線任務(wù)都有一個(gè)Job Master負(fù)責(zé)根據(jù)用戶輸入的任務(wù) 述(Job description)構(gòu)造DAG和調(diào)度DAG中所有Task的執(zhí)行。 個(gè)Task的Task Master 會(huì)根據(jù)要處理的實(shí)例數(shù) 、數(shù)據(jù)在集群的分布及處理實(shí)例的資源需求,向伏羲 Master申請(qǐng)機(jī)器資源并分配Task Worker在其上執(zhí)行。分配到 臺(tái)機(jī)器上的實(shí)例(Instance)是由Task Worker來(lái)具體執(zhí)行完成的。 臺(tái)機(jī)器上的Task Worker 可以根據(jù)需要選擇多線程或者多進(jìn)程的不同運(yùn)行模式。 在離線Job的容錯(cuò)方面,除了提供對(duì)異常機(jī)器的黑名單機(jī)制、

25、長(zhǎng)尾Instance 的后備Worker機(jī)制外,伏羲還提供了快照(Snapshot)機(jī)制。快照是Task級(jí)別的容錯(cuò)機(jī)制。如果一個(gè)Task的n個(gè)Instance在前一次運(yùn)行失敗時(shí)完成了m個(gè),那么Task重啟后只會(huì)重新調(diào)度運(yùn)行剩余的n m個(gè)Instance。 4.6.集群監(jiān)控和部署4.6.1.集群監(jiān)控(神農(nóng))神農(nóng)(Shennong)是飛天內(nèi)核中負(fù)責(zé)信息收集、監(jiān)控和診斷的模塊。它通過(guò)在 臺(tái)物理機(jī)器上部署輕 級(jí)的信息采集模塊,獲取各個(gè)機(jī)器的操作系統(tǒng)與應(yīng)用軟件運(yùn)行狀態(tài),監(jiān)控集群中的故障,并通過(guò)分析引擎對(duì)整個(gè)飛天的運(yùn)行狀態(tài)進(jìn)行評(píng)估。 神農(nóng)系統(tǒng)包括Master、Inspector和Agent三個(gè)部分。 Ma

26、ster:負(fù)責(zé)管理所有神農(nóng)Agent,并對(duì)外提供統(tǒng)一的接口來(lái)處理神農(nóng)用戶的訂閱(Subscription)請(qǐng)求,在集群中只有一個(gè)Master。 Inspector:是部署在 一臺(tái)機(jī)器上的進(jìn)程,負(fù)責(zé)采集當(dāng)前機(jī)器和進(jìn)程的通用信息,并實(shí)時(shí)發(fā)送給該機(jī)器上的神農(nóng)Agent。 Agent:是部署在 臺(tái)物理機(jī)器的后臺(tái)程序。Agent負(fù)責(zé)接受來(lái)自應(yīng)用和 Inspector寫入的信息。Agent啟動(dòng)后,會(huì)立刻向Master注冊(cè)自己,并根據(jù)Master發(fā)來(lái)的訂閱(Subscription)命令執(zhí)行相應(yīng)的信息采集、過(guò)濾、聚合和處理操作。目前神農(nóng)Agent處理的數(shù)據(jù)分為兩類:事件類數(shù)據(jù)(如應(yīng)用程序故障和報(bào)警)和數(shù)值類數(shù)據(jù)(如當(dāng)前應(yīng)用的性能計(jì)數(shù)、機(jī)器IO吞吐 等)。神農(nóng)的用戶通過(guò)Master來(lái)訪問(wèn)神農(nóng)系統(tǒng),以數(shù)據(jù)訂閱(Subscription)的方式獲取神農(nóng)系統(tǒng)采集到的信息。 神農(nóng)的MonitorService和AnalysisServ

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論