上期文章(鏈接:關(guān)于存儲技術(shù)的最強入門科普),小棗君給大家詳細(xì)介紹了數(shù)據(jù)存儲技術(shù)的基本知識,其中重點對DAS、SAN和NAS技術(shù)進行了對比分析。
我們知道,在很長的一段時間里,這三種架構(gòu)幾乎統(tǒng)治了數(shù)據(jù)存儲市場。所有行業(yè)用戶的數(shù)據(jù)存儲需求,都是在這三者中進行選擇。
然而,隨著時代的發(fā)展,一種新的數(shù)據(jù)存儲形態(tài)誕生,開始挑戰(zhàn)前面三者的壟斷地位。
沒錯,它就是云計算時代存儲技術(shù)的新網(wǎng)紅——對象存儲。
哈哈,也許搞著搞著,對象就有了呢!
對象存儲,也稱為“面向?qū)ο蟮拇鎯Α?,英文是Object-based Storage。現(xiàn)在很多云廠商,也直接稱之為“云存儲”。
不同的云廠商對它有不同的英文縮寫命名。例如阿里云把自家的對象存儲服務(wù)叫做OSS,華為云叫OBS,騰訊云叫COS,七牛叫Kodo,百度叫BOS,網(wǎng)易叫NOS……五花八門,反正都是一個技術(shù)。
之前小棗君介紹過,DAS和SAN是基于物理塊的存儲方式,而NAS是基于文件的存儲方式。
在DAS和SAN中,存儲資源就像一塊一塊的硬盤,直接掛載在主機上,我們稱之為塊存儲。
而在NAS中,呈現(xiàn)出來的是一個基于文件系統(tǒng)的目錄架構(gòu),有目錄、子目錄、孫目錄、文件,我們稱之為文件存儲。
文件存儲的最大特點,就是所有存儲資源都是多級路徑方式進行訪問的。例如:
C:\Program Files (x86)\Tencent\WeChat\WeChat.exe
\\NJUST-Server\學(xué)習(xí)資料\通信原理\第一章作業(yè).doc
20世紀(jì)末,隨著互聯(lián)網(wǎng)的爆發(fā),數(shù)據(jù)存儲需求發(fā)生了兩個重大的變化。
第一,就是數(shù)據(jù)量爆炸式增長。
原因我就不用說了吧?大家可以瞅瞅自己的硬盤,都藏了些什么。
Web應(yīng)用的崛起、社交需求的刺激,極大地推動了多媒體內(nèi)容的創(chuàng)作和分享。人們開始上傳大量的照片、音樂、視頻,加劇了數(shù)據(jù)量的爆發(fā)。
此外,信息技術(shù)的發(fā)展、企業(yè)數(shù)字化的落地,也產(chǎn)生了大量的數(shù)據(jù),不斷吞食著存儲資源。
第二,是非結(jié)構(gòu)化數(shù)據(jù)的占比顯著增加。
什么是非結(jié)構(gòu)化數(shù)據(jù)?
舉個例子大家就明白了。我們經(jīng)常做的excel表格,姓名、身高、體重、年齡、性別,這種用二維表結(jié)構(gòu)可以進行邏輯表達的數(shù)據(jù),就是結(jié)構(gòu)化數(shù)據(jù)。
結(jié)構(gòu)化數(shù)據(jù)
而圖像、音頻、視頻、word文章、演示膠片這樣的數(shù)據(jù),就是非結(jié)構(gòu)化數(shù)據(jù)。
根據(jù)此前的預(yù)測,到2020年(也就是今年),全球數(shù)據(jù)總量的80%,將是非結(jié)構(gòu)化數(shù)據(jù)。
面對這兩大趨勢,因為本身技術(shù)和架構(gòu)的限制,DAS、SAN和NAS無法進行有效應(yīng)對。
于是,專家們就搞出了對象存儲。
雖然我們說對象存儲是新網(wǎng)紅,但實際上它誕生的時間并不算短。早在1996年,美國卡內(nèi)基梅隆大學(xué)就將對象存儲作為一個研究項目提出來。隨后,加州大學(xué)伯克利分校也有推出類似的項目。
2002年,F(xiàn)ilepool公司推出了基于內(nèi)容可尋址技術(shù)的Centera系統(tǒng),算是比較早期的對象存儲系統(tǒng)。
2006年,美國Amazon公司發(fā)布AWS S3(Simple Storage Service)服務(wù),正式將對象存儲作為一項云存儲服務(wù),引入云計算領(lǐng)域,從此開啟了對象存儲的黃金時代。
S3幾乎成為對象存儲的事實標(biāo)準(zhǔn)
各廠家基本上都會兼容S3
▉ 對象存儲和塊存儲、文件存儲的區(qū)別
說了半天,對象存儲到底是一個什么樣的技術(shù)?它和塊存儲、文件存儲有什么區(qū)別?
首先,第一點,千萬不要去看百度百科上面“對象存儲”的定義,否則,你可能會懷疑人生。
想要了解對象存儲,最簡單直接的辦法,就是從實際使用體驗上進行對比。
對象存儲的底層硬件介質(zhì),依然是硬盤,和塊存儲、文件存儲沒有區(qū)別。
而對象存儲架構(gòu)在底層硬件之上的系統(tǒng),和兩者完全不同。(下文會詳細(xì)介紹系統(tǒng)架構(gòu))
不同的軟件,帶來了完全不同的使用體驗:
塊存儲,操作對象是磁盤。存儲協(xié)議是SCSI、iSCSI、FC。
以 SCSI 為例,主要接口命令有 Read/Write/Read Capacity/Inquiry 等等。
文件存儲,操作對象是文件和文件夾。存儲協(xié)議是NFS、SAMBA(SMB)、POSIX等。
以NFS(大家應(yīng)該都用過“網(wǎng)上鄰居”共享文件吧?就是那個)為例,文件相關(guān)的接口命令包括:READ/WRITE/CREATE/REMOVE/RENAME/LOOKUP/ACCESS 等等,文件夾相關(guān)的接口命令包括:MKDIR/RMDIR/READDIR 等等。
對象存儲,主要操作對象是對象(Object)。存儲協(xié)議是S3、Swift等。
以 S3 為例,主要接口命令有 PUT/GET/DELETE 等。
看出來了吧?接口命令非常簡潔,沒有那種目錄樹的概念。
在對象存儲系統(tǒng)里,你不能直接打開/修改文件,只能先下載、修改,再上傳文件。(如果大家用過百度網(wǎng)盤或ftp服務(wù),一定可以秒懂。)
▉ 對象存儲中的數(shù)據(jù)組成
對象存儲呈現(xiàn)出來的是一個“桶”(bucket),你可以往“桶”里面放“對象(Object)”。這個對象包括三個部分:Key、Data、Metadata。
Key
可以理解文件名,是該對象的全局唯一標(biāo)識符(UID)。
Key是用于檢索對象,服務(wù)器和用戶不需要知道數(shù)據(jù)的物理地址,也能通過它找到對象。這種方法極大地簡化了數(shù)據(jù)存儲。
下面這行,就是一個對象的地址范例:
看上去就是一個URL網(wǎng)址。如果該對象被設(shè)置為“公開”,所有互聯(lián)網(wǎng)用戶都可以通過這個地址訪問它。
Data
也就是用戶數(shù)據(jù)本體。這個不用解釋了。
Metadata
Metadata叫做元數(shù)據(jù),它是對象存儲一個非常獨特的概念。
元數(shù)據(jù)有點類似數(shù)據(jù)的標(biāo)簽,標(biāo)簽的條目類型和數(shù)量是沒有限制的,可以是對象的各種描述信息。
舉個例子,如果對象是一張人物照片,那么元數(shù)據(jù)可以是姓名、性別、國籍、年齡、拍攝地點、拍攝時間等。
元數(shù)據(jù)可以有很多
在傳統(tǒng)的文件存儲里,這類信息屬于文件本身,和文件一起封裝存儲。而對象存儲中,元數(shù)據(jù)是獨立出來的,并不在數(shù)據(jù)內(nèi)部封裝。
元數(shù)據(jù)的好處非常明顯,可以大大加快對象的排序,還有分類和查找。
▉ 對象存儲的架構(gòu)
對象存儲的架構(gòu)是怎樣的呢?如下圖所示,分為3個主要部分:
對象存儲的簡單架構(gòu)示意圖
OSD對象存儲設(shè)備
這是對象存儲的核心,具有自己的CPU、內(nèi)存、網(wǎng)絡(luò)和磁盤系統(tǒng)。它的主要功能當(dāng)然是存儲數(shù)據(jù)。同時,它還會利用自己的算力,優(yōu)化數(shù)據(jù)分布,并且支持?jǐn)?shù)據(jù)預(yù)讀取,提升磁盤性能。
MDS元數(shù)據(jù)服務(wù)器
它控制Client和OSD的交互,還會管理著限額控制、目錄和文件的創(chuàng)建與刪除,以及訪問控制權(quán)限。
Client客戶端
提供文件系統(tǒng)接口,方便外部訪問。
根據(jù)上面的架構(gòu)可以看出,對象存儲系統(tǒng)可以是一個提供海量存儲服務(wù)的分布式架構(gòu)。
▉ 對象存儲的優(yōu)點
對象存儲的優(yōu)點很多,簡單歸納如下:
容量無限大
對象存儲的容量是EB級以上。EB有多大?大家的硬盤普遍是TB級別。1EB約等于1TB的一百萬倍,請自行腦補...
對象存儲的所有業(yè)務(wù)、存儲節(jié)點采用分布式集群方式工作,各功能節(jié)點、集群都可以獨立擴容。從理論上來說,某個對象存儲系統(tǒng)或單個桶(bucket),并沒有總數(shù)據(jù)容量和對象數(shù)量的限制。
換句話說,只要你有足夠的money,服務(wù)商就可以不停地往架構(gòu)里增加資源,這個存儲空間就是無限的。
你可以根據(jù)自身需求購買相應(yīng)大小的對象存儲空間。如果需要調(diào)整大小,也是支持彈性伸縮的,你不要進行數(shù)據(jù)遷移和人工干預(yù)。
數(shù)據(jù)安全可靠
對象存儲采用了分布式架構(gòu),對數(shù)據(jù)進行多設(shè)備冗余存儲(至少三個以上節(jié)點),實現(xiàn)異地容災(zāi)和資源隔離。
根據(jù)云服務(wù)商的承諾,數(shù)據(jù)可靠性至少可以達到99.999999999%(不用數(shù)了,一共11個9)。這意味著,1000億個文件里,每月最多只會有1個文件發(fā)生數(shù)據(jù)丟失。這比一個人被隕石擊中的概率還要小143000倍。
數(shù)據(jù)訪問方面,所有的桶和對象都有ACL等訪問控制策略,所有的連接都支持SSL加密,OBS系統(tǒng)會對訪問用戶進行身份鑒權(quán)。因為數(shù)據(jù)是分片存儲在不同硬盤上的,所以即使有壞人偷了硬盤,也無法還原出完整的對象數(shù)據(jù)。
使用方便
對于用戶來說,對象存儲是一個非常方便的存儲方式。
很多人把它比喻為“代客泊車”,你只需要把車扔給他,他給你一個憑證,你通過憑證取車就可以了。你不需要知道車庫的布局,也不需要自己去費力停放。
數(shù)據(jù)的存取方法也非常靈活多樣。除了前面說的可以使用網(wǎng)頁(基于http)直接訪問之外,大部分云服務(wù)提供商都有自己的圖形化界面客戶端工具,用戶存取數(shù)據(jù)就像用網(wǎng)盤一樣。
騰訊云的對象存儲工具界面
事實上,大部分的對象存儲需求,并不是個人用戶買來當(dāng)網(wǎng)盤用,而且企業(yè)或政府用戶用于系統(tǒng)數(shù)據(jù)存儲。例如網(wǎng)站、App的靜態(tài)圖片、音頻、視頻,還有企業(yè)系統(tǒng)的歸檔數(shù)據(jù)等。
像這種數(shù)據(jù),是通過程序內(nèi)部的接口調(diào)用的。對象存儲提供開放的REST API接口。程序員在開發(fā)應(yīng)用時,直接把存儲參數(shù)寫進代碼,就可以通過API接口調(diào)用對象存儲里的數(shù)據(jù)。相比文件存儲那一串串的路徑,對象存儲要方便很多。
▉ 對象存儲的應(yīng)用場景
目前國內(nèi)有大量的云服務(wù)提供商,他們把對象存儲當(dāng)作云存儲在賣。
他們通常會把存儲業(yè)務(wù)分為3個等級,即標(biāo)準(zhǔn)型、低頻型、歸檔型。對應(yīng)的應(yīng)用場景如下:
標(biāo)準(zhǔn)類型:移動應(yīng)用 | 大型網(wǎng)站 | 圖片分享 | 熱點音視頻
低頻訪問類型:移動設(shè)備 | 應(yīng)用與企業(yè)數(shù)據(jù)備份 | 監(jiān)控數(shù)據(jù) | 網(wǎng)盤應(yīng)用
歸檔類型:各種長期保存的檔案數(shù)據(jù) | 醫(yī)療影像 | 影視素材
根據(jù)估算,目前全球互聯(lián)網(wǎng)70%以上的熱點數(shù)據(jù)是保存在對象存儲系統(tǒng)中的。
對象存儲雖然看上去很好很強大,但也不是沒有缺點。它最大的缺點,和它的工作模式有關(guān)。
它是那種把整個數(shù)據(jù)取出來,修改,再放回去的模式,不支持直接在存儲上修改,哪怕只是加一行數(shù)據(jù),都不行。所以,它不適合存儲需要頻繁擦寫的數(shù)據(jù)(例如關(guān)系型數(shù)據(jù)庫的數(shù)據(jù))。
在數(shù)據(jù)的一致性保證上,對象存儲也存在先天的不足。不過,據(jù)說目前技術(shù)上已經(jīng)有了很大改進。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。