0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三種存儲類型的類比與依賴

汽車玩家 ? 來源:新鈦云服 ? 作者:黃平安 ? 2020-05-05 22:21 ? 次閱讀

1. 三種存儲類型

隨著PC、平板電腦、智能手機(jī)電子設(shè)備的普及,互聯(lián)網(wǎng)極大的提升了人們的生活水平。網(wǎng)絡(luò)在豐富人們生活的同時,也產(chǎn)生了龐大的數(shù)據(jù)量。

圖1 各種電子設(shè)備

據(jù)IDC預(yù)測,全球數(shù)據(jù)總量預(yù)計(jì)2020年達(dá)到44個ZB,我國數(shù)據(jù)量將達(dá)到8060個EB,占全球數(shù)據(jù)總量的18%。44個ZB是什么規(guī)模呢?相當(dāng)于44萬億GB。

數(shù)據(jù)量的迅速增加促進(jìn)了存儲行業(yè)的發(fā)展,硬件方面和軟件方面都有了長足的進(jìn)步。

本文主要對對象存儲進(jìn)行一個簡單的說明,希望通過本文,您能對對象存儲有個大致的了解。

主流存儲類型分為三種:塊存儲、文件存儲以及對象存儲

塊存儲主要是將裸磁盤空間整個映射給主機(jī),按照物理卷或邏輯卷的方式存儲數(shù)據(jù)。特點(diǎn):速度快、保存的數(shù)據(jù)尺寸大、數(shù)據(jù)變化頻率高,缺點(diǎn):可擴(kuò)展程度小、容量小。(其實(shí)我們?nèi)粘I钪幸姷降挠脖P,就是塊存儲)

文件存儲,典型代表NAS。NAS是類似一個共享文件夾,用戶可以通過相應(yīng)的傳輸協(xié)議,把數(shù)據(jù)放在上面。容量相對較大,但是速度較慢。

下面說到對象存儲了,不知道大家有沒有思考過一個問題。每天微信朋友圈或者微博,以及最近爆火的那些小視頻app,用戶上傳了海量的圖片或者視頻,它們都是存放在什么地方的呢?我個人認(rèn)為,對象存儲,是存儲它們的一個不錯選擇。

對象存儲,對象指的是面向?qū)ο?,集合了塊存儲和文件存儲的優(yōu)點(diǎn),擁有速度快、容量大等特性。并且容易搭配云計(jì)算,是一種新的網(wǎng)絡(luò)存儲架構(gòu)。

當(dāng)然,三種存儲類型并不是完全獨(dú)立的,還是有依賴關(guān)系的。對象存儲在底層存儲介質(zhì)方面上,還是部分依賴塊存儲和文件存儲的。

 三種存儲類型的類比與依賴

圖2 三種存儲類型依賴關(guān)系

為了更好的說明三者的差異,我打個比方,假設(shè)有三個人想從A地到B地,現(xiàn)在有三種交通方式。甲選擇轎車、乙選擇公共汽車、丙選擇地鐵。塊存儲類似于轎車,速度快,但是容量小(轎車只能乘坐幾個人);文件存儲類似于公共汽車,速度慢(公共汽車有站點(diǎn)和紅綠燈需要考慮),但是容量較大(能多坐不少人);對象存儲類似于地鐵,速度快,容量大。

圖3 三種存儲類型類比

2.對象存儲原理

2.1 對象數(shù)據(jù)組成結(jié)構(gòu)

與塊存儲和文件存儲管理數(shù)據(jù)的方式不同,對象存儲是以對象的形式管理數(shù)據(jù)的。對象和文件最大的不同,就是在文件基礎(chǔ)之上增加了元數(shù)據(jù)。一般情況下,對象分為三個部分:數(shù)據(jù)、元數(shù)據(jù)以及對象id。

對象的數(shù)據(jù)通常是無結(jié)構(gòu)的數(shù)據(jù),比如:圖片、視頻或文檔等;對象的元數(shù)據(jù)則指的是對象的相關(guān)描述,比如:圖片的大小、文檔的擁有者等;對象id則是一個全局的唯一標(biāo)識符,用來區(qū)分對象的。

2.2 對象訪問方式

對象存儲,訪問對象的方式很方便,是通過REST接口對對象進(jìn)行操作,用HTTP動詞(GET、POST、PUT、DELETE等)描述操作。除此之外,還有一種訪問方式,就是使用各大云商提供的客戶端去操作對象。比如:Amazon的s3cmd、阿里云的osscmd/ossutil、騰訊云的coscmd等。這些客戶端都是各個云商開發(fā)出來,可以以命令行的形式在操作系統(tǒng)中操作對象的工具,各大云商都有詳細(xì)的文檔說明,在這就不一一贅述了。

2.3 對象存儲優(yōu)缺點(diǎn)

先說優(yōu)點(diǎn),之前大概也提了下:

可擴(kuò)展性高:對象存儲能夠擴(kuò)展數(shù)十乃至數(shù)百EB的容量,能夠充分利用高密度存儲;

效率高:扁平化結(jié)構(gòu),不受復(fù)雜目錄系統(tǒng)對性能的影響;

無需遷移:對象存儲是一種橫向擴(kuò)展系統(tǒng),隨著容量的增加,數(shù)據(jù)根據(jù)算法自動分布于所有的對象存儲節(jié)點(diǎn);

安全性高:對象存儲通常憑借HTTP調(diào)用對象存儲本身提供的認(rèn)證密鑰來提供數(shù)據(jù)訪問;

訪問方便:不光支持HTTP(S)協(xié)議,采用REST的API方式調(diào)用和檢索數(shù)據(jù),同樣增加了NFS和SMB支持;

成本相對低:與塊存儲方式相比,對象存儲是最具成本效益的數(shù)據(jù)存儲類型,并且與云計(jì)算搭配,把對象存儲的這一特性發(fā)揮的淋漓盡致。

再提缺點(diǎn):

最終一致性:由于不同節(jié)點(diǎn)的位置不同,數(shù)據(jù)同步時可能會有一定時間的延遲或者錯誤;

不易做數(shù)據(jù)庫:對象存儲比較適合存儲那些變動不大甚至不變的文件,而對于像數(shù)據(jù)庫這種需要直接與存儲裸盤相互映射的應(yīng)用,還是塊存儲更合適。

3. 對象存儲應(yīng)用

前面說了許多定義,可能許多朋友還是云里霧里的,不知道對象存儲怎么使用。下面,我以騰訊云的對象存儲(cos)為例,使用python的代碼方式來實(shí)際應(yīng)用一下。

cos有一個存儲桶(bucket,其他云商也有)的概念,它是對象的載體,可理解為存放對象的“容器”。用戶可以通過騰訊云控制器、API、SDK等多種方式管理以及配置存儲桶。下圖是功能的整個流程圖,具體含義后面會介紹:

三種存儲類型的類比與依賴

圖4 上傳圖片和查看圖片流程圖

3.1 創(chuàng)建bucket

我就不用代碼的方式創(chuàng)建存儲桶了,直接在騰訊控制臺創(chuàng)建一個bucket,命名為“tyun-cn-test”。bucket有三種類型私有讀寫、公有讀私有寫、公有讀寫,凡是帶“私有”二字的,是需要請求簽名的。為了測試完整,我選擇私有讀寫的方式,來做一個上傳圖片的功能。

創(chuàng)建完bucket之后,就可以寫代碼了,我使用cos提供的API進(jìn)行圖片上傳。因?yàn)槲疫x擇的bucket是私有讀寫的,所以上傳圖片之前,還需要先生成一個請求簽名。

3.2 生成cos的請求簽名

三種存儲類型的類比與依賴

圖5 生成密鑰的python代碼

cos的請求簽名的文檔寫的挺詳細(xì),不過它是以PHP的方式舉例的,我把它重新用python封裝了一個函數(shù),有幾個參數(shù)需要注意。

函數(shù)中,sign_time為簽名的有效時間,http_method為操作方式(上傳文件時用PUT,獲取文件時用GET),remote_file_name為上傳到cos的文件名,api_url為bucket的訪問地址,secret_id和secret_key都是騰訊云API密鑰。

3.3 上傳圖片到cos

上傳圖片到cos的整個流程:先通過POST方式暫時把圖片上傳到后端服務(wù)器,然后調(diào)用cos的API,使用PUT的方式把圖片上傳到cos,之后返回一個圖片的cos地址,最后刪除后端服務(wù)器上的圖片。

三種存儲類型的類比與依賴

圖6 服務(wù)器上image上傳到cos代碼

上圖,就是把圖片從服務(wù)器上傳到cos的大致實(shí)現(xiàn),其中fname是圖片在服務(wù)器上的地址,_get_cos_sign()函數(shù)就是前面生成請求簽名的函數(shù)。

需要注意的是,上傳圖片(PUT)和獲取圖片(GET)的方式不同,所以生成請求簽名的時傳遞的http_method也需要區(qū)分。訪問返回的圖片地址,就會發(fā)現(xiàn)圖片已經(jīng)上傳成功到cos上了。

4.總結(jié)

對象存儲,作為一個新的存儲類型,在云計(jì)算高速發(fā)展的今天,有著很大的用武之地。不過,盡管有著擴(kuò)展性好、效率高等優(yōu)點(diǎn),其一致性仍是不好處理的問題。所以,不能把雞蛋放在同一個籃子里。合理選擇存儲類型,對用戶和企業(yè)來說,都是一個需要考慮的問題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4123

    瀏覽量

    85276
  • NAS
    NAS
    +關(guān)注

    關(guān)注

    11

    文章

    264

    瀏覽量

    112258
收藏 人收藏

    評論

    相關(guān)推薦

    單片機(jī)的三種總線結(jié)構(gòu)

    單片機(jī)的三種總線結(jié)構(gòu)包括地址總線(Address Bus, AB)、數(shù)據(jù)總線(Data Bus, DB)和控制總線(Control Bus, CB)。這三種總線在單片機(jī)內(nèi)部及與外部設(shè)備之間的數(shù)據(jù)傳輸
    的頭像 發(fā)表于 09-10 11:32 ?377次閱讀

    verilog中端口類型有哪三種

    在 Verilog 中,端口類型三種:輸入端口(input)、輸出端口(output)和雙向端口(inout)。 輸入端口(input)用于接收來自其他模塊的信號。在一個模塊中,輸入端口是被調(diào)用
    的頭像 發(fā)表于 02-23 10:28 ?1366次閱讀

    邊緣計(jì)算分為哪三種類型?邊緣計(jì)算這項(xiàng)技術(shù)可以應(yīng)用在哪些領(lǐng)域?

    邊緣計(jì)算分為哪三種類型?邊緣計(jì)算這項(xiàng)技術(shù)可以應(yīng)用在哪些領(lǐng)域? 邊緣計(jì)算是一分布式計(jì)算的模式,它將數(shù)據(jù)處理和存儲的功能從傳統(tǒng)的集中式云計(jì)算中推向網(wǎng)絡(luò)邊緣設(shè)備,以便更快速、實(shí)時地進(jìn)行計(jì)算和響應(yīng)。邊緣
    的頭像 發(fā)表于 02-06 14:38 ?1016次閱讀

    運(yùn)放的三種應(yīng)用

    運(yùn)放在電路中主要存在三種應(yīng)用,放大器,濾波器,振蕩器。再這三種應(yīng)用電路中,運(yùn)放的兩大特點(diǎn)虛短虛斷仍然成立嗎? 在阻尼振蕩器中,工作過程是否按照我描述的這樣,在反相輸入端加一個近似鋸齒波的電流源,正半
    發(fā)表于 01-26 16:18

    差分晶振的輸出波形解析:三種類型要知道

    差分晶振的輸出波形解析:三種類型要知道? 差分晶振是一常見的電路元件,用于產(chǎn)生高穩(wěn)定性的方波信號。它采用了一個振蕩電路,包含了一個典型的集成晶體振蕩器和兩個反向耦合的輸出信號。 差分晶振的輸出波形
    的頭像 發(fā)表于 01-24 13:46 ?914次閱讀

    運(yùn)動控制的三種控制方式

    非標(biāo)項(xiàng)目中有非常多的運(yùn)動控制,根據(jù)系統(tǒng)配置、電機(jī)類型以及精度需求的不同主要有三種控制方式:開環(huán)控制、半閉環(huán)控制、全閉環(huán)控制。
    的頭像 發(fā)表于 01-23 09:48 ?975次閱讀
    運(yùn)動控制的<b class='flag-5'>三種</b>控制方式

    雷達(dá)的種類有哪三種類型

    雷達(dá)是一利用電磁波進(jìn)行目標(biāo)探測和跟蹤的設(shè)備。它在軍事、航空、海洋、天文和氣象等領(lǐng)域具有廣泛的應(yīng)用。雷達(dá)的種類可以按照不同的分類方式進(jìn)行劃分。在本文中,我們將按照雷達(dá)的工作方式,將雷達(dá)分為三種類型
    的頭像 發(fā)表于 12-21 11:38 ?4441次閱讀

    晶體管三種接法的特點(diǎn)

    晶體管三種接法的特點(diǎn)? 晶體管是一常見的電子元器件,具有開關(guān)和放大功能。根據(jù)不同的接法,晶體管的特點(diǎn)也會有所不同。一般來說,晶體管的接法分為共集電極、共射極和共基極三種類型。下面將詳細(xì)介紹晶體管
    的頭像 發(fā)表于 12-12 14:23 ?1155次閱讀

    常見的socket三種類型

    常見的socket三種類型? Socket是計(jì)算機(jī)網(wǎng)絡(luò)中常用的通信機(jī)制,在網(wǎng)絡(luò)編程中起到了非常重要的作用。Socket可以分為三種類型:流套接字(Stream Socket)、數(shù)據(jù)報(bào)套接字
    的頭像 發(fā)表于 12-08 11:18 ?2147次閱讀

    拒絕EMI干擾,三種屏蔽類型的多芯導(dǎo)線如何選?

    拒絕EMI干擾,三種屏蔽類型的多芯導(dǎo)線如何選?
    的頭像 發(fā)表于 12-07 16:30 ?408次閱讀
    拒絕EMI干擾,<b class='flag-5'>三種</b>屏蔽<b class='flag-5'>類型</b>的多芯導(dǎo)線如何選?

    伺服電機(jī)控制器的是三種類型介紹

    伺服電機(jī)控制器的類型包括降壓起動器、調(diào)速驅(qū)動器、智能控制器等三種分類,另外控制方面主要以方波控制、正弦波控制等兩方式,那么下面就詳細(xì)介紹一下相關(guān)內(nèi)容。
    發(fā)表于 11-19 10:00 ?719次閱讀

    伺服電機(jī)控制器的三種分類

    伺服電機(jī)控制器的類型包括降壓起動器、調(diào)速驅(qū)動器、智能控制器等三種分類,另外控制方面主要以方波控制、正弦波控制等兩方式。
    發(fā)表于 11-16 10:26 ?707次閱讀

    什么是電池化成?電池化成的三種方式 三種電池化成對比

    什么是電池化成?電池化成的三種方式 三種電池化成對比? 電池化成是指將物體或設(shè)備改造為可以使用電池供電的過程。在電池化成過程中,常見的電源例如燃油、電線甚至是替換掉,以便更高效、便捷地提供
    的頭像 發(fā)表于 11-10 14:49 ?2006次閱讀

    如何用三種不同的方法來用按鈕控制燈光

    在電子和自動化中,一個常見的任務(wù)是使用按鈕來控制燈的開/關(guān)狀態(tài)。這可以用不同的方式實(shí)現(xiàn),取決于設(shè)備的類型和涉及的邏輯。在本文中,我們將比較使用單片機(jī)、PLC和硬件連接來實(shí)現(xiàn)這個任務(wù)的三種方法。我們將討論每種方法的優(yōu)缺點(diǎn),以及所需的步驟和組件。
    的頭像 發(fā)表于 11-10 11:47 ?2202次閱讀
    如何用<b class='flag-5'>三種</b>不同的方法來用按鈕控制燈光

    分享常見的三種配線架類型

    常見的三種配線架類型是110打線式配線架、直通型配線架和電子配線架。 110打線式配線架的前置面板是RJ45接口,每個接口都有數(shù)字標(biāo)識,110打線式配線架的后置面板上是打線模塊,上面標(biāo)識著T568A
    的頭像 發(fā)表于 10-08 10:01 ?1092次閱讀