典型裝置:磁碟陣列,硬碟
塊儲存主要是將裸磁碟空間整個對映給主機使用的,就是說例如磁碟陣列裡面有5塊硬碟(為方便說明,假設每個硬碟1g),然後可以通過劃邏輯盤、做raid、或者lvm(邏輯卷)等種種方式邏輯劃分出n個邏輯的硬碟。(假設劃分完的邏輯盤也是5個,每個也是1g,但是這5個1g的邏輯盤已經於原來的5個物理硬碟意義完全不同了。例如第乙個邏輯硬碟a裡面,可能第乙個200m是來自物理硬碟1,第二個200m是來自物理硬碟2,所以邏輯硬碟a是由多個物理硬碟邏輯虛構出來的硬碟。)
接著塊儲存會採用對映的方式將這幾個邏輯盤對映給主機,主機上面的作業系統會識別到有5塊硬碟,但是作業系統是區分不出到底是邏輯還是物理的,它一概就認為只是5塊裸的物理硬碟而已,跟直接拿一塊物理硬碟掛載到作業系統沒有區別的,至少作業系統感知上沒有區別。
此種方式下,作業系統還需要對掛載的裸硬碟進行分割槽、格式化後,才能使用,與平常主機內建硬碟的方式完全無異。
優點:
1、 這種方式的好處當然是因為通過了raid與lvm等手段,對資料提供了保護。
2、 另外也可以將多塊廉價的硬碟組合起來,成為乙個大容量的邏輯盤對外提供服務,提高了容量。
3、 寫入資料的時候,由於是多塊磁碟組合出來的邏輯盤,所以幾塊磁碟可以並行寫入的,提公升了讀寫效率。
4、 很多時候塊儲存採用san架構組網,傳輸速率以及封裝協議的原因,使得傳輸速度與讀寫速率得到提公升。
缺點:
1、採用san架構組網時,需要額外為主機購買光纖通道卡,還要買光纖交換機,造價成本高。
2、主機之間的資料無法共享,在伺服器不做集群的情況下,塊儲存裸盤對映給主機,再格式化使用後,對於主機來說相當於本地盤,那麼主機a的本地盤根本不能給主機b去使用,無法共享資料。
3、不利於不同作業系統主機間的資料共享:另外乙個原因是因為作業系統使用不同的檔案系統,格式化完之後,不同檔案系統間的資料是共享不了的。例如一台裝了win7/xp,檔案系統是fat32/ntfs,而linux是ext4,ext4是無法識別ntfs的檔案系統的。就像乙隻ntfs格式的u盤,插進linux的筆記本,根本無法識別出來。所以不利於檔案共享。
【檔案儲存】
典型裝置:ftp、nfs伺服器
為了克服上述檔案無法共享的問題,所以有了檔案儲存。
檔案儲存也有軟硬一體化的裝置,但是其實普通拿一台伺服器/筆記本,只要裝上合適的作業系統與軟體,就可以架設ftp與nfs服務了,架上該類服務之後的伺服器,就是檔案儲存的一種了。
優點:
1、造價交低:隨便一台機器就可以了,另外普通乙太網就可以,根本不需要專用的san網路,所以造價低。
2、方便檔案共享:例如主機a(win7,ntfs檔案系統),主機b(linux,ext4檔案系統),想互拷一部電影,本來不行。加了個主機c(nfs伺服器),然後可以先a拷到c,再c拷到b就ok了。(例子比較膚淺,請見諒……)
缺點:
【物件儲存】
典型裝置:內建大容量硬碟的分布式伺服器
物件儲存最常用的方案,就是多台伺服器內建大容量硬碟,再裝上物件儲存軟體,然後再額外搞幾台服務作為管理節點,安裝上物件儲存管理軟體。管理節點可以管理其他伺服器對外提供讀寫訪問功能。
之所以出現了物件儲存這種東西,是為了克服塊儲存與檔案儲存各自的缺點,發揚它倆各自的優點。簡單來說塊儲存讀寫快,不利於共享,檔案儲存讀寫慢,利於共享。能否弄乙個讀寫快,利 於共享的出來呢。於是就有了物件儲存。
首先,乙個檔案包含了了屬性(術語叫metadata,元資料,例如該檔案的大小、修改時間、儲存路徑等)以及內容(以下簡稱資料)。
以往像fat32這種檔案系統,是直接將乙份檔案的資料與metadata一起儲存的,儲存過程先將檔案按照檔案系統的最小塊大小來打散(如4m的檔案,假設檔案系統要求乙個塊4k,那麼就將檔案打散成為1000個小塊),再寫進硬碟裡面,過程中沒有區分資料/metadata的。而每個塊最後會告知你下乙個要讀取的塊的位址,然後一直這樣順序地按圖索驥,最後完成整份檔案的所有塊的讀取。
這種情況下讀寫速率很慢,因為就算你有100個機械手臂在讀寫,但是由於你只有讀取到第乙個塊,才能知道下乙個塊在**,其實相當於只能有1個機械手臂在實際工作。
而物件儲存則將元資料獨立了出來,控制節點叫元資料伺服器(伺服器+物件儲存管理軟體),裡面主要負責儲存物件的屬性(主要是物件的資料被打散存放到了那幾台分布式伺服器中的資訊),而其他負責儲存資料的分布式伺服器叫做osd,主要負責儲存檔案的資料部分。當使用者訪問物件,會先訪問元資料伺服器,元資料伺服器只負責反饋物件儲存在哪些osd,假設反饋檔案a儲存在b、c、d三颱osd,那麼使用者就會再次直接訪問3臺osd伺服器去讀取資料。
這時候由於是3臺osd同時對外傳輸資料,所以傳輸的速度就加快了。當osd伺服器數量越多,這種讀寫速度的提公升就越大,通過此種方式,實現了讀寫快的目的。
另一方面,物件儲存軟體是有專門的檔案系統的,所以osd對外又相當於檔案伺服器,那麼就不存在檔案共享方面的困難了,也解決了檔案共享方面的問題。
所以物件儲存的出現,很好地結合了塊儲存與檔案儲存的優點。
最後為什麼物件儲存兼具塊儲存與檔案儲存的好處,還要使用塊儲存或檔案儲存呢?
1、有一類應用是需要儲存直接裸盤對映的,例如資料庫。因為資料庫需要儲存裸盤對映給自己後,再根據自己的資料庫檔案系統來對裸盤進行格式化的,所以是不能夠採用其他已經被格式化為某種檔案系統的儲存的。此類應用更適合使用塊儲存。
2、物件儲存的成本比起普通的檔案儲存還是較高,需要購買專門的物件儲存軟體以及大容量硬碟。如果對資料量要求不是海量,只是為了做檔案共享的時候,直接用檔案儲存的形式好了,價效比高。
這三種儲存,分別對應了不同的訪問協議,這也就決定了他們的本質差別。
先說一下檔案儲存,主要操作物件是檔案和資料夾。以 nfs 為例,檔案相關的介面包括:lookup/access/read/write/create/remove/rename 等等,資料夾相關的介面包括:mkdir/rmdir/readdir 等等。同時也會有 fsstat/fsinfo 等介面用於提供檔案系統級別的資訊。posix,samba 等也是檔案儲存協議。協議更注重介面的靈活,以及訪問許可權控制。
塊儲存,主要操作物件是磁碟。以 scsi 為例,主要介面有 read/write/read capacity/inquiry 等等。fc,iscsi,也是塊儲存協議。和檔案儲存相比,沒有檔案和目錄樹的概念,一般協議也不會定義磁碟的建立和刪除操作。協議更注重傳輸控制。
物件儲存,主要操作物件是物件(object)。以 s3 為例,主要介面有 put/get/delete 等。和檔案和物件儲存相比,沒有隨機讀寫的介面。和檔案儲存相比,沒有目錄樹的概念。協議更注重簡潔。
塊儲存 檔案儲存 物件儲存意義及差異
典型裝置 磁碟陣列 硬碟 塊儲存主要是將裸磁碟空間整個對映給主機使用的。就是說例如 磁碟陣列裡面有5塊硬碟,然後可以通過劃邏輯盤 做raid 或者lvm等方式邏輯劃分出n個邏輯的硬碟。但是邏輯盤和物理盤是兩個完全不同的概念。假設每個硬碟100g,共有5個硬碟,劃分為邏輯盤也為5個,每個100g,但是...
塊儲存 檔案儲存 物件儲存意義及差異
關於塊儲存 檔案儲存 物件儲存方面的知識在知乎上看到了個很好的解答 通俗易懂,查了些資料做了詳細的補充。塊儲存 典型裝置 磁碟陣列 硬碟 塊儲存主要是將裸磁碟空間整個對映給主機使用的。就是說例如 磁碟陣列裡面有5塊硬碟,然後可以通過劃邏輯盤 做raid 或者lvm等方式邏輯劃分出n個邏輯的硬碟。但是...
塊儲存 檔案儲存 物件儲存
塊儲存主要是對磁碟陣列 內含多塊硬碟 做raid操作或者lvm操作,邏輯劃分出n塊logic盤並對映給主機使用,作業系統會識別到n塊硬碟,但是無法感知到底是邏輯盤還是物理盤,所以還是會對其進行分割槽和格式化 無法共享資料 每塊邏輯盤實際上是由多塊硬碟共同組成,在讀寫資料的時候,幾塊物理硬碟可以並行定...