首頁>技術>

說到物件,真的是扎到每個程式設計師的心窩窩裡了。在上學時候,學習C++語言,告訴我要面向物件程式設計,工作了,學習雲端儲存,告訴我要面向物件儲存。我怎麼這麼難呢?沒有物件,還不能愉快的程式設計、愉快的工作了嗎?那當然不是啊。所謂物件儲存,就是面向物件、檔案的網際網路儲存,始於網際網路,也興於網際網路。它儲存的是檔案資料、非結構化資料,比如音訊、視訊、圖片、檔案等等。簡單來說,物件儲存的過程就像你去超市購物時,將自己的包包放在儲物櫃,儲物櫃會給你一張憑條,購物完畢,憑藉條子就可以取貨。

沒有物件儲存之前,我們看看傳統方式是怎麼實現儲存的呢?以我們看電影為例哈,方式之一U盤,使用U盤將別人電腦上的電影拷貝下來,再放在自己的電腦上檢視,U盤就是我們的儲存裝置。方式之二網盤,有了百度網盤的出現,只需要小夥伴把電影分享儲存下,就可以下載在本地或線上觀看了。方式之三視訊網站,有了視訊服務提供商,自己開發了視訊應用如騰訊視訊、優酷、愛奇藝,將視訊存在伺服器中,自己下載app就可以觀看了。而在雲時代,有了雲端儲存,只需要把視訊儲存在物件儲存中,我們得到視訊的地址,在瀏覽器輸入地址、或把地址放入app中(視訊服務提供商)就可以看了。

隨著網際網路的到來,Web應用創造出上千億的資料,再到移動應用的黃金時代,App創造出上萬億的資料,每天聊微信、刷抖音、刷微博、看新聞、看電影等,每天都在上傳下載海量的照片、視訊、音訊,而且80%以上都是非結構化資料。面對如此巨大的資料量,僅僅靠傳統的磁碟、塊儲存、檔案儲存,已經無能為力了,就算我們可以靠不斷的增加硬體投入來擴寬儲存能力,但這畢竟是有成本在啊,硬體成本、人工維護成本,還可能犧牲應用的可擴充套件性、低延遲性,降低使用者體驗,所以雲端儲存是勢不可擋。

物件儲存是基於儲存的儲存裝置,通過Web協議(如Rest、SOAP)來實現物件的讀寫和儲存資源的訪問。它由物件、物件儲存裝置、元資料伺服器、物件儲存系統客戶端四部分組成,一般來說使用者通過客戶端發出訪問請求,檔案系統OSS接收請求並且向元資料伺服器MDS傳送請求獲取資料的OSD地址,獲取OSD地址後直接發出讀取物件的請求,經過認證之後將該物件資料返回給客戶端,使用者在客戶端檢視資料,整體架構圖如下所示:Client客戶端就是使用者終端,通過標準的檔案訪問介面與物件儲存系統進行對接。Object物件就是儲存系統中的基本單元,由檔案的資料、屬性資訊metadata組成。在物件儲存中的資料主要有三類,即Key、Data、MetaData,整個物件就是一個桶Bucket,桶裡面有很多物件Object。key是用於檢索物件,是該物件的全域性唯一識別符號,即使使用者或伺服器不知道資料的實體地址,通過可以也可以找到物件。儲存系統中,所有的物件都是平等的,物件可大可小,可以是某個字元,也可以是整個檔案。

Client客戶端就是使用者終端,通過標準的檔案訪問介面與物件儲存系統進行對接。Object物件就是儲存系統中的基本單元,由檔案的資料、屬性資訊metadata組成。在物件儲存中的資料主要有三類,即Key、Data、MetaData,整個物件就是一個桶Bucket,桶裡面有很多物件Object。key是用於檢索物件,是該物件的全域性唯一識別符號,即使使用者或伺服器不知道資料的實體地址,通過可以也可以找到物件。儲存系統中,所有的物件都是平等的,物件可大可小,可以是某個字元,也可以是整個檔案。

目前阿里雲的OSS、騰訊雲的COS、七牛雲的Kodo、百度雲的BOS、網易雲的NOS、華為雲的OBS等都是提供物件儲存服務。下圖是一個物件的地址,也就是一個key,以往都是寫在前端檔案裡進行訪問獲取,如果直接公開的話,我們輸入URL就可以訪問該視訊了。

OSD物件儲存裝置(ObjectStorageDevice)是一個儲存裝置,有自己的儲存介質、處理器、記憶體、網路系統,管理本地的物件Object。在OSD中,可以實現資料的儲存、資料智慧分佈、資料管理。首先OSD將資料儲存在內建的磁碟系統中,通過對外提供物件ID來進行資料的讀寫操作。其次OSD可以對自身的CPU、記憶體進行資料優化分佈,優化磁碟系統性能。最後OSD管理物件的元資料,比如物件的資料塊、長度等,降低了客戶端的開銷。

MDS元資料伺服器(MetaDataServer)管理客戶端與OSD的互動,提供客戶端檔案目錄的關係、每個檔案對應的OSD等資料,客戶端訪問OSD時通過MDS就可以獲取到物件所在的位置、大小、儲存內容,可快速的獲取到訪問的檔案。

物件儲存有很多的優點,比如容量彈性伸縮、資料安全可靠、使用快速便捷。出生於雲端計算時代,自然繼承雲端計算的彈性伸縮。物件儲存的所有業務、儲存節點採用分散式叢集方式工作,各功能節點、叢集支援獨立擴容。從理論上來說,某個物件儲存系統或單個桶(bucket),沒有總資料容量和物件數量的限制,實現了按需使用資源。

對於資料的安全可靠性方面,因為採用了分散式部署,自然不用擔心資料丟失問題,其次對於所有的連結都是有訪問認證的,也不用擔心資料安全問題。最後就是使用方便了,開發者通過標準的介面協議進行開發呼叫,運維也不用維護網路頻寬、伺服器成本,使用者直接訪問,當然非常方便了。

雲端計算給我們的生活帶來了無限的可能,讓我們吃的更好、玩的更好、工作的更高效率、生活的更加的智慧。現在你又掌握了一項雲端計算的黑科技,說不定很快就可以找到物件,一起搞物件儲存了哦。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Win10版本emacs27.1的PATH問題