搞不清分布式存儲(chǔ)和中心化存儲(chǔ)?二者有何關(guān)系?
不管在哪個(gè)時(shí)代,存儲(chǔ)都是非常重要的。因此,我們對(duì)于存儲(chǔ)應(yīng)當(dāng)具備一點(diǎn)了解。為增進(jìn)大家對(duì)存儲(chǔ)的認(rèn)識(shí),本文將對(duì)分布式存儲(chǔ)、中心化存儲(chǔ)以及二者之間的關(guān)系予以介紹。如果你對(duì)存儲(chǔ)具有興趣,不妨和小編一起繼續(xù)往下閱讀哦。
分布式存儲(chǔ)是一種數(shù)據(jù)存儲(chǔ)技術(shù),通過(guò)網(wǎng)絡(luò)使用企業(yè)中的每臺(tái)機(jī)器上的磁盤空間,并將這些分散的存儲(chǔ)資源構(gòu)成一個(gè)虛擬的存儲(chǔ)設(shè)備,數(shù)據(jù)分散的存儲(chǔ)在企業(yè)的各個(gè)角落。分布式存儲(chǔ)系統(tǒng)需要使用多臺(tái)服務(wù)器共同存儲(chǔ)數(shù)據(jù),而隨著服務(wù)器數(shù)量的增加,服務(wù)器出現(xiàn)故障的概率也在不斷增加。為了保證在有服務(wù)器出現(xiàn)故障的情況下系統(tǒng)仍然可用。一般做法是把一個(gè)數(shù)據(jù)分成多份存儲(chǔ)在不同的服務(wù)器中。但是由于故障和并行存儲(chǔ)等情況的存在,同一個(gè)數(shù)據(jù)的多個(gè)副本之間可能存在不一致的情況。這里稱保證多個(gè)副本的數(shù)據(jù)完全一致的性質(zhì)為一致性。分布式存儲(chǔ)是相對(duì)于中心化存儲(chǔ)來(lái)說(shuō)的,中心化存儲(chǔ),也叫集中式存儲(chǔ)。所謂中心化存儲(chǔ),從概念上可以看出來(lái)是具有集中性的,也就是整個(gè)存儲(chǔ)是集中在一個(gè)系統(tǒng)中的。但中心化存儲(chǔ)并不是一個(gè)單獨(dú)的設(shè)備,是集中在一套系統(tǒng)當(dāng)中的多個(gè)設(shè)備。以一般公司中心化數(shù)據(jù)存儲(chǔ)為例,簡(jiǎn)單分析下中心化存儲(chǔ)模式。
在這個(gè)存儲(chǔ)系統(tǒng)中包含很多組件,除了核心的機(jī)頭(控制器)、磁盤陣列(JBOD)和交換機(jī)等設(shè)備外,還有管理設(shè)備等輔助設(shè)備。
在中心化存儲(chǔ)中最重要的部件是機(jī)頭,機(jī)頭一般包含兩個(gè)控制器,這兩個(gè)控制器實(shí)現(xiàn)互備的作用,防止其中一個(gè)硬件故障導(dǎo)致整個(gè)存儲(chǔ)系統(tǒng)的不可用。機(jī)頭包含前后端兩個(gè)入口,通過(guò)后端端口機(jī)頭可以連接更多的存儲(chǔ)設(shè)備,從而形成一個(gè)非常大的存儲(chǔ)資源池。從上面我們可以看出中心化存儲(chǔ)最大的特點(diǎn)是有一個(gè)統(tǒng)一的入口,所有數(shù)據(jù)都要經(jīng)過(guò)這個(gè)入口,數(shù)據(jù)被統(tǒng)一管理統(tǒng)一調(diào)用,這個(gè)入口就是存儲(chǔ)系統(tǒng)的機(jī)頭部分。
而如今分布式存儲(chǔ)的概念包括分布式文件系統(tǒng),分布式緩存,分布式區(qū)塊存儲(chǔ)等,現(xiàn)在簡(jiǎn)單介紹其中分布式文件系統(tǒng)。中間控制節(jié)點(diǎn)架構(gòu)簡(jiǎn)稱為:HDFS,分布式存儲(chǔ)最核心的是基于區(qū)塊鏈去中心化的技術(shù)構(gòu)架,其目的是通過(guò)廉價(jià)的服務(wù)器來(lái)提供使用與大規(guī)模、高并發(fā)場(chǎng)景下的Web訪問(wèn)問(wèn)題。
如果客戶端需要從某個(gè)文件讀取數(shù)據(jù),首先從namenode獲取該文件的位置(具體在哪個(gè)datanode),然后從該位置獲取具體的數(shù)據(jù)。是點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸和存儲(chǔ),因此,通過(guò)這種分布式存儲(chǔ)架構(gòu)可以通過(guò)橫向擴(kuò)展datanode的數(shù)量來(lái)增加承載能力,也即實(shí)現(xiàn)了動(dòng)態(tài)橫向擴(kuò)展的能力,從根本上能夠防止黑客入侵,大大提高了數(shù)據(jù)的安全性能。
Ceph存儲(chǔ)系統(tǒng)的架構(gòu),在該架構(gòu)中與HDFS不同的地方在于該架構(gòu)中沒(méi)有中心節(jié)點(diǎn)??蛻舳耸峭ㄟ^(guò)一個(gè)設(shè)備映射關(guān)系計(jì)算出來(lái)其寫入數(shù)據(jù)的位置,這樣客戶端可以直接與存儲(chǔ)節(jié)點(diǎn)通信,從而避免中心節(jié)點(diǎn)的性能瓶頸。
客戶端訪問(wèn)存儲(chǔ)的大致流程是,客戶端在啟動(dòng)后會(huì)首先從Mon服務(wù)拉取存儲(chǔ)資源布局信息,然后根據(jù)該布局信息和寫入數(shù)據(jù)的名稱等信息計(jì)算出期望數(shù)據(jù)的位置(包含具體的物理服務(wù)器信息和磁盤信息),然后該位置信息直接通信,讀取或者寫入數(shù)據(jù)。
一致性哈希的方式就是將設(shè)備做成一個(gè)哈希環(huán),然后根據(jù)數(shù)據(jù)名稱計(jì)算出的哈希值映射到哈希環(huán)的某個(gè)位置,從而實(shí)現(xiàn)數(shù)據(jù)的定位。
為了保證數(shù)據(jù)分配的均勻性及出現(xiàn)設(shè)備故障時(shí)數(shù)據(jù)遷移的均勻性,一致性哈希將磁盤劃分為比較多的虛擬分區(qū),每個(gè)虛擬分區(qū)是哈希環(huán)上的一個(gè)節(jié)點(diǎn)。整個(gè)環(huán)是一個(gè)從0到32位最大值的一個(gè)區(qū)間,并且首尾相接。當(dāng)計(jì)算出數(shù)據(jù)(或者數(shù)據(jù)名稱)的哈希值后,必然落到哈希環(huán)的某個(gè)區(qū)間,然后以順時(shí)針,必然能夠找到一個(gè)節(jié)點(diǎn)。那么,這個(gè)節(jié)點(diǎn)就是存儲(chǔ)數(shù)據(jù)的位置。
以上便是此次小編帶來(lái)的x相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)y具備一定的認(rèn)知。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!