云計算是什么?云時代,沒有對象,我也能搞對象存儲
來源:北大青鳥總部
2020年08月21日 13:22
摘要:
云時代,沒有對象,我也能搞對象存儲
說到對象,真的是扎到每個程序員的心窩窩里了。在上學(xué)時候,學(xué)習(xí)C++語言,告訴我要面向?qū)ο缶幊蹋ぷ髁?,學(xué)習(xí)云存儲,告訴我要面向?qū)ο蟠鎯?。我怎么這么難呢?沒有對象,還不能愉快的編程、愉快的工作了嗎?那當(dāng)然不是啊。所謂對象存儲,就是面向?qū)ο蟆⑽募幕ヂ?lián)網(wǎng)存儲,始于互聯(lián)網(wǎng),也興于互聯(lián)網(wǎng)。它存儲的是文件數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù),比如音頻、視頻、圖片、文件等等。簡單來說,對象存儲的過程就像你去超市購物時,將自己的包包放在儲物柜,儲物柜會給你一張憑條,購物完畢,憑借條子就可以取貨。
沒有對象存儲之前,我們看看傳統(tǒng)方式是怎么實現(xiàn)存儲的呢?以我們看電影為例哈,方式之一U盤,使用U盤將別人電腦上的電影拷貝下來,再放在自己的電腦上查看,U盤就是我們的存儲設(shè)備。方式之二網(wǎng)盤,有了百度網(wǎng)盤的出現(xiàn),只需要小伙伴把電影分享保存下,就可以下載在本地或在線觀看了。方式之三視頻網(wǎng)站,有了視頻服務(wù)提供商,自己開發(fā)了視頻應(yīng)用如騰訊視頻、優(yōu)酷、愛奇藝,將視頻存在服務(wù)器中,自己下載app就可以觀看了。而在云時代,有了云存儲,只需要把視頻存儲在對象存儲中,我們得到視頻的地址,在瀏覽器輸入地址、或把地址放入app中(視頻服務(wù)提供商)就可以看了。
隨著互聯(lián)網(wǎng)的到來,Web應(yīng)用創(chuàng)造出上千億的數(shù)據(jù),再到移動應(yīng)用的黃金時代,App創(chuàng)造出上萬億的數(shù)據(jù),每天聊微信、刷抖音、刷微博、看新聞、看電影等,每天都在上傳下載海量的照片、視頻、音頻,而且80%以上都是非結(jié)構(gòu)化數(shù)據(jù)。面對如此巨大的數(shù)據(jù)量,僅僅靠傳統(tǒng)的磁盤、塊存儲、文件存儲,已經(jīng)無能為力了,就算我們可以靠不斷的增加硬件投入來擴(kuò)寬存儲能力,但這畢竟是有成本在啊,硬件成本、人工維護(hù)成本,還可能犧牲應(yīng)用的可擴(kuò)展性、低延遲性,降低用戶體驗,所以云存儲是勢不可擋。
對象存儲是基于存儲的存儲設(shè)備,通過Web協(xié)議(如Rest、SOAP)來實現(xiàn)對象的讀寫和存儲資源的訪問。它由對象、對象存儲設(shè)備、元數(shù)據(jù)服務(wù)器、對象存儲系統(tǒng)客戶端四部分組成,一般來說用戶通過客戶端發(fā)出訪問請求,文件系統(tǒng)OSS接收請求并且向元數(shù)據(jù)服務(wù)器MDS發(fā)送請求獲取數(shù)據(jù)的OSD地址,獲取OSD地址后直接發(fā)出讀取對象的請求,經(jīng)過認(rèn)證之后將該對象數(shù)據(jù)返回給客戶端,用戶在客戶端查看數(shù)據(jù),整體架構(gòu)圖如下所示:Client客戶端就是用戶終端,通過標(biāo)準(zhǔn)的文件訪問接口與對象存儲系統(tǒng)進(jìn)行對接。Object對象就是存儲系統(tǒng)中的基本單元,由文件的數(shù)據(jù)、屬性信息metadata組成。在對象存儲中的數(shù)據(jù)主要有三類,即Key、Data、MetaData,整個對象就是一個桶Bucket,桶里面有很多對象Object。key是用于檢索對象,是該對象的全局唯一標(biāo)識符,即使用戶或服務(wù)器不知道數(shù)據(jù)的物理地址,通過可以也可以找到對象。存儲系統(tǒng)中,所有的對象都是平等的,對象可大可小,可以是某個字符,也可以是整個文件。
Client客戶端就是用戶終端,通過標(biāo)準(zhǔn)的文件訪問接口與對象存儲系統(tǒng)進(jìn)行對接。Object對象就是存儲系統(tǒng)中的基本單元,由文件的數(shù)據(jù)、屬性信息metadata組成。在對象存儲中的數(shù)據(jù)主要有三類,即Key、Data、MetaData,整個對象就是一個桶Bucket,桶里面有很多對象Object。key是用于檢索對象,是該對象的全局唯一標(biāo)識符,即使用戶或服務(wù)器不知道數(shù)據(jù)的物理地址,通過可以也可以找到對象。存儲系統(tǒng)中,所有的對象都是平等的,對象可大可小,可以是某個字符,也可以是整個文件。
目前阿里云的OSS、騰訊云的COS、七牛云的Kodo、百度云的BOS、網(wǎng)易云的NOS、華為云的OBS等都是提供對象存儲服務(wù)。下圖是一個對象的地址,也就是一個key,以往都是寫在前端文件里進(jìn)行訪問獲取,如果直接公開的話,我們輸入URL就可以訪問該視頻了。
OSD對象存儲設(shè)備(ObjectStorageDevice)是一個存儲設(shè)備,有自己的存儲介質(zhì)、處理器、內(nèi)存、網(wǎng)絡(luò)系統(tǒng),管理本地的對象Object。在OSD中,可以實現(xiàn)數(shù)據(jù)的存儲、數(shù)據(jù)智能分布、數(shù)據(jù)管理。首先OSD將數(shù)據(jù)存儲在內(nèi)置的磁盤系統(tǒng)中,通過對外提供對象ID來進(jìn)行數(shù)據(jù)的讀寫操作。其次OSD可以對自身的CPU、內(nèi)存進(jìn)行數(shù)據(jù)優(yōu)化分布,優(yōu)化磁盤系統(tǒng)性能。最后OSD管理對象的元數(shù)據(jù),比如對象的數(shù)據(jù)塊、長度等,降低了客戶端的開銷。
MDS元數(shù)據(jù)服務(wù)器(MetaDataServer)管理客戶端與OSD的交互,提供客戶端文件目錄的關(guān)系、每個文件對應(yīng)的OSD等數(shù)據(jù),客戶端訪問OSD時通過MDS就可以獲取到對象所在的位置、大小、存儲內(nèi)容,可快速的獲取到訪問的文件。
對象存儲有很多的優(yōu)點,比如容量彈性伸縮、數(shù)據(jù)安全可靠、使用快速便捷。出生于云計算時代,自然繼承云計算的彈性伸縮。對象存儲的所有業(yè)務(wù)、存儲節(jié)點采用分布式集群方式工作,各功能節(jié)點、集群支持獨立擴(kuò)容。從理論上來說,某個對象存儲系統(tǒng)或單個桶(bucket),沒有總數(shù)據(jù)容量和對象數(shù)量的限制,實現(xiàn)了按需使用資源。
對于數(shù)據(jù)的安全可靠性方面,因為采用了分布式部署,自然不用擔(dān)心數(shù)據(jù)丟失問題,其次對于所有的鏈接都是有訪問認(rèn)證的,也不用擔(dān)心數(shù)據(jù)安全問題。最后就是使用方便了,開發(fā)者通過標(biāo)準(zhǔn)的接口協(xié)議進(jìn)行開發(fā)調(diào)用,運維也不用維護(hù)網(wǎng)絡(luò)帶寬、服務(wù)器成本,使用者直接訪問,當(dāng)然非常方便了。
云計算給我們的生活帶來了無限的可能,讓我們吃的更好、玩的更好、工作的更高效率、生活的更加的智能。現(xiàn)在你又掌握了一項云計算的黑科技,說不定很快就可以找到對象,一起搞對象存儲了哦。