1. 三種存儲(chǔ)類(lèi)型
隨著PC、平板電腦、智能手機(jī)等電子設(shè)備的普及,互聯(lián)網(wǎng)極大的提升了人們的生活水平。網(wǎng)絡(luò)在豐富人們生活的同時(shí),也產(chǎn)生了龐大的數(shù)據(jù)量。
圖1 各種電子設(shè)備
據(jù)IDC預(yù)測(cè),全球數(shù)據(jù)總量預(yù)計(jì)2020年達(dá)到44個(gè)ZB,我國(guó)數(shù)據(jù)量將達(dá)到8060個(gè)EB,占全球數(shù)據(jù)總量的18%。44個(gè)ZB是什么規(guī)模呢?相當(dāng)于44萬(wàn)億GB。
數(shù)據(jù)量的迅速增加促進(jìn)了存儲(chǔ)行業(yè)的發(fā)展,硬件方面和軟件方面都有了長(zhǎng)足的進(jìn)步。
本文主要對(duì)對(duì)象存儲(chǔ)進(jìn)行一個(gè)簡(jiǎn)單的說(shuō)明,希望通過(guò)本文,您能對(duì)對(duì)象存儲(chǔ)有個(gè)大致的了解。
主流存儲(chǔ)類(lèi)型分為三種:塊存儲(chǔ)、文件存儲(chǔ)以及對(duì)象存儲(chǔ)
塊存儲(chǔ)主要是將裸磁盤(pán)空間整個(gè)映射給主機(jī),按照物理卷或邏輯卷的方式存儲(chǔ)數(shù)據(jù)。特點(diǎn):速度快、保存的數(shù)據(jù)尺寸大、數(shù)據(jù)變化頻率高,缺點(diǎn):可擴(kuò)展程度小、容量小。(其實(shí)我們?nèi)粘I钪幸?jiàn)到的硬盤(pán),就是塊存儲(chǔ))
文件存儲(chǔ),典型代表NAS。NAS是類(lèi)似一個(gè)共享文件夾,用戶(hù)可以通過(guò)相應(yīng)的傳輸協(xié)議,把數(shù)據(jù)放在上面。容量相對(duì)較大,但是速度較慢。
下面說(shuō)到對(duì)象存儲(chǔ)了,不知道大家有沒(méi)有思考過(guò)一個(gè)問(wèn)題。每天微信朋友圈或者微博,以及最近爆火的那些小視頻app,用戶(hù)上傳了海量的圖片或者視頻,它們都是存放在什么地方的呢?我個(gè)人認(rèn)為,對(duì)象存儲(chǔ),是存儲(chǔ)它們的一個(gè)不錯(cuò)選擇。
對(duì)象存儲(chǔ),對(duì)象指的是面向?qū)ο?,集合了塊存儲(chǔ)和文件存儲(chǔ)的優(yōu)點(diǎn),擁有速度快、容量大等特性。并且容易搭配云計(jì)算,是一種新的網(wǎng)絡(luò)存儲(chǔ)架構(gòu)。
當(dāng)然,三種存儲(chǔ)類(lèi)型并不是完全獨(dú)立的,還是有依賴(lài)關(guān)系的。對(duì)象存儲(chǔ)在底層存儲(chǔ)介質(zhì)方面上,還是部分依賴(lài)塊存儲(chǔ)和文件存儲(chǔ)的。
圖2 三種存儲(chǔ)類(lèi)型依賴(lài)關(guān)系
為了更好的說(shuō)明三者的差異,我打個(gè)比方,假設(shè)有三個(gè)人想從A地到B地,現(xiàn)在有三種交通方式。甲選擇轎車(chē)、乙選擇公共汽車(chē)、丙選擇地鐵。塊存儲(chǔ)類(lèi)似于轎車(chē),速度快,但是容量小(轎車(chē)只能乘坐幾個(gè)人);文件存儲(chǔ)類(lèi)似于公共汽車(chē),速度慢(公共汽車(chē)有站點(diǎn)和紅綠燈需要考慮),但是容量較大(能多坐不少人);對(duì)象存儲(chǔ)類(lèi)似于地鐵,速度快,容量大。
圖3 三種存儲(chǔ)類(lèi)型類(lèi)比
2.對(duì)象存儲(chǔ)原理
2.1 對(duì)象數(shù)據(jù)組成結(jié)構(gòu)
與塊存儲(chǔ)和文件存儲(chǔ)管理數(shù)據(jù)的方式不同,對(duì)象存儲(chǔ)是以對(duì)象的形式管理數(shù)據(jù)的。對(duì)象和文件最大的不同,就是在文件基礎(chǔ)之上增加了元數(shù)據(jù)。一般情況下,對(duì)象分為三個(gè)部分:數(shù)據(jù)、元數(shù)據(jù)以及對(duì)象id。
對(duì)象的數(shù)據(jù)通常是無(wú)結(jié)構(gòu)的數(shù)據(jù),比如:圖片、視頻或文檔等;對(duì)象的元數(shù)據(jù)則指的是對(duì)象的相關(guān)描述,比如:圖片的大小、文檔的擁有者等;對(duì)象id則是一個(gè)全局的唯一標(biāo)識(shí)符,用來(lái)區(qū)分對(duì)象的。
2.2 對(duì)象訪(fǎng)問(wèn)方式
對(duì)象存儲(chǔ),訪(fǎng)問(wèn)對(duì)象的方式很方便,是通過(guò)REST接口對(duì)對(duì)象進(jìn)行操作,用HTTP動(dòng)詞(GET、POST、PUT、DELETE等)描述操作。除此之外,還有一種訪(fǎng)問(wèn)方式,就是使用各大云商提供的客戶(hù)端去操作對(duì)象。比如:Amazon的s3cmd、阿里云的osscmd/ossutil、騰訊云的coscmd等。這些客戶(hù)端都是各個(gè)云商開(kāi)發(fā)出來(lái),可以以命令行的形式在操作系統(tǒng)中操作對(duì)象的工具,各大云商都有詳細(xì)的文檔說(shuō)明,在這就不一一贅述了。
2.3 對(duì)象存儲(chǔ)優(yōu)缺點(diǎn)
先說(shuō)優(yōu)點(diǎn),之前大概也提了下:
可擴(kuò)展性高:對(duì)象存儲(chǔ)能夠擴(kuò)展數(shù)十乃至數(shù)百EB的容量,能夠充分利用高密度存儲(chǔ);
效率高:扁平化結(jié)構(gòu),不受復(fù)雜目錄系統(tǒng)對(duì)性能的影響;
無(wú)需遷移:對(duì)象存儲(chǔ)是一種橫向擴(kuò)展系統(tǒng),隨著容量的增加,數(shù)據(jù)根據(jù)算法自動(dòng)分布于所有的對(duì)象存儲(chǔ)節(jié)點(diǎn);
安全性高:對(duì)象存儲(chǔ)通常憑借HTTP調(diào)用對(duì)象存儲(chǔ)本身提供的認(rèn)證密鑰來(lái)提供數(shù)據(jù)訪(fǎng)問(wèn);
訪(fǎng)問(wèn)方便:不光支持HTTP(S)協(xié)議,采用REST的API方式調(diào)用和檢索數(shù)據(jù),同樣增加了NFS和SMB支持;
成本相對(duì)低:與塊存儲(chǔ)方式相比,對(duì)象存儲(chǔ)是最具成本效益的數(shù)據(jù)存儲(chǔ)類(lèi)型,并且與云計(jì)算搭配,把對(duì)象存儲(chǔ)的這一特性發(fā)揮的淋漓盡致。
再提缺點(diǎn):
最終一致性:由于不同節(jié)點(diǎn)的位置不同,數(shù)據(jù)同步時(shí)可能會(huì)有一定時(shí)間的延遲或者錯(cuò)誤;
不易做數(shù)據(jù)庫(kù):對(duì)象存儲(chǔ)比較適合存儲(chǔ)那些變動(dòng)不大甚至不變的文件,而對(duì)于像數(shù)據(jù)庫(kù)這種需要直接與存儲(chǔ)裸盤(pán)相互映射的應(yīng)用,還是塊存儲(chǔ)更合適。
3. 對(duì)象存儲(chǔ)應(yīng)用
前面說(shuō)了許多定義,可能許多朋友還是云里霧里的,不知道對(duì)象存儲(chǔ)怎么使用。下面,我以騰訊云的對(duì)象存儲(chǔ)(cos)為例,使用python的代碼方式來(lái)實(shí)際應(yīng)用一下。
cos有一個(gè)存儲(chǔ)桶(bucket,其他云商也有)的概念,它是對(duì)象的載體,可理解為存放對(duì)象的“容器”。用戶(hù)可以通過(guò)騰訊云控制器、API、SDK等多種方式管理以及配置存儲(chǔ)桶。下圖是功能的整個(gè)流程圖,具體含義后面會(huì)介紹:
圖4 上傳圖片和查看圖片流程圖
3.1 創(chuàng)建bucket
我就不用代碼的方式創(chuàng)建存儲(chǔ)桶了,直接在騰訊控制臺(tái)創(chuàng)建一個(gè)bucket,命名為“tyun-cn-test”。bucket有三種類(lèi)型私有讀寫(xiě)、公有讀私有寫(xiě)、公有讀寫(xiě),凡是帶“私有”二字的,是需要請(qǐng)求簽名的。為了測(cè)試完整,我選擇私有讀寫(xiě)的方式,來(lái)做一個(gè)上傳圖片的功能。
創(chuàng)建完bucket之后,就可以寫(xiě)代碼了,我使用cos提供的API進(jìn)行圖片上傳。因?yàn)槲疫x擇的bucket是私有讀寫(xiě)的,所以上傳圖片之前,還需要先生成一個(gè)請(qǐng)求簽名。
3.2 生成cos的請(qǐng)求簽名
圖5 生成密鑰的python代碼
cos的請(qǐng)求簽名的文檔寫(xiě)的挺詳細(xì),不過(guò)它是以PHP的方式舉例的,我把它重新用python封裝了一個(gè)函數(shù),有幾個(gè)參數(shù)需要注意。
函數(shù)中,sign_time為簽名的有效時(shí)間,http_method為操作方式(上傳文件時(shí)用PUT,獲取文件時(shí)用GET),remote_file_name為上傳到cos的文件名,api_url為bucket的訪(fǎng)問(wèn)地址,secret_id和secret_key都是騰訊云API密鑰。
3.3 上傳圖片到cos
上傳圖片到cos的整個(gè)流程:先通過(guò)POST方式暫時(shí)把圖片上傳到后端服務(wù)器,然后調(diào)用cos的API,使用PUT的方式把圖片上傳到cos,之后返回一個(gè)圖片的cos地址,最后刪除后端服務(wù)器上的圖片。
圖6 服務(wù)器上image上傳到cos代碼
上圖,就是把圖片從服務(wù)器上傳到cos的大致實(shí)現(xiàn),其中fname是圖片在服務(wù)器上的地址,_get_cos_sign()函數(shù)就是前面生成請(qǐng)求簽名的函數(shù)。
需要注意的是,上傳圖片(PUT)和獲取圖片(GET)的方式不同,所以生成請(qǐng)求簽名的時(shí)傳遞的http_method也需要區(qū)分。訪(fǎng)問(wèn)返回的圖片地址,就會(huì)發(fā)現(xiàn)圖片已經(jīng)上傳成功到cos上了。
4.總結(jié)
對(duì)象存儲(chǔ),作為一個(gè)新的存儲(chǔ)類(lèi)型,在云計(jì)算高速發(fā)展的今天,有著很大的用武之地。不過(guò),盡管有著擴(kuò)展性好、效率高等優(yōu)點(diǎn),其一致性仍是不好處理的問(wèn)題。所以,不能把雞蛋放在同一個(gè)籃子里。合理選擇存儲(chǔ)類(lèi)型,對(duì)用戶(hù)和企業(yè)來(lái)說(shuō),都是一個(gè)需要考慮的問(wèn)題。
-
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4533瀏覽量
87464 -
NAS
+關(guān)注
關(guān)注
11文章
302瀏覽量
113592
發(fā)布評(píng)論請(qǐng)先 登錄
MEMS中的三種測(cè)溫方式

HarmonyOS基礎(chǔ)組件:Button三種類(lèi)型的使用

介紹三種常見(jiàn)的MySQL高可用方案
CMOS,Bipolar,F(xiàn)ET這三種工藝的優(yōu)缺點(diǎn)是什么?
GaN、超級(jí)SI、SiC這三種MOS器件的用途區(qū)別
光伏系統(tǒng)的三種類(lèi)型及其應(yīng)用分析

示波器的三種觸發(fā)模式

三種封裝形式下的400G光模塊概述

評(píng)論