詞語解釋
“網(wǎng)格”在通信中是指一種分布式的網(wǎng)絡(luò)架構(gòu),它將網(wǎng)絡(luò)中的節(jié)點分布在一個網(wǎng)格形狀的結(jié)構(gòu)中,每個節(jié)點都可以直接與其他節(jié)點進行通信。網(wǎng)格結(jié)構(gòu)的優(yōu)點是,它可以更有效地利用網(wǎng)絡(luò)資源,減少網(wǎng)絡(luò)延遲,提高網(wǎng)絡(luò)性能,同時也可以更好地保護網(wǎng)絡(luò)的安全性。 網(wǎng)格結(jié)構(gòu)在通信中的應(yīng)用非常廣泛,可以用于實現(xiàn)多種不同的功能。例如,它可以用于實現(xiàn)分布式系統(tǒng),實現(xiàn)路由和路由管理,實現(xiàn)網(wǎng)絡(luò)監(jiān)控,實現(xiàn)網(wǎng)絡(luò)安全性,實現(xiàn)網(wǎng)絡(luò)存儲,實現(xiàn)數(shù)據(jù)傳輸,實現(xiàn)網(wǎng)絡(luò)管理等等。 此外,網(wǎng)格結(jié)構(gòu)還可以用于實現(xiàn)虛擬網(wǎng)絡(luò),實現(xiàn)虛擬網(wǎng)絡(luò)的功能是將多個物理網(wǎng)絡(luò)連接在一起,從而實現(xiàn)網(wǎng)絡(luò)資源的有效利用。 此外,網(wǎng)格結(jié)構(gòu)還可以用于實現(xiàn)多種多樣的通信服務(wù),例如語音服務(wù),數(shù)據(jù)服務(wù),多媒體服務(wù),視頻服務(wù),即時通信服務(wù)等等。 最后,網(wǎng)格結(jié)構(gòu)還可以用于實現(xiàn)網(wǎng)絡(luò)計算,這是一種分布式計算模型,可以將多臺計算機組成一個分布式系統(tǒng),從而實現(xiàn)大規(guī)模的計算任務(wù)。 總之,網(wǎng)格結(jié)構(gòu)在通信中的應(yīng)用非常廣泛,它可以有效地利用網(wǎng)絡(luò)資源,提高網(wǎng)絡(luò)性能,同時也可以更好地保護網(wǎng)絡(luò)的安全性。 一.網(wǎng)格的產(chǎn)生 網(wǎng)格(Grid)這個詞來自于電力網(wǎng)格(PowerGrid)。“網(wǎng)格”與“電力網(wǎng)格”形神相似。一方面,計算機網(wǎng)縱橫交錯,很像電力網(wǎng);另一方面,電力網(wǎng)格用高壓線路把分散在各地的發(fā)電站連接在一起,向用戶提供源源不斷的電力。用戶只需插上插頭、打開開關(guān)就能用電,一點都不需要關(guān)心電能是從哪個電站送來的,也不需要知道是水力電、火力電還是核能電。建設(shè)網(wǎng)格的目的也是一樣,其最終目的是希望它能夠把分布在因特網(wǎng)上數(shù)以億計的計算機、存儲器、貴重設(shè)備、數(shù)據(jù)庫等結(jié)合起來,形成一個虛擬的、空前強大的超級計算機,滿足不斷增長的計算、存儲需求,并使信息世界成為一個有機的整體。 電網(wǎng)和網(wǎng)格對照表 電網(wǎng):當你用洗衣機洗衣服時,你只關(guān)心衣服什么時候洗好。而不在乎洗衣機用的電是來源于水力發(fā)電,火電廠還是核電。你只需要把插頭插入插座就行了。 網(wǎng)格:當你在電腦前工作時,你唯一關(guān)心的是要做的事(比如一項計算,設(shè)計等等)無論電腦連上什么網(wǎng)路,你都可以得到所需的計算能力出儲存容量。 電網(wǎng):我們現(xiàn)在用電的基礎(chǔ)建設(shè)是“電網(wǎng)“。就是利用輸電站,電力站,變電所和電線等等,把許多不同種類的發(fā)電廠和你家聯(lián)系起來。 網(wǎng)格:對于上述的基礎(chǔ)建設(shè)就叫“網(wǎng)格“。就是把電腦,工作站,服務(wù)器等計算資源連起來,而且提供必要的使用機制。 電網(wǎng):電網(wǎng)是顯而易見的:你不必擔(dān)心你所用的電力是從哪里或者如何產(chǎn)生的。 網(wǎng)格:網(wǎng)格也將成為顯而易見:你不必擔(dān)心你所使用的電腦程序和資料在那里,網(wǎng)格中間服務(wù)器都會把最適合的計算資源分配給你的工作。 電網(wǎng):電網(wǎng)很普遍:電力到處都有。只要插上插座就能獲得電力資源。 網(wǎng)格:網(wǎng)格也將很普遍:電腦,筆記本,或者是掌上電腦,手機,甚至是一般的家用電器都可以通過網(wǎng)格插口連 上網(wǎng)格。 電網(wǎng):電網(wǎng)是公共設(shè)施:你只要付錢就可以用電。 網(wǎng)格:網(wǎng)格也試圖想為廣大民眾服務(wù):只要付錢,都可以享用網(wǎng)格無窮無盡的計算資源和儲存能力 注:另一種說法是網(wǎng)格就像一個巨大的網(wǎng),里面有很多格子.每個格子就是一個局域網(wǎng)格,每個節(jié)點就是一臺計算機.這種說法可能起源于中國。 二.究竟什么是網(wǎng)格 網(wǎng)格是一種新興的技術(shù),正處在不斷發(fā)展和變化當中。目前學(xué)術(shù)界和商業(yè)界圍繞網(wǎng)格開展的研究有很多,其研究的內(nèi)容和名稱也不盡相同因而網(wǎng)格尚未有精確的定義和內(nèi)容定位。比如國外媒體常用“下一代互聯(lián)網(wǎng)”、“Internet2”、“下一代Web”等來稱呼網(wǎng)格相關(guān)技術(shù)。但“下一代互聯(lián)網(wǎng)(NGI)”和“Internet2”又是美國的兩個具體科研項目的名字,它們與網(wǎng)格研究目標相交叉,研究內(nèi)容和重點有很大不同。企業(yè)界用的名稱也很多,有內(nèi)容分發(fā)(Contents Delivery)、服務(wù)分發(fā)(Service Delivery)、電子服務(wù)(e-service)、實時企業(yè)計算(Real-Time Enterprise Computing,簡稱RTEC)、分布式計算Peer-to-Peer Computing(簡稱P2P)、Web服務(wù)(Web Services)等。中國科學(xué)院計算所所長李國杰院士認為,網(wǎng)格實際上是繼傳統(tǒng)互聯(lián)網(wǎng)、Web之后的第三次浪潮,可以稱之為第三代互聯(lián)網(wǎng)應(yīng)用。 網(wǎng)格是利用互聯(lián)網(wǎng)把地理上廣泛分布的各種資源(包括計算資源、存儲資源、帶寬資源、軟件資源、數(shù)據(jù)資源、信息資源、知識資源等)連成一個邏輯整體,就像一臺超級計算機一樣,為用戶提供一體化信息和應(yīng)用服務(wù)(計算、存儲、訪問等),虛擬組織最終實現(xiàn)在這個虛擬環(huán)境下進行資源共享和協(xié)同工作,徹底消除資源“孤島”,最充分的實現(xiàn)信息共享。 網(wǎng)格必須同時滿足三個條件:在非集中控制的環(huán)境中協(xié)同使用資源;使用標準的、開放的和通用的協(xié)議和接口;提供非平凡的服務(wù)。 三.網(wǎng)格技術(shù)的特征及其體系結(jié)構(gòu) 1.網(wǎng)格技術(shù)的特征 在介紹網(wǎng)格的特征之前,我們首先要解決一個重要的問題:網(wǎng)格是不是分布式系統(tǒng)?這個問題之所以必須回答,因為人們常常會問另一個相關(guān)的問題:"為什么我們需要網(wǎng)格?現(xiàn)在已經(jīng)有很多系統(tǒng)(比如海關(guān)報關(guān)系統(tǒng)、飛機訂票系統(tǒng))實現(xiàn)了資源共享與協(xié)同工作。這些系統(tǒng)與網(wǎng)格有什么區(qū)別?" 對這個問題的簡要回答是:網(wǎng)格是一種分布式系統(tǒng),但網(wǎng)格不同于傳統(tǒng)的分布式系統(tǒng)。IBM Global Service與EDS是在這個分布式領(lǐng)域最著名的公司。構(gòu)建分布式系統(tǒng)有三種方法:即傳統(tǒng)方法(我們稱之為EDS方法)、分布自律系統(tǒng)(Autonomous Decentralized Systems, ADS)方法,網(wǎng)格(grid)方法。ADS通常用于工業(yè)控制系統(tǒng)中。網(wǎng)格方法與傳統(tǒng)方法的區(qū)別見下表: 特征 傳統(tǒng)分布式系統(tǒng) 網(wǎng)格 開放性 需求和技術(shù)有一定確定性、封閉性 開放技術(shù)、開放系統(tǒng) 通用性 專門領(lǐng)域、專有技術(shù) 通用技術(shù) 集中性 很可能是統(tǒng)一規(guī)劃、集中控制 一般而言是自然進化、非集中控制 使用模式 常常是終端模式或C/S模式 服務(wù)模式為主 標準化 領(lǐng)域標準或行業(yè)標準 通用標準(+行業(yè)標準) 平臺性 應(yīng)用解決方案 平臺或基礎(chǔ)設(shè)施 通過以上對比,網(wǎng)格具有以下四點優(yōu)勢: 。1)資源共享,消除資源孤島:網(wǎng)格能夠提供資源共享,它能消除信息孤島、實現(xiàn)應(yīng)用程序的互連互通。網(wǎng)格與計算機網(wǎng)絡(luò)不同,計算機網(wǎng)絡(luò)實現(xiàn)的是一種硬件的連通,而網(wǎng)格能實現(xiàn)應(yīng)用層面的連通。 。2)協(xié)同工作:網(wǎng)格第二個特點是協(xié)同工作,很多網(wǎng)格結(jié)點可以共同處理一個項目。 (3)通用開放標準,非集中控制,非平凡服務(wù)質(zhì)量:這是Ian Foster最近提出的網(wǎng)格檢驗標準。網(wǎng)格是基于國際的開放技術(shù)標準,這跟以前很多行業(yè)、部門或者公司推出的軟件產(chǎn)品不一樣。 (4)動態(tài)功能,高度可擴展性:網(wǎng)格可以提供動態(tài)的服務(wù),能夠適應(yīng)變化。同時網(wǎng)格并非限制性的,它實現(xiàn)了高度的可擴展性。 2.網(wǎng)格的體系特征 網(wǎng)格之所以能有以上所說的種種優(yōu)勢特征,是由網(wǎng)格的體系結(jié)構(gòu)賦予它的。網(wǎng)格體系結(jié)構(gòu)的主要功能是劃分系統(tǒng)基本組件,指定組件的目的與功能,刻畫組件之間的相互作用,整合各部分組件?蒲泄ぷ髡咭呀(jīng)提出并實現(xiàn)了若干種合理的網(wǎng)格體系結(jié)構(gòu)。下面介紹目前影響比較廣泛的兩個網(wǎng)格體系結(jié)構(gòu):網(wǎng)格計算協(xié)議體系結(jié)構(gòu)(Grid Protocol Architecture,GPA)和計算經(jīng)濟網(wǎng)格體系結(jié)構(gòu)(GRACE)模型。 OGSA(Open Grid Services Architecture)被稱為是下一代的網(wǎng)格體系結(jié)構(gòu),它是在原來“五層沙漏結(jié)構(gòu)”的基礎(chǔ)上,結(jié)合最新的Web Service 技術(shù)提出來的。OGSA包括兩大關(guān)鍵技術(shù)即網(wǎng)格技術(shù)和Web Service 技術(shù)。 隨著網(wǎng)格計算研究的深入,人們越來越發(fā)現(xiàn)網(wǎng)格體系結(jié)構(gòu)的重要。網(wǎng)格體系結(jié)構(gòu)是關(guān)于如何建造網(wǎng)格的技術(shù),包括對網(wǎng)格基本組成部分和各部分功能的定義和描述,網(wǎng)格各部分相互關(guān)系與集成方法的規(guī)定,網(wǎng)格有效運行機制的刻畫。顯然,網(wǎng)格體系結(jié)構(gòu)是網(wǎng)格的骨架和靈魂,是網(wǎng)格最核心的技術(shù),只有建立合理的網(wǎng)格體系結(jié)構(gòu),才能夠設(shè)計和建造好網(wǎng)格,才能夠使網(wǎng)格有效地發(fā)揮作用。 OGSA最突出的思想就是以“服務(wù)”為中心。在OGSA框架中,將一切都抽象為服務(wù),包括計算機、程序、數(shù)據(jù)、儀器設(shè)備等。這種觀念,有利于通過統(tǒng)一的標準接口來管理和使用網(wǎng)格。Web Service提供了一種基于服務(wù)的框架結(jié)構(gòu),但是,Web Service 面對的一般都是永久服務(wù),而在網(wǎng)格應(yīng)用環(huán)境中,大量的是臨時性的短暫服務(wù),比如一個計算任務(wù)的執(zhí)行等。考慮到網(wǎng)格環(huán)境的具體特點,OGSA 在原來Web Service 服務(wù)概念的基礎(chǔ)上,提出了“網(wǎng)格服務(wù)(Grid Service)”的概念,用于解決服務(wù)發(fā)現(xiàn)、動態(tài)服務(wù)創(chuàng)建、服務(wù)生命周期管理等與臨時服務(wù)有關(guān)的問題。 基于網(wǎng)格服務(wù)的概念,OGSA 將整個網(wǎng)格看作是“網(wǎng)格服務(wù)”的集合,但是這個集合不是一成不變的,是可以擴展的,這反映了網(wǎng)格的動態(tài)特性。網(wǎng)格服務(wù)通過定義接口來完成不同的功能,服務(wù)數(shù)據(jù)是關(guān)于網(wǎng)格服務(wù)實例的信息,因此網(wǎng)格服務(wù)可以簡單地表示為“網(wǎng)格服務(wù)=接口/行為+服務(wù)數(shù)據(jù)”。 在目前,網(wǎng)格服務(wù)提供的接口還比較有限,OGSA 還在不斷的完善過程之中,下一步將考慮擴充管理、安全等等方面的內(nèi)容。 3.網(wǎng)格協(xié)議體系結(jié)構(gòu) Ian Foster于2001年提出了網(wǎng)格計算協(xié)議體系結(jié)構(gòu),認為網(wǎng)格建設(shè)的核心是標準化的協(xié)議與服務(wù),并與Internet網(wǎng)絡(luò)協(xié)議進行類比(如圖1)。該結(jié)構(gòu)主要包括以下五個層次: 構(gòu)造層(Fabric):控制局部的資源。由物理或邏輯實體組成,目的是為上層提供共享的資源。常用的物理資源包括計算資源、存儲系統(tǒng)、目錄、網(wǎng)絡(luò)資源等;邏輯資源包括分布式文件系統(tǒng)、分布計算池、計算機群等。構(gòu)造層組件的功能受高層需求影響,基本功能包括資源查詢和資源管理的QoS保證。 連接層(Connectivity):支持便利安全的通信。該層定義了網(wǎng)格中安全通信與認證授權(quán)控制的核心協(xié)議。資源間的數(shù)據(jù)交換和授權(quán)認證、安全控制都在這一層控制實現(xiàn)。該層組件提供單點登錄、代理委托、同本地安全策略的整合和基于用戶的信任策略等功能。 資源層(Resource):共享單一資源。該層建立在連接層的通信和認證協(xié)議之上,滿足安全會話、資源初始化、資源運行狀況監(jiān)測、資源使用狀況統(tǒng)計等需求,通過調(diào)用構(gòu)造層函數(shù)來訪問和控制局部資源。 匯集層(Collective):協(xié)調(diào)各種資源。該層將資源層提交的受控資源匯集在一起,供虛擬組織的應(yīng)用程序共享和調(diào)用。該層組件可以實現(xiàn)各種共享行為,包括目錄服務(wù)、資源協(xié)同、資源監(jiān)測診斷、數(shù)據(jù)復(fù)制、負荷控制、賬戶管理等功能。 應(yīng)用層(Application):為網(wǎng)格上用戶的應(yīng)用程序?qū)。?yīng)用層是在虛擬組織環(huán)境中存在的。應(yīng)用程序通過各層的應(yīng)用程序編程接口(API)調(diào)用相應(yīng)的服務(wù),再通過服務(wù)調(diào)動網(wǎng)格上的資源來完成任務(wù)。為便于網(wǎng)格應(yīng)用程序的開發(fā),需要構(gòu)建支持網(wǎng)格計算的大型函數(shù)庫。 4. 當今網(wǎng)格的運用 現(xiàn)在國內(nèi)國外運用得最多的可能是在一些大型院校的計算網(wǎng)格(實現(xiàn)計算資源的共享。 什么是計算資源: 簡單來說就是計算能力,CPU。 計算資源共享就是CPU計算的共享)。人們把一個集群(cluster, 也就是常說的機房,通常有幾十臺操作系統(tǒng)為Linux的計算機)的計算機連成一個局域型網(wǎng)格。這樣就好像把這幾十臺電腦連成了一臺超級計算機,計算能力當然大大提高了。這種局域計算網(wǎng)格主要運用于一些科研的研究。比如說生物科學(xué)。當生物科學(xué)的研究員需要高性能的計算資源來幫助他們分析試驗的結(jié)果時,他們就把這些分析試驗的程序提交(submit)給網(wǎng)格,網(wǎng)格通過計算再把結(jié)果返回給這些研究員。計算結(jié)果可能是一些圖像(rendering)也可能是一些數(shù)據(jù)。這些計算如果在單一PC(Personal computer, 個人計算機)上運行的話,往往會花費幾個月的時間,然而在網(wǎng)格中運行一,兩天也就完成了。這就是網(wǎng)格技術(shù)最直觀的優(yōu)點之一。當然現(xiàn)在有一些大型主機(super-mainframe)也有很強的計算能力(比如常說的IBM deepblue,打敗人類圍棋大師Kasparov那位),但是這種主機太昂貴,而且配置(deploy)往往不方便,是名副其實的重量級(heavyweight)計算。SETI@Home (SETI@Home's,一個分布式計算的項目,通過互聯(lián)網(wǎng)絡(luò)上的計算機搜索地球外智慧訊息,網(wǎng)格在分布式計算的成功運用。 參見:http://www.equn.com/info/n-18.html )的網(wǎng)站指出,世界上最強大的計算機IBM 的 ASCI White,可以實現(xiàn)12萬億次的浮點運算,但是花費了1億千萬美元;然而SETI@HOME 只用了50萬美元卻實現(xiàn)了15萬億次浮點運算。 網(wǎng)格另外一個顯著的運用可能就是虛擬組織(Virtual Organisations)。這種虛擬組織往往是針對與某一個特定的項目,或者是某一類特定研究人員。在這里面可以實現(xiàn)計算資源、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源的全面共享。比如說中國2008年奧運會開幕式研究組就可以運用網(wǎng)格組成一個虛擬組織。在這個虛擬組織里,任何成員不管在哪個地方都可以有權(quán)訪問組織的共享資源(如 開幕式場地圖紙,開幕式資金,開幕式節(jié)目單);而且可以和另一地方的虛擬組織成員進行交流。這個虛擬組織就像把所有奧運會開幕式的資源,信息,以及人員集中到了一個虛擬的空間,讓人們集中精力研討開幕式項目的問題,而不必考慮其他的問題。據(jù)個實例,由英國利茲大學(xué),牛津大學(xué),約克大學(xué)和謝菲爾德大學(xué)合作的DAME項目就是致力于研究和運用虛擬組織。DAME架構(gòu)在這四個大學(xué)合建的白玫瑰網(wǎng)格White Rose Computational Grid (WRCG)上,運用于對飛機故障的快速檢測和維修。 5.網(wǎng)格基礎(chǔ)設(shè)施組件 首先,我們來看看有哪些典型的網(wǎng)格基礎(chǔ)設(shè)施組件,每一種組件如何對應(yīng)用程序的架構(gòu)、設(shè)計和部署產(chǎn)生影響。下面是網(wǎng)格基礎(chǔ)設(shè)施中的一些主要組件: 安全性。安全性是網(wǎng)格計算中的重要問題。每一種網(wǎng)格資源都可能需要遵從多種不同的安全策略。單點登錄認證是一種必不可少的方法。得到普遍遵守的協(xié)商授權(quán)機制也是很必要的。 資源管理。當提交一項任務(wù)的時候,網(wǎng)格資源管理器需要考慮如何為該任務(wù)指派資源、如何監(jiān)視其狀態(tài)以及如何返回它的執(zhí)行結(jié)果。 信息服務(wù)。由于網(wǎng)格資源管理器在指派資源之前要經(jīng)過綜合全面的考慮,因此它需要知道哪些網(wǎng)格資源是可用的,以及這些資源的容量與當前使用的情況。這些有關(guān)網(wǎng)格資源的知識是通過網(wǎng)格信息服務(wù)(Grid Information Service,GIS)維護和提供的,又稱為監(jiān)視與發(fā)現(xiàn)服務(wù)(Monitoring and Discovery Service,MDS)。 數(shù)據(jù)管理。數(shù)據(jù)管理主要解決任務(wù)如何傳輸數(shù)據(jù)以及如何訪問共享存儲的問題。 下面讓我們以Globus Toolkit為例分別詳細討論一下每一種組件。 安全性 如果您是一名用戶,要在遠程系統(tǒng)上運行一項任務(wù),您會關(guān)心遠程系統(tǒng)是否安全,是否能保證其他人不能訪問到您的數(shù)據(jù)。如果您是提供資源的一方,用戶可以在您的系統(tǒng)中執(zhí)行任務(wù),那么您必須確信所有的任務(wù)都不會遭到破壞和干擾,也不能訪問您系統(tǒng)中的其他私有數(shù)據(jù)。除了這兩方面的內(nèi)容之外,網(wǎng)格環(huán)境也面臨著一般分布式計算環(huán)境中存在的其他所有安全問題。 網(wǎng)格安全基礎(chǔ)設(shè)施(Grid Security Infrastructure,GSI)是 Globus Toolkit 的基礎(chǔ),它提供了很多工具,可以幫助我們對網(wǎng)格環(huán)境中的安全問題進行管理。在您開發(fā)面向網(wǎng)格環(huán)境的應(yīng)用程序時,您的腦子里必須時刻考慮到安全問題,并用 GSI 提供的工具來解決這些問題。網(wǎng)格架構(gòu)中與安全性有關(guān)的功能主要負責(zé)完成認證、授權(quán)以及實現(xiàn)網(wǎng)格資源之間的安全通信。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:安全性。當我們設(shè)計一個能夠使用網(wǎng)格的應(yīng)用程序時,安全性問題必須考慮在內(nèi)。下面的列表總結(jié)了需要考慮的一些問題: 單點登錄?缦到y(tǒng)的 ID 映射。如上所述,GSI 提供了認證、授權(quán)以及安全的通信。然而,您需要對安全性管理及其含義有深刻完整的理解。比如說:您是否可以將多個用戶映射到目標系統(tǒng)中的同一個用戶 ID 上?是否需要特定的審計機制來確定實際發(fā)起應(yīng)用程序的是哪一個用戶?應(yīng)用程序不應(yīng)該要求在使用網(wǎng)格上的不同資源時使用不同的用戶 ID 映射機制。 多種平臺。盡管 GSI 基于開放的標準化軟件,可以在多種平臺上運行,然而各種不同的平臺其底層的安全機制并不總是一致。比如說,在傳統(tǒng)的 UNIX 或基于 Linux 的系統(tǒng)上,讀、寫、執(zhí)行等操作的安全機制就與微軟的 Windows 環(huán)境不同。您應(yīng)該考慮應(yīng)用程序可能運行的平臺。 使用 GSI。對于任何應(yīng)用程序特有的、且可能需要進行認證或特殊授權(quán)的功能而言,應(yīng)用程序的設(shè)計應(yīng)該使用 GSI,這樣能夠簡化開發(fā),并通過維護單一的登錄機制,使用戶的體驗也得到簡化。 數(shù)據(jù)加密。盡管 GSI 與后文將要討論到的數(shù)據(jù)管理工具一起,提供了跨網(wǎng)絡(luò)的安全通信與數(shù)據(jù)加密,但是您也應(yīng)該考慮到,當數(shù)據(jù)到達目的地的時候會發(fā)生什么事情。比如說,如果一些敏感的數(shù)據(jù)傳遞到某項資源上供任務(wù)使用,隨后又以非加密的格式保存到本地磁盤上,那么其他的用戶或應(yīng)用程序也就能訪問這些數(shù)據(jù)了。 資源管理 網(wǎng)格資源管理器致力于在任務(wù)提交時進行資源指派。它的角色就像是異質(zhì)網(wǎng)格資源的抽象接口。資源管理組件提供的工具可以將任務(wù)分配給特定的資源,可以提供一種手段,在任務(wù)運行過程中獲取任務(wù)狀態(tài)信息,并獲取任務(wù)完成的信息,還可以提供終止任務(wù)或?qū)ζ溥M行管理的能力。在 Globus 中,遠程任務(wù)提交是由 Globus Resource Allocation Manager(GRAM)負責(zé)處理的。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:資源管理。在與資源管理相關(guān)的應(yīng)用程序架構(gòu)、設(shè)計和部署方面,有一些問題需要考慮。GRAM 最簡單的形式是用于發(fā)出 globusrun 命令,在特定系統(tǒng)上發(fā)起一項任務(wù)。然而,應(yīng)用程序必須與 MDS 一起(通常是通過一個代理函數(shù))保證使用了適當?shù)哪繕速Y源。下面列出一些需要考慮的內(nèi)容: 選擇適當?shù)馁Y源。通過與代理聯(lián)合工作,來保證選擇適當?shù)哪繕速Y源。這就要求應(yīng)用程序能夠正確地指定所需的環(huán)境(操作系統(tǒng)、處理器、速度、內(nèi)存,等等)。您為排除特定的依賴關(guān)系付出的努力越多,找到可用資源完成任務(wù)的機率也就越高。 多子任務(wù)。如果應(yīng)用程序中包含多個任務(wù),您必須理解(并降低)它們之間的相互依賴關(guān)系。否則,您就不得不構(gòu)建一段邏輯來處理下面這些問題: 進程間通信 數(shù)據(jù)共享 并行任務(wù)提交 訪問任務(wù)的執(zhí)行結(jié)果。 如果一項任務(wù)返回的是一個簡單的狀態(tài)值,或是輸出數(shù)據(jù)量很少,那么應(yīng)用程序可以僅僅通過 stdout 和 stderr 來獲取這些數(shù)據(jù)。要是必須獲取相當復(fù)雜的結(jié)果,這時就可能需要將結(jié)果寫入一個文件,并通過適當?shù)墓ぞ撸┠繕藱C獲取/傳輸這個文件。 任務(wù)管理。GRAM 提供了查詢?nèi)蝿?wù)狀態(tài)的機制,還可以執(zhí)行諸如終止任務(wù)之類的操作。應(yīng)用程序可能會在必要的時候使用這些功能為用戶提供反饋、清除或釋放資源的操作。比如說,如果應(yīng)用程序內(nèi)有一項任務(wù)失敗了,其他依賴于這項任務(wù)的結(jié)果的任務(wù)可能就需要終止,以免無端消耗過多資源。 信息服務(wù) 信息服務(wù)是網(wǎng)格基礎(chǔ)設(shè)施中至關(guān)重要的組件。它們維護了關(guān)于資源可用性、處理能力、當前使用情況的知識。不論在哪個網(wǎng)格中,CPU 和數(shù)據(jù)資源的情況都是不斷變動的,這種變動與其處理任務(wù)與共享數(shù)據(jù)的能力有關(guān)。隨著網(wǎng)格中的資源不斷被釋放,資源的狀態(tài)可以在網(wǎng)格信息服務(wù)中得到更新?蛻魴C、代理、網(wǎng)格資源管理器等等綜合這部分信息來進行資源的指派。信息服務(wù)提供方是指那些為目錄提供資源狀態(tài)信息的程序。下面列出一些如何收集信息的實例: 靜態(tài)主機信息。 操作系統(tǒng)名稱、版本號、處理器提供商/類型/版本/速率/緩存大小、處理器數(shù)量、物理內(nèi)存總量、虛存總量、設(shè)備、服務(wù)類型/協(xié)議/端口號等。 動態(tài)主機信息。 負載水平、隊列入口等。 存儲系統(tǒng)信息。 磁盤空間總量、可用磁盤容量等。 網(wǎng)絡(luò)信息。 網(wǎng)絡(luò)帶寬、延遲、是否可測量與可預(yù)報。 高度動態(tài)的信息。 空閑物理內(nèi)存,空閑虛擬內(nèi)存、空閑處理器數(shù)量等。 網(wǎng)格信息服務(wù),又稱為監(jiān)視與發(fā)現(xiàn)服務(wù),在 Globus 中負責(zé)提供信息服務(wù)。MDS 使用輕量級目錄訪問協(xié)議(Lightweight Directory Access Protocol,LDAP)作為訪問資源信息的接口。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:信息服務(wù)。對信息服務(wù)來說,需要考慮下面這些問題: 必須完全理解特定任務(wù)的需求,這樣才能對查詢進行正確地格式化,以返回適當?shù)馁Y源。這一點非常重要。 必須保證 MDS 中保存有適當?shù)男畔ⅰT?MDS 中,缺省情況下包含大量關(guān)于網(wǎng)格中所含資源的數(shù)據(jù)。不過,如果您的應(yīng)用程序要求使用特定的資源或信息,而缺省情況下沒有提供,您就需要編寫您自己的信息提供方,并把適當?shù)馁Y源加入模式中。這樣,您的應(yīng)用程序或代理就可以進行查詢,看特定的資源或請求是否已經(jīng)存在。 MDS 可以用匿名帳號訪問,或是經(jīng)由一臺已經(jīng)通過 GSI 認證的代理來訪問。應(yīng)用程序開發(fā)人員需要保證,能夠在必要的時候通過一臺經(jīng)過認證的代理。您的網(wǎng)格環(huán)境可能具有多級別的目錄結(jié)構(gòu)。根據(jù)環(huán)境及其拓撲的復(fù)雜程度不同,您應(yīng)該保證能夠訪問適當?shù)哪夸,在其中搜索您所要求的資源。 數(shù)據(jù)管理 當您在構(gòu)建網(wǎng)格的時候,網(wǎng)格中最重要的資產(chǎn)就是您的數(shù)據(jù)。在您的設(shè)計當中,您將必須確定您對數(shù)據(jù)的需求,以及如何在整個基礎(chǔ)設(shè)施中移動數(shù)據(jù),要么就是如何用一種安全有效的方式訪問所需的數(shù)據(jù)。您可以通過一組標準化的網(wǎng)格協(xié)議與您設(shè)計的任何數(shù)據(jù)資源進行通信。您也可以選擇構(gòu)建一個聯(lián)邦數(shù)據(jù)庫,創(chuàng)建一個虛擬的數(shù)據(jù)存儲。還有其他一些選擇,如存儲區(qū)域網(wǎng)(Srorage Area Network)、網(wǎng)絡(luò)文件系統(tǒng),以及專用的存儲服務(wù)器等。 Globus 為網(wǎng)格環(huán)境提供了 GridFTP 和 Global Access to Secondary Storage(GASS)兩種數(shù)據(jù)傳輸機制。此外,它還提供了一種復(fù)制管理機制,可以幫助您管理和訪問數(shù)據(jù)集的副本。在應(yīng)用程序中啟用網(wǎng)格時的考慮:數(shù)據(jù)管理。數(shù)據(jù)管理問題源自如何最大化地使用有限的存儲空間、網(wǎng)絡(luò)帶寬、計算資源等。下面列出一些在應(yīng)用程序設(shè)計和實現(xiàn)中需要考慮的數(shù)據(jù)管理問題: 數(shù)據(jù)集的大小。對于大的數(shù)據(jù)集來說,要想將它移動到實際運行任務(wù)的系統(tǒng)上是不現(xiàn)實,甚至是不可能的?赡艿慕鉀Q方案是使用數(shù)據(jù)復(fù)制、或?qū)⑼暾麛?shù)據(jù)集的一個子集拷貝到目標系統(tǒng)中。地理上分散的用戶、數(shù)據(jù)、計算以及存儲資源。如果您的目標網(wǎng)格在地理上是分散的,網(wǎng)絡(luò)連接的速度也有限,那么您在設(shè)計的時候就必須考慮到如何進行慢速和受限的數(shù)據(jù)訪問。 在廣域網(wǎng)上進行數(shù)據(jù)傳輸。當您要在 Internet 或者其他的 WAN 上移動數(shù)據(jù)時,必須考慮安全性、可靠性以及性能等問題。您必須構(gòu)建一些必要的邏輯來處理數(shù)據(jù)訪問速度慢,甚至被阻斷的情況。數(shù)據(jù)傳輸?shù)恼{(diào)度。下面兩種情況至少要考慮一種:第一個是數(shù)據(jù)傳輸?shù)恼{(diào)度,這樣當需要某項數(shù)據(jù)的時候數(shù)據(jù)就在它適當?shù)奈恢蒙狭恕1热缯f,如果數(shù)據(jù)傳輸需要進行一個小時,而使用這項數(shù)據(jù)的任務(wù)必須在凌晨兩點鐘開始運行,那么您就應(yīng)該提前對數(shù)據(jù)傳輸進行調(diào)度,這樣,當需要它的任務(wù)運行的時候,數(shù)據(jù)就是可用的了。第二個是了解進出任何一項資源的任何并發(fā)文件傳輸?shù)臄?shù)量與規(guī)模。 選擇數(shù)據(jù)副本。如果您使用 Globus Data Replication 服務(wù),也許想向應(yīng)用程序中增加一段選擇適當副本的邏輯,也就是說,您想要選擇一個包含所需數(shù)據(jù)的副本,同時還要滿足您對性能的要求。 調(diào)度器 Globus Toolkit 沒有提供任務(wù)調(diào)度器,也沒有提供元任務(wù)調(diào)度器(meta-scheduler)。不過,有一些任務(wù)調(diào)度器已經(jīng)和 Globus 集成起來了,還有一些也可以集成進來。 在網(wǎng)格中,任務(wù)調(diào)度與負載平衡是十分重要的功能。大多數(shù)網(wǎng)格系統(tǒng)中都包括某種任務(wù)調(diào)度軟件。這種軟件可以查找到某臺機器的位置,并在上面執(zhí)行用戶提交的網(wǎng)格任務(wù)。有些調(diào)度器實現(xiàn)了按照任務(wù)優(yōu)先級進行調(diào)度的系統(tǒng)。優(yōu)先級的實現(xiàn)方式有時是使用多個任務(wù)隊列,其中每一個隊列都代表不同的優(yōu)先級。當網(wǎng)格計算機可以執(zhí)行任務(wù)的時候,就從優(yōu)先級最高的隊列中取出第一個任務(wù)。通過調(diào)度器還可以實現(xiàn)各種不同類型的策略。策略中可以包含多種對任務(wù)、用戶、以及資源的約束。比如說,可能有一種策略限制在一天的某些特定時間執(zhí)行網(wǎng)格任務(wù)。 調(diào)度器通常會對實時網(wǎng)格負載做出反應(yīng)。它們在提交任務(wù)之前,會用反映當前機器使用情況的量測信息來確定哪些機器不忙。調(diào)度器可以組織成層次結(jié)構(gòu)。比如說,元調(diào)度器將任務(wù)提交給群集調(diào)度器,或其他低層調(diào)度器,而不直接提交給獨立的計算機。更高級些的調(diào)度器可以對所調(diào)度的任務(wù)的執(zhí)行過程進行監(jiān)視,從而對整體工作流實施管理。如果由于系統(tǒng)或網(wǎng)絡(luò)的原因而導(dǎo)致一些任務(wù)丟失,好的調(diào)度器會自動在別的地方重新提交任務(wù)。然而,如果某個任務(wù)進入死循環(huán),運行的時間超過了某個最大時間,那么這樣的任務(wù)就不應(yīng)該再重新調(diào)度了。典型情況下,各種任務(wù)具有不同類型的結(jié)束代碼,其中一些結(jié)束代碼適合于用于重新提交任務(wù),而另一些則不適合。 我們通過一個預(yù)約系統(tǒng)可以實現(xiàn)在網(wǎng)格中提前保留資源。這種機制不僅僅是調(diào)度器。它首先是一種基于日歷的系統(tǒng),可以在特定的時間段內(nèi)保留資源,防止其他任務(wù)在同一時間內(nèi)使用該資源。它還必須能在預(yù)約的時間到達的時候?qū)⑷我鈾C器或資源上正在執(zhí)行的任務(wù)刪除或掛起。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:調(diào)度器。當您為網(wǎng)格環(huán)境啟用應(yīng)用程序的時候,需要考慮一些與調(diào)度有關(guān)的問題。下面列出其中一些: 數(shù)據(jù)管理。意思是保證當所調(diào)度的任務(wù)運行時具備可用的數(shù)據(jù)。如果需要將數(shù)據(jù)移動到待執(zhí)行的節(jié)點上,那么我們還需要對數(shù)據(jù)的移動操作也進行調(diào)度。 通信。任何相關(guān)任務(wù)的進程間通信都要求對任務(wù)進行并行調(diào)度。 調(diào)度器的作用域。在具有多個調(diào)度器(如具備元調(diào)度器)的環(huán)境中,要協(xié)調(diào)并發(fā)任務(wù),或保證特定的任務(wù)在指定的時間執(zhí)行,這些工作的復(fù)雜程度很高,當不同的調(diào)度器具有不同的作用域時,情況就更加復(fù)雜。 調(diào)度策略。調(diào)度可以有不同的實現(xiàn)目標。 面向應(yīng)用程序——調(diào)度的優(yōu)化目標是實現(xiàn)最佳運行時間。 面向系統(tǒng)——調(diào)度的優(yōu)化目標是實現(xiàn)最大吞吐量。任務(wù)可能不會立即開始。在執(zhí)行的過程中也可能被終端或搶占。也可以將任務(wù)調(diào)度為通宵執(zhí)行。 網(wǎng)格信息服務(wù)。調(diào)度器和信息服務(wù)之間的交互可能十分復(fù)雜。比如說,如果在任務(wù)實際運行之前通過 MDS 找到了某項資源,然后,我們可以假設(shè)在任務(wù)實際運行之前該資源的狀態(tài)不會發(fā)生變化;蛘呶覀兛梢越⒁环N預(yù)測能力更強的機制,提前預(yù)測資源狀態(tài)可能發(fā)生的變化,從而提前做出調(diào)度決定。 資源代理。通常情況下,資源代理必須與調(diào)度器接口。 負載平衡。負載平衡問題是由于工作負載在網(wǎng)格系統(tǒng)資源中的分散特性所引起的。盡管 Globus Toolkit 沒有提供負載平衡的功能,而在某些特定環(huán)境中,負載平衡服務(wù)卻是必需的特性。當作業(yè)被提交到網(wǎng)格任務(wù)管理器中時,工作負載可以通過推模式(push model)、拉模式(pull model)或組合模式(combined model)進行分布。推模式的簡單實現(xiàn)是通過循環(huán)的方式將任務(wù)發(fā)送到網(wǎng)格資源上。然而,這個模型沒有考慮到任務(wù)隊列的長度。如果每一個網(wǎng)格資源上都發(fā)送到相同數(shù)目的任務(wù),那么在速度較慢的機器上會形成較長的任務(wù)隊列,而一個長時間運行的任務(wù)在不受到細心監(jiān)視的情況下可能阻塞其他的任務(wù),使之根本無法啟動。對于這個問題,一種解決方案是使用加權(quán)循環(huán)的方案。 在拉模式中,網(wǎng)格資源從任務(wù)隊列中獲取任務(wù)。在這樣的模式下,任務(wù)隊列的同步化與串行化就成為協(xié)調(diào)多個網(wǎng)格資源的任務(wù)獲取的必要手段。本地及全局任務(wù)隊列的策略也是可行的。在本地拉模式策略中,每一組網(wǎng)格資源都指派為從一個本地任務(wù)隊列獲取任務(wù)。在全局拉模式策略中,所有的網(wǎng)格資源都被指派使用同一個任務(wù)隊列。本地拉模式的優(yōu)勢在于能夠?qū)W(wǎng)格資源進行分片。比如說,離數(shù)據(jù)比較接近的,或相互有關(guān)的,或要求使用相似資源的某些任務(wù),都可以用這種方法進行控制。 推模式和拉模式的組合模式可以解決前面提到的一些問題。每一個網(wǎng)格資源可以決定何時能接收更多的工作,并向網(wǎng)格任務(wù)服務(wù)器發(fā)送工作請求。然后,任務(wù)服務(wù)器就向其發(fā)送新的工作。 在這兩種負載平衡模式下,都需要考慮故障恢復(fù)的條件。我們需要檢測出哪些網(wǎng)格資源已經(jīng)無法繼續(xù)操作了,在推模式中,不能把新的工作發(fā)送給已經(jīng)失效的資源。此外,無論是在推模式還是在拉模式中,我們必須細心控制所有已經(jīng)提交的但尚未完成的任務(wù)。失效主機上的所有未完成任務(wù)都需要進行重新分配,或者由同一組中的其他可運行主機接管過來。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:負載平衡。當您為網(wǎng)格環(huán)境啟用應(yīng)用程序的時候,還需要考慮與負載平衡有關(guān)的設(shè)計問題。應(yīng)用程序設(shè)計和開發(fā)人員需要理解目前的負載平衡機制是什么樣子(手工、推、拉、或是某種混合模式),這會對應(yīng)用程序,特別是它的性能和運行時間產(chǎn)生影響。如果應(yīng)用程序中具有大量獨立的任務(wù),每一個都可能受到負載平衡系統(tǒng)的影響或控制,那么這樣的應(yīng)用程序就可以從網(wǎng)格整體性能和吞吐量的提高當中獲益,不過這個應(yīng)用程序也可能需要建立更加復(fù)雜的機制,以便處理將任務(wù)延遲、或在整個網(wǎng)格內(nèi)移動任務(wù)所帶來的復(fù)雜性問題。 代理。在網(wǎng)格環(huán)境中,代理的職責(zé)非常重要。在很多網(wǎng)格環(huán)境中都可能需要實現(xiàn)這個組件,而實現(xiàn)它的方法可以相對簡單,也可能十分復(fù)雜。代理的基本職責(zé)是在服務(wù)請求者和服務(wù)提供者之間提供匹配服務(wù)。在網(wǎng)格環(huán)境中,服務(wù)請求者可能是應(yīng)用程序,也可能是被提交執(zhí)行的任務(wù)。服務(wù)提供者就是網(wǎng)格資源。 Globus 工具箱并沒有提供代理的功能。不過它通過監(jiān)視與發(fā)現(xiàn)服務(wù)(MDS)提供了網(wǎng)格信息服務(wù)。您可以對 MDS 進行查詢,從而發(fā)現(xiàn)主機、計算機和網(wǎng)絡(luò)的屬性,如當前可用處理器個數(shù)、所提供的帶寬以及可用的存儲類型等等。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:代理。當您設(shè)計在網(wǎng)格環(huán)境中運行的應(yīng)用程序時,很重要的一點是理解資源是如何被發(fā)現(xiàn)和分配的?赡苄枰獞(yīng)用程序告訴代理它的資源要求是什么,這樣代理就可以保證給這個應(yīng)用程序分配適當?shù)馁Y源。 進程間通信(IPC)網(wǎng)格系統(tǒng)中可能包含幫助任務(wù)之間相互通信的軟件。比如說,應(yīng)用程序可能會將自身劃分為大量的子任務(wù)。這些子任務(wù)當中的每一個都是網(wǎng)格中的一個獨立的任務(wù)。不過,應(yīng)用程序的算法可能要求子任務(wù)之間相互通信,傳遞一些信息。這些子任務(wù)要能夠定位其他特定的子任務(wù),與之建立通信連接,并發(fā)送適當?shù)臄?shù)據(jù)。消息傳遞接口(Message Passing Interface,MPI)是一項開放標準,它及其若干變種經(jīng)常作為網(wǎng)格系統(tǒng)的一部分來解決諸如此類的問題。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:IPC。在任務(wù)之間進行進程間通信的需求總是會增加應(yīng)用程序的復(fù)雜程度,因此只要有可能,您就應(yīng)該將這種通信減到最少。然而,在大規(guī)模的復(fù)雜應(yīng)用程序中,進程間通信通常是不可避免的。在這種情況下,您應(yīng)該充分理解可用的 IPC 機制,并將失敗或通信速度變慢帶來的影響降到最低,這樣有助于保證整個應(yīng)用程序的成功。 非功能性需求 下面我們將討論一些與基礎(chǔ)設(shè)施有關(guān)的其他問題。這些問題被稱為非功能性需求,是因為它們與網(wǎng)格中某項特定的功能單元沒有關(guān)系,如任務(wù)管理、代理等。 性能 當您考慮在網(wǎng)格環(huán)境中啟用應(yīng)用程序時,網(wǎng)格的性能以及應(yīng)用程序?qū)π阅艿囊蟊仨毐豢紤]在內(nèi)。服務(wù)請求者對服務(wù)的質(zhì)量比較感興趣,如可接受的運行時間等。當然了,如果您要構(gòu)建一個網(wǎng)格及一個或多個應(yīng)用程序,用來在網(wǎng)格中提供服務(wù),那么服務(wù)提供者也希望能最大程度地利用網(wǎng)格中的功能和吞吐量。 可靠性 可靠性是計算領(lǐng)域內(nèi)永恒的話題,網(wǎng)格環(huán)境也不例外。實現(xiàn)這一難題最好的方法是預(yù)見所有可能出現(xiàn)的失敗情況,并提供解決這些情況的手段。最可靠的方法能夠“容納異常情況的出現(xiàn)”(surprise tolerant)。網(wǎng)格計算的基礎(chǔ)設(shè)施必須處理主機中斷和網(wǎng)絡(luò)中斷等情況。下面列出一些需要考慮的方法: 使用檢查點-重啟機制。 用持久性存儲保存中間結(jié)果。 用心跳監(jiān)視機制跟蹤系統(tǒng)狀態(tài)。 用健壯的系統(tǒng)管理解決方案最大程度地提高網(wǎng)格及其組件的可用性。 拓撲問題 網(wǎng)格計算的分布式本質(zhì)使地理上和組織機構(gòu)上的大跨度變得不可避免。隨著內(nèi)部網(wǎng)格的拓撲擴展為外部網(wǎng)格拓撲,復(fù)雜程度也逐漸提高。比如說,非功能性操作需求,安全性、目錄服務(wù)、可靠性、性能等都變得更加復(fù)雜。讓我們來研究一下拓撲的問題。 網(wǎng)絡(luò)拓撲。網(wǎng)格架構(gòu)內(nèi)的網(wǎng)絡(luò)拓撲可能在很多不同方面上呈現(xiàn)出來。網(wǎng)絡(luò)組件可以表示 LAN 或校園網(wǎng)的連通性,甚至還能表示網(wǎng)格網(wǎng)絡(luò)之間 WAN 的通信情況。網(wǎng)絡(luò)的職責(zé)是為所有的網(wǎng)格系統(tǒng)提供充足的帶寬。像基礎(chǔ)設(shè)施中其他的組件一樣,我們可以通過定制網(wǎng)絡(luò)來提供更高級別的可用性、性能以及安全性。 出于安全性以及其他一些架構(gòu)性的限制,網(wǎng)格系統(tǒng)從很大程度上來說是網(wǎng)絡(luò)密集型的。尤其是數(shù)據(jù)網(wǎng)格,它可能在整個企業(yè)的網(wǎng)絡(luò)內(nèi)散布著一些存儲資源,因此在基礎(chǔ)設(shè)施的設(shè)計中,為了保證足夠的性能,關(guān)鍵因素就在于處理數(shù)量巨大的網(wǎng)絡(luò)負載。 啟用應(yīng)用程序時應(yīng)該考慮的問題包括如何使網(wǎng)絡(luò)通信量最小,如何使網(wǎng)絡(luò)延遲最短。假設(shè)應(yīng)用程序的設(shè)計已經(jīng)能夠保證最小的網(wǎng)絡(luò)通信量,那么就有幾種方法可以使網(wǎng)絡(luò)延遲最短。比如說,千兆以太局域網(wǎng)可以用來支持高速群集,或?qū)崿F(xiàn)遠程網(wǎng)絡(luò)之間的高速 Internet 骨干網(wǎng)。 數(shù)據(jù)拓撲。我們最希望把任務(wù)指派到距離它所使用的數(shù)據(jù)最近的機器上執(zhí)行。這樣可以降低網(wǎng)絡(luò)的通信量,還可能降低可測量性方面的限制。 數(shù)據(jù)需要存儲空間。在一個網(wǎng)格的設(shè)計中,存儲的可能性問題是沒有止境的。存儲要求一定的安全性、要可以進行備份、要可管理,還/或要進行復(fù)制。在網(wǎng)格的設(shè)計中,您需要確定您的數(shù)據(jù)對于需要它的資源來說一直是可用的。除了可用性之外,您還需要保證數(shù)據(jù)得到適當?shù)谋Wo,因為您不能讓未經(jīng)授權(quán)的人訪問到敏感的數(shù)據(jù)。最后,您需要最佳的數(shù)據(jù)訪問性能。顯然,帶寬和訪問數(shù)據(jù)的距離兩者是相互有關(guān)的,但是您不會希望讓 I/O 問題阻礙網(wǎng)格應(yīng)用程序的運行速度。對于那些磁盤密集型的應(yīng)用程序,或是數(shù)據(jù)網(wǎng)格而言,您可以將工作重點更多地放在存儲資源上,比如您可以使用那些能夠提供更高容量、冗余程度或容錯機制的存儲。 混合平臺環(huán)境 網(wǎng)格環(huán)境是一組異質(zhì)的主機,它們具有不同的操作系統(tǒng)和軟件棧。為了執(zhí)行應(yīng)用程序,網(wǎng)格基礎(chǔ)架構(gòu)需要知道應(yīng)用程序能夠找到所匹配的網(wǎng)格主機環(huán)境的先決條件。您必須考慮多種不同的因素,然后才能使應(yīng)用程序在類型與數(shù)量都盡可能多的環(huán)境中執(zhí)行,這一點十分重要。 運行時需要考慮的問題。應(yīng)用程序的運行時需求及網(wǎng)格主機的運行時環(huán)境必須相匹配。例如,下面列出 Java 應(yīng)用程序在這方面的一些要求。用其他編程語言開發(fā)的應(yīng)用程序也可能存在類似的要求。 Java 虛擬機(JVM)。用 Java 編程語言編寫的應(yīng)用程序要求具備 Java 虛擬機(JVM)。Java 應(yīng)用程序可能對 JVM 的版本變化很敏感。為了解決這種敏感性,應(yīng)用程序需要對 JVM 版本號進行識別,這是匹配的先決條件。這項先決條件的內(nèi)容可能是要求某種 JVM 版本號,或是某個最小 JVM 版本號。Java 應(yīng)用程序也可能對 Java 堆的大小敏感。Java 應(yīng)用程序需要把最小堆容量作為先決條件。Java 包的類型,如 J2SE、或 J2EE 等,也可能是先決條件的一部分。 應(yīng)用程序的跨平臺可用性(可移植性)。應(yīng)用程序的可執(zhí)行性是與特定的平臺有關(guān)的。比如說,用 C 或 C++ 語言編寫的應(yīng)用程序需要在目標平臺上進行重新編譯,然后才能運行。您可以為每一種平臺重新編譯一次應(yīng)用程序,得到的可執(zhí)行程序就標記為目標平臺上的。這種做法能夠增加應(yīng)用程序能夠運行的網(wǎng)格主機數(shù)目。它的局限性在于將應(yīng)用程序移植到其他平臺上時所花費的成本。 了解 OS 環(huán)境。網(wǎng)格是一組異質(zhì)計算資源。如果應(yīng)用程序依賴于某種特定的操作系統(tǒng)。那么該應(yīng)用程序就需要驗證網(wǎng)格中是否具有正確的環(huán)境,并處理環(huán)境不同所帶來的問題。 輸出文件格式。當一臺網(wǎng)格主機上運行的應(yīng)用程序的輸出信息被另一臺網(wǎng)格主機上運行的應(yīng)用程序所訪問的時候,了解輸出文件的格式就顯得十分必要了。這兩臺網(wǎng)格主機可能具有不同的平臺環(huán)境。您可以考慮用 XML 作為數(shù)據(jù)交換的格式。XML 現(xiàn)在已經(jīng)十分流行,它不僅僅是一種用于數(shù)據(jù)交換的標記語言,還是一種用于存儲半結(jié)構(gòu)化的數(shù)據(jù)格式。 當您要在網(wǎng)格環(huán)境中啟用某個應(yīng)用程序時,必須充分理解網(wǎng)格環(huán)境中的功能性組件和非功能性因素,如性能要求或操作系統(tǒng)要求等。
一.網(wǎng)格的產(chǎn)生 網(wǎng)格(Grid)這個詞來自于電力網(wǎng)格(PowerGrid)。“網(wǎng)格”與“電力網(wǎng)格”形神相似。一方面,計算機網(wǎng)縱橫交錯,很像電力網(wǎng);另一方面,電力網(wǎng)格用高壓線路把分散在各地的發(fā)電站連接在一起,向用戶提供源源不斷的電力。用戶只需插上插頭、打開開關(guān)就能用電,一點都不需要關(guān)心電能是從哪個電站送來的,也不需要知道是水力電、火力電還是核能電。建設(shè)網(wǎng)格的目的也是一樣,其最終目的是希望它能夠把分布在因特網(wǎng)上數(shù)以億計的計算機、存儲器、貴重設(shè)備、數(shù)據(jù)庫等結(jié)合起來,形成一個虛擬的、空前強大的超級計算機,滿足不斷增長的計算、存儲需求,并使信息世界成為一個有機的整體。 電網(wǎng)和網(wǎng)格對照表 電網(wǎng):當你用洗衣機洗衣服時,你只關(guān)心衣服什么時候洗好。而不在乎洗衣機用的電是來源于水力發(fā)電,火電廠還是核電。你只需要把插頭插入插座就行了。 網(wǎng)格:當你在電腦前工作時,你唯一關(guān)心的是要做的事(比如一項計算,設(shè)計等等)無論電腦連上什么網(wǎng)路,你都可以得到所需的計算能力出儲存容量。 電網(wǎng):我們現(xiàn)在用電的基礎(chǔ)建設(shè)是“電網(wǎng)“。就是利用輸電站,電力站,變電所和電線等等,把許多不同種類的發(fā)電廠和你家聯(lián)系起來。 網(wǎng)格:對于上述的基礎(chǔ)建設(shè)就叫“網(wǎng)格“。就是把電腦,工作站,服務(wù)器等計算資源連起來,而且提供必要的使用機制。 電網(wǎng):電網(wǎng)是顯而易見的:你不必擔(dān)心你所用的電力是從哪里或者如何產(chǎn)生的。 網(wǎng)格:網(wǎng)格也將成為顯而易見:你不必擔(dān)心你所使用的電腦程序和資料在那里,網(wǎng)格中間服務(wù)器都會把最適合的計算資源分配給你的工作。 電網(wǎng):電網(wǎng)很普遍:電力到處都有。只要插上插座就能獲得電力資源。 網(wǎng)格:網(wǎng)格也將很普遍:電腦,筆記本,或者是掌上電腦,手機,甚至是一般的家用電器都可以通過網(wǎng)格插口連 上網(wǎng)格。 電網(wǎng):電網(wǎng)是公共設(shè)施:你只要付錢就可以用電。 網(wǎng)格:網(wǎng)格也試圖想為廣大民眾服務(wù):只要付錢,都可以享用網(wǎng)格無窮無盡的計算資源和儲存能力 注:另一種說法是網(wǎng)格就像一個巨大的網(wǎng),里面有很多格子.每個格子就是一個局域網(wǎng)格,每個節(jié)點就是一臺計算機.這種說法可能起源于中國。 二.究竟什么是網(wǎng)格 網(wǎng)格是一種新興的技術(shù),正處在不斷發(fā)展和變化當中。目前學(xué)術(shù)界和商業(yè)界圍繞網(wǎng)格開展的研究有很多,其研究的內(nèi)容和名稱也不盡相同因而網(wǎng)格尚未有精確的定義和內(nèi)容定位。比如國外媒體常用“下一代互聯(lián)網(wǎng)”、“Internet2”、“下一代Web”等來稱呼網(wǎng)格相關(guān)技術(shù)。但“下一代互聯(lián)網(wǎng)(NGI)”和“Internet2”又是美國的兩個具體科研項目的名字,它們與網(wǎng)格研究目標相交叉,研究內(nèi)容和重點有很大不同。企業(yè)界用的名稱也很多,有內(nèi)容分發(fā)(Contents Delivery)、服務(wù)分發(fā)(Service Delivery)、電子服務(wù)(e-service)、實時企業(yè)計算(Real-Time Enterprise Computing,簡稱RTEC)、分布式計算Peer-to-Peer Computing(簡稱P2P)、Web服務(wù)(Web Services)等。中國科學(xué)院計算所所長李國杰院士認為,網(wǎng)格實際上是繼傳統(tǒng)互聯(lián)網(wǎng)、Web之后的第三次浪潮,可以稱之為第三代互聯(lián)網(wǎng)應(yīng)用。 網(wǎng)格是利用互聯(lián)網(wǎng)把地理上廣泛分布的各種資源(包括計算資源、存儲資源、帶寬資源、軟件資源、數(shù)據(jù)資源、信息資源、知識資源等)連成一個邏輯整體,就像一臺超級計算機一樣,為用戶提供一體化信息和應(yīng)用服務(wù)(計算、存儲、訪問等),虛擬組織最終實現(xiàn)在這個虛擬環(huán)境下進行資源共享和協(xié)同工作,徹底消除資源“孤島”,最充分的實現(xiàn)信息共享。 網(wǎng)格必須同時滿足三個條件:在非集中控制的環(huán)境中協(xié)同使用資源;使用標準的、開放的和通用的協(xié)議和接口;提供非平凡的服務(wù)。 三.網(wǎng)格技術(shù)的特征及其體系結(jié)構(gòu) 1.網(wǎng)格技術(shù)的特征 在介紹網(wǎng)格的特征之前,我們首先要解決一個重要的問題:網(wǎng)格是不是分布式系統(tǒng)?這個問題之所以必須回答,因為人們常常會問另一個相關(guān)的問題:"為什么我們需要網(wǎng)格?現(xiàn)在已經(jīng)有很多系統(tǒng)(比如海關(guān)報關(guān)系統(tǒng)、飛機訂票系統(tǒng))實現(xiàn)了資源共享與協(xié)同工作。這些系統(tǒng)與網(wǎng)格有什么區(qū)別?" 對這個問題的簡要回答是:網(wǎng)格是一種分布式系統(tǒng),但網(wǎng)格不同于傳統(tǒng)的分布式系統(tǒng)。IBM Global Service與EDS是在這個分布式領(lǐng)域最著名的公司。構(gòu)建分布式系統(tǒng)有三種方法:即傳統(tǒng)方法(我們稱之為EDS方法)、分布自律系統(tǒng)(Autonomous Decentralized Systems, ADS)方法,網(wǎng)格(grid)方法。ADS通常用于工業(yè)控制系統(tǒng)中。網(wǎng)格方法與傳統(tǒng)方法的區(qū)別見下表: 特征 傳統(tǒng)分布式系統(tǒng) 網(wǎng)格 開放性 需求和技術(shù)有一定確定性、封閉性 開放技術(shù)、開放系統(tǒng) 通用性 專門領(lǐng)域、專有技術(shù) 通用技術(shù) 集中性 很可能是統(tǒng)一規(guī)劃、集中控制 一般而言是自然進化、非集中控制 使用模式 常常是終端模式或C/S模式 服務(wù)模式為主 標準化 領(lǐng)域標準或行業(yè)標準 通用標準(+行業(yè)標準) 平臺性 應(yīng)用解決方案 平臺或基礎(chǔ)設(shè)施 通過以上對比,網(wǎng)格具有以下四點優(yōu)勢: 。1)資源共享,消除資源孤島:網(wǎng)格能夠提供資源共享,它能消除信息孤島、實現(xiàn)應(yīng)用程序的互連互通。網(wǎng)格與計算機網(wǎng)絡(luò)不同,計算機網(wǎng)絡(luò)實現(xiàn)的是一種硬件的連通,而網(wǎng)格能實現(xiàn)應(yīng)用層面的連通。 。2)協(xié)同工作:網(wǎng)格第二個特點是協(xié)同工作,很多網(wǎng)格結(jié)點可以共同處理一個項目。 (3)通用開放標準,非集中控制,非平凡服務(wù)質(zhì)量:這是Ian Foster最近提出的網(wǎng)格檢驗標準。網(wǎng)格是基于國際的開放技術(shù)標準,這跟以前很多行業(yè)、部門或者公司推出的軟件產(chǎn)品不一樣。 (4)動態(tài)功能,高度可擴展性:網(wǎng)格可以提供動態(tài)的服務(wù),能夠適應(yīng)變化。同時網(wǎng)格并非限制性的,它實現(xiàn)了高度的可擴展性。 2.網(wǎng)格的體系特征 網(wǎng)格之所以能有以上所說的種種優(yōu)勢特征,是由網(wǎng)格的體系結(jié)構(gòu)賦予它的。網(wǎng)格體系結(jié)構(gòu)的主要功能是劃分系統(tǒng)基本組件,指定組件的目的與功能,刻畫組件之間的相互作用,整合各部分組件?蒲泄ぷ髡咭呀(jīng)提出并實現(xiàn)了若干種合理的網(wǎng)格體系結(jié)構(gòu)。下面介紹目前影響比較廣泛的兩個網(wǎng)格體系結(jié)構(gòu):網(wǎng)格計算協(xié)議體系結(jié)構(gòu)(Grid Protocol Architecture,GPA)和計算經(jīng)濟網(wǎng)格體系結(jié)構(gòu)(GRACE)模型。 OGSA(Open Grid Services Architecture)被稱為是下一代的網(wǎng)格體系結(jié)構(gòu),它是在原來“五層沙漏結(jié)構(gòu)”的基礎(chǔ)上,結(jié)合最新的Web Service 技術(shù)提出來的。OGSA包括兩大關(guān)鍵技術(shù)即網(wǎng)格技術(shù)和Web Service 技術(shù)。 隨著網(wǎng)格計算研究的深入,人們越來越發(fā)現(xiàn)網(wǎng)格體系結(jié)構(gòu)的重要。網(wǎng)格體系結(jié)構(gòu)是關(guān)于如何建造網(wǎng)格的技術(shù),包括對網(wǎng)格基本組成部分和各部分功能的定義和描述,網(wǎng)格各部分相互關(guān)系與集成方法的規(guī)定,網(wǎng)格有效運行機制的刻畫。顯然,網(wǎng)格體系結(jié)構(gòu)是網(wǎng)格的骨架和靈魂,是網(wǎng)格最核心的技術(shù),只有建立合理的網(wǎng)格體系結(jié)構(gòu),才能夠設(shè)計和建造好網(wǎng)格,才能夠使網(wǎng)格有效地發(fā)揮作用。 OGSA最突出的思想就是以“服務(wù)”為中心。在OGSA框架中,將一切都抽象為服務(wù),包括計算機、程序、數(shù)據(jù)、儀器設(shè)備等。這種觀念,有利于通過統(tǒng)一的標準接口來管理和使用網(wǎng)格。Web Service提供了一種基于服務(wù)的框架結(jié)構(gòu),但是,Web Service 面對的一般都是永久服務(wù),而在網(wǎng)格應(yīng)用環(huán)境中,大量的是臨時性的短暫服務(wù),比如一個計算任務(wù)的執(zhí)行等。考慮到網(wǎng)格環(huán)境的具體特點,OGSA 在原來Web Service 服務(wù)概念的基礎(chǔ)上,提出了“網(wǎng)格服務(wù)(Grid Service)”的概念,用于解決服務(wù)發(fā)現(xiàn)、動態(tài)服務(wù)創(chuàng)建、服務(wù)生命周期管理等與臨時服務(wù)有關(guān)的問題。 基于網(wǎng)格服務(wù)的概念,OGSA 將整個網(wǎng)格看作是“網(wǎng)格服務(wù)”的集合,但是這個集合不是一成不變的,是可以擴展的,這反映了網(wǎng)格的動態(tài)特性。網(wǎng)格服務(wù)通過定義接口來完成不同的功能,服務(wù)數(shù)據(jù)是關(guān)于網(wǎng)格服務(wù)實例的信息,因此網(wǎng)格服務(wù)可以簡單地表示為“網(wǎng)格服務(wù)=接口/行為+服務(wù)數(shù)據(jù)”。 在目前,網(wǎng)格服務(wù)提供的接口還比較有限,OGSA 還在不斷的完善過程之中,下一步將考慮擴充管理、安全等等方面的內(nèi)容。 3.網(wǎng)格協(xié)議體系結(jié)構(gòu) Ian Foster于2001年提出了網(wǎng)格計算協(xié)議體系結(jié)構(gòu),認為網(wǎng)格建設(shè)的核心是標準化的協(xié)議與服務(wù),并與Internet網(wǎng)絡(luò)協(xié)議進行類比(如圖1)。該結(jié)構(gòu)主要包括以下五個層次: 構(gòu)造層(Fabric):控制局部的資源。由物理或邏輯實體組成,目的是為上層提供共享的資源。常用的物理資源包括計算資源、存儲系統(tǒng)、目錄、網(wǎng)絡(luò)資源等;邏輯資源包括分布式文件系統(tǒng)、分布計算池、計算機群等。構(gòu)造層組件的功能受高層需求影響,基本功能包括資源查詢和資源管理的QoS保證。 連接層(Connectivity):支持便利安全的通信。該層定義了網(wǎng)格中安全通信與認證授權(quán)控制的核心協(xié)議。資源間的數(shù)據(jù)交換和授權(quán)認證、安全控制都在這一層控制實現(xiàn)。該層組件提供單點登錄、代理委托、同本地安全策略的整合和基于用戶的信任策略等功能。 資源層(Resource):共享單一資源。該層建立在連接層的通信和認證協(xié)議之上,滿足安全會話、資源初始化、資源運行狀況監(jiān)測、資源使用狀況統(tǒng)計等需求,通過調(diào)用構(gòu)造層函數(shù)來訪問和控制局部資源。 匯集層(Collective):協(xié)調(diào)各種資源。該層將資源層提交的受控資源匯集在一起,供虛擬組織的應(yīng)用程序共享和調(diào)用。該層組件可以實現(xiàn)各種共享行為,包括目錄服務(wù)、資源協(xié)同、資源監(jiān)測診斷、數(shù)據(jù)復(fù)制、負荷控制、賬戶管理等功能。 應(yīng)用層(Application):為網(wǎng)格上用戶的應(yīng)用程序?qū)。?yīng)用層是在虛擬組織環(huán)境中存在的。應(yīng)用程序通過各層的應(yīng)用程序編程接口(API)調(diào)用相應(yīng)的服務(wù),再通過服務(wù)調(diào)動網(wǎng)格上的資源來完成任務(wù)。為便于網(wǎng)格應(yīng)用程序的開發(fā),需要構(gòu)建支持網(wǎng)格計算的大型函數(shù)庫。 4. 當今網(wǎng)格的運用 現(xiàn)在國內(nèi)國外運用得最多的可能是在一些大型院校的計算網(wǎng)格(實現(xiàn)計算資源的共享。 什么是計算資源: 簡單來說就是計算能力,CPU。 計算資源共享就是CPU計算的共享)。人們把一個集群(cluster, 也就是常說的機房,通常有幾十臺操作系統(tǒng)為Linux的計算機)的計算機連成一個局域型網(wǎng)格。這樣就好像把這幾十臺電腦連成了一臺超級計算機,計算能力當然大大提高了。這種局域計算網(wǎng)格主要運用于一些科研的研究。比如說生物科學(xué)。當生物科學(xué)的研究員需要高性能的計算資源來幫助他們分析試驗的結(jié)果時,他們就把這些分析試驗的程序提交(submit)給網(wǎng)格,網(wǎng)格通過計算再把結(jié)果返回給這些研究員。計算結(jié)果可能是一些圖像(rendering)也可能是一些數(shù)據(jù)。這些計算如果在單一PC(Personal computer, 個人計算機)上運行的話,往往會花費幾個月的時間,然而在網(wǎng)格中運行一,兩天也就完成了。這就是網(wǎng)格技術(shù)最直觀的優(yōu)點之一。當然現(xiàn)在有一些大型主機(super-mainframe)也有很強的計算能力(比如常說的IBM deepblue,打敗人類圍棋大師Kasparov那位),但是這種主機太昂貴,而且配置(deploy)往往不方便,是名副其實的重量級(heavyweight)計算。SETI@Home (SETI@Home's,一個分布式計算的項目,通過互聯(lián)網(wǎng)絡(luò)上的計算機搜索地球外智慧訊息,網(wǎng)格在分布式計算的成功運用。 參見:http://www.equn.com/info/n-18.html )的網(wǎng)站指出,世界上最強大的計算機IBM 的 ASCI White,可以實現(xiàn)12萬億次的浮點運算,但是花費了1億千萬美元;然而SETI@HOME 只用了50萬美元卻實現(xiàn)了15萬億次浮點運算。 網(wǎng)格另外一個顯著的運用可能就是虛擬組織(Virtual Organisations)。這種虛擬組織往往是針對與某一個特定的項目,或者是某一類特定研究人員。在這里面可以實現(xiàn)計算資源、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源的全面共享。比如說中國2008年奧運會開幕式研究組就可以運用網(wǎng)格組成一個虛擬組織。在這個虛擬組織里,任何成員不管在哪個地方都可以有權(quán)訪問組織的共享資源(如 開幕式場地圖紙,開幕式資金,開幕式節(jié)目單);而且可以和另一地方的虛擬組織成員進行交流。這個虛擬組織就像把所有奧運會開幕式的資源,信息,以及人員集中到了一個虛擬的空間,讓人們集中精力研討開幕式項目的問題,而不必考慮其他的問題。據(jù)個實例,由英國利茲大學(xué),牛津大學(xué),約克大學(xué)和謝菲爾德大學(xué)合作的DAME項目就是致力于研究和運用虛擬組織。DAME架構(gòu)在這四個大學(xué)合建的白玫瑰網(wǎng)格White Rose Computational Grid (WRCG)上,運用于對飛機故障的快速檢測和維修。 5.網(wǎng)格基礎(chǔ)設(shè)施組件 首先,我們來看看有哪些典型的網(wǎng)格基礎(chǔ)設(shè)施組件,每一種組件如何對應(yīng)用程序的架構(gòu)、設(shè)計和部署產(chǎn)生影響。下面是網(wǎng)格基礎(chǔ)設(shè)施中的一些主要組件: 安全性。安全性是網(wǎng)格計算中的重要問題。每一種網(wǎng)格資源都可能需要遵從多種不同的安全策略。單點登錄認證是一種必不可少的方法。得到普遍遵守的協(xié)商授權(quán)機制也是很必要的。 資源管理。當提交一項任務(wù)的時候,網(wǎng)格資源管理器需要考慮如何為該任務(wù)指派資源、如何監(jiān)視其狀態(tài)以及如何返回它的執(zhí)行結(jié)果。 信息服務(wù)。由于網(wǎng)格資源管理器在指派資源之前要經(jīng)過綜合全面的考慮,因此它需要知道哪些網(wǎng)格資源是可用的,以及這些資源的容量與當前使用的情況。這些有關(guān)網(wǎng)格資源的知識是通過網(wǎng)格信息服務(wù)(Grid Information Service,GIS)維護和提供的,又稱為監(jiān)視與發(fā)現(xiàn)服務(wù)(Monitoring and Discovery Service,MDS)。 數(shù)據(jù)管理。數(shù)據(jù)管理主要解決任務(wù)如何傳輸數(shù)據(jù)以及如何訪問共享存儲的問題。 下面讓我們以Globus Toolkit為例分別詳細討論一下每一種組件。 安全性 如果您是一名用戶,要在遠程系統(tǒng)上運行一項任務(wù),您會關(guān)心遠程系統(tǒng)是否安全,是否能保證其他人不能訪問到您的數(shù)據(jù)。如果您是提供資源的一方,用戶可以在您的系統(tǒng)中執(zhí)行任務(wù),那么您必須確信所有的任務(wù)都不會遭到破壞和干擾,也不能訪問您系統(tǒng)中的其他私有數(shù)據(jù)。除了這兩方面的內(nèi)容之外,網(wǎng)格環(huán)境也面臨著一般分布式計算環(huán)境中存在的其他所有安全問題。 網(wǎng)格安全基礎(chǔ)設(shè)施(Grid Security Infrastructure,GSI)是 Globus Toolkit 的基礎(chǔ),它提供了很多工具,可以幫助我們對網(wǎng)格環(huán)境中的安全問題進行管理。在您開發(fā)面向網(wǎng)格環(huán)境的應(yīng)用程序時,您的腦子里必須時刻考慮到安全問題,并用 GSI 提供的工具來解決這些問題。網(wǎng)格架構(gòu)中與安全性有關(guān)的功能主要負責(zé)完成認證、授權(quán)以及實現(xiàn)網(wǎng)格資源之間的安全通信。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:安全性。當我們設(shè)計一個能夠使用網(wǎng)格的應(yīng)用程序時,安全性問題必須考慮在內(nèi)。下面的列表總結(jié)了需要考慮的一些問題: 單點登錄?缦到y(tǒng)的 ID 映射。如上所述,GSI 提供了認證、授權(quán)以及安全的通信。然而,您需要對安全性管理及其含義有深刻完整的理解。比如說:您是否可以將多個用戶映射到目標系統(tǒng)中的同一個用戶 ID 上?是否需要特定的審計機制來確定實際發(fā)起應(yīng)用程序的是哪一個用戶?應(yīng)用程序不應(yīng)該要求在使用網(wǎng)格上的不同資源時使用不同的用戶 ID 映射機制。 多種平臺。盡管 GSI 基于開放的標準化軟件,可以在多種平臺上運行,然而各種不同的平臺其底層的安全機制并不總是一致。比如說,在傳統(tǒng)的 UNIX 或基于 Linux 的系統(tǒng)上,讀、寫、執(zhí)行等操作的安全機制就與微軟的 Windows 環(huán)境不同。您應(yīng)該考慮應(yīng)用程序可能運行的平臺。 使用 GSI。對于任何應(yīng)用程序特有的、且可能需要進行認證或特殊授權(quán)的功能而言,應(yīng)用程序的設(shè)計應(yīng)該使用 GSI,這樣能夠簡化開發(fā),并通過維護單一的登錄機制,使用戶的體驗也得到簡化。 數(shù)據(jù)加密。盡管 GSI 與后文將要討論到的數(shù)據(jù)管理工具一起,提供了跨網(wǎng)絡(luò)的安全通信與數(shù)據(jù)加密,但是您也應(yīng)該考慮到,當數(shù)據(jù)到達目的地的時候會發(fā)生什么事情。比如說,如果一些敏感的數(shù)據(jù)傳遞到某項資源上供任務(wù)使用,隨后又以非加密的格式保存到本地磁盤上,那么其他的用戶或應(yīng)用程序也就能訪問這些數(shù)據(jù)了。 資源管理 網(wǎng)格資源管理器致力于在任務(wù)提交時進行資源指派。它的角色就像是異質(zhì)網(wǎng)格資源的抽象接口。資源管理組件提供的工具可以將任務(wù)分配給特定的資源,可以提供一種手段,在任務(wù)運行過程中獲取任務(wù)狀態(tài)信息,并獲取任務(wù)完成的信息,還可以提供終止任務(wù)或?qū)ζ溥M行管理的能力。在 Globus 中,遠程任務(wù)提交是由 Globus Resource Allocation Manager(GRAM)負責(zé)處理的。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:資源管理。在與資源管理相關(guān)的應(yīng)用程序架構(gòu)、設(shè)計和部署方面,有一些問題需要考慮。GRAM 最簡單的形式是用于發(fā)出 globusrun 命令,在特定系統(tǒng)上發(fā)起一項任務(wù)。然而,應(yīng)用程序必須與 MDS 一起(通常是通過一個代理函數(shù))保證使用了適當?shù)哪繕速Y源。下面列出一些需要考慮的內(nèi)容: 選擇適當?shù)馁Y源。通過與代理聯(lián)合工作,來保證選擇適當?shù)哪繕速Y源。這就要求應(yīng)用程序能夠正確地指定所需的環(huán)境(操作系統(tǒng)、處理器、速度、內(nèi)存,等等)。您為排除特定的依賴關(guān)系付出的努力越多,找到可用資源完成任務(wù)的機率也就越高。 多子任務(wù)。如果應(yīng)用程序中包含多個任務(wù),您必須理解(并降低)它們之間的相互依賴關(guān)系。否則,您就不得不構(gòu)建一段邏輯來處理下面這些問題: 進程間通信 數(shù)據(jù)共享 并行任務(wù)提交 訪問任務(wù)的執(zhí)行結(jié)果。 如果一項任務(wù)返回的是一個簡單的狀態(tài)值,或是輸出數(shù)據(jù)量很少,那么應(yīng)用程序可以僅僅通過 stdout 和 stderr 來獲取這些數(shù)據(jù)。要是必須獲取相當復(fù)雜的結(jié)果,這時就可能需要將結(jié)果寫入一個文件,并通過適當?shù)墓ぞ撸┠繕藱C獲取/傳輸這個文件。 任務(wù)管理。GRAM 提供了查詢?nèi)蝿?wù)狀態(tài)的機制,還可以執(zhí)行諸如終止任務(wù)之類的操作。應(yīng)用程序可能會在必要的時候使用這些功能為用戶提供反饋、清除或釋放資源的操作。比如說,如果應(yīng)用程序內(nèi)有一項任務(wù)失敗了,其他依賴于這項任務(wù)的結(jié)果的任務(wù)可能就需要終止,以免無端消耗過多資源。 信息服務(wù) 信息服務(wù)是網(wǎng)格基礎(chǔ)設(shè)施中至關(guān)重要的組件。它們維護了關(guān)于資源可用性、處理能力、當前使用情況的知識。不論在哪個網(wǎng)格中,CPU 和數(shù)據(jù)資源的情況都是不斷變動的,這種變動與其處理任務(wù)與共享數(shù)據(jù)的能力有關(guān)。隨著網(wǎng)格中的資源不斷被釋放,資源的狀態(tài)可以在網(wǎng)格信息服務(wù)中得到更新?蛻魴C、代理、網(wǎng)格資源管理器等等綜合這部分信息來進行資源的指派。信息服務(wù)提供方是指那些為目錄提供資源狀態(tài)信息的程序。下面列出一些如何收集信息的實例: 靜態(tài)主機信息。 操作系統(tǒng)名稱、版本號、處理器提供商/類型/版本/速率/緩存大小、處理器數(shù)量、物理內(nèi)存總量、虛存總量、設(shè)備、服務(wù)類型/協(xié)議/端口號等。 動態(tài)主機信息。 負載水平、隊列入口等。 存儲系統(tǒng)信息。 磁盤空間總量、可用磁盤容量等。 網(wǎng)絡(luò)信息。 網(wǎng)絡(luò)帶寬、延遲、是否可測量與可預(yù)報。 高度動態(tài)的信息。 空閑物理內(nèi)存,空閑虛擬內(nèi)存、空閑處理器數(shù)量等。 網(wǎng)格信息服務(wù),又稱為監(jiān)視與發(fā)現(xiàn)服務(wù),在 Globus 中負責(zé)提供信息服務(wù)。MDS 使用輕量級目錄訪問協(xié)議(Lightweight Directory Access Protocol,LDAP)作為訪問資源信息的接口。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:信息服務(wù)。對信息服務(wù)來說,需要考慮下面這些問題: 必須完全理解特定任務(wù)的需求,這樣才能對查詢進行正確地格式化,以返回適當?shù)馁Y源。這一點非常重要。 必須保證 MDS 中保存有適當?shù)男畔ⅰT?MDS 中,缺省情況下包含大量關(guān)于網(wǎng)格中所含資源的數(shù)據(jù)。不過,如果您的應(yīng)用程序要求使用特定的資源或信息,而缺省情況下沒有提供,您就需要編寫您自己的信息提供方,并把適當?shù)馁Y源加入模式中。這樣,您的應(yīng)用程序或代理就可以進行查詢,看特定的資源或請求是否已經(jīng)存在。 MDS 可以用匿名帳號訪問,或是經(jīng)由一臺已經(jīng)通過 GSI 認證的代理來訪問。應(yīng)用程序開發(fā)人員需要保證,能夠在必要的時候通過一臺經(jīng)過認證的代理。您的網(wǎng)格環(huán)境可能具有多級別的目錄結(jié)構(gòu)。根據(jù)環(huán)境及其拓撲的復(fù)雜程度不同,您應(yīng)該保證能夠訪問適當?shù)哪夸,在其中搜索您所要求的資源。 數(shù)據(jù)管理 當您在構(gòu)建網(wǎng)格的時候,網(wǎng)格中最重要的資產(chǎn)就是您的數(shù)據(jù)。在您的設(shè)計當中,您將必須確定您對數(shù)據(jù)的需求,以及如何在整個基礎(chǔ)設(shè)施中移動數(shù)據(jù),要么就是如何用一種安全有效的方式訪問所需的數(shù)據(jù)。您可以通過一組標準化的網(wǎng)格協(xié)議與您設(shè)計的任何數(shù)據(jù)資源進行通信。您也可以選擇構(gòu)建一個聯(lián)邦數(shù)據(jù)庫,創(chuàng)建一個虛擬的數(shù)據(jù)存儲。還有其他一些選擇,如存儲區(qū)域網(wǎng)(Srorage Area Network)、網(wǎng)絡(luò)文件系統(tǒng),以及專用的存儲服務(wù)器等。 Globus 為網(wǎng)格環(huán)境提供了 GridFTP 和 Global Access to Secondary Storage(GASS)兩種數(shù)據(jù)傳輸機制。此外,它還提供了一種復(fù)制管理機制,可以幫助您管理和訪問數(shù)據(jù)集的副本。在應(yīng)用程序中啟用網(wǎng)格時的考慮:數(shù)據(jù)管理。數(shù)據(jù)管理問題源自如何最大化地使用有限的存儲空間、網(wǎng)絡(luò)帶寬、計算資源等。下面列出一些在應(yīng)用程序設(shè)計和實現(xiàn)中需要考慮的數(shù)據(jù)管理問題: 數(shù)據(jù)集的大小。對于大的數(shù)據(jù)集來說,要想將它移動到實際運行任務(wù)的系統(tǒng)上是不現(xiàn)實,甚至是不可能的?赡艿慕鉀Q方案是使用數(shù)據(jù)復(fù)制、或?qū)⑼暾麛?shù)據(jù)集的一個子集拷貝到目標系統(tǒng)中。地理上分散的用戶、數(shù)據(jù)、計算以及存儲資源。如果您的目標網(wǎng)格在地理上是分散的,網(wǎng)絡(luò)連接的速度也有限,那么您在設(shè)計的時候就必須考慮到如何進行慢速和受限的數(shù)據(jù)訪問。 在廣域網(wǎng)上進行數(shù)據(jù)傳輸。當您要在 Internet 或者其他的 WAN 上移動數(shù)據(jù)時,必須考慮安全性、可靠性以及性能等問題。您必須構(gòu)建一些必要的邏輯來處理數(shù)據(jù)訪問速度慢,甚至被阻斷的情況。數(shù)據(jù)傳輸?shù)恼{(diào)度。下面兩種情況至少要考慮一種:第一個是數(shù)據(jù)傳輸?shù)恼{(diào)度,這樣當需要某項數(shù)據(jù)的時候數(shù)據(jù)就在它適當?shù)奈恢蒙狭恕1热缯f,如果數(shù)據(jù)傳輸需要進行一個小時,而使用這項數(shù)據(jù)的任務(wù)必須在凌晨兩點鐘開始運行,那么您就應(yīng)該提前對數(shù)據(jù)傳輸進行調(diào)度,這樣,當需要它的任務(wù)運行的時候,數(shù)據(jù)就是可用的了。第二個是了解進出任何一項資源的任何并發(fā)文件傳輸?shù)臄?shù)量與規(guī)模。 選擇數(shù)據(jù)副本。如果您使用 Globus Data Replication 服務(wù),也許想向應(yīng)用程序中增加一段選擇適當副本的邏輯,也就是說,您想要選擇一個包含所需數(shù)據(jù)的副本,同時還要滿足您對性能的要求。 調(diào)度器 Globus Toolkit 沒有提供任務(wù)調(diào)度器,也沒有提供元任務(wù)調(diào)度器(meta-scheduler)。不過,有一些任務(wù)調(diào)度器已經(jīng)和 Globus 集成起來了,還有一些也可以集成進來。 在網(wǎng)格中,任務(wù)調(diào)度與負載平衡是十分重要的功能。大多數(shù)網(wǎng)格系統(tǒng)中都包括某種任務(wù)調(diào)度軟件。這種軟件可以查找到某臺機器的位置,并在上面執(zhí)行用戶提交的網(wǎng)格任務(wù)。有些調(diào)度器實現(xiàn)了按照任務(wù)優(yōu)先級進行調(diào)度的系統(tǒng)。優(yōu)先級的實現(xiàn)方式有時是使用多個任務(wù)隊列,其中每一個隊列都代表不同的優(yōu)先級。當網(wǎng)格計算機可以執(zhí)行任務(wù)的時候,就從優(yōu)先級最高的隊列中取出第一個任務(wù)。通過調(diào)度器還可以實現(xiàn)各種不同類型的策略。策略中可以包含多種對任務(wù)、用戶、以及資源的約束。比如說,可能有一種策略限制在一天的某些特定時間執(zhí)行網(wǎng)格任務(wù)。 調(diào)度器通常會對實時網(wǎng)格負載做出反應(yīng)。它們在提交任務(wù)之前,會用反映當前機器使用情況的量測信息來確定哪些機器不忙。調(diào)度器可以組織成層次結(jié)構(gòu)。比如說,元調(diào)度器將任務(wù)提交給群集調(diào)度器,或其他低層調(diào)度器,而不直接提交給獨立的計算機。更高級些的調(diào)度器可以對所調(diào)度的任務(wù)的執(zhí)行過程進行監(jiān)視,從而對整體工作流實施管理。如果由于系統(tǒng)或網(wǎng)絡(luò)的原因而導(dǎo)致一些任務(wù)丟失,好的調(diào)度器會自動在別的地方重新提交任務(wù)。然而,如果某個任務(wù)進入死循環(huán),運行的時間超過了某個最大時間,那么這樣的任務(wù)就不應(yīng)該再重新調(diào)度了。典型情況下,各種任務(wù)具有不同類型的結(jié)束代碼,其中一些結(jié)束代碼適合于用于重新提交任務(wù),而另一些則不適合。 我們通過一個預(yù)約系統(tǒng)可以實現(xiàn)在網(wǎng)格中提前保留資源。這種機制不僅僅是調(diào)度器。它首先是一種基于日歷的系統(tǒng),可以在特定的時間段內(nèi)保留資源,防止其他任務(wù)在同一時間內(nèi)使用該資源。它還必須能在預(yù)約的時間到達的時候?qū)⑷我鈾C器或資源上正在執(zhí)行的任務(wù)刪除或掛起。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:調(diào)度器。當您為網(wǎng)格環(huán)境啟用應(yīng)用程序的時候,需要考慮一些與調(diào)度有關(guān)的問題。下面列出其中一些: 數(shù)據(jù)管理。意思是保證當所調(diào)度的任務(wù)運行時具備可用的數(shù)據(jù)。如果需要將數(shù)據(jù)移動到待執(zhí)行的節(jié)點上,那么我們還需要對數(shù)據(jù)的移動操作也進行調(diào)度。 通信。任何相關(guān)任務(wù)的進程間通信都要求對任務(wù)進行并行調(diào)度。 調(diào)度器的作用域。在具有多個調(diào)度器(如具備元調(diào)度器)的環(huán)境中,要協(xié)調(diào)并發(fā)任務(wù),或保證特定的任務(wù)在指定的時間執(zhí)行,這些工作的復(fù)雜程度很高,當不同的調(diào)度器具有不同的作用域時,情況就更加復(fù)雜。 調(diào)度策略。調(diào)度可以有不同的實現(xiàn)目標。 面向應(yīng)用程序——調(diào)度的優(yōu)化目標是實現(xiàn)最佳運行時間。 面向系統(tǒng)——調(diào)度的優(yōu)化目標是實現(xiàn)最大吞吐量。任務(wù)可能不會立即開始。在執(zhí)行的過程中也可能被終端或搶占。也可以將任務(wù)調(diào)度為通宵執(zhí)行。 網(wǎng)格信息服務(wù)。調(diào)度器和信息服務(wù)之間的交互可能十分復(fù)雜。比如說,如果在任務(wù)實際運行之前通過 MDS 找到了某項資源,然后,我們可以假設(shè)在任務(wù)實際運行之前該資源的狀態(tài)不會發(fā)生變化;蛘呶覀兛梢越⒁环N預(yù)測能力更強的機制,提前預(yù)測資源狀態(tài)可能發(fā)生的變化,從而提前做出調(diào)度決定。 資源代理。通常情況下,資源代理必須與調(diào)度器接口。 負載平衡。負載平衡問題是由于工作負載在網(wǎng)格系統(tǒng)資源中的分散特性所引起的。盡管 Globus Toolkit 沒有提供負載平衡的功能,而在某些特定環(huán)境中,負載平衡服務(wù)卻是必需的特性。當作業(yè)被提交到網(wǎng)格任務(wù)管理器中時,工作負載可以通過推模式(push model)、拉模式(pull model)或組合模式(combined model)進行分布。推模式的簡單實現(xiàn)是通過循環(huán)的方式將任務(wù)發(fā)送到網(wǎng)格資源上。然而,這個模型沒有考慮到任務(wù)隊列的長度。如果每一個網(wǎng)格資源上都發(fā)送到相同數(shù)目的任務(wù),那么在速度較慢的機器上會形成較長的任務(wù)隊列,而一個長時間運行的任務(wù)在不受到細心監(jiān)視的情況下可能阻塞其他的任務(wù),使之根本無法啟動。對于這個問題,一種解決方案是使用加權(quán)循環(huán)的方案。 在拉模式中,網(wǎng)格資源從任務(wù)隊列中獲取任務(wù)。在這樣的模式下,任務(wù)隊列的同步化與串行化就成為協(xié)調(diào)多個網(wǎng)格資源的任務(wù)獲取的必要手段。本地及全局任務(wù)隊列的策略也是可行的。在本地拉模式策略中,每一組網(wǎng)格資源都指派為從一個本地任務(wù)隊列獲取任務(wù)。在全局拉模式策略中,所有的網(wǎng)格資源都被指派使用同一個任務(wù)隊列。本地拉模式的優(yōu)勢在于能夠?qū)W(wǎng)格資源進行分片。比如說,離數(shù)據(jù)比較接近的,或相互有關(guān)的,或要求使用相似資源的某些任務(wù),都可以用這種方法進行控制。 推模式和拉模式的組合模式可以解決前面提到的一些問題。每一個網(wǎng)格資源可以決定何時能接收更多的工作,并向網(wǎng)格任務(wù)服務(wù)器發(fā)送工作請求。然后,任務(wù)服務(wù)器就向其發(fā)送新的工作。 在這兩種負載平衡模式下,都需要考慮故障恢復(fù)的條件。我們需要檢測出哪些網(wǎng)格資源已經(jīng)無法繼續(xù)操作了,在推模式中,不能把新的工作發(fā)送給已經(jīng)失效的資源。此外,無論是在推模式還是在拉模式中,我們必須細心控制所有已經(jīng)提交的但尚未完成的任務(wù)。失效主機上的所有未完成任務(wù)都需要進行重新分配,或者由同一組中的其他可運行主機接管過來。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:負載平衡。當您為網(wǎng)格環(huán)境啟用應(yīng)用程序的時候,還需要考慮與負載平衡有關(guān)的設(shè)計問題。應(yīng)用程序設(shè)計和開發(fā)人員需要理解目前的負載平衡機制是什么樣子(手工、推、拉、或是某種混合模式),這會對應(yīng)用程序,特別是它的性能和運行時間產(chǎn)生影響。如果應(yīng)用程序中具有大量獨立的任務(wù),每一個都可能受到負載平衡系統(tǒng)的影響或控制,那么這樣的應(yīng)用程序就可以從網(wǎng)格整體性能和吞吐量的提高當中獲益,不過這個應(yīng)用程序也可能需要建立更加復(fù)雜的機制,以便處理將任務(wù)延遲、或在整個網(wǎng)格內(nèi)移動任務(wù)所帶來的復(fù)雜性問題。 代理。在網(wǎng)格環(huán)境中,代理的職責(zé)非常重要。在很多網(wǎng)格環(huán)境中都可能需要實現(xiàn)這個組件,而實現(xiàn)它的方法可以相對簡單,也可能十分復(fù)雜。代理的基本職責(zé)是在服務(wù)請求者和服務(wù)提供者之間提供匹配服務(wù)。在網(wǎng)格環(huán)境中,服務(wù)請求者可能是應(yīng)用程序,也可能是被提交執(zhí)行的任務(wù)。服務(wù)提供者就是網(wǎng)格資源。 Globus 工具箱并沒有提供代理的功能。不過它通過監(jiān)視與發(fā)現(xiàn)服務(wù)(MDS)提供了網(wǎng)格信息服務(wù)。您可以對 MDS 進行查詢,從而發(fā)現(xiàn)主機、計算機和網(wǎng)絡(luò)的屬性,如當前可用處理器個數(shù)、所提供的帶寬以及可用的存儲類型等等。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:代理。當您設(shè)計在網(wǎng)格環(huán)境中運行的應(yīng)用程序時,很重要的一點是理解資源是如何被發(fā)現(xiàn)和分配的?赡苄枰獞(yīng)用程序告訴代理它的資源要求是什么,這樣代理就可以保證給這個應(yīng)用程序分配適當?shù)馁Y源。 進程間通信(IPC)網(wǎng)格系統(tǒng)中可能包含幫助任務(wù)之間相互通信的軟件。比如說,應(yīng)用程序可能會將自身劃分為大量的子任務(wù)。這些子任務(wù)當中的每一個都是網(wǎng)格中的一個獨立的任務(wù)。不過,應(yīng)用程序的算法可能要求子任務(wù)之間相互通信,傳遞一些信息。這些子任務(wù)要能夠定位其他特定的子任務(wù),與之建立通信連接,并發(fā)送適當?shù)臄?shù)據(jù)。消息傳遞接口(Message Passing Interface,MPI)是一項開放標準,它及其若干變種經(jīng)常作為網(wǎng)格系統(tǒng)的一部分來解決諸如此類的問題。 在應(yīng)用程序中啟用網(wǎng)格時的考慮:IPC。在任務(wù)之間進行進程間通信的需求總是會增加應(yīng)用程序的復(fù)雜程度,因此只要有可能,您就應(yīng)該將這種通信減到最少。然而,在大規(guī)模的復(fù)雜應(yīng)用程序中,進程間通信通常是不可避免的。在這種情況下,您應(yīng)該充分理解可用的 IPC 機制,并將失敗或通信速度變慢帶來的影響降到最低,這樣有助于保證整個應(yīng)用程序的成功。 非功能性需求 下面我們將討論一些與基礎(chǔ)設(shè)施有關(guān)的其他問題。這些問題被稱為非功能性需求,是因為它們與網(wǎng)格中某項特定的功能單元沒有關(guān)系,如任務(wù)管理、代理等。 性能 當您考慮在網(wǎng)格環(huán)境中啟用應(yīng)用程序時,網(wǎng)格的性能以及應(yīng)用程序?qū)π阅艿囊蟊仨毐豢紤]在內(nèi)。服務(wù)請求者對服務(wù)的質(zhì)量比較感興趣,如可接受的運行時間等。當然了,如果您要構(gòu)建一個網(wǎng)格及一個或多個應(yīng)用程序,用來在網(wǎng)格中提供服務(wù),那么服務(wù)提供者也希望能最大程度地利用網(wǎng)格中的功能和吞吐量。 可靠性 可靠性是計算領(lǐng)域內(nèi)永恒的話題,網(wǎng)格環(huán)境也不例外。實現(xiàn)這一難題最好的方法是預(yù)見所有可能出現(xiàn)的失敗情況,并提供解決這些情況的手段。最可靠的方法能夠“容納異常情況的出現(xiàn)”(surprise tolerant)。網(wǎng)格計算的基礎(chǔ)設(shè)施必須處理主機中斷和網(wǎng)絡(luò)中斷等情況。下面列出一些需要考慮的方法: 使用檢查點-重啟機制。 用持久性存儲保存中間結(jié)果。 用心跳監(jiān)視機制跟蹤系統(tǒng)狀態(tài)。 用健壯的系統(tǒng)管理解決方案最大程度地提高網(wǎng)格及其組件的可用性。 拓撲問題 網(wǎng)格計算的分布式本質(zhì)使地理上和組織機構(gòu)上的大跨度變得不可避免。隨著內(nèi)部網(wǎng)格的拓撲擴展為外部網(wǎng)格拓撲,復(fù)雜程度也逐漸提高。比如說,非功能性操作需求,安全性、目錄服務(wù)、可靠性、性能等都變得更加復(fù)雜。讓我們來研究一下拓撲的問題。 網(wǎng)絡(luò)拓撲。網(wǎng)格架構(gòu)內(nèi)的網(wǎng)絡(luò)拓撲可能在很多不同方面上呈現(xiàn)出來。網(wǎng)絡(luò)組件可以表示 LAN 或校園網(wǎng)的連通性,甚至還能表示網(wǎng)格網(wǎng)絡(luò)之間 WAN 的通信情況。網(wǎng)絡(luò)的職責(zé)是為所有的網(wǎng)格系統(tǒng)提供充足的帶寬。像基礎(chǔ)設(shè)施中其他的組件一樣,我們可以通過定制網(wǎng)絡(luò)來提供更高級別的可用性、性能以及安全性。 出于安全性以及其他一些架構(gòu)性的限制,網(wǎng)格系統(tǒng)從很大程度上來說是網(wǎng)絡(luò)密集型的。尤其是數(shù)據(jù)網(wǎng)格,它可能在整個企業(yè)的網(wǎng)絡(luò)內(nèi)散布著一些存儲資源,因此在基礎(chǔ)設(shè)施的設(shè)計中,為了保證足夠的性能,關(guān)鍵因素就在于處理數(shù)量巨大的網(wǎng)絡(luò)負載。 啟用應(yīng)用程序時應(yīng)該考慮的問題包括如何使網(wǎng)絡(luò)通信量最小,如何使網(wǎng)絡(luò)延遲最短。假設(shè)應(yīng)用程序的設(shè)計已經(jīng)能夠保證最小的網(wǎng)絡(luò)通信量,那么就有幾種方法可以使網(wǎng)絡(luò)延遲最短。比如說,千兆以太局域網(wǎng)可以用來支持高速群集,或?qū)崿F(xiàn)遠程網(wǎng)絡(luò)之間的高速 Internet 骨干網(wǎng)。 數(shù)據(jù)拓撲。我們最希望把任務(wù)指派到距離它所使用的數(shù)據(jù)最近的機器上執(zhí)行。這樣可以降低網(wǎng)絡(luò)的通信量,還可能降低可測量性方面的限制。 數(shù)據(jù)需要存儲空間。在一個網(wǎng)格的設(shè)計中,存儲的可能性問題是沒有止境的。存儲要求一定的安全性、要可以進行備份、要可管理,還/或要進行復(fù)制。在網(wǎng)格的設(shè)計中,您需要確定您的數(shù)據(jù)對于需要它的資源來說一直是可用的。除了可用性之外,您還需要保證數(shù)據(jù)得到適當?shù)谋Wo,因為您不能讓未經(jīng)授權(quán)的人訪問到敏感的數(shù)據(jù)。最后,您需要最佳的數(shù)據(jù)訪問性能。顯然,帶寬和訪問數(shù)據(jù)的距離兩者是相互有關(guān)的,但是您不會希望讓 I/O 問題阻礙網(wǎng)格應(yīng)用程序的運行速度。對于那些磁盤密集型的應(yīng)用程序,或是數(shù)據(jù)網(wǎng)格而言,您可以將工作重點更多地放在存儲資源上,比如您可以使用那些能夠提供更高容量、冗余程度或容錯機制的存儲。 混合平臺環(huán)境 網(wǎng)格環(huán)境是一組異質(zhì)的主機,它們具有不同的操作系統(tǒng)和軟件棧。為了執(zhí)行應(yīng)用程序,網(wǎng)格基礎(chǔ)架構(gòu)需要知道應(yīng)用程序能夠找到所匹配的網(wǎng)格主機環(huán)境的先決條件。您必須考慮多種不同的因素,然后才能使應(yīng)用程序在類型與數(shù)量都盡可能多的環(huán)境中執(zhí)行,這一點十分重要。 運行時需要考慮的問題。應(yīng)用程序的運行時需求及網(wǎng)格主機的運行時環(huán)境必須相匹配。例如,下面列出 Java 應(yīng)用程序在這方面的一些要求。用其他編程語言開發(fā)的應(yīng)用程序也可能存在類似的要求。 Java 虛擬機(JVM)。用 Java 編程語言編寫的應(yīng)用程序要求具備 Java 虛擬機(JVM)。Java 應(yīng)用程序可能對 JVM 的版本變化很敏感。為了解決這種敏感性,應(yīng)用程序需要對 JVM 版本號進行識別,這是匹配的先決條件。這項先決條件的內(nèi)容可能是要求某種 JVM 版本號,或是某個最小 JVM 版本號。Java 應(yīng)用程序也可能對 Java 堆的大小敏感。Java 應(yīng)用程序需要把最小堆容量作為先決條件。Java 包的類型,如 J2SE、或 J2EE 等,也可能是先決條件的一部分。 應(yīng)用程序的跨平臺可用性(可移植性)。應(yīng)用程序的可執(zhí)行性是與特定的平臺有關(guān)的。比如說,用 C 或 C++ 語言編寫的應(yīng)用程序需要在目標平臺上進行重新編譯,然后才能運行。您可以為每一種平臺重新編譯一次應(yīng)用程序,得到的可執(zhí)行程序就標記為目標平臺上的。這種做法能夠增加應(yīng)用程序能夠運行的網(wǎng)格主機數(shù)目。它的局限性在于將應(yīng)用程序移植到其他平臺上時所花費的成本。 了解 OS 環(huán)境。網(wǎng)格是一組異質(zhì)計算資源。如果應(yīng)用程序依賴于某種特定的操作系統(tǒng)。那么該應(yīng)用程序就需要驗證網(wǎng)格中是否具有正確的環(huán)境,并處理環(huán)境不同所帶來的問題。 輸出文件格式。當一臺網(wǎng)格主機上運行的應(yīng)用程序的輸出信息被另一臺網(wǎng)格主機上運行的應(yīng)用程序所訪問的時候,了解輸出文件的格式就顯得十分必要了。這兩臺網(wǎng)格主機可能具有不同的平臺環(huán)境。您可以考慮用 XML 作為數(shù)據(jù)交換的格式。XML 現(xiàn)在已經(jīng)十分流行,它不僅僅是一種用于數(shù)據(jù)交換的標記語言,還是一種用于存儲半結(jié)構(gòu)化的數(shù)據(jù)格式。 當您要在網(wǎng)格環(huán)境中啟用某個應(yīng)用程序時,必須充分理解網(wǎng)格環(huán)境中的功能性組件和非功能性因素,如性能要求或操作系統(tǒng)要求等。
抱歉,此頁面的內(nèi)容受版權(quán)保護,復(fù)制需扣除次數(shù),次數(shù)不足時需付費購買。
如需下載請點擊:點擊此處下載
掃碼付費即可復(fù)制
翻頻 | usb | HSUPA | mbms | EGSM | 掃頻儀 | 天饋系統(tǒng) | 刷機 | TTI | 單通 | 移動 | server |
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團隊博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助