設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

干貨科普:大火的「對象存儲」到底是什么

鮮棗課堂 2020/8/2 21:27:45 責(zé)編:騎士
感謝IT之家網(wǎng)友 軟媒用戶1754900 的線索投遞!

上期文章(鏈接:關(guān)于存儲技術(shù)的最強(qiáng)入門科普),小棗君給大家詳細(xì)介紹了數(shù)據(jù)存儲技術(shù)的基本知識,其中重點(diǎn)對DAS、SAN和NAS技術(shù)進(jìn)行了對比分析。

我們知道,在很長的一段時(shí)間里,這三種架構(gòu)幾乎統(tǒng)治了數(shù)據(jù)存儲市場。所有行業(yè)用戶的數(shù)據(jù)存儲需求,都是在這三者中進(jìn)行選擇。

然而,隨著時(shí)代的發(fā)展,一種新的數(shù)據(jù)存儲形態(tài)誕生,開始挑戰(zhàn)前面三者的壟斷地位。

沒錯(cuò),它就是云計(jì)算時(shí)代存儲技術(shù)的新網(wǎng)紅——對象存儲。

哈哈,也許搞著搞著,對象就有了呢!

對象存儲,也稱為“面向?qū)ο蟮拇鎯Α?,英文是Object-based Storage。現(xiàn)在很多云廠商,也直接稱之為“云存儲”。

不同的云廠商對它有不同的英文縮寫命名。例如阿里云把自家的對象存儲服務(wù)叫做OSS,華為云叫OBS,騰訊云叫COS,七牛叫Kodo,百度叫BOS,網(wǎng)易叫NOS……五花八門,反正都是一個(gè)技術(shù)。

之前小棗君介紹過,DAS和SAN是基于物理塊的存儲方式,而NAS是基于文件的存儲方式。

在DAS和SAN中,存儲資源就像一塊一塊的硬盤,直接掛載在主機(jī)上,我們稱之為塊存儲。

而在NAS中,呈現(xiàn)出來的是一個(gè)基于文件系統(tǒng)的目錄架構(gòu),有目錄、子目錄、孫目錄、文件,我們稱之為文件存儲。

文件存儲的最大特點(diǎn),就是所有存儲資源都是多級路徑方式進(jìn)行訪問的。例如:

C:\Program Files (x86)\Tencent\WeChat\WeChat.exe

\\NJUST-Server\學(xué)習(xí)資料\通信原理\第一章作業(yè).doc

20世紀(jì)末,隨著互聯(lián)網(wǎng)的爆發(fā),數(shù)據(jù)存儲需求發(fā)生了兩個(gè)重大的變化。

第一,就是數(shù)據(jù)量爆炸式增長。

原因我就不用說了吧?大家可以瞅瞅自己的硬盤,都藏了些什么。

Web應(yīng)用的崛起、社交需求的刺激,極大地推動(dò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ù)?

舉個(gè)例子大家就明白了。我們經(jīng)常做的excel表格,姓名、身高、體重、年齡、性別,這種用二維表結(jié)構(gòu)可以進(jìn)行邏輯表達(dá)的數(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ù)。

面對這兩大趨勢,因?yàn)楸旧砑夹g(shù)和架構(gòu)的限制,DAS、SAN和NAS無法進(jìn)行有效應(yīng)對。

于是,專家們就搞出了對象存儲。

雖然我們說對象存儲是新網(wǎng)紅,但實(shí)際上它誕生的時(shí)間并不算短。早在1996年,美國卡內(nèi)基梅隆大學(xué)就將對象存儲作為一個(gè)研究項(xiàng)目提出來。隨后,加州大學(xué)伯克利分校也有推出類似的項(xiàng)目。

2002年,F(xiàn)ilepool公司推出了基于內(nèi)容可尋址技術(shù)的Centera系統(tǒng),算是比較早期的對象存儲系統(tǒng)。

2006年,美國Amazon公司發(fā)布AWS S3(Simple Storage Service)服務(wù),正式將對象存儲作為一項(xiàng)云存儲服務(wù),引入云計(jì)算領(lǐng)域,從此開啟了對象存儲的黃金時(shí)代。

S3幾乎成為對象存儲的事實(shí)標(biāo)準(zhǔn)

各廠家基本上都會兼容S3

▉ 對象存儲和塊存儲、文件存儲的區(qū)別

說了半天,對象存儲到底是一個(gè)什么樣的技術(shù)?它和塊存儲、文件存儲有什么區(qū)別?

首先,第一點(diǎn),千萬不要去看百度百科上面“對象存儲”的定義,否則,你可能會懷疑人生。

想要了解對象存儲,最簡單直接的辦法,就是從實(shí)際使用體驗(yàn)上進(jìn)行對比。

對象存儲的底層硬件介質(zhì),依然是硬盤,和塊存儲、文件存儲沒有區(qū)別。

而對象存儲架構(gòu)在底層硬件之上的系統(tǒng),和兩者完全不同。(下文會詳細(xì)介紹系統(tǒng)架構(gòu))

不同的軟件,帶來了完全不同的使用體驗(yàn):

塊存儲,操作對象是磁盤。存儲協(xié)議是SCSI、iSCSI、FC。

以 SCSI 為例,主要接口命令有 Read/Write/Read Capacity/Inquiry 等等。

文件存儲,操作對象是文件和文件夾。存儲協(xié)議是NFS、SAMBA(SMB)、POSIX等。

以NFS(大家應(yīng)該都用過“網(wǎng)上鄰居”共享文件吧?就是那個(gè))為例,文件相關(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)出來的是一個(gè)“桶”(bucket),你可以往“桶”里面放“對象(Object)”。這個(gè)對象包括三個(gè)部分:Key、Data、Metadata。

  • Key

可以理解文件名,是該對象的全局唯一標(biāo)識符(UID)。

Key是用于檢索對象,服務(wù)器和用戶不需要知道數(shù)據(jù)的物理地址,也能通過它找到對象。這種方法極大地簡化了數(shù)據(jù)存儲。

下面這行,就是一個(gè)對象的地址范例:

看上去就是一個(gè)URL網(wǎng)址。如果該對象被設(shè)置為“公開”,所有互聯(lián)網(wǎng)用戶都可以通過這個(gè)地址訪問它。

  • Data

也就是用戶數(shù)據(jù)本體。這個(gè)不用解釋了。

  • Metadata

Metadata叫做元數(shù)據(jù),它是對象存儲一個(gè)非常獨(dú)特的概念。

元數(shù)據(jù)有點(diǎn)類似數(shù)據(jù)的標(biāo)簽,標(biāo)簽的條目類型和數(shù)量是沒有限制的,可以是對象的各種描述信息。

舉個(gè)例子,如果對象是一張人物照片,那么元數(shù)據(jù)可以是姓名、性別、國籍、年齡、拍攝地點(diǎn)、拍攝時(shí)間等。

元數(shù)據(jù)可以有很多

在傳統(tǒng)的文件存儲里,這類信息屬于文件本身,和文件一起封裝存儲。而對象存儲中,元數(shù)據(jù)是獨(dú)立出來的,并不在數(shù)據(jù)內(nèi)部封裝。

元數(shù)據(jù)的好處非常明顯,可以大大加快對象的排序,還有分類和查找。

▉ 對象存儲的架構(gòu)

對象存儲的架構(gòu)是怎樣的呢?如下圖所示,分為3個(gè)主要部分:

對象存儲的簡單架構(gòu)示意圖

  • OSD對象存儲設(shè)備

這是對象存儲的核心,具有自己的CPU、內(nèi)存、網(wǎng)絡(luò)和磁盤系統(tǒng)。它的主要功能當(dāng)然是存儲數(shù)據(jù)。同時(shí),它還會利用自己的算力,優(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)可以是一個(gè)提供海量存儲服務(wù)的分布式架構(gòu)。

▉ 對象存儲的優(yōu)點(diǎn)

對象存儲的優(yōu)點(diǎn)很多,簡單歸納如下:

  • 容量無限大

對象存儲的容量是EB級以上。EB有多大?大家的硬盤普遍是TB級別。1EB約等于1TB的一百萬倍,請自行腦補(bǔ)...

對象存儲的所有業(yè)務(wù)、存儲節(jié)點(diǎn)采用分布式集群方式工作,各功能節(jié)點(diǎn)、集群都可以獨(dú)立擴(kuò)容。從理論上來說,某個(gè)對象存儲系統(tǒng)或單個(gè)桶(bucket),并沒有總數(shù)據(jù)容量和對象數(shù)量的限制。

換句話說,只要你有足夠的money,服務(wù)商就可以不停地往架構(gòu)里增加資源,這個(gè)存儲空間就是無限的。

你可以根據(jù)自身需求購買相應(yīng)大小的對象存儲空間。如果需要調(diào)整大小,也是支持彈性伸縮的,你不要進(jìn)行數(shù)據(jù)遷移和人工干預(yù)。

  • 數(shù)據(jù)安全可靠

對象存儲采用了分布式架構(gòu),對數(shù)據(jù)進(jìn)行多設(shè)備冗余存儲(至少三個(gè)以上節(jié)點(diǎn)),實(shí)現(xiàn)異地容災(zāi)和資源隔離。

根據(jù)云服務(wù)商的承諾,數(shù)據(jù)可靠性至少可以達(dá)到99.999999999%(不用數(shù)了,一共11個(gè)9)。這意味著,1000億個(gè)文件里,每月最多只會有1個(gè)文件發(fā)生數(shù)據(jù)丟失。這比一個(gè)人被隕石擊中的概率還要小143000倍。

數(shù)據(jù)訪問方面,所有的桶和對象都有ACL等訪問控制策略,所有的連接都支持SSL加密,OBS系統(tǒng)會對訪問用戶進(jìn)行身份鑒權(quán)。因?yàn)閿?shù)據(jù)是分片存儲在不同硬盤上的,所以即使有壞人偷了硬盤,也無法還原出完整的對象數(shù)據(jù)。

  • 使用方便

對于用戶來說,對象存儲是一個(gè)非常方便的存儲方式。

很多人把它比喻為“代客泊車”,你只需要把車扔給他,他給你一個(gè)憑證,你通過憑證取車就可以了。你不需要知道車庫的布局,也不需要自己去費(fèi)力停放。

數(shù)據(jù)的存取方法也非常靈活多樣。除了前面說的可以使用網(wǎng)頁(基于http)直接訪問之外,大部分云服務(wù)提供商都有自己的圖形化界面客戶端工具,用戶存取數(shù)據(jù)就像用網(wǎng)盤一樣。

騰訊云的對象存儲工具界面

事實(shí)上,大部分的對象存儲需求,并不是個(gè)人用戶買來當(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í),直接把存儲參數(shù)寫進(jìn)代碼,就可以通過API接口調(diào)用對象存儲里的數(shù)據(jù)。相比文件存儲那一串串的路徑,對象存儲要方便很多。

▉ 對象存儲的應(yīng)用場景

目前國內(nèi)有大量的云服務(wù)提供商,他們把對象存儲當(dāng)作云存儲在賣。

他們通常會把存儲業(yè)務(wù)分為3個(gè)等級,即標(biāo)準(zhǔn)型、低頻型、歸檔型。對應(yīng)的應(yīng)用場景如下:

標(biāo)準(zhǔn)類型:移動(dòng)應(yīng)用 | 大型網(wǎng)站 | 圖片分享 | 熱點(diǎn)音視頻

低頻訪問類型:移動(dòng)設(shè)備 | 應(yīng)用與企業(yè)數(shù)據(jù)備份 | 監(jiān)控?cái)?shù)據(jù) | 網(wǎng)盤應(yīng)用

歸檔類型:各種長期保存的檔案數(shù)據(jù) | 醫(yī)療影像 | 影視素材

根據(jù)估算,目前全球互聯(lián)網(wǎng)70%以上的熱點(diǎn)數(shù)據(jù)是保存在對象存儲系統(tǒng)中的。

對象存儲雖然看上去很好很強(qiáng)大,但也不是沒有缺點(diǎn)。它最大的缺點(diǎn),和它的工作模式有關(guān)。

它是那種把整個(gè)數(shù)據(jù)取出來,修改,再放回去的模式,不支持直接在存儲上修改,哪怕只是加一行數(shù)據(jù),都不行。所以,它不適合存儲需要頻繁擦寫的數(shù)據(jù)(例如關(guān)系型數(shù)據(jù)庫的數(shù)據(jù))。

在數(shù)據(jù)的一致性保證上,對象存儲也存在先天的不足。不過,據(jù)說目前技術(shù)上已經(jīng)有了很大改進(jìn)。

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:云存儲,存儲

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會買 要知