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

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

據(jù)IDC預(yù)測,全球數(shù)據(jù)總量預(yù)計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)行一個簡單的說明,希望通過本文,您能對對象存儲有個大致的了解。

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

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

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

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

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

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

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

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

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

圖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)缺點

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

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

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

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

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

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

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

再提缺點:

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

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

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

前面說了許多定義,可能許多朋友還是云里霧里的,不知道對象存儲怎么使用。下面,我以騰訊云的對象存儲(cos)為例,使用python的代碼方式來實際應(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)行圖片上傳。因為我選擇的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的大致實現(xiàn),其中fname是圖片在服務(wù)器上的地址,_get_cos_sign()函數(shù)就是前面生成請求簽名的函數(shù)。

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

4.總結(jié)

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

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

    關(guān)注

    13

    文章

    4338

    瀏覽量

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

    關(guān)注

    11

    文章

    290

    瀏覽量

    112546
收藏 人收藏

    評論

    相關(guān)推薦

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

    示波器的觸發(fā)方式不僅影響波形捕捉的時機,還決定了顯示的波形是否穩(wěn)定。 常見的觸發(fā)模式有三種: 單次觸發(fā) (Single)、 正常觸發(fā) (Normal)和 自動觸發(fā) (Auto)。下面將對這三種觸發(fā)
    的頭像 發(fā)表于 01-07 11:04 ?155次閱讀
    示波器的<b class='flag-5'>三種</b>觸發(fā)模式

    基本放大電路有哪三種

    基本放大電路是電子電路中至關(guān)重要的組成部分,它能夠?qū)⑤斎胄盘柗糯蟮剿璧碾娖?,以便后續(xù)電路進(jìn)行處理。在電子工程中,基本放大電路主要有三種形式,分別是共發(fā)射極放大電路(簡稱共射放大電路)、共基極放大
    的頭像 發(fā)表于 10-15 11:07 ?1890次閱讀

    mosfet的三種工作狀態(tài)及工作條件是什么

    的工作狀態(tài)及工作條件對于理解和設(shè)計相關(guān)電路至關(guān)重要。以下是MOSFET的三種主要工作狀態(tài)及其工作條件的介紹。 一、MOSFET的三種工作狀態(tài) MOSFET根據(jù)其柵源電壓(VGS)和漏源電壓(VDS
    的頭像 發(fā)表于 10-06 16:51 ?2470次閱讀

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

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

    放大電路的三種組態(tài)可以放大什么

    放大電路是電子學(xué)中非常重要的組成部分,它們可以將輸入信號的幅度放大,以滿足各種應(yīng)用的需求。放大電路的三種基本組態(tài)包括共射放大電路、共集放大電路和共基放大電路。每種組態(tài)都有其特定的應(yīng)用和特點。以下
    的頭像 發(fā)表于 07-09 14:31 ?1345次閱讀

    電壓型逆變器可具體分為哪三種?

    電壓型逆變器是一將直流電能轉(zhuǎn)換為交流電能的電力電子裝置,廣泛應(yīng)用于電力系統(tǒng)、工業(yè)控制、新能源發(fā)電等領(lǐng)域。根據(jù)其工作原理和結(jié)構(gòu)特點,電壓型逆變器可以分為三種類型:單相電壓型逆變器、相電壓型逆變器
    的頭像 發(fā)表于 07-05 16:56 ?866次閱讀

    晶體管的三種工作狀態(tài)

    晶體管作為現(xiàn)代電子技術(shù)的基石,其工作狀態(tài)直接影響電子設(shè)備的性能和功能。晶體管通常具備三種基本的工作狀態(tài):截止?fàn)顟B(tài)、放大狀態(tài)和飽和狀態(tài)。這三種狀態(tài)不僅決定了晶體管在電路中的行為,也反映了晶體管作為半導(dǎo)體器件的基本特性。本文將詳細(xì)闡述晶體管的這
    的頭像 發(fā)表于 05-28 14:53 ?1613次閱讀

    verilog中端口類型有哪三種

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

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

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

    熱傳遞的三種方式是什么

    熱傳遞有三種基本形式:導(dǎo)熱(Thermal Conduction)、對流(Thermal Convection)和輻射(Thermal Radiation)。每種形式都有其獨特的物理過程和應(yīng)用領(lǐng)域
    的頭像 發(fā)表于 02-06 14:02 ?2446次閱讀
    熱傳遞的<b class='flag-5'>三種</b>方式是什么

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

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

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

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

    運動控制的三種控制方式

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

    嵌入式Linux開發(fā)的三種方式

    嵌入式Linux開發(fā)主要有三種方式:裸機開發(fā)、SDK開發(fā)和驅(qū)動開發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?1017次閱讀

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

    示波器的觸發(fā)模式有自動模式(Auto)、正常模式(Norm)和單次模式(Single)三種。在測不同信號時,采用不同的觸發(fā)模式,才能準(zhǔn)確測量到所需要的波形。下面以我司靜電發(fā)生器TEH-10030
    的頭像 發(fā)表于 01-18 08:12 ?2748次閱讀
    示波器的<b class='flag-5'>三種</b>觸發(fā)模式