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