成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

說說分布式文件存儲系統

存儲 存儲軟件 分布式
分布式文件存儲系統主要被分為三種類型:分布式文件存儲、塊存儲、對象存儲。這三種存儲系統都有著自己的特點和適用場景。

[[197109]]

分布式文件存儲系統主要被分為三種類型:分布式文件存儲、塊存儲、對象存儲。這三種存儲系統都有著自己的特點和適用場景。

其中分布式文件存儲和對象存儲是聯系非常緊密的,大多對象存儲系統都是在分布式文件系統基礎上實現的。

很幸運自己在過去的工作中對這三種系統都有過或深或淺的接觸,因此有了想要把這其中零散的知識點做一個整理,畢竟才疏學淺,希望跟有興趣的同學共同進步。

對于分布式文件存儲系統,我們常常根據它的特點和功能模塊做劃分,才能從各個不同的角度去學習、了解和實現一個分布式文件存儲系統

系統架構

對于目前所接觸到的主流分布式文件系統來看,根據系統架構的特點大多可做如下劃分:

  • 有無中心管理節點
  • 存儲節點是否有主從之分

這兩種架構都有著自己明顯的優勢和缺點,對整個分布式文件系統的實現起決定作用,直接影響采用何種一致性協議保持備份間的一致性,以及集群如何管理,數據丟失或損壞該如何恢復、數據清理等等功能的實現,后面會單獨對此做闡述和說明

集群管理

集群管理主要解決以下幾個問題:

  • 存儲節點上下線通知,自動剔除不可用節點等
  • 集群各節點心跳和狀態的維護,是否健康,可讀可寫
  • 維護系統的邏輯模型,如分區、用戶等邏輯概念的關系,如swift系統中提到的region,zone,node,patition等邏輯概念及從屬關系

數據定位

即客戶端如何根據文件名快速查找到數據的位置并獲取到文件內容,目前接觸到分布式存儲系統在解決數據定位問題上,有兩種方式。一種可以稱作為計算方式,即最常見的hash算法定位,另外一種可稱為查詢時,將映射關系存儲起來,通過查詢的方式定位文件位置。

其中,哈希算法是最常見的數據分布方式,其方法是按照數據的某一特征計算哈希值,并將哈希值與機器中的磁盤建立映射關系,以swift為代表的一致性哈希算法也屬于此類的改良品種,用哈希的方式優點是明顯的,不需要記錄的元信息,任何節點只需要知道哈希函數的計算方式即可以知道數據存儲的位置,但是也存在一些問題,及增加或減少節點勢必或多或少都會引起數據的遷移。

而講到的另外一種查詢的方式,一般不會集中去存儲文件映射的元數據信息,因為隨著集群規模的增長,元數據服務器較為容易成為瓶頸,所以常常是采用多個元數據服務機制去解決這個問題。

存儲引擎

存儲引擎,即數據最終是以何種形式存儲在單機系統上。大多分布式文件系統的底層存儲形式都是依賴本地文件系統接口,如Swift,Ceph等底層文件存儲,畢竟分布式文件系統本身已經很復雜了,很難從上層一直到底層存儲都自己去實現,而本地文件系統已經很成熟完善,所以大部分分布式文件系統都是依賴本地文件系統去實現的。

對不同的分布式文件系統在單機上的存儲格式是不一樣的,以swift為例它是以一個個文件的形式存儲在單機文件系統中,即一個文件就對應在單機上也就是一個文件(忽略對象存儲那一層的大文件映射關系),而還有另外一種分布式文件系統,在單機文件系統中是多個文件合并存儲,以一個大文件的形式存儲在單機文件系統中,同時記錄每個文件的操作日志,可以理解為對小文件進行了合并。

這兩種存儲方式都有各自的利弊,并有各自的適用場景。對文件進行合并的日志文件系統,雖然會有文件的二次定位問題,但它有一個明顯的優勢,即小文件的讀寫性能會有明顯的提升,而對于swift采用的這種不進行合并存儲的系統來說,實現相對容易,但小文件的讀寫磁盤必然會成為性能的瓶頸。

存儲副本

副本(replica/copy)的存在是為保證分布式系統中數據冗余,在不同的節點上持久化同一份數據,當出現某一個節點的存儲的數據丟失時,可以從副本上讀到數據,是分布式系統解決數據丟失異常的唯一手段。

對于可靠性要求高的數據進行三備份存儲,甚至要求副本跨分區存儲;而對于可靠性要求低的數據,兩備份就能滿足需求。隨著存儲的數據量增加,多副本存儲會導致存儲成本增加,因此有了糾刪碼的方式,可以極大的節省存儲成本,并且可以提升數據的可靠性。

多副本存儲引發出了一些需要解決的關鍵問題,如副本數據的一致性,如何保證副本數量和位置正確等等。

一致性協議

一致性協議是分布式文件系統核心問題之一,說的是如何保持副本內容的一致性。常見的三種一致性模型如下:

  • 強一致性:當更新操作在某個副本上執行成功后,之后所有的讀操作都要能夠獲得***的數據。
  • 弱一致性:當更新某數據時,用戶讀到***的數據需要一段時間。
  • 最終一致性:它是一種特殊形式的弱一致性。它不能保證當某個數據X更新后,在所有后續對X的操作能夠看到新數據,而是在經過一個時間片段之后,才能保證。在這個時間片段內,數據可能是不一致的。

在多個副本節點沒有主從之分的分布式系統中,數據一致性的保證往往由客戶端保證,這里的客戶端指的是分布式文件系統的接入層,如swift的proxy節點,swift采用的是Quorum 仲裁協議,即 R+W>N。Swift 默認配置是 N=3,W=2>N/2,R=1 或 2,即每個對象會存在 3 個副本,這些副本會盡量被存儲在不同區域的節點上;W=2 表示至少需要更新 2 個副本才算寫成功;當 R=1 時意味著某一個讀操作成功便立刻返回,此種情況下可能會讀取到舊版本(弱一致性模型);當 R=2 時,需要通過在讀操作請求頭中增加 x-newest=true 參數來同時讀取 2 個副本的元數據信息,然后比較時間戳來確定哪個是***版本(強一致性模型)

而當多副本之間是有主從節點之分的系統中,數據的一致性大多由主節點保證,客戶端的寫請求發往主節點,主節點更新成功,同時將請求轉發至從節點,收到所有從節點的成功響應后,再返回成功(強一致模型)。

兩種方式的優缺點后續會從實現以及性能角度展開說明。

數據恢復

對于有中心控制節點和無中心控制節點的分布式文件系統,數據恢復的實現也會大為不同

有中心節點的系統,數據恢復大多是由中心節點負責控制調度,因為只有它有存儲節點和存儲介質的全局信息,而每個存儲節點能做的就是等待中心節點的調度執行數據恢復的任務

無中心節點的系統,數據恢復的實現只能由各個存儲節點負責,如swift,根據ring的信息獲取副本的位置,通過數據恢復的進程,維持副本的數量和位置的正確性

數據清理

對于用戶調用刪除接口進行刪除的數據,是直接刪除?還是標記刪除?直接刪除固然是最簡潔方便的,但是同時也意味著如果是誤刪的情況下數據無法找回,而對于標記刪除,需要一個額外的模塊對標記刪除的數據進行掃描,再實施真正的刪除,在某種程度上減少了數據丟失的風險。

異常處理

異常處理是分布式系統中需要處理的核心問題之一,只有合理處理了各種可預知的和未知的異常,才能保證分布式存儲系統的可用性和可靠性。常見的異常有節點宕機、網絡異常、硬件故障等等,異常處理不恰當導致不可用和系統性能問題都有經歷過,而對于分布式文件系統改如何處理遺產個,以及如何通過壓力異常測試保證系統可用性等等,都是比較大的話題,在后續進行展開。

通信協議

通信協議主要指的是分布式文件系統中節點之間的通信主要采取何種協議,以swift為例的節點間所有的通信都采用的是HTTP協議,另外一種常見的通信協議即采用RPC協議進行通信。

采用HTTP協議,從系統的使用和可測性角度來說是有利的,但同時也意味著一次請求到達不同的節點都會經過不斷的解析和封裝,勢必是會有些損耗的,尤其是在跟rpc協議相比,之前做過性能對比,但對于存儲系統來說,這點延時就不算什么了。

采用RPC協議,在代碼實現上來說是簡單方便的,但跟HTTP協議比起來,在做一些分層的功能和性能測試時,可測性會受到影響,就是稍微麻煩一些的,但總的說來還可接受。

讀寫流程

分布式文件系統的架構決定了其讀寫流程必然會有些不同,如有中心節點的系統,客戶端的寫操作首先會到中心節點獲取該寫到哪個節點的信息,而對于有主從之分的存儲節點來說,客戶端的讀操作一般會優去主節點讀。。。

以上,簡單的給自己列了一個框架,然后再分別將其填滿。靡不有初,鮮克有終,希望自己可以堅持!

責任編輯:武曉燕 來源: 36大數據
相關推薦

2017-10-17 08:33:31

存儲系統分布式

2017-04-14 09:48:25

分布式存儲系統

2018-09-29 14:08:04

存儲系統分布式

2017-10-16 10:24:47

LogDevice存儲系統

2017-12-18 10:47:04

分布式存儲數據

2017-10-12 09:36:54

分布式存儲系統

2017-10-19 08:45:15

存儲系統HBase

2018-11-20 09:19:58

存儲系統雪崩效應

2013-12-27 10:56:42

分布式對象存儲Sheepdog性能測試

2014-02-19 11:37:57

分布式對象存儲Sheepdog

2010-07-02 10:08:12

BigtableGoogle

2021-08-07 05:00:20

存儲系統

2018-03-13 08:45:08

存儲系統DHT算法

2025-01-26 11:54:39

分布式存儲系統

2018-10-29 12:42:23

Ceph分布式存儲

2019-10-15 10:59:43

分布式存儲系統

2019-05-13 15:20:42

存儲系統算法

2021-07-04 07:07:06

Ceph分布式存儲架構

2018-05-10 09:34:21

spark存儲系統

2019-07-05 15:01:32

區塊鏈系統分布式存儲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 涩涩导航 | 大象视频一区二区 | 精品1区2区| 射欧美 | 国产羞羞视频在线观看 | 黄网站涩免费蜜桃网站 | 精品在线 | 福利在线观看 | 久草免费在线视频 | 欧美日韩一区在线播放 | 91精品在线播放 | 欧美一区成人 | 福利一区二区在线 | 日韩中文视频 | 久久久噜噜噜久久中文字幕色伊伊 | 日本一本视频 | 成人免费视频网站在线看 | 免费黄色片视频 | 国产精品欧美一区二区三区不卡 | 一区二区三区av | 国产精品污www一区二区三区 | 亚洲色综合 | 精品欧美乱码久久久久久 | 一本一道久久a久久精品蜜桃 | 国产乱码精品1区2区3区 | 中文字幕第二十页 | 成人在线视频免费观看 | 亚洲久视频| 国产一区二区三区视频 | 日韩精品一区二区三区视频播放 | 亚洲欧美一区二区三区视频 | 国产精品污www一区二区三区 | 中文字幕 在线观看 | 免费在线观看av的网站 | 在线久草 | 久久久久久国产精品免费免费 | 日韩精品一区二区三区在线观看 | 欧美日韩久久精品 | 精品一区二区三 | 成人三区 | 国产精品123区 |