塊存儲、文件存儲、對象存儲

塊存儲主要是對磁盤陣列(內含多塊硬盤)作RAID操做或者LVM操做,邏輯劃分出N塊Logic盤並映射給主機使用,操做系統會識別到N塊硬盤,可是沒法感知究竟是邏輯盤仍是物理盤,因此仍是會對其進行分區和格式化(沒法共享數據)。html

每塊邏輯盤其實是由多塊硬盤共同組成,在讀寫數據的時候,幾塊物理硬盤能夠並行尋址和操做,大大提升了IO效率。服務器

 

文件存儲:經過安裝特定的操做系統與軟件,就能夠架設FTP與NFS服務了(做爲共享文件存儲)。因爲全部的讀寫操做都必須由一臺服務器裏的硬盤來承擔,因此速度要慢不少。微信

 

對象存儲:克服了塊存儲和文件存儲的缺點,發揚了它們各自的優勢。既可以快速讀寫文件,又可以在多臺主機之間實現文件共享。併發

對象存儲主要是將圖片、視頻、文檔、郵件等document做爲一個個對象,每一個對象由屬性(Metadata)和內容組成,元數據存儲在控制節點(元數據服務器,主要是記錄對象的數據被打散到了哪些分佈式服務器中),真正負責存儲數據的分佈式服務器叫OSD(Object Storage Device對象存儲設備)。當用戶訪問對象時,會首先訪問元數據服務器,得知具體的位置以後,纔會去訪問對應的OSD,進行並行的讀寫。分佈式

對象存儲實質上是鍵值存儲,每一級的每一個元素,例如某個容器或者某個對象,在系統中都有惟一的標識,用戶經過這個標識來訪問容器或者對象。它提供了RESTful API供用戶進行Bucket(存儲空間)和對象的操做,且數據組織結構是扁平的。比較知名的對象存儲服務有aliyun OSS,AWS的S3和Openstack Swift等。阿里雲對象存儲服務OSS的API網址爲:https://help.aliyun.com/document_detail/31948.html阿里雲

 

現在的存儲系統中,動輒數百萬、千萬甚至上億個文件/對象,單位時間內的訪問次數和併發訪問量也達到了史無前例的量級,在這種狀況下,目錄樹(傳統的文件系統)會給存儲系統帶來很大的開銷和諸多問題,成爲系統的瓶頸。反觀目錄結構的初衷——數據管理,現在做用很是有限,咱們已經很難經過目錄的劃分對文件進行歸類和管理了,由於一個文件最終只能放到一個文件夾下,做爲目錄樹的葉子節點存在,而文件的屬性是多維度的。目前各種應用中普遍採用元數據檢索的方式進行數據的管理,經過對元數據的匹配獲得一個Index或者Key,再根據這個Index或者Key找到並讀取數據,因此,對象存儲的扁平數據組織形式和K/V訪問方式更能知足數據管理的需求。操作系統

在微信或者新浪微博中,用戶會大量的上傳、讀 視頻/圖片,所以每個賬號對應一個Bucket,該賬號視頻

上傳的每一個視頻/圖片都以對象的形式存儲在Bucket中,而後依據時間戳進行排序和展現。htm

相關文章
相關標籤/搜索