云计算-对象存储
1 原始數據存儲
1.1 DAS(Direct Attached Storage,直連式存儲)
類似于本機電腦硬盤,通過線,直接IO連接硬盤。
參考鏈接:https://www.jianshu.com/p/7df6ec0699ed
1.2 NAS(Network Area Storage,網絡接入存儲)
透過網絡(內網、外網)進行存儲讀取資料。通俗點說,就是有一臺很小很小的臺式主機,里面只裝了很多顆的硬碟,這臺電腦很省電,又不會發熱,只要有網路,就可以連到這臺小電腦里面,把自己的資料儲存進去,把需要的資料拿出來使用,而且你需要多少儲存容量只要你買硬盤加上去就行了。
參考鏈接:https://zhuanlan.zhihu.com/p/20611079
1.3 SAN(Storage Area Network,存儲區域網絡)
中心化服務器存儲,基于以太網和光纖通道。企業最常用的存儲網絡架構,要求高吞吐量和低延遲的業務關鍵型業務往往采用這類架構運行。
參考鏈接:https://blog.csdn.net/zdx19880830/article/details/94857018
1.4 存儲方式
DAS和SAN是基于物理塊的存儲方式,而NAS是基于文件的存儲方式。
塊存儲,操作對象是磁盤。存儲協議是SCSI、iSCSI、FC。以 SCSI 為例,主要接口命令有 Read/Write/Read Capacity/Inquiry 等等。
文件存儲,操作對象是文件和文件夾。存儲協議是NFS、SAMBA(SMB)、POSIX等。
2 對象存儲(Object-based Storage)
2.1 背景
對象存儲是云計算時代的存儲技術,面向對象的存儲,云廠商也稱之為“云存儲”。
隨著互聯網的爆發,數據存儲需求發生了兩個重大的變化。
數據量爆炸式增長。照片、音樂、視頻等多媒體創作分享。
非結構化數據的占比顯著增加。
結構化數據:excel表格,姓名、身高、體重、年齡、性別,這種用二維表結構可以進行邏輯表達的數據。
非結構化數據:圖像、音頻、視頻、word文章、演示膠片,這樣的數據。
由于上述兩大變化,原始存儲方式無法有效應對,所以提出了對象存儲。
對象存儲,主要操作對象是對象(Object)。存儲協議是S3、Swift等。
以 S3 為例,主要接口命令有 PUT/GET/DELETE 等。
在對象存儲系統里,你不能直接打開/修改文件,只能先下載、修改,再上傳文件。(如:百度網盤)
2.2 對象存儲中的數據組成
對象存儲可以看作一個“桶”(bucket),你可以往“桶”里面放“對象(Object)”。每個對象包括三個部分:Key、Data、Metadata。
2.2.1 Key
可以理解為文件名或者對象名,是該對象的全局唯一標識符(UID)。
用于檢索對象,服務器和用戶不需要知道數據的物理地址,也能通過它找到對象。這種方法極大地簡化了數據存儲。下面這行,就是一個對象的地址范例:
2.2.2 Data
數據本體。不多解釋。
2.2.3 Metadata
Metadata叫做元數據,它是對象存儲一個非常獨特的概念。
元數據有點類似數據的標簽,標簽的條目類型和數量是沒有限制的,可以是對象的各種描述信息。
舉個例子,如果對象是一張人物照片,那么元數據可以是姓名、性別、國籍、年齡、拍攝地點、拍攝時間等。
在傳統的文件存儲里,這類信息屬于文件本身,和文件一起封裝存儲。而對象存儲中,元數據是獨立出來的,并不在數據內部封裝。
元數據的好處非常明顯,可以大大加快對象的排序,還有分類和查找。
2.3 對象存儲的架構
OSD對象存儲設備
這是對象存儲的核心,具有自己的CPU、內存、網絡和磁盤系統。它的主要功能當然是存儲數據。同時,它還會利用自己的算力,優化數據分布,并且支持數據預讀取,提升磁盤性能。
MDS元數據服務器
它控制Client和OSD的交互,還會管理著限額控制、目錄和文件的創建與刪除,以及訪問控制權限。
Client客戶端
提供文件系統接口,方便外部訪問。
根據上面的架構可以看出,對象存儲系統可以是一個提供海量存儲服務的分布式架構。
2.4 對象存儲的應用
目前國內有大量的云服務提供商,他們把對象存儲當作云存儲在賣。
他們通常會把存儲業務分為3個等級,即標準型、低頻型、歸檔型。對應的應用場景如下:
標準類型:移動應用 | 大型網站 | 圖片分享 | 熱點音視頻
低頻訪問類型:移動設備 | 應用與企業數據備份 | 監控數據 | 網盤應用
歸檔類型:各種長期保存的檔案數據 | 醫療影像 | 影視素材
根據估算,目前全球互聯網70%以上的熱點數據是保存在對象存儲系統中的。
對象存儲雖然看上去很好很強大,但也不是沒有缺點。它最大的缺點,和它的工作模式有關。
它是那種把整個數據取出來,修改,再放回去的模式,不支持直接在存儲上修改,哪怕只是加一行數據,都不行。所以,它不適合存儲需要頻繁擦寫的數據(例如關系型數據庫的數據)。
參考文章鏈接:https://zhuanlan.zhihu.com/p/166289089
總結
- 上一篇: Python - IBM Notes 发
- 下一篇: Simulink中Inport控件的使用