2017電子科技大學(xué)分布式系統(tǒng)考點_第1頁
2017電子科技大學(xué)分布式系統(tǒng)考點_第2頁
2017電子科技大學(xué)分布式系統(tǒng)考點_第3頁
2017電子科技大學(xué)分布式系統(tǒng)考點_第4頁
2017電子科技大學(xué)分布式系統(tǒng)考點_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章概述■分布式系統(tǒng)的目標(biāo)■資源共享(resourcesharing)計算機(jī)通過網(wǎng)絡(luò)連接起來,并在這個范圍內(nèi)有效地共享資源硬件的共享,軟件的共享,數(shù)據(jù)的共享,服務(wù)的共享媒體流的共享(動態(tài)的資源形式)■協(xié)同計算(collaborativecomputing)■并行計算,分布式計算分布式系統(tǒng)是指把多個處理機(jī)通過網(wǎng)絡(luò)互連而構(gòu)成的系統(tǒng),系統(tǒng)的處理和控制功能分布在各個處理機(jī)上?!龇植际较到y(tǒng)的問題源于下面三個特點:■并發(fā)性(concurrence)■多個程序(進(jìn)程,線程)并發(fā)執(zhí)行,共享資源■沒有全局時鐘(globalclock)■每個機(jī)器都有各自的時間,沒有辦法做到統(tǒng)一,程序間的協(xié)調(diào)靠交換消息■故障獨立性(independentfailure)■一些進(jìn)程出現(xiàn)故障,并不能保證其它進(jìn)程都能知道分布式的挑戰(zhàn)異構(gòu)性:網(wǎng)絡(luò)協(xié)議,硬件,操作系統(tǒng),編程語言,開發(fā)者實現(xiàn)方式的不同.開放性:可擴(kuò)展性:安全性:機(jī)密性:防止未經(jīng)授權(quán)的個人訪問資源完整性:防止數(shù)據(jù)被篡改和破壞可用性:防止對所提供服務(wù)的干擾故障處理:檢測故障,屏蔽故障,故障容錯,故障恢復(fù),冗余策略并發(fā):正確性:多個進(jìn)程并發(fā)訪問共享資源,要保證被訪問數(shù)據(jù)的正確性,不能出現(xiàn)不一致。性能:多個并發(fā)操作保證性能透明性:訪問透明:使用同樣的操作去訪問本地資源和遠(yuǎn)程資源。位置透明:訪問資源的時候,不需要知道資源的位置。并發(fā)透明:幾個進(jìn)程同時訪問資源,互不干擾。復(fù)制透明:使用多個資源的副本來提高可靠性和性能,用戶或者應(yīng)用程序開發(fā)者并不需要了解副本技術(shù)。故障透明,移動透明,性能透明,擴(kuò)展透明第二章系統(tǒng)模型結(jié)構(gòu)模型構(gòu)成系統(tǒng)各部分(components,computers,procedures)的位置、角色和它們之間的關(guān)系,它定義了系統(tǒng)的各組件之間相互交互的方式以及它們映射到下面的計算機(jī)網(wǎng)絡(luò)的方式??蛻?服務(wù)器結(jié)構(gòu)對等結(jié)構(gòu)(客戶/服務(wù)器模型的變種)基礎(chǔ)模型體系結(jié)構(gòu)模型所涉及的問題:系統(tǒng)中的主要實體是什么?它們?nèi)绾谓换??影響他們單個和集體行為的特征是什么?模型的目的顯式地表示有關(guān)正在建模的系統(tǒng)假設(shè);給定這些假設(shè),就什么是可行的,什么是不可行的給出結(jié)論。交互模型通信性能不可能維護(hù)一個全局時間概念同步分布式系統(tǒng)進(jìn)程執(zhí)行每一步的時間有一個上限和下限。每個在網(wǎng)絡(luò)上傳輸消息可在已知時間范圍內(nèi)接收到。每個進(jìn)程的局部時鐘相對于實際時間的漂移是在已知的范圍內(nèi)。異步分布式系統(tǒng)---沒有可預(yù)測的時限■ 進(jìn)程執(zhí)行每速一度步都可能需要任意長的時間消息傳遞延遲收到一個消息的等待時間可能任意長時鐘漂移率漂移率可能是任意的故障模型遺漏故障Omissionfailures隨機(jī)故障Arbitraryfailures時序故障Timingfailures安全模型進(jìn)程的安全性通信信道的安全性對象的安全性交互模型:時序問題,不能一個人看到的回答先于問題到達(dá)。故障模型:消息丟失,保證每個組成員都要收到相同的消息。安全模型:消息的加密。第三章時間和全局狀態(tài)(重點)Cristian方法(理解)應(yīng)用條件-存在時間服務(wù)器,可與外部時間源同步-消息往返時間與系統(tǒng)所要求的精度相比足夠短協(xié)議-進(jìn)程p根據(jù)消息mr,mt計算消息往返時間Tround-根據(jù)服務(wù)器在mt中放置的時間t設(shè)置時鐘為:t+Tround/2

tp時間服務(wù)器Stp精度分析若消息的最小傳輸時間為min,則精度為:(Trou法—min)(注意:可暫時不考慮從A到B和從B到A的消息傳輸路徑不同而導(dǎo)致的傳輸時間不同)---S在mt中放置時間最早點是在p發(fā)出mr之后的min―應(yīng)答消息到達(dá)時S的時鐘時間位于[t+miQt+Tround-min]―上面的范圍寬度是Tround-2mint+ t+T-min0 0 . (jround 匕mint t+Tround/2 t+Tround網(wǎng)絡(luò)時間協(xié)議(NTP)設(shè)計目標(biāo)可外部同步使得跨Internet的用戶能精確地與UTC(通用協(xié)調(diào)時間)同步高可靠性可處理連接丟失,采用冗余服務(wù)器、路徑等擴(kuò)展性好大量用戶可經(jīng)常同步,以抵消漂移率的影響安全性強(qiáng)防止惡意或偶然的干擾協(xié)議結(jié)構(gòu)層次結(jié)構(gòu)-主服務(wù)器直接與外部UTC同步-同步子網(wǎng)可重新配置NTP三種同步模式-組播適用于高速LAN準(zhǔn)確度較低,但效率高-過程調(diào)用與Cristian算法類似準(zhǔn)確度較低-對稱模式---按對稱模式操作的一對服務(wù)器交換有時序信息的消息保留時序信息準(zhǔn)確度最高如下圖所示,有P1、P2、P3三個進(jìn)程以及發(fā)生的事件a,b,c,…,假定邏輯時鐘的初始值為0。1)為每個事件標(biāo)定Lamport時鐘。2)為每個事件標(biāo)定全序邏輯時鐘。3)為每個事件標(biāo)定向量時鐘。4)割C1,C2是否是一致割集,如果不是為什么?Lamport時鐘全序邏輯時鐘(T,Pi)Pi為進(jìn)程號

向量時鐘每個進(jìn)程維護(hù)它自己的向量時鐘Vi,如圖3個進(jìn)程3個分量S=(s1,s2,…sN)割集——系統(tǒng)全局歷史的子集C=<h1c1,h2c2…h(huán)3c3>割集的一致性割集C是一致的對于所有事JeC,ffenfcC一致的全局狀態(tài)——對應(yīng)于一致割集的狀態(tài)S。-fS〔-fS?-f.…“快照”算法進(jìn)程pi的標(biāo)記接收規(guī)則pi接收通道c上的標(biāo)記消息:if(pi還沒有記錄它的狀態(tài))pi記錄它的進(jìn)程狀態(tài);將c的狀態(tài)記成空集;開始記錄從其他接入通道上到達(dá)的消息elsepi把c的狀態(tài)記錄成從保留它的狀態(tài)以來它在c上接收到的消息集合endif進(jìn)程pi的標(biāo)記發(fā)送規(guī)則在pi記錄了它的狀態(tài)之后,對每個外出通道c:(在pi從c上發(fā)送任何其他消息前)pi在c上發(fā)送一個消息標(biāo)記分布式調(diào)試判定可能的從初始狀態(tài)開始,遍歷可達(dá)狀態(tài)的網(wǎng)格。L:=0;States:={(s01,s02,…,s0N)};while(對所有可能的SwStates,0(s尸F(xiàn)alse)L:=L+1;Reachablek{S':H中從一些SeStates可到達(dá)的狀態(tài)Alevel(S’戶L};States:=Reachable;endwhile輸出“可能的仁見書上P.368的求解明確的??赡艿暮兔鞔_的區(qū)別:從初始狀態(tài)開始,經(jīng)過從這點開始可到達(dá)的所有一致狀態(tài),在每一步判定帕當(dāng)。判定為T時停止計算。為了判定明確的。,監(jiān)控器進(jìn)程必須試圖找到所有線性化走向必須經(jīng)過的。判定為T的狀態(tài)集第四章協(xié)調(diào)和協(xié)定(重點)基于環(huán)的算法:構(gòu)架(進(jìn)程安排在一個邏輯環(huán)中,每個進(jìn)程pi與環(huán)中下一個進(jìn)程p(i+1)modN有一個通信信道)如果一個進(jìn)程在收到令牌時,不需要進(jìn)入臨界區(qū),那么,它立即把令牌傳給它的鄰居。如果一個進(jìn)程在收到令牌時,不需要進(jìn)入臨界區(qū),那么,它立即把令牌傳給它的鄰居。滿足安全性和活性要求,但不滿足順序要求。-客戶延遲Min:0個消息,正好收到令牌Max:N個消息,剛剛傳遞了令牌-同步延遲Min:1個消息,進(jìn)程依次進(jìn)入臨界區(qū)Max:N個消息,在一個進(jìn)程離開和下一個進(jìn)程進(jìn)入臨界區(qū)之間的同步延遲。使用組播和邏輯時鐘的算法:進(jìn)程進(jìn)入臨界區(qū)需要所有其它進(jìn)程的同意初始化:state:=RELEASED;為了進(jìn)入臨界區(qū)state:=WANTED;組播請求給所有進(jìn)程;T:=請求的時間戳;Waituntil(接收到的應(yīng)答數(shù)=(N-1));state:=HELD;在邛國)接收一個請求<1£>if(state=HELDor(state=WANTEDand(T,pj)<(Ti,pi)))then將請求放入pi隊列,不給出應(yīng)答;else馬上給pi應(yīng)答endif為了退出臨界區(qū);state:=RELEASED;對已進(jìn)入隊列的請求給出應(yīng)答;滿足安全性、活性和順序要求。-客戶延遲1個消息往返時間-同步延遲1個消息的傳輸時間基于環(huán)的選舉算法在異步系統(tǒng)中選舉具有最大標(biāo)識符的進(jìn)程作為協(xié)調(diào)者-最初,每個進(jìn)程標(biāo)記為非參與者-任何進(jìn)程可以開始一次選舉>將自身標(biāo)記為參與者>idmsg=汨local,發(fā)送選舉消息{eleJ汨msj至鄰居-接收到選舉消息{elect,idmsg}時:>自身汨小于消息中的id,即idlocalvidmsg,轉(zhuǎn)發(fā)消息并將自身標(biāo)記為參與者>自身汨大于消息中的id,即idlocal>idmsg,若自身標(biāo)記為參與者,則不轉(zhuǎn)發(fā)消息/若自身標(biāo)記為非參與者,則發(fā)送{elect,MAX(idlocal,idmsg)}至鄰居,并將自身標(biāo)記為參與者>當(dāng)idlocal=idmsg時,該進(jìn)程成為協(xié)調(diào)者,發(fā)送{elected,idcoordinator}至鄰居,鄰居節(jié)點依次轉(zhuǎn)發(fā)該消息,并設(shè)置協(xié)調(diào)者信息,直至該消息再次到達(dá)協(xié)調(diào)者。霸道算法下面解釋有助理解,考的是算法知道自己有最大標(biāo)識符的進(jìn)程通過發(fā)送協(xié)調(diào)者消息給所有具有較小標(biāo)識符的進(jìn)程,選舉自己。有較小標(biāo)識符的進(jìn)程通過發(fā)送選舉消息給那些有較大標(biāo)識符的進(jìn)程,開始一次選舉,并等待應(yīng)答消息。如果它具有最大的進(jìn)程標(biāo)識符,它會決定自己是協(xié)調(diào)者,并向其他進(jìn)程宣布。該算法為“霸道算法?!彼惴ǎ?選舉初始化進(jìn)程P在發(fā)現(xiàn)協(xié)調(diào)者失效后啟動一次選舉將選舉消息發(fā)送給具有更大標(biāo)識符的進(jìn)程。接收進(jìn)程回送一個回答并開始另一次選舉協(xié)調(diào)者發(fā)送協(xié)調(diào)者消息>若進(jìn)程P沒有收到回答消息,則給所有具有較小標(biāo)識符的進(jìn)程發(fā)送協(xié)調(diào)者消息。>若進(jìn)程P收到回答消息,則等待協(xié)調(diào)者消息;若消息在一段時間沒沒有到達(dá),則啟動一次新的選舉算法。-進(jìn)程收到協(xié)調(diào)者信息后,設(shè)置electedi=idcoordinator用IP組播實現(xiàn)可靠組播組g中的每個進(jìn)程維護(hù)一個序號Sgp:下一個要傳送的消息序號。Rgq:來自進(jìn)程q的最新消息序號。進(jìn)程p要R-multicast一個消息到組g:捎帶Sgp和確認(rèn);Sgp=Sgp+1。R-deliver一個消息m:.當(dāng)且僅當(dāng)m.S=Rgp+1傳遞消息;Rgp=Rgp+1.若m.S<=Rgp,則該消息已傳遞,直接丟棄。.若m.S>Rgp+1或?qū)θ我夥忾]的確認(rèn)<q,Rgq>有m.R>Rgq,則漏掉了一個或多個消息,將消息保留在保留隊列中,并發(fā)送否認(rèn)確認(rèn)。全排序如果一個正確的進(jìn)程在傳遞m′前傳遞消息m,那么其它傳遞m'的正確進(jìn)程將在m'前傳遞m,只要該順序在不同進(jìn)程中是一樣的即可,不必是FIFO或者因果.使用順序者的全排序算法.組成員p的算法初始化:rg:=0;為了給組g發(fā)TO-multicast消息:B-multicast(gu{sequencer(g)},<m,i>);i是m的一個唯一標(biāo)識符。在B-deliver(Morder=<"order”,i,s>)時,其中g(shù)=group(Morder)Waituntil<m,i>在保留隊列中并且S=rg;To-deliverm;//在從保留隊列刪除它之后rg=S+1;初始化:sg:=0;在B-deliver(<m,i>)時,其中g(shù)=group(M0rder)B-multicast(g,<“order”,i,sg>);sg:=sg+1;基于順序者的算法缺點:順序者會成為瓶頸拜占庭將軍問(共識問題)N進(jìn)程,f錯誤隨機(jī)故障假設(shè)N個進(jìn)程中最多有f個進(jìn)程會出現(xiàn)隨機(jī)故障N<3f無解決方法N>3f+1Lamport于1982給出了解決算法第五章事務(wù)和并發(fā)控制(重點)樂觀并發(fā)控制向后驗證.檢查它的讀集是否和其它較早重疊事務(wù)的寫集是否重疊---要做,規(guī)則2.檢查它的讀集是否和其它較早重疊事務(wù)的讀集是否重疊---不需要做算法Booleanvalid=trueFor(intT.=startTn+1;T.<=finishT'T,++){si^j*if(readsetofTyintersectswritesetof7])valid=false}-startTn:Tv進(jìn)入工作階段時已分配的最大事務(wù)號碼-finishTn:Tv進(jìn)入驗證階段時已分配的最大事務(wù)號碼驗證失敗后,沖突解決方法放棄當(dāng)前進(jìn)行驗證的事務(wù)事物的驗證過程-T1、T2、T3是較早開始的事務(wù)-T1在Tv開始之前提交-T2、T3在Tv完成其工作階段前提交-startTn+1=T2,finishTn=T3- :;.ii中外:中? …I 二:口任二的K七I III /T:? ■II匚t| [II?叫I.1后丁工用《二]向后觸證過科必酒比較人的讀集用Ma飛的耳集向前驗證比較Tv的寫集合和所有重疊的活動事務(wù)的讀集合一規(guī)則1活動事務(wù)是那些在工作階段中的事務(wù),并無事務(wù)號算法-設(shè)活動事務(wù)具有連續(xù)的事務(wù)標(biāo)示符active1~activeNBooleanvalid=tinefor(intTid=active2—1;4d<=active^^++){if(writesetofTvintersectsreadsetofTQvalid=false驗證失敗后,沖突解決方法,幾個策略:-放棄當(dāng)前進(jìn)行驗證事務(wù)-推遲驗證放棄所有沖突的活動事務(wù),提交已驗證事務(wù)。事物的驗證過程T1、T2、T3是較早開始的事務(wù)T1在Tv開始之前提交T2、T3在Tv完成其工作階段前提交-startTn+1=T2,finishTn=T3向后驗證將較大的讀集合和較早事務(wù)的寫集合進(jìn)行比較向前驗證將較小的寫集合和活動事務(wù)的讀集合進(jìn)行比較時間戳排序規(guī)叼 工 I,wrieread如果T?U,那&T,不能寫被T,走過的對象-這要求£之戰(zhàn)M慷的最大讀時間做一有問超沒有?如果讀出來有使用呢T再祓寫其他數(shù)的動作(用到該對象.〕,讀操作看見了嗎Tivitewrit仲如果穿工,―一環(huán)能寫被工寫過的對歙,這要求丁上二擾交豺象的二H間融3.readwite如果T,,T.,那女工.不能談被TJ:過的對象,這要求T心巳提交對旗的‘冷時間做時間戳排序的寫規(guī)則是否接受事務(wù)Tc對對象D執(zhí)行的寫操作if(Tc>D的最大讀時間戳(提交? D的提交版本上的寫時間戳)在D的臨時版本匕執(zhí)行‘叮操作,寫時向戳設(shè)為Lelse/*寫操作太晚了*/放交事務(wù)L時間戳排序的讀規(guī)則是否接受事務(wù)Tc對對象D執(zhí)行的讀操作ifCrc:>Di;交版本的寫時間戳)設(shè)屐蛔鼠是D的具力,最大j肘間默的版本、T<;if①泊n已提交)在/lKied版本上完成直操'1-else等待蟲到形旗版本的H務(wù)提交或放棄,然后重新應(yīng)用讀規(guī)則}else,二妒事務(wù)]第六章復(fù)制(重點)系統(tǒng)模型基本模型組件副本管理器接收前端請求對副本執(zhí)行原子性操作前端接收客戶請求-通過消息傳遞與多個副本管理器進(jìn)行通信副本對象的操作請求:前端將請求發(fā)送至一個或多個副本管理器協(xié)調(diào)-保證執(zhí)行的一致性-對不同請求進(jìn)行排序(FIFO,因果,全序)執(zhí)行:包括臨時請求的執(zhí)行協(xié)定:就提交請求的影響達(dá)成一致響應(yīng):一個或多個副本管理器響應(yīng)前端被動(主備份)復(fù)制一個主副本管理器+多個次副本管理器-若主副本管理器出現(xiàn)故障,則某個備份副本管理器將提升為主副本管理器。模型被動復(fù)制時的事件次序請求前端將請求發(fā)送給主副本管理器協(xié)調(diào)主副本管理器按接收次序?qū)φ埱笈判驁?zhí)行主副本管理器執(zhí)行請求并存儲響應(yīng)協(xié)定若請求為更新操作,則主副本管理器向每個備份副本管理器發(fā)送更新后的狀態(tài)、響應(yīng)和唯一標(biāo)識符。備份副本管理器返回確認(rèn)。響應(yīng)主副本管理器將響應(yīng)發(fā)送給前端前端將響應(yīng)發(fā)送給客戶主動復(fù)制副本管理器地位對等,前端組播消息至副本管理器組模型主動復(fù)制時的事件次序請求前端使用全序、可靠的組播原語將請求組播到副本管理器組協(xié)調(diào)組通信系統(tǒng)以同樣的次序(全序)將請求傳遞到每個副本管理器執(zhí)行每個副本管理器以相同的方式執(zhí)行請求響應(yīng)每個副本管理器將響應(yīng)發(fā)送給前端前端將響應(yīng)發(fā)送給客戶gossip體系結(jié)構(gòu)查詢和更新操作流程請求前端將請求發(fā)送至副本管理器查詢:客戶可能阻塞更新:無阻塞更新響應(yīng)副本管理器立即應(yīng)答收到的更新請求協(xié)調(diào)收到請求的副本管理器并不處理操作,直到它能根據(jù)所要求的次序約束處理請求為止。執(zhí)行副本管理器執(zhí)行請求查詢響應(yīng)副本管理器對查詢請求作出應(yīng)答協(xié)定副本管理器通過交換gossip消息進(jìn)行相互更新gossip消息的交換是偶爾的發(fā)現(xiàn)消息丟失后,才和特定的副本管理器交換消息查詢操作副本管理器收到查詢一個查詢請求q包含操作的描述和一個前端發(fā)送的時間q.pre,這個值反映了前端已讀到或作為更新已提交的值最新版本。q.preWvalueTS(副本管理器的值時間戳)立即響應(yīng)返回消息中的時間戳為valueTS-否則> 副本管理器將消息保存到保留隊列(將要執(zhí)行的操作表),等待丟失的更新,能從相關(guān)副本管理器獲取更新。前端收到查詢響應(yīng)-合并時間戳:frontEndTS:=merge(frontEndTS,new)(2,5,6)按因果次序處理更新前端發(fā)送更新請求:發(fā)送同樣的請求u給若干副本管理器。副本管理器i接收請求-丟棄:操作已經(jīng)處理過,根據(jù)已執(zhí)行操作表和它的日志中的記錄-否則,將更新記錄日志-副本管理器將ts返回給前端,ts是副本服務(wù)器分配給更新的唯一時間戳。更新請求u的穩(wěn)定性條件u.prevWvalueTS即所有由發(fā)起更新的前端觀察到的更新已經(jīng)執(zhí)行了,指副本服務(wù)器?如果更新提交時這個條件不滿足,它將在閑聊消息到達(dá)時重新檢查。副本管理器的更新操作第七章分布式文件系統(tǒng)組件文件服務(wù)的三個組件平面文件服務(wù)對文件內(nèi)容進(jìn)行操作唯一的文件標(biāo)識(UFID),用于在所有平面文件服務(wù)操作的請求中標(biāo)識文件UFID是一長串比特,每個文件的UFID在分布式系統(tǒng)的所有文件中是唯一的目錄服務(wù)提供文件名到UFID的映射客戶模塊提供應(yīng)用程序?qū)h(yuǎn)程文件服務(wù)透明存取的支持,可供客戶計算機(jī)上的用戶級程序使用如對目錄的迭代請求,緩存文件NFS服務(wù)器緩存NFS服務(wù)器的讀緩存和本地文件系統(tǒng)相同NFS服務(wù)器的寫緩存:增強(qiáng)可靠性寫透緩存:客戶發(fā)出的Write操作中的數(shù)據(jù)存儲在服務(wù)器的內(nèi)存緩存中,在給客戶發(fā)送應(yīng)答前先將應(yīng)答寫入磁盤。Write操作中的數(shù)據(jù)只存儲在內(nèi)存緩存中。但客戶可以相信:數(shù)據(jù)被服務(wù)器持久地存儲起來了提交操作:當(dāng)文件關(guān)閉時,發(fā)送一個commit,數(shù)據(jù)被寫入磁盤中。客戶收到相關(guān)文件的該操作應(yīng)答,客戶可肯定數(shù)據(jù)被持久地存儲了。NFS客戶緩存在客戶端緩存文件塊保持一致性客戶輪詢服務(wù)器來檢查他們所用的緩存數(shù)據(jù)是否是最新的。有效性條件緩存中的每個數(shù)據(jù)塊被標(biāo)上兩個時間戳Tc:緩存條目上一次被驗證的時間。Tm:服務(wù)器上一次修改文件塊的時間。有效性條件:(T-Tc<t)V(Tmciient=Tmserver)(或者)減小對服務(wù)器進(jìn)行g(shù)etattr調(diào)用的幾種方法當(dāng)客戶收到一個新的Tmserver值時,將該值應(yīng)用于所有相關(guān)文件派生的緩存項。將每一個文件操作的結(jié)果同當(dāng)前文件屬性一起發(fā)送,如果Tmserver值改變,客戶便可用它來更新緩存中與文件相關(guān)的條目。采用自適應(yīng)算法來設(shè)置更新間隔值t,寫緩存關(guān)閉文件時將文件寫到服務(wù)器周期性進(jìn)行同步寫AFS的緩存策略客戶機(jī)的用戶進(jìn)程向共享文件空間內(nèi)的一個文件發(fā)出Open系統(tǒng)調(diào)用,如果該文件的副本不在本地緩存上,AFS查找文件所在的服務(wù)器,向其請求傳輸文件的一個副本在客戶機(jī)上存儲文件副本,存儲在客戶計算機(jī)的本地UNIX文件系統(tǒng)中,文件拷貝被打開,相應(yīng)的UNIX描述符返回客戶客戶在本地副本上進(jìn)行讀/寫(Read/Write)客戶關(guān)閉文件如果文件被更新,將它刷新至服務(wù)器,服務(wù)器更新此文件的內(nèi)容和時間戳客戶本地磁盤上的拷貝一直被保留,以供在同一工作站上的用戶級進(jìn)程下一次使用由于大部分請求為讀請求,與輪詢相比,客戶與服務(wù)器間的交互顯著減少第八章谷歌文件系統(tǒng)GFSGFS的設(shè)計思想文件以數(shù)據(jù)塊的形式存儲數(shù)據(jù)塊大小固定,每個數(shù)據(jù)塊擁有句柄。利用副本技術(shù)保證可靠性每個數(shù)據(jù)塊至少在3個塊服務(wù)器上存儲副本。每個數(shù)據(jù)塊作為本地文件存儲在Linux文件系統(tǒng)中。主服務(wù)器維護(hù)所有文件系統(tǒng)的元數(shù)據(jù)每個GFS簇只有一個主服務(wù)器。利用周期性的心跳信息更新服務(wù)器。客戶端無需緩存數(shù)據(jù),只需緩存元數(shù)據(jù)。GFS的體系結(jié)構(gòu)(閱讀和理解)什么是主服務(wù)器?GFSmaster在獨立的主機(jī)上運(yùn)行的一個進(jìn)程存儲的元數(shù)據(jù)信息:文件命名空間文件到數(shù)據(jù)塊的映射信息數(shù)據(jù)塊的位置信息訪問控制信息數(shù)據(jù)塊版本號文件數(shù)據(jù)塊:64MB的大數(shù)據(jù)塊,將文件存儲在固定大小的塊中優(yōu)點:減少master上保存的元數(shù)據(jù)的規(guī)模,使得可以將metadata(元數(shù)據(jù))放在內(nèi)存中。Client在一個給定塊上很可能執(zhí)行多個操作,和一個塊服務(wù)器保持較長時間的TCP連接可以減少網(wǎng)絡(luò)負(fù)載。在client中緩存更多的塊位置信息。缺點:一個文件可能只包含一個塊,如果很多client訪問該文件,存儲塊的塊服務(wù)器可能會成為訪問熱點。塊位置信息Master并不為塊服務(wù)器的所有塊的副本保存一個不變的記錄。Master在啟動時或者在有新的client加入這個簇時通過簡單的查詢獲取這些信息。Master可以保持這些信息的更新,因為它控制所有塊的放置并通過心跳消息(heartbeat)來監(jiān)控。內(nèi)存數(shù)據(jù)結(jié)構(gòu)master的操作很快,所以master可以輕易而且高效地定期在后臺掃描它的整個狀態(tài)。塊垃圾收集。為平衡負(fù)載和磁盤空間而進(jìn)行的塊遷移。塊服務(wù)器出現(xiàn)故障時的副本復(fù)制。整個系統(tǒng)的容量受限于master的內(nèi)存,64KB/64MB。如果一個塊大小采用64KB,元數(shù)據(jù)量將增加1000倍。若要支持更大的文件系統(tǒng),那么增加一些內(nèi)存的方法對于我們將元數(shù)據(jù)保存在內(nèi)存中所獲得的簡單性、可靠性、高性能和靈活性來說,只是一個很小的代價。主服務(wù)器和塊服務(wù)器之間的通信(GFSmaster和GFSchunkserver)定期地獲取狀態(tài)信息塊服務(wù)器是否關(guān)閉?塊服務(wù)器上是否有硬盤損壞?是否有副本出錯?塊服務(wù)維護(hù)哪些塊的副本?主服務(wù)器發(fā)送命令給塊服務(wù)器:刪除已存在的塊。創(chuàng)建新的塊。操作日志操作日志包含了對metadata(元數(shù)據(jù))所作的修改的歷史記錄,被復(fù)制在多個遠(yuǎn)程塊服務(wù)器上。它可以從本地磁盤裝入最近的檢查點來恢復(fù)狀態(tài)。它作為邏輯時間基線定義了并發(fā)操作的執(zhí)行順序。文件、塊以及它們的版本號都由它們被創(chuàng)建時的邏輯時間而唯一地、永久地被標(biāo)識。Master可以用操作日志來恢復(fù)它的文件系統(tǒng)的狀態(tài)。服務(wù)請求:Client從主服務(wù)器檢索元數(shù)據(jù)(metadata)。在client和主服務(wù)器

溫馨提示

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

最新文檔

評論

0/150

提交評論