分布式儲存系統關鍵問題

2021-09-02 21:50:45 字數 2102 閱讀 2589

(一)關鍵問題

對於儲存系統,最重要的問題就是資料分布,即什麼樣的資料放置在什麼樣的節點上。資料分布時需要考慮資料是否均衡、以後是否容易擴容等一系列問題。不同的資料分布方式也存在不同的優缺點,需要根據自身資料特點進行選擇。

1)雜湊分布 => 隨機讀取

取模直接雜湊:將不同雜湊值的資料分布到不同的伺服器上

關鍵:找出乙個雜湊特性很好的雜湊函式

問題:增加、減少伺服器時的大量資料遷移

解決:1)將《雜湊值,伺服器》元資料儲存在元資料伺服器中;2)一致性雜湊

一致性雜湊:給系統每個節點分配乙個隨機token,這些token構成乙個hash環。執行資料存放操作時,先計算key的hash值,然後存放到順時針方向第乙個大於或者等於該hash值的token所在節點。

關鍵:雜湊值變成了乙個範圍,每個物理節點上儲存的資料是雜湊值處於前一段範圍的資料。

優點: 節點增加/刪除時只會影響到在hash環中相鄰的節點,而對其他節點沒影響。

維護每台機器在雜湊環中的位置方式:1) 記錄它前乙個&後乙個節點的位置資訊,每次查詢可能遍歷整個雜湊環所有伺服器;2) o(logn)位置資訊,查詢的時間複雜度為o(logn);3) 每台伺服器維護整個集群中所有伺服器的位置資訊,查詢伺服器的時間複雜度為o(1)

虛擬節點:將雜湊取模的模數取得很大,就會得到更多的雜湊值,這個雜湊值成為邏輯節點,乙個物理機器可以根據自己的能力選擇若干個邏輯節點的儲存節點。

優點:將傳統雜湊的一(物理節點)對一(雜湊值)的分布變成了一(物理節點)對多(雜湊值)的分布。可以根據物理節點的能力調整資料的分布。

2)順序分布 => 順序掃瞄

**上的資料按照主鍵整體有序

1)資料寫入時,寫入節點的選擇(空間容量?cpu負載?)

2)執行過程中,資料的遷移

如果執行過程中有新機器的加入,導致每個機器的儲存資料量不同,需要能夠自動發現,並自動進行調整。但是在調整的過程中也要控制好速度,以免對業務產生影響。

1)最大保護模式

強同步複製:至少在乙個備庫上執行成功

至少成功儲存2個備份,才返回成功。

2)最大效能模式

非同步複製模式:主庫執行成功即返回

只要成功儲存1個備份,就返回成功。

3)最大可用性模式

兩種模式折衷:正常情況是最大保護模式,出現故障時變成最大效能模式

版本號:在收到寫入資料請求時,生成對應版本號。

刪除老的版本號;讀取時,保證讀取到的是最新的版本號的資料;寫入時,保證寫入資料的版本號要新與儲存的。

1)故障檢測

心跳:s每隔一段時間向c傳送乙個心跳包

租約機制:帶有超時時間的授權

2)故障恢復

master:主備機制,持久化索引

datanode:永久故障,增加備份

1)總控節點是否成為瓶頸

不是瓶頸:捨棄小檔案的處理,資料的讀寫控制權下放到工作機,通過客戶端快取元資料減少對總控節點的訪問

記憶體成為瓶頸:採用兩級結構,在總控機與工作機之間加一層元資料節點

2)同構系統

儲存節點分為若干組,每個組內的節點服務完全相同的資料

3)異構系統

將資料劃分為大小接近的分片,每個分片的多個副本分布到集群中的任何乙個儲存節點,某個節點發生故障,原有的服務將由整個集群而不是某幾個固定的儲存節點來恢復

分布式儲存系統關鍵問題

一 關鍵問題 資料分布 對於儲存系統,最重要的問題就是資料分布,即什麼樣的資料放置在什麼樣的節點上。資料分布時需要考慮資料是否均衡 以後是否容易擴容等一系列問題。不同的資料分布方式也存在不同的優缺點,需要根據自身資料特點進行選擇。1 雜湊分布 隨機讀取 取模直接雜湊 將不同雜湊值的資料分布到不同的伺...

分布式儲存系統關鍵問題

一 關鍵問題 資料分布 對於儲存系統,最重要的問題就是資料分布,即什麼樣的資料放置在什麼樣的節點上。資料分布時需要考慮資料是否均衡 以後是否容易擴容等一系列問題。不同的資料分布方式也存在不同的優缺點,需要根據自身資料特點進行選擇。1 雜湊分布 隨機讀取 取模直接雜湊 將不同雜湊值的資料分布到不同的伺...

python分布式儲存系統 分布式系統

danger 什麼是分布式系統 分布式系統是由一組通過網路進行通訊 為了完成共同的任務而協調工作的計算機節點組成的系統。分布式系統的出現是為了用廉價的 普通的機器完成單個計算機無法完成的計算 儲存任務。其目的是利用更多的機器,處理更多的資料。首先需要明確的是,只有當單個節點的處理能力無法滿足日益增長...