阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書(shū)-改_第1頁(yè)
阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書(shū)-改_第2頁(yè)
阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書(shū)-改_第3頁(yè)
阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書(shū)-改_第4頁(yè)
阿里云飛天開(kāi)放平臺(tái)-技術(shù)白皮書(shū)-改_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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ù)白皮書(shū)目錄劃當(dāng)隴弓i31観42. 腿斟勾53. 誠(chéng)醜64. 分布式系統(tǒng)底層服務(wù)74.1.協(xié)調(diào)服務(wù)(女?huà)z)74. 2遠(yuǎn)程過(guò)程調(diào)用(夸父)74. 3.安全管理(鐘馗)84. 4.分布式文件系統(tǒng)(盤(pán)古)84.5.資源管理和任務(wù)調(diào)度(伏羲)94. 6.集群監(jiān)控和部署11文檔圖索引1飛天體系架構(gòu)1.概述阿里云飛天開(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)m上的用戶或者應(yīng)用系統(tǒng)。阿里云致力于打造云計(jì)算的基礎(chǔ)服務(wù)平臺(tái),注重為中小企業(yè)提供大規(guī)模、

2、低成本的云計(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)云服務(wù)引擎(ace)r彈性計(jì)箅1r開(kāi)放存1r開(kāi)放結(jié)構(gòu)1f關(guān)系型數(shù)1開(kāi)放數(shù)據(jù)1服務(wù)儲(chǔ)服務(wù)化數(shù)據(jù)服據(jù)庫(kù)服務(wù)處理服務(wù)l ecs/slb j1 oss j1 務(wù) ots j1 ri)s jvodps jr分布式文件系統(tǒng)/z任務(wù)調(diào)度協(xié)調(diào)服務(wù)

3、遠(yuǎn)程過(guò)程調(diào)用安全竹理5祇行理linux繳鮮圖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)度等方面 的底層支持,對(duì)應(yīng)于圖2.1中的協(xié)凋服務(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ù)

4、據(jù)服務(wù) (open table service,簡(jiǎn)稱 ots)、關(guān)系型數(shù)裾庫(kù)服務(wù)(relational database service,簡(jiǎn)稱 rds)和 開(kāi)放數(shù)據(jù)處理服務(wù)(open dataprocessing service,簡(jiǎn)稱odps),并基于彈性計(jì)算服務(wù)提供了云服務(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)度等模塊提供支持。分布式文件

5、系統(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ī)讀寫(xiě)和追加寫(xiě)的操作。任務(wù)調(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ì)

6、異常事件產(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ù)(女?huà)z)女?huà)z(nuwa)系統(tǒng)為飛天提供高可用的協(xié)調(diào)服務(wù)(coordination service),是構(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í),借助女?huà)z 可以使其他程序快速定位到該服務(wù)新的接入點(diǎn),從而保證了整個(gè)平臺(tái)的高可靠性和高可用性。女?huà)z基于類paxos協(xié)議15,由多個(gè)女?huà)z

7、server以類似文件系統(tǒng)的樹(shù)形結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),提供高可用、 髙并發(fā)用戶請(qǐng)求的處理能力。女?huà)z的目錄表示一個(gè)包含文件的集合。與unix中的文件路徑一樣,女?huà)z中路徑是以“/”分割的,根 目錄(root entry)的名字是“/”,所有目錄的名字都是以“/”結(jié)尾的。與unix文件路徑不一樣之處 在于:女?huà)z中所有文件或目錄都必須使用從根目錄開(kāi)始的絕對(duì)路徑。由于女?huà)z系統(tǒng)的設(shè)計(jì)目的是提供協(xié)調(diào) 服務(wù),而不是存儲(chǔ)大數(shù)據(jù)的,所以個(gè)文件的內(nèi)容(value)的大小被限制在1mb以內(nèi)。在女?huà)z系統(tǒng)中, 個(gè)文件或目錄都保存有創(chuàng)建者的信息。一旦某個(gè)路徑被用戶創(chuàng)建,其他用戶就可以訪問(wèn)和修改這個(gè)路徑的 值(即文件內(nèi)容或目錄包含的

8、文件名)。女?huà)z支持publish/subscribe模式,其中一個(gè)發(fā)布者、多個(gè)訂閱者onepublisher/many subscriber) 的模式提供了基本的訂閱功能;另外,還可用通過(guò)多個(gè)發(fā)布者、多個(gè)訂閱者(many publisher/many subscriber)的方式提供分布式選舉(distributed election)和分布式鎖的功能。再舉一個(gè)使用女?huà)z來(lái)實(shí)現(xiàn)負(fù)載均衡的例子:提供某一服務(wù)的多個(gè)節(jié)點(diǎn),在服務(wù)啟動(dòng)的時(shí)候在女?huà)z系統(tǒng) 的同目彔下創(chuàng)建文件,例如,serverl 創(chuàng)建文件 “nuwa:/cluster/myservice/serverl ”,server2 在 同一目錄下創(chuàng)

9、建“nuwa:/cluster/myservice/server2”。當(dāng)客戶端使用遠(yuǎn)程過(guò)程調(diào)用的時(shí)候,首先列 舉女鍋服務(wù)中u nuwa: /cluster/ my service,f目錄下的文件,這樣就可以獲得serverl和server2,客戶 端隨后可以從屮選擇一個(gè)節(jié)點(diǎn)發(fā)出自己的請(qǐng)求,從而實(shí)現(xiàn)負(fù)載均衡。4. 2.遠(yuǎn)程過(guò)程調(diào)用(夸父)在分布式系統(tǒng)屮,不同計(jì)算機(jī)之間只能通過(guò)消息交換的方式進(jìn)行通信。s式的消息通信必須通過(guò) socket接口編程,而遠(yuǎn)程過(guò)程調(diào)用(remote procedure call,簡(jiǎn)稱rpc9)可以隱顯式的消息交換,使得程序員可以調(diào)用本地函數(shù)一樣來(lái)調(diào)用遠(yuǎn)程的服務(wù)。夸父(ku

10、afu)是飛天內(nèi)核中負(fù)貴網(wǎng)絡(luò)通信的模塊,它提供了一個(gè)rpc的接u,簡(jiǎn)化編寫(xiě)基于網(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ò)urt指定請(qǐng)求需要發(fā)送的rpc 服務(wù)端(rpc server)的地址,0前夸父支持兩種協(xié)議形式。tcp:例如,tcp:/fooserver01:9000nuwa:例如,nuwa:/nuwaol/eooserver與用流(stream)傳輸?shù)膖cp通信相比,夸父通信是以消息(message)為單位的,支持多種類型的 消息對(duì)象

11、,包拈標(biāo)準(zhǔn)字符串std: :string和基于td: :map實(shí)現(xiàn)的若干string鍵值對(duì)??涓竢pc同時(shí)支持異步(asynchronous)和同步(synchronous)的遠(yuǎn)程過(guò)程調(diào)用形式。異步調(diào)川:rpc函數(shù)調(diào)川吋不等接收到結(jié)果就會(huì)立即返冋;川戶必須通過(guò)顯式調(diào)用接收函數(shù)収得請(qǐng)求 結(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ò)帶

12、寬,系統(tǒng) 可以支持上千臺(tái)計(jì)算機(jī)之間的互聯(lián)需求。此外,夸父利川女?huà)z來(lái)實(shí)現(xiàn)負(fù)載均衡;對(duì)大塊數(shù)據(jù)的傳輸做了優(yōu) 化;與tcp類似,夸父代理之間還實(shí)現(xiàn)了發(fā)送端和接收端的流控(flow control)機(jī)制。4.3. 安全管理(鐘馗)鐘馗(zhongkui)是飛天a核屮負(fù)責(zé)安全管理的模塊,它提供了以用戶力單位的身份認(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è)指定的資

13、源(如目錄、文件、表 等)所具有的訪問(wèn)權(quán)限。用戶訪問(wèn)飛天系統(tǒng)的資源時(shí)必須持有capability,否則即視為非法。打個(gè)比方, 如果把capabi i ty理解力地鐵票,乘坐地鐵(對(duì)地鐵的一種訪問(wèn)方式)的時(shí)候必須要有capability,即 地鐵票。密鑰對(duì)是基于公開(kāi)密鑰方法的,包括一個(gè)私鑰和相對(duì)應(yīng)的公鑰。在飛天系統(tǒng)中,密鑰對(duì)用于數(shù)字簽名 服務(wù),以保證capability的不可偽造。換句話說(shuō),私鑰用于產(chǎn)生數(shù)字簽名(如簽發(fā)capabi lity),公鑰用 于驗(yàn)證數(shù)字簽名的有效性(如驗(yàn)證簽發(fā)過(guò)的capability的有效性)??紤]到網(wǎng)絡(luò)通信時(shí)任何通信節(jié)點(diǎn)都是不可信的,所以即使是飛天身模塊p、j部之間的

14、通信也同樣是需 要認(rèn)證和授權(quán)的,而且驗(yàn)證的機(jī)制也完全一樣。4.4. 分布式文件系統(tǒng)(盤(pán)古)盤(pán)古(pangu)是一個(gè)分布式文件系統(tǒng),盤(pán)古的設(shè)計(jì)fi標(biāo)是將大通用機(jī)器的存儲(chǔ)資源聚合在一起,為 用戶提供大規(guī)模、高可靠、高可用、高吞吐和可擴(kuò)展的存儲(chǔ)服務(wù),是飛天內(nèi)核中的一個(gè)重要組成部分。大規(guī)模:能夠支持?jǐn)?shù)十pb級(jí)的存儲(chǔ)大小(1pb = 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ù)的安

15、全存在。服務(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ǔ)的數(shù)據(jù)能夠自動(dòng) 遷移到新加入的節(jié)點(diǎn)上。同時(shí),盤(pán)古也能很好地支持在線應(yīng)用的低延時(shí)需求。在盤(pán)古系統(tǒng)中,文件系統(tǒng)的元數(shù)據(jù)存儲(chǔ)在多個(gè)主 服務(wù)器(master)上,文件a容存儲(chǔ)在大的塊服務(wù)器(chunk server)上??蛻舳顺绦蛟谑褂帽P(pán)古系統(tǒng) 時(shí),首先從主服務(wù)器獲取元數(shù)據(jù)信息(包拈接下來(lái)與哪些塊服務(wù)器交互),然后在塊服務(wù)器上

16、直接進(jìn)行數(shù) 據(jù)操作。由于元數(shù)據(jù)信息很小,大的數(shù)據(jù)交互是客戶端直接與塊服務(wù)器進(jìn)行的,因此盤(pán)古采用少的主服 務(wù)器來(lái)管理元數(shù)據(jù),并使川paxos協(xié)議15保證元數(shù)據(jù)的一致性。此外,塊大小被設(shè)置為64mb,進(jìn)一步 少了元數(shù)據(jù)的大小,因此可以將元數(shù)據(jù)全部放到內(nèi)存里,從而使得主服務(wù)器能夠處理大的并發(fā)請(qǐng)求。塊服務(wù)器負(fù)貴存儲(chǔ)大小為64mb的數(shù)據(jù)塊。在向文件寫(xiě)入數(shù)據(jù)之前,客戶端將建立到3個(gè)塊服務(wù)器的 連接,客戶向主副本(replica)寫(xiě)入數(shù)據(jù)以后,由主副本負(fù)責(zé)向其他副本發(fā)送數(shù)據(jù)。與直接由客戶端向 三個(gè)副本寫(xiě)入數(shù)據(jù)相比,這樣可以少客戶端的網(wǎng)絡(luò)帶寬使用。塊副本在放貫的時(shí)候,為保證數(shù)裾可用性 和最大化地使用網(wǎng)絡(luò)帶寬,

17、會(huì)將副本放置在不同機(jī)架上,并優(yōu)先考慮磁盤(pán)利用率低的機(jī)器。當(dāng)硬件故障或 數(shù)據(jù)不可用造成數(shù)據(jù)塊的副本數(shù)目達(dá)不到3份的時(shí)候,數(shù)據(jù)塊會(huì)被重新復(fù)制。為保證數(shù)據(jù)的完整性,整塊 數(shù)據(jù)在寫(xiě)入時(shí)會(huì)同時(shí)計(jì)算一個(gè)校驗(yàn)值,與數(shù)據(jù)同時(shí)寫(xiě)入磁盤(pán)。當(dāng)讀取數(shù)據(jù)塊的時(shí)候,塊服務(wù)器會(huì)再次計(jì)算 校驗(yàn)值與之前存入的值是否相同,如果不同就說(shuō)明數(shù)據(jù)出現(xiàn)了錯(cuò)誤,需要從其他副本重新讀取數(shù)據(jù)。在線應(yīng)用對(duì)盤(pán)古提出了與離線應(yīng)用不同的挑戰(zhàn):oss、ots要求低時(shí)延數(shù)據(jù)讀寫(xiě),ecs在要求低時(shí)延的 同時(shí)還需要具備隨機(jī)寫(xiě)的能力。針對(duì)這些需求,盤(pán)古實(shí)現(xiàn)了事務(wù)tl志文件和隨機(jī)訪問(wèn)文件,用以支撐在線 應(yīng)用。其中,円志文件通過(guò)多種方法對(duì)時(shí)延進(jìn)行了優(yōu)化,包拈設(shè)置更

18、高的優(yōu)先級(jí)、巾客戶端直接寫(xiě)多份拷 貝而不是用傳統(tǒng)的流水線方式、寫(xiě)入成功,不過(guò)master確認(rèn)等。隨機(jī)訪問(wèn)文件則允許用戶隨機(jī)讀寫(xiě),同 時(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ā)提供了一套編程基礎(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í)和資源搶

19、占,達(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)定可靠運(yùn)行完成;具有高可擴(kuò)展性,能夠根據(jù)數(shù)據(jù)分布優(yōu)化 網(wǎng)絡(luò)開(kāi)銷。伏羲中應(yīng)用了 “master/worker”工作模型。其中,master負(fù)貴進(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)(st

20、atus)。此外,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)資源搶占邏輯,可以說(shuō) 是6天的“大腦”。伏羲對(duì)資源調(diào)度是多維度的,可以根據(jù)cpu、n存等系統(tǒng)資源,以及應(yīng)用自定義的虛 擬資源對(duì)整個(gè)機(jī)群進(jìn)行資源分配和調(diào)度。土伯(tubo)是部署在臺(tái)由伏羲管理的機(jī)器上的后臺(tái)進(jìn)程,負(fù)貴收集并向伏羲master報(bào)告本機(jī)的 狀態(tài),包括系統(tǒng)資源的消耗、master或worke

21、r進(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負(fù)貴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)與

22、狀態(tài)監(jiān)控,處理相應(yīng)job master的資 源申請(qǐng)請(qǐng)求。job master根據(jù)用戶輸入的job述文件,將任務(wù)分解成一個(gè)或以上的task,雄個(gè)task的資 源申謂、task worker的調(diào)度和生命周期維護(hù)由task master負(fù)責(zé)。4.5.1. 在線服務(wù)調(diào)度在飛天內(nèi)核中,單個(gè)service都有一個(gè)service 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ù),并定期與伏羲

23、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)的分片,然后將不同分片給不同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)、卸載(

24、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的pipeline表 示前一個(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í)例的資

25、源需求,向伏羲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ī)制、長(zhǎng)尾instance的后備worker機(jī)制外, 伏羲還提供了快照(snapshot)機(jī)制??煺帐莟ask級(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.集

26、群監(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è)部分。master:負(fù)責(zé)管理所有神農(nóng)agent,并對(duì)外提供統(tǒng)一的接口來(lái)處理神農(nóng)用戶的訂閱(subscription) 請(qǐng)求,在集群中只有一個(gè)master。inspector:是部署在一臺(tái)機(jī)器上的進(jìn)程,負(fù)貴采集當(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寫(xiě)入的信息。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ù)裾(如當(dāng)前應(yīng)用的性能計(jì)數(shù)、機(jī)器10吞吐等)。神農(nóng)的用戶通過(guò)master來(lái)訪問(wèn)神農(nóng) 系統(tǒng),以數(shù)據(jù)訂閱(subscription)的方式獲取祌農(nóng)系統(tǒng)采集到的信息。神農(nóng)的monitorservice

溫馨提示

  • 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)論