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