分布式儲存技術
分布式儲存概念
與目前常見的集中式儲存技術不同,分布式儲存技術並不是將資料儲存在某個或多個特定的節點上,而是通過網路使用企業中的每台機器上的磁碟空間,並將這些分散的儲存資源構成乙個虛擬的儲存裝置,資料分散的儲存在企業的各個角落。結構化資料的儲存及應用所謂結構化資料是一種使用者定義的資料型別,它包含了一系列的屬性,每乙個屬性都有乙個資料型別,儲存在關聯式資料庫裡,可以用二維表結構來表達實現的資料。大多數系統都有大量的結構化資料,一般儲存在oracle 或mysql 的等的關係型資料庫中,當系統規模大到單一節點的資料庫無法支撐時,一般有兩種方法:垂直擴充套件與水平擴充套件。
垂直擴充套件:垂直擴充套件比較好理解,簡單來說就是按照功能切分資料庫,將不同功能的資料,儲存在不同的資料庫中,這樣乙個大資料庫就被切分成多個小資料庫,從而達到了資料庫的擴充套件。乙個架構設計良好的應用系統,其總體功能一般肯定是由很多個鬆耦合的功能模組所組成的,而每乙個功能模組所需要的資料對應到資料庫中就是一張或多張表。各個功能模組之間互動越少,越統一,系統的耦合度越低,這樣的系統就越容易實現垂直切分。
水平擴充套件:簡單來說,可以將資料的水平切分理解為按照資料行來切分,就是將表中的某些行切分到乙個資料庫中,而另外的某些行又切分到其他的資料庫中。為了能夠比較容易地判斷各行資料切分到了哪個資料庫中,切分總是需要按照某種特定的規則來進行的,如按照某個數字欄位的範圍,某個時間型別欄位的範圍,或者某個欄位的hash 值。
垂直擴充套件與水平擴充套件各有優缺點,一般乙個大型系統會將水平與垂直擴充套件結合使用。
非結構化資料的儲存及應用
gfs 將整個系統分為三類角色:client(客戶端)、master(主伺服器)、chunk server(資料塊伺服器)。
client(客戶端):是gfs提供給應用程式的訪問介面,它是一組專用介面,不遵守posix 規範,以庫檔案的形式提供。應用程式直接呼叫這些庫函式,並與該庫鏈結在一起。
master(主伺服器):是gfs的管理節點,主要儲存與資料檔案相關的元資料,而不是chunk(資料塊)。元資料報括:命名空間(name space),也就是整個檔案系統的目錄結構,乙個能將64 位標籤對映到資料塊的位置及其組成檔案的**,chunk 副本位置資訊和哪個程序正在讀寫特定的資料塊等。還有master 節點會周期性地接收從每個chunk節點來的更新("heart- beat")來讓元資料保持最新狀態。
chunk server(資料塊伺服器):負責具體的儲存工作,用來儲存chunk。gfs將檔案按照固定大小進行分塊,預設是64mb,每一塊稱為乙個chunk(資料塊),每乙個chunk以block 為單位進行劃分,大小為64kb,每個chunk有乙個唯一的64位標籤。gfs
採用副本的方式實現容錯,每乙個chunk有多個儲存副本(預設為三個)。chunk server 的個數可有有多個,它的數目直接決定了gfs 的規模。
半結構化資料的儲存及應用
就是介於完全結構化資料(如關係型資料庫、物件導向資料庫中的資料)和完全無結構的資料(如聲音、影象檔案等)之間的資料,半結構化資料模型具有一定的結構性,但較之傳統的關係和物件導向的模型更為靈活。半結構資料模型完全不基於傳統資料庫模式的嚴格概念,這些模型中的資料都是自描述的。
由於半結構化資料沒有嚴格的schema定義,所以不適合用傳統的關係型資料庫進行儲存,適合儲存這類資料的資料庫被稱作「nosql」資料庫。
nosql 的定義:
被稱作下一代的資料庫,具有非關係型,分布式,輕量級,支援水平擴充套件且一般不保證遵循
acid
原則的資料儲存系統。「nosql」其實是具有誤導性的別名,稱作non relational database(非關係型資料庫)更為恰當。所謂「非關係型資料庫」指的是:
使用松耦合型別、可擴充套件的資料模式來對資料進行邏輯建模
(map
,列,文件,圖表等
),而不是使用固定的關係模式元組來構建資料模型。
以遵循於cap
定理(能保證在一致性,可用性和分割槽容忍性三者中中達到任意兩個)的跨多節點資料分布模型而設計,支援水平伸縮。這意味著對於多資料中心和動態**(在生產集群中透明地加入/刪除節點)的必要支援,也即彈性(elasticity)。
擁有在磁碟或記憶體中,或者在這兩者中都有的,對資料持久化的能力,有時候還可以使用可熱插拔的定製儲存。
支援多種的『non-sql』介面(通常多於一種)來進行資料訪問。
分布式技術
資料分布式模式 利用多台計算機並行處理多個請求,在相同的時間內完成更多的請求,解決單機效率瓶頸問題。多集群出現的問題如下 資源 乙個系統提供正常能力需要占用的硬體資源 可用性和可擴充套件性 不同分布式系統的指標 選舉流程 優點 演算法複雜度低,選舉快,簡單易實現 缺點 每個節點需要儲存全域性節點訊息...
分布式儲存
塊儲存,檔案儲存,物件儲存區別 分布式儲存的應用場景相對於其儲存介面,現在流行分為三種 物件儲存 也就是通常意義的鍵值儲存,其介面就是簡單的get put del和其他擴充套件,如七牛 又拍 swift s3 塊儲存 這種介面通常以qemu driver或者kernel module的方式存在,這種...
分布式儲存
普通儲存 das 直連式儲存。nas 連線式儲存。san 儲存網路。大檔案分布儲存 gfs google file system google檔案系統 hdfs hadoop distributed file system hadoop分布式檔案系統 小檔案分布儲存 adfs ali distrib...