分布式檔案系統 lease機制

2021-06-19 23:14:29 字數 1969 閱讀 4138

lease機制是最重要的分布式協議,廣泛應用於各種實際的分布式系統中。lease機制最重要的應用是,判斷節點狀態。lease是由頒發者授予的在某一有效期內的承諾。辦法者一旦發出lease,則無論接收方是否收到,也無論後續接收方處於何種狀態,只要lease未過期,頒發者一定嚴守承諾;另一方面,接收方在lease的有效期內可以使用頒發者的承諾,則一旦lease過期,接收方一定不能繼續使用頒發者的承諾。

lease表示某種承諾,具體的承諾內容可以非常的寬泛。可以使某種許可權,例如當需要進行併發控制時,統一時刻只給某一節點頒發lease,只有持有lease的節點才可以修改資料。

lease機制依賴於有效期,這就要求頒發者和接收者的時鐘是同步的。一方面,如果頒發者的始終比接收者慢,則當接收者認為lease已經過期的時候,頒發者依舊認為lease有效。接收者可以用在lease到期前申請新的lease的方式解決這個問題。另一方面,如果頒發者的時鐘比接收者的始終快,當頒發者認為lease已經過期的時候,接收者依舊認為lease有效,頒發者可能將lease頒發給其他節點,造成承諾失敗,影響系統的正確性。對於這種時鐘不同步,實踐中的通常做法是將頒發者的有效期設定得比接收者的略大,只需大過時鐘誤差就可以避免對lease的有效期的影響。

基於lease機制確定節點狀態:

在分布式系統中,確定乙個節點是否處於正常工作狀態是乙個困難的問題。由於可能存在網路分化,可點的狀態無法通過網路通訊來確定。下面通過乙個例子來說明:

在乙個primary-secondary架構的系統中,有節點a,b,c互為副本,其中有乙個節點為primary,同一時刻只能有乙個primary節點。另有乙個節點q負責判斷節點a,b,c的狀態,一旦q發現primary異常,節點q將選擇另乙個節點作為primary。假設最開始時a為primary, b,c為secondary。節點q需要判斷節點a,b,c的狀態是否正常。

基於「心跳heartbeat」的方法並不能很好的解決這個問題。a,b,c週期性的向q傳送心跳資訊,若q超過一定時間收不到某個節點的心跳資訊,則認為節點異常。但顯然,通訊異常也有可能是網路中斷導致的,更大的可能是節點間的網路擁塞造成的「瞬斷」,而「瞬斷」是可以很快恢復的。

假設a本身工作正常,但q與a之間的網路暫時中斷,a與b,c之間的網路正常。此時q認為a異常,重新選擇b為primary,並通知a,b,c新的primary為b。由於q的通知訊息到達節點a,b,c的順序無法確定,假設先到b,則在這一時刻,系統中同時存在兩個primary,即a,b。假如此時a,b都接受外部請求並與c同步資料,會產生嚴重的資料錯誤。

解決的方法可以是利用lease機制確定節點狀態:由中心節點向其他節點傳送lease,若某個節點持有有效的lease,則認為該節點正常可以服務。例如,a,b,c依然週期性的傳送心跳資訊報告自身狀態,節點q收到心跳後傳送乙個lease,表示確認了a,b,c的狀態,並允許節點在lease有效期內正常工作。q可以給primary節點乙個特殊的lease, 表示節點可以作為primary工作。一但節點q希望切換新的primary,則只需等前乙個primary的lease過期,則就可以安全的頒發新的lease給新的primary節點,這樣可以避免「雙主」問題。

lease的有效時間的選擇:若太短(如1秒),很容易因為網路抖動造成lease丟失。若太長(如1分鐘),一旦接收者異常,頒發者需要很長時間才能收回lease承諾。工程中,通常選擇10秒級別。

gfs中的lease:

gfs中使用lease確定chunk的primary部分。lease由master節點頒發給primary副本,持有lease的副本成為primary副本。primary副本控制該chunk的資料更新流量,確定併發更新操作在chunk上的執行順序。gfs中的lease資訊由master在響應各個節點的heart beat時附帶傳遞。但gfs得master失去某個節點的heart beat時,只需待該節點上的primary chunk的lease超時,便可以為這些chunk重新選擇primary副本並頒發lease。

references

01.分布式檔案系統,劉傑

02.google file system, google

分布式檔案系統

分布式檔案系統 概述 系統管理員可以利用分布式檔案系統 dfs 使使用者訪問和管理那些物理上跨網路分布的檔案更加容易。通過 dfs,可以使分布在多個伺服器上的檔案在使用者面前顯示時,就如同位於網路上的乙個位置。使用者在訪問檔案時不再需要知道和指定它們的實際物理位置。例如,如果您的銷售資料分散在某個域...

分布式檔案系統

常見的分布式檔案系統有,gfs hdfs lustre ceph gridfs mogilefs tfs fastdfs等。各自適用於不同的領域。它們都不是系統級的分布式檔案系統,而是應用級的分布式檔案儲存服務。google學術 這是眾多分布式檔案系統的起源 google file system 大...

分布式檔案系統

缺點是檔案路徑是一致的,只能用於嵌入式檔案的儲存,沒有辦法作為系統請求檔案的儲存,不過對於web2.0可以從設計層面進行一些改善,將使用者的資料互動更多地方在伺服器端,而不是資料庫中,比如使用者的文章就在 com yyy裡面,但是這又帶來一些新的問題,檔案同步負載均衡等問題。現在著眼於將自製的web...