塊儲存 物件儲存 檔案儲存的區別和聯絡

2022-02-06 11:16:31 字數 4649 閱讀 6882

通常來講,磁碟陣列都是基於block塊的儲存,而所有的nas產品都是檔案級儲存。

1. 塊儲存:das   san

a) das(direct attach storage): 是直接連線於主機伺服器的一種儲存方式,每台伺服器有獨立的儲存裝置,每台主機伺服器的儲存裝置無法互通,需要跨主機訪問資料室,必須經過相對複雜的設定,若主機分屬不同的作業系統,則更複雜。

應用:單一網路環境下且資料交換量不大,效能要求不高的環境,技術實現較早。

b) san(storage area network): 是一種高速(光纖)網路聯接專業主機伺服器的一種儲存方式,此系統會位於主機群的後端,它使用高速i/o聯接方式,如:scsi,escon及fibre-channels.特點是,代價高、效能好。但是由於san系統的**較高,且可擴充套件性較差,已不能滿足成千上萬個cpu規模的系統。

應用:對網速要求高、對資料可靠性和安全性要求高、對資料共享的效能要求高的應用環境中。

2. 檔案儲存

通常nas產品都是檔案級儲存。

nas(network attached storage):是一套網路儲存裝置,通常直接連在網路上並提供資料訪問服務,一套nas儲存裝置就如同乙個提供資料檔案服務的系統,特點是價效比高。

它採用nfs或cifs命令集訪問資料,以檔案為傳輸協議,可擴充套件性好、**便宜、使用者易管理。目前在集群計算中應用較多的nfs檔案系統,但由於nas的協議開銷高、頻寬低、延遲大,不利於在高效能集群中應用。

3. 物件儲存:

總體上講,物件儲存同時兼具san高階直接訪問磁碟特點及nas的分布式共享特點。

核心是將資料通路(資料讀或寫)和控制通路(元資料)分離,並且基於物件儲存裝置(osd),構建儲存系統,每個物件儲存裝置具備一定的職能,能夠自動管理其上的資料分布。

物件儲存結構組成部分(物件、物件儲存裝置、元資料伺服器、物件儲存系統的客戶端)

3.1 物件

乙個物件實際就是檔案的資料和一組屬性資訊的組合。

3.2 物件儲存裝置(osd)

osd具有一定的智慧型,它有自己的cpu、記憶體、網路和磁碟系統。

osd提供三個主要功能:包括資料儲存和安全訪問

(1)資料儲存  (2)智慧型分布  (3)每個物件元資料的管理

3.3 元資料伺服器(metadata server , mds)

mds控制client與osd物件的互動,主要提供以下幾個功能:

(1) 物件儲存訪問

允許client直接訪問物件,osd接收到請求時先驗證該能力,再訪問。

(2) 檔案和目錄訪問管理

mds在儲存系統上構建乙個檔案結構,限額控制、包括目錄、檔案的建立、訪問控制等

(3) client cache 一致性

為提高效能,在物件儲存系統設計時通常支援client的cache。因此帶來了cache一致性的問題,當cache檔案發生改變時,將通知client重新整理cache,以防cache不一致引發的問題。

物件儲存:

乙個檔案包含了屬性(術語叫matadata元資料,例如該檔案的大小、修改時間、儲存路徑等)以及內容(簡稱資料)。

而物件儲存則將元資料獨立出來,控制節點叫元資料伺服器(伺服器+物件儲存管理軟體),裡面主要儲存物件的屬性(主要是物件的資料被打散存放到了那幾台分布式伺服器中的資訊),而其他負責儲存資料的分布式伺服器叫做osd,主要負責儲存檔案的資料部分。當使用者訪問物件時,會先訪問元資料伺服器,元資料伺服器只負責反饋物件儲存在那些osd。假設反饋檔案a儲存在b,c,d三颱osd,那麼使用者就會再次訪問三颱osd伺服器去讀取資料。

這時三颱osd同時對外傳輸資料,因此傳輸的速度就加快了。osd伺服器數量越多,這種讀寫速度的提公升就越大。

另一方面,物件儲存軟體有專門的檔案系統,所以osd對外又相當於檔案伺服器,那麼就不存在檔案共享方面的困難了,也解決了檔案共享方面的問題。

因此物件儲存的出現,很好的結合了塊儲存與檔案儲存的優點。

為什麼還要使用塊儲存和檔案儲存:

1.有一類應用是需要儲存直接裸盤對映的,比如資料庫。因為資料庫需要儲存裸盤對映給自己後,再根據自己的資料庫檔案系統來對了裸盤進行格式化,因此不能採用其他已經被格式化為某種檔案系統的儲存。此類更適合塊儲存。

針對不同的應用場景,選擇的分布式儲存方案也會不同,因此有了物件儲存、塊儲存、檔案系統儲存。這三者的主要區別在於它們的儲存介面:

1.  物件儲存:

也就是通常意義的鍵值儲存,其介面就是簡單的get,put,del和其他擴充套件,如七牛、又拍,swift,s3

2. 塊儲存:

這種介面通常以qemu driver或者kernel module的方式存在,這種介面需要實現linux的block device的介面或者qemu提供的block driver介面,如sheepdog,aws的ebs,青雲的雲硬碟和阿里雲的盤古系統,還有ceph的rbd(rbd是ceph面向塊儲存的介面)

3. 檔案儲存:

通常意義是支援posix介面,它跟傳統的檔案系統如ext4是乙個型別的,但區別在於分布式儲存提供了並行化的能力,如ceph的cephfs(cephfs是ceph面向檔案儲存的介面),但是有時候又會把gfs,hdfs這種非posix介面的類檔案儲存介面歸入此類。

按照這三種介面和其應用場景,很容易了解這三種型別的io特點,括號裡代表了它在非分布式情況下的對應:

1. 物件儲存(鍵值資料庫):

介面簡單,乙個物件我們可以看成乙個檔案,只能全寫全讀,通常以大檔案為主,要求足夠的io頻寬。

2. 塊儲存(硬碟):

它的io特點與傳統的硬碟是一致的,乙個硬碟應該是能面向通用需求的,即能應付大檔案讀寫,也能處理好小檔案讀寫。但是硬碟的特點是容量大,熱點明顯。因此塊儲存主要可以應付熱點問題。另外,塊儲存要求的延遲是最低的。

3. 檔案儲存(檔案系統):

支援檔案儲存的介面的系統設計跟傳統本地檔案系統如ext4這種的特點和難點是一致的,它比塊儲存具有更豐富的介面,需要考慮目錄、檔案屬性等支援,實現乙個支援並行化的檔案儲存應該是最困難的。但像hdfs、gfs這種自己定義標準的系統,可以通過根據實現來定義介面,會容易一點。

因此,這三種介面分別以非分布式情況下的鍵值資料庫、硬碟和檔案系統的io特點來對應即可。至於冷熱、快慢、大小檔案而言更接近於業務。但是因為儲存系統是通用化實現,通常來說,需要盡量滿足各種需求,而介面定義已經一定意義上就砍去了一些需求,如物件儲存會以冷儲存更多,大檔案為主。

三、ceph的物件儲存、塊儲存、檔案系統儲存

ceph同時支援這三種儲存,方法就是通過支援不同的介面來支援不同的儲存。下面是ceph的基本架構圖,可以看到通過相容aws的s3和openstack的swift介面來支援物件儲存,通過librbd庫提供塊儲存的介面,通過libcephfs庫的檔案系統介面或標準posix介面來支援檔案系統儲存。

針對不同的應用場景,選擇的分布式儲存方案也會不同,因此有了物件儲存、塊儲存、檔案系統儲存。這三者的主要區別在於它們的儲存介面:

1.  物件儲存:

也就是通常意義的鍵值儲存,其介面就是簡單的get,put,del和其他擴充套件,如七牛、又拍,swift,s3

2. 塊儲存:

這種介面通常以qemu driver或者kernel module的方式存在,這種介面需要實現linux的block device的介面或者qemu提供的block driver介面,如sheepdog,aws的ebs,青雲的雲硬碟和阿里雲的盤古系統,還有ceph的rbd(rbd是ceph面向塊儲存的介面)

3. 檔案儲存:

通常意義是支援posix介面,它跟傳統的檔案系統如ext4是乙個型別的,但區別在於分布式儲存提供了並行化的能力,如ceph的cephfs(cephfs是ceph面向檔案儲存的介面),但是有時候又會把gfs,hdfs這種非posix介面的類檔案儲存介面歸入此類。

按照這三種介面和其應用場景,很容易了解這三種型別的io特點,括號裡代表了它在非分布式情況下的對應:

1. 物件儲存(鍵值資料庫):

介面簡單,乙個物件我們可以看成乙個檔案,只能全寫全讀,通常以大檔案為主,要求足夠的io頻寬。

2. 塊儲存(硬碟):

它的io特點與傳統的硬碟是一致的,乙個硬碟應該是能面向通用需求的,即能應付大檔案讀寫,也能處理好小檔案讀寫。但是硬碟的特點是容量大,熱點明顯。因此塊儲存主要可以應付熱點問題。另外,塊儲存要求的延遲是最低的。

3. 檔案儲存(檔案系統):

支援檔案儲存的介面的系統設計跟傳統本地檔案系統如ext4這種的特點和難點是一致的,它比塊儲存具有更豐富的介面,需要考慮目錄、檔案屬性等支援,實現乙個支援並行化的檔案儲存應該是最困難的。但像hdfs、gfs這種自己定義標準的系統,可以通過根據實現來定義介面,會容易一點。

因此,這三種介面分別以非分布式情況下的鍵值資料庫、硬碟和檔案系統的io特點來對應即可。至於冷熱、快慢、大小檔案而言更接近於業務。但是因為儲存系統是通用化實現,通常來說,需要盡量滿足各種需求,而介面定義已經一定意義上就砍去了一些需求,如物件儲存會以冷儲存更多,大檔案為主。

三、ceph的物件儲存、塊儲存、檔案系統儲存

ceph同時支援這三種儲存,方法就是通過支援不同的介面來支援不同的儲存。下面是ceph的基本架構圖,可以看到通過相容aws的s3和openstack的swift介面來支援物件儲存,通過librbd庫提供塊儲存的介面,通過libcephfs庫的檔案系統介面或標準posix介面來支援檔案系統儲存。

塊儲存 檔案儲存 物件儲存區別

儲存的目的就是提供空間 硬碟為儲存的載體 把資料存放在硬碟上的 塊儲存 檔案儲存 物件儲存為使用硬碟儲存資料手段或方法 怎樣將主機 伺服器 主機 虛機 上的資料存到硬碟?作業系統中會有乙個負責管理和儲存檔案系統的軟體既檔案系統。塊儲存與檔案儲存相比最主要的差別就是儲存端是否有檔案系統。塊儲存使用時,...

塊儲存 檔案儲存 物件儲存的區別

首先,我說下塊儲存。塊儲存可以看作為是裸盤,最明顯的特徵是不能被作業系統直接訪問。可以通過劃分邏輯卷 做raid lvm 邏輯卷 等方式將它格式化,可以格式化為你所指定的檔案系統 ext3,ext4,ntfs,fat32等 然後才可以被作業系統訪問。常見的das fc san ip san都是塊儲存...

詳解塊儲存 檔案儲存 物件儲存區別

塊儲存是將裸磁碟空間整個對映給主機使用的,比如磁陣中有3塊1t硬碟,可以選擇直接將裸裝置給作業系統使用 此時識別出3個1t的硬碟 也可以劃分經過raid 邏輯卷等方式劃分出多個邏輯的磁碟供系統使用 比如劃分為6個500g的磁碟 主機層面作業系統識別出硬碟,但是作業系統無法區分這些對映上來的磁碟到底是...