存儲(chǔ)的方式不止一種,大佬帶你分析對(duì)象存儲(chǔ)!
掃描二維碼
隨時(shí)隨地手機(jī)看文章
存儲(chǔ)能夠幫助我們將數(shù)據(jù)保存下來,可以說存儲(chǔ)是一切計(jì)算和分析的基礎(chǔ)。隨著存儲(chǔ)技術(shù)的發(fā)展,現(xiàn)今已出現(xiàn)對(duì)象存儲(chǔ)的方式。為增進(jìn)大家對(duì)存儲(chǔ)的認(rèn)識(shí),本文將對(duì)對(duì)象存儲(chǔ)進(jìn)行深入分析。如果你對(duì)存儲(chǔ)具有興趣,不妨繼續(xù)往下閱讀哦。
對(duì)象存儲(chǔ),也叫做基于對(duì)象的存儲(chǔ),是用來描述解決和處理離散單元的方法的通用術(shù)語,這些離散單元被稱作為對(duì)象。
就像文件一樣,對(duì)象包含數(shù)據(jù),但是和文件不同的是,對(duì)象在一個(gè)層結(jié)構(gòu)中不會(huì)再有層級(jí)結(jié)構(gòu)。每個(gè)對(duì)象都在一個(gè)被稱作存儲(chǔ)池的扁平地址空間的同一級(jí)別里,一個(gè)對(duì)象不會(huì)屬于另一個(gè)對(duì)象的下一級(jí)。
文件和對(duì)象都有與它們所包含的數(shù)據(jù)相關(guān)的元數(shù)據(jù),但是對(duì)象是以擴(kuò)展元數(shù)據(jù)為特征的。每個(gè)對(duì)象都被分配一個(gè)唯一的標(biāo)識(shí)符,允許一個(gè)服務(wù)器或者最終用戶來檢索對(duì)象,而不必知道數(shù)據(jù)的物理地址。這種方法對(duì)于在云計(jì)算環(huán)境中自動(dòng)化和簡(jiǎn)化數(shù)據(jù)存儲(chǔ)有幫助。
對(duì)象存儲(chǔ)經(jīng)常被比作在一家高級(jí)餐廳代客停車。當(dāng)一個(gè)顧客需要代客停車時(shí),他就把鑰匙交給別人,換來一張收據(jù)。這個(gè)顧客不用知道他的車被停在哪,也不用知道在他用餐時(shí)服務(wù)員會(huì)把他的車移動(dòng)多少次。在這個(gè)比喻中,一個(gè)存儲(chǔ)對(duì)象的唯一標(biāo)識(shí)符就代表顧客的收據(jù)。
由于對(duì)象存儲(chǔ)將遍布于很多節(jié)點(diǎn)且最新的數(shù)據(jù)并非總是可用,這將成為對(duì)象存儲(chǔ)最終一致性的問題。
所有的數(shù)據(jù)存儲(chǔ)都涉及到簡(jiǎn)稱為CAP的三個(gè)元素:一致性、可用性和分區(qū)。
如果只是執(zhí)行了寫操作從而改變了一個(gè)對(duì)象,但有人正在從另外的節(jié)點(diǎn)訪問這個(gè)對(duì)象。節(jié)點(diǎn)可能會(huì)在不同的物理位置,因?yàn)閷?duì)象存儲(chǔ)支持很大的地理擴(kuò)展。新用戶可能正在讀取對(duì)象,但那是舊版本。這就是對(duì)象存儲(chǔ)的最終一致性問題,此時(shí)并沒有及時(shí)的同步。
這將成為問題,特別是利用對(duì)象存儲(chǔ)做協(xié)同的時(shí)候,廠商為保證對(duì)象存儲(chǔ)的一致性做了很好的工作,像是Joyent以及他的Manta 存儲(chǔ)服務(wù),一旦對(duì)象更改將不支持讀取舊的內(nèi)容。你必須等待,但你所讀取的內(nèi)容會(huì)是一致的。
每個(gè)云計(jì)算供應(yīng)商都提供對(duì)象存儲(chǔ)服務(wù),其中包括亞馬遜公司的簡(jiǎn)單存儲(chǔ)服務(wù)(S3)、微軟Azure的Blob存儲(chǔ),以及谷歌公司的云存儲(chǔ)。將對(duì)象存儲(chǔ)系統(tǒng)想像成一個(gè)沒有目錄和子目錄的層次結(jié)構(gòu)的文件系統(tǒng)。如果文件系統(tǒng)使用目錄結(jié)構(gòu)和文件名的組合來標(biāo)識(shí)和定位文件,則存儲(chǔ)在對(duì)象存儲(chǔ)系統(tǒng)中的每個(gè)對(duì)象都會(huì)根據(jù)其內(nèi)容獲得唯一標(biāo)識(shí)符(UID)。
然后,將唯一標(biāo)識(shí)符(UID)用作識(shí)別和檢索對(duì)象的方式。通過使用加密算法(例如SHA-1)運(yùn)行文件的內(nèi)容來創(chuàng)建唯一標(biāo)識(shí)符(UID)(要了解SHA-1的工作原理,用戶可以在此處通過插入任意數(shù)量的文本來創(chuàng)建自己的SHA-1散列)。任何項(xiàng)(例如文件、塊、一組文件或塊或一部分塊或文件)可以存儲(chǔ)為對(duì)象。
對(duì)象存儲(chǔ)和塊存儲(chǔ)之間的巨大區(qū)別在于,對(duì)象存儲(chǔ)中存儲(chǔ)的每個(gè)對(duì)象都會(huì)自動(dòng)復(fù)制到至少三個(gè)可用性云區(qū)域。這意味著自然災(zāi)害或其他災(zāi)難可能會(huì)占用兩個(gè)可用性云區(qū)域,并且用戶仍然會(huì)在對(duì)象存儲(chǔ)系統(tǒng)中存儲(chǔ)任何數(shù)據(jù)。它通常僅在單個(gè)可用性區(qū)域內(nèi)進(jìn)行復(fù)制,因此一次大的中斷就有可能會(huì)破壞數(shù)據(jù)。
復(fù)制的工作方式也有很大不同。與云塊存儲(chǔ)和典型RAID系統(tǒng)的塊級(jí)復(fù)制相比,對(duì)象復(fù)制是在對(duì)象級(jí)進(jìn)行的。對(duì)象也永遠(yuǎn)不會(huì)被修改。如果需要修改對(duì)象,則將其存儲(chǔ)為新對(duì)象。如果啟用了版本控制,則將對(duì)象的先前版本保存。如果不是,則只刪除先前的版本。這與塊存儲(chǔ)非常不同,在塊存儲(chǔ)中,文件或塊是就地編輯的,除非使用某種附加保護(hù)系統(tǒng),否則以前的版本永遠(yuǎn)不會(huì)保存。
云計(jì)算供應(yīng)商提供對(duì)象存儲(chǔ)服務(wù),其中包括亞馬遜的簡(jiǎn)單存儲(chǔ)服務(wù)(S3)、Azure的Blob存儲(chǔ)和谷歌公司的云存儲(chǔ)??梢詫⑦@些對(duì)象存儲(chǔ)系統(tǒng)設(shè)置為抵御會(huì)耗盡所有可用區(qū)域的區(qū)域性災(zāi)難。
亞馬遜公司使用必須由客戶配置的跨區(qū)域復(fù)制來做到這一點(diǎn)。微軟地理冗余存儲(chǔ)包括跨區(qū)域的復(fù)制,而谷歌公司提供了具有相同功能的雙區(qū)域和多區(qū)域存儲(chǔ)。結(jié)合所有對(duì)象存儲(chǔ)系統(tǒng)中內(nèi)置的版本控制功能,這使得存儲(chǔ)在此類系統(tǒng)中的數(shù)據(jù)比這些供應(yīng)商提供的存儲(chǔ)在塊存儲(chǔ)系統(tǒng)中的數(shù)據(jù)更具彈性。
塊卷和文件系統(tǒng)是為提高性能而設(shè)計(jì)的,而對(duì)象存儲(chǔ)的設(shè)計(jì)是以數(shù)據(jù)完整性為主要目標(biāo)的。例如,可以在任何時(shí)候使用唯一標(biāo)識(shí)符以確保對(duì)象的給定副本沒有損壞。文件系統(tǒng)要做的就是通過創(chuàng)建唯一標(biāo)識(shí)符(UID)的過程重新運(yùn)行對(duì)象。如果唯一標(biāo)識(shí)符(UID)仍然相同,則對(duì)象的內(nèi)容沒有更改。如果對(duì)象的內(nèi)容由于其他原因而更改,則系統(tǒng)會(huì)自動(dòng)檢測(cè)到該內(nèi)容,因?yàn)槲ㄒ粯?biāo)識(shí)符(UID)會(huì)更改。然后,它可以通過從另一個(gè)區(qū)域檢索好的副本來自動(dòng)修復(fù)對(duì)象。沒有塊設(shè)備或文件系統(tǒng)內(nèi)置此級(jí)別的數(shù)據(jù)完整性。
由于所謂的“開放存儲(chǔ)桶”問題,對(duì)象存儲(chǔ)受到了極大的關(guān)注,在該存儲(chǔ)桶中,重要且敏感的數(shù)據(jù)存儲(chǔ)在權(quán)限未得到適當(dāng)管理的存儲(chǔ)桶中。將存儲(chǔ)桶視為包含相關(guān)對(duì)象的超大容器。
大型客戶數(shù)據(jù)庫已通過此問題暴露出來,主要是因?yàn)榭蛻舾静涣私鈱?duì)象存儲(chǔ)的工作方式。當(dāng)然,可以創(chuàng)建一個(gè)開放的存儲(chǔ)桶,因?yàn)樗褂脩艨梢酝ㄟ^簡(jiǎn)單地給他們直接鏈接到該對(duì)象的方式輕松地將文件分發(fā)給許多人。但這也意味著創(chuàng)建一個(gè)開放的存儲(chǔ)桶并意外地將用戶的商業(yè)秘密泄露給外界相對(duì)容易。
以上便是此次小編帶來的存儲(chǔ)相關(guān)內(nèi)容,通過本文,希望大家對(duì)對(duì)象存儲(chǔ)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!





