• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 解密阿里云之飛天平臺內核(2)

    發表于:2013-12-25來源:博客園作者:不詳點擊數: 標簽:阿里云
    用戶的身份認證(Authentication)是基于密鑰機制的。 用戶對資源的訪問控制是基于權能(Capability)機制進行授權(Authorization)的。 Capability是用于訪問控制的一種

      用戶的身份認證(Authentication)是基于密鑰機制的。

      用戶對資源的訪問控制是基于權能(Capability)機制進行授權(Authorization)的。

      Capability是用于訪問控制的一種數據結構,它定義了對一個或多個指定的資源(如目錄、文件、表等)所具有的訪問權限。用戶訪問飛天系統的資源時必須持有Capability,否則即視為非法。打一個比方,如果把Capability理解為地鐵票,乘坐地鐵(對地鐵的一種訪問方式)的時候必須要有Capability,即地鐵票。

      密鑰對是基于公開密鑰方法的,包括一個私鑰和相對應的公鑰。在飛天平臺系統中,密鑰對用于數字簽名服務,以保證Capability的不可偽造。換句話說,私鑰用于產生數字簽名(如簽發Capability),公鑰用于驗證數字簽名的有效性(如驗證簽發過的Capability的有效性)。

      考慮到網絡通信時任何通信節點都是不可信的,所以即使是飛天自身模塊內部之間的通信也同樣是需要認證和授權的,而且驗證的機制也完全一樣。

      分布式文件系統(盤古)

      盤古(Pangu)是一個分布式文件系統,盤古系統的設計目標是將大量通用機器的存儲資源聚合在一起,為用戶提供大規模、高可靠、高可用、高吞吐量和可擴展的存儲服務,是飛天平臺內核中的一個重要組成部分。

      大規模:能夠支持數十PB量級的存儲大小(1PB=1000TB),總文件數量達到億量級。

      數據高可靠性:保證數據和元數據(Metadata)是持久保存并能夠正確訪問的,保證所有數據存儲在處于不同機架的多個節點上面(通常設置為3)。即使集群中的部分節點出現硬件和軟件故障,系統能夠檢測到故障并自動進行數據的備份和遷移,保證數據的安全存在。

      服務高可用性:保證用戶能夠不中斷地訪問數據,降低系統的不可服務時間。即使出現軟硬件的故障、異常和系統升級等情況,服務仍可正常訪問。

      高吞吐量:運行時系統I/O吞吐量能夠隨機器規模線性增長,保證響應時間。

      高可擴展性:保證系統的容量能夠通過增加機器的方式得到自動擴展,下線機器存儲的數據能夠自動遷移到新加入的節點上。

      同時,盤古系統也能很好地支持在線應用的低延時需求。在盤古系統中,文件系統的元數據存儲在多個主服務器(Master)上,文件內容存儲在大量的塊服務器(Chunk Server)上??蛻舳顺绦蛟谑褂帽P古系統時,首先從主服務器獲取元數據信息(包括接下來與哪些塊服務器交互),然后在塊服務器上直接進行數據操作。由于元數據信息很小,大量的數據交互是客戶端直接與塊服務器進行的,因此盤古系統采用少量的主服務器來管理元數據,并使用Paxos協議保證元數據的一致性。此外,塊大小被設置為64MB,進一步減少了元數據的大小,因此可以將元數據全部放到內存里,從而使得主服務器能夠處理大量的并發請求。

      塊服務器負責存儲大小為64MB的數據塊。在向文件寫入數據之前,客戶端將建立到3個塊服務器的連接,客戶向主副本(Replica)寫入數據以后,由主副本負責向其他副本發送數據。與直接由客戶端向3個副本寫入數據相比,這樣可以減少客戶端的網絡帶寬使用。塊副本在放置的時候,為保證數據可用性和最大化地使用網絡帶寬,會將副本放置在不同機架上,并優先考慮磁盤利用率低的機器。當硬件故障或數據不可用造成數據塊的副本數目不滿3份時,數據塊會被重新復制。為保證數據的完整性,每塊數據在寫入時會同時計算一個校驗值,與數據同時寫入磁盤。當讀取數據塊時,塊服務器會再次計算校驗值與之前存入的值是否相同,如果不同就說明數據出現了錯誤,需要從其他副本重新讀取數據。

      在線應用對盤古系統提出了與離線應用不同的挑戰:OSS、OTS要求低時延數據讀寫,ECS在要求低時延的同時還需要具備隨機寫的能力。針對這些需求,盤古系統實現了事務日志文件和隨機訪問文件,用于支撐在線應用。其中,日志文件通過多種方法對時延進行了優化,包括設置更高的優先級、由客戶端直接寫多份拷貝而不是用傳統的流水線方式、寫入成功不經過Master確認等。隨機訪問文件則允許用戶隨機讀寫,同時也應用了類似日志文件的時延優化技術。

      資源管理和任務調度(伏羲)

      伏羲(Fuxi)是飛天平臺內核中負責資源管理和任務調度的模塊,同時也為應用開發提供了一套編程基礎框架。伏羲同時支持強調響應速度的在線服務和強調處理數據吞吐量的離線任務。在伏羲中,這兩類應用分別簡稱為Service和Job。

      在資源管理方面,伏羲主要負責調度和分配集群的存儲、計算等資源給上層應用;管理運行在集群節點上任務的生命周期;在多用戶運行環境中,支持計算額度、訪問控制、作業優先級和資源搶占,在保證公平的前提下,達到有效地共享集群資源。

      在任務調度方面,伏羲面向海量數據處理和大規模計算類型的復雜應用,提供了一個數據驅動的多級流水線并行計算框架,在表述能力上兼容 MapReduce、Map-Reduce-Merge等多種編程模式;自動檢測故障和系統熱點,重試失敗任務,保證作業穩定可靠運行完成;具有高可擴展性,能夠根據數據分布優化網絡開銷。

      伏羲中應用了“Master/Worker”工作模型。其中,Master負責進行資源申請和調度、為Worker創建工作計劃(Plan)并監控Worker的生命周期,Worker負責執行具體的工作計劃并及時向Master匯報工作狀態(Status)。此外,Master支持多級模式,即一個Master可以隸屬于另外一個Master之下。

      伏羲Master負責整個集群資源管理和調度,處理Job/Service啟動、停止、Failover等生命周期的維護。同時伏羲 Master支持多用戶額度配置、Job/Service的多優先級設置和動態資源搶占邏輯,可以說是飛天平臺的“大腦”。伏羲對資源調度是多維度的,可以根據CPU、內存等系統資源,以及應用自定義的虛擬資源對整個機群進行資源分配和調度。

      土伯(Tubo)是部署在每臺由伏羲管理的機器上的后臺進程,負責收集并向伏羲Master報告本機的狀態,包括系統資源的消耗、Master 或Worker進程的運行、等待、完成和失敗事件,并根據伏羲Master或者Job/Service Master的指令,啟動或殺死指定的Master或Worker進程。同時土伯還負責對計算機健康狀況進行監控,對異常Worker(比如內存超用)進行及時的清理和匯報。

    原文轉自:http://kb.cnblogs.com/page/183553/

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>