存儲知識整理

1、數據存儲類型

數據存儲常見的類型有數據塊存儲、文件方式存儲、對象存儲。塊存儲和文件存儲就是一般說的SAN和NAS,而對象存儲(Object-based Storage)是一種新的網絡存儲架構,基於對象存儲技術的設備就是對象存儲設備(Object-based Storage Device),簡稱OSD。html

1. 塊存儲

塊概念(block):塊是指以扇區爲基礎,一個或多個連續的扇區組成的一個塊,也叫物理塊。它存在於文件系統和塊設備之間。node

塊存儲主要是將裸磁盤空間整個映射給主機使用,在這種方式下,操做系統還須要對掛載的裸硬盤進行分區,格式化後,才能使用,與日常主機內置硬盤的方式沒有差異。塊存儲的主要特色是:主機之間的數據共享困難:由於塊存儲裸盤映射給主機,須要格式化後使用,因此不一樣操做系統主機之間沒法共享數據。數據庫

2. 文件存儲

文件級概念:文件級是指文件系統,單個文件可能因爲一個或多個邏輯塊組成,且邏輯塊之間是不連續分佈,邏輯塊大於或等於物理塊整數倍,物理塊與文件系統之間的映射關係:扇區->物理塊->邏輯塊->文件系統。後端

爲了克服數據沒法共享的問題,因此有了文件系統。文件存儲服務器實現了文件管理功能,即具備文件系統。因此,與塊存儲不一樣,主機使用文件存儲設備不須要再對文件存儲進行格式化。安全

文件存儲最多見的一種方式就是NAS,它是一種網絡存儲系統,提供文件訪問的服務,採用NFS/CIFS等協議,經過TCP/IP進行網絡傳輸。因爲採用標準文件協議,在不一樣主機之間共享數據很是簡單,可是因爲NAS的協議開銷大,延時大,不利於高性能集羣和大量小文件存儲模式。服務器

3. 對象存儲

綜上所述,因爲塊存儲和文件存儲都存在必定的固有缺陷,但對存儲系統的高性能和數據共享的需求不斷增長,所以,對象存儲應運而生。簡單來講,對象存儲克服了塊存儲和文件存儲各自的缺點,發揚了它們各自的優勢,是一種讀寫快,又利於共享的存儲方式。目前對象存儲系統已成爲雲存儲的主流選擇,開源系統中有ceph,glusterfs等。網絡

對象存儲系統通常由元數據服務器、數據存儲服務器和客戶端組成。元數據服務器負責管理文件的存儲位置、狀態等,同時管理數據存儲服務器對外提供讀寫訪問功能,數據存儲服務器負責文件數據的存儲,客戶端則負責對外接口訪問。數據結構

2、DAS/NAS/SAN/對象存儲

首先按照服務器類型來分,存儲可分爲封閉系統的存儲和開放系統的存儲,封閉系統主要是指大型機,開放系統指基於Windows、UNIX、Linux等操做系統的服務器;開放系統的存儲又分爲內置存儲和外掛存儲,開放系統的外掛存儲根據鏈接的方式又分爲:直連式存儲(Direct-Attached Storage 簡稱DAS)和網絡化存儲(Fabric-Attached Storage 簡稱FAS);開放系統的網絡化存儲根據傳輸協議又分爲:網絡附加存儲(Network-Attached Storage 簡稱NAS)和存儲區域網絡(Storage Area Network 簡稱SAN)。架構

1. DAS

DAS(Direct Attached Storage)即「直接鏈接存儲」,是指將外置存儲設備經過鏈接線纜,直接鏈接到一臺計算機上。DAS不算是網絡存儲,由於只有它所掛載的主機纔可訪問它。也就是說,服務器發生故障時,鏈接在服務器上的DAS存儲設備中的數據暫時不能被存取。併發

DAS這種存儲方式與咱們普通的PC存儲架構同樣,外部存儲設備都是直接掛載在服務器內部總線上,採用SCSI技術,或者FC技術,數據存儲設備是整個服務器結構的一部分,在這種狀況下每每是數據和操做系統都未分離。

DAS這種直連方式,可以解決單臺服務器的存儲空間擴展、高性能傳輸需求。DAS存儲更可能是依賴服務器主機操做系統進行數據的IO讀寫和存儲維護管理,其自己是硬件的堆疊,不帶有任何存儲操做系統,數據備份和恢復要求佔用服務器主機資源(包括CPU,系統IO等)。直連式存儲的數據量越大,備份和恢復的時間就越長,對服務器硬件的依賴性和影響就越大。

2. NAS

NAS(Network Attached Storage)網絡附加存儲,一種網絡存儲系統,提供文件訪問的服務。簡單講,NAS就是經過網絡共享出來的文件系統,其共享的協議如NFS、CIFS、FTP、HTTP等,經過TCP/IP進行網絡傳輸,是文件系統處於網絡上的遠端的存儲系統。因爲其文件系統運行在存儲服務器上,由文件系統實現了命名空間、存儲空間等管理,能夠保障文件的共享,成爲其最顯著的優勢。但也因爲這些管理的開銷,致使了NAS的性能、擴展性相對較弱,成爲了NAS的劣勢,簡單來講NAS就是一臺在網絡上提供文檔共享服務的網絡存儲服務器。

3. SAN

SAN(Storage Area Network)存儲局域網絡,一種專用網絡鏈接存儲設備,位於主機服務器的後端,主機之間可經過存儲網絡來共享存儲空間,是一個集中式管理的高速存儲網絡。目前的SAN存儲有兩種:一是基於光纖通道的FC SAN;二是基於以太網的IP SAN(也就是常說的iSCSI),都是將存儲系統以塊的方式提供給網絡上其餘應用。SAN的概念是容許存儲設備和處理器(服務器)之間創建直接的高速網絡鏈接。其高速網絡、直接塊級訪問保證了SAN的高性能,但因爲應用服務器運行文件系統,因此塊設備沒法直接給其餘應用提供共享能力,限制了其應用場景。

4. 對象存儲

對象存儲系統是綜合了NAS和SAN的優勢,同時又具備SAN的高速直接訪問和NAS的數據共享等優點,提供了高可靠性、跨平臺以及安全的數據空想的存儲體系結構。

對象存儲結構的核心是將數據通路(數據讀或寫)和控制通路(元數據)分離,而且基於對象存儲設備(Object-based Storage Device)構建存儲系統,每一個對象存儲設備具備必定的智能,可以自動管理其上的數據分佈。

對象存儲的典型架構如上圖所示,由對象、元數據服務器、對象存儲設備(OSD)、對象存儲系統的客戶端經過互聯網絡組成。元數據服務器和OSD爲客戶端提供元數據服務和數據服務,客戶端對外接口呈現爲對象存儲系統。對象存儲系統將元數據和數據分離,避免NAS提供數據和元數據服務引發的性能瓶頸問題。一方面,元數據服務器只提供元數據服務,其流量壓力較小,而數據傳輸只發生在客戶端和OSD存儲設備上,充分發揮多OSD的併發IO性能;另外一方面,OSD分擔了存儲系統大量的,面向磁盤一級的元數據管理功能,而這一塊內容證明文件系統最主要的管理開銷所在,因爲分擔了這些管理功能,所以元數據服務器不會成爲系統的性能瓶頸。

  • 對象

    對象(Object)是對象存儲的基本單元,一個對象實際上就是文件的數據和一組屬性信息(Meta data)的組合。這些屬性能夠定義基於文件的RAID參數,數據分佈和服務質量等。而傳統的存儲系統中用文件或塊做爲基本的存儲單位,在塊存儲系統中還須要始終追蹤系統中每一個塊的屬性,對象經過與存儲系統通訊維護本身的屬性,從而簡化了存儲系統的管理任務,增長了靈活性。在存儲設備中,全部對象都有一個對象標識,經過對象標識命令訪問該對象。一般有多種類型的對象,存儲設備上的根對象標識存儲設備和該設備的各類屬性,組對象是存儲設備上共享資源管理策略的對象集合等。Object的大小能夠不一樣,能夠包含整個數據結構,如文件、數據庫表項等。

  • 對象存儲設備

    對象存儲設備也叫智能存儲設備它有本身的CPU,內存和網絡系統,負責管理本地的Object,時對象存儲系統的核心。OSD同塊設備的不一樣不在於存儲介質,而在於二者提供的訪問藉口,OSD主要包括數據存儲和安全訪問功能,OSD使用Object對所保存的數據進行管理。它將數據存放到磁盤的磁道和扇區,將若干磁道和扇區組合起來構成Object,而且經過此Object向外界提供對數據的訪問。每一個Object同傳統的文件類似,使用同文件相似的訪問接口,包括Open、Read、Write等。可是二者並不相同,每一個Object可能包括若干個文件,也多是某個文件的一部分,且是獨立於操做系統的。除了具體的用戶數據外,OSD還記錄了每一個Object的屬性信息,主要是物理視圖信息,將這些信息放到OSD上,大大減輕了元數據服務器的負擔,加強了整個存儲系統的並行訪問性能和可擴展性。

 

  • 元數據服務器

    元數據服務器(Metadata Server,MDS)控制client與OSD對象的交互,主要提供如下幾個功能

 

    (1)對象存儲訪問:爲客戶端提供元數據,主要是文件的邏輯視圖,包括文件與目錄的組織關係,每一個文件所對應的OSD等。容許Client直接訪問對象,MDS爲client提供訪問該文件所含對象的能力,OSD在接收到每一個請求時將先驗證該能力,而後才能夠訪問。

    (2)文件目錄訪問管理:MDS在存儲系統上構建一個文件結構,包括限額控制、目錄和文件的建立和刪除、訪問控制等。

    (3)client cache一致性

    爲樂提升client性能,在對象存儲系統設計時通暢支持client方的cache。因爲引入client的cache,帶來了cache的一致性文件,MDS支持基於client的文件cache。當cache的文件發生改變時,將通知client刷新cache,從而防止cache不一致引起的問題。當多個客戶端同時訪問某些數據時,MDS提供分佈的鎖機制來確保cache的一致性。

  • 對象存儲系統的客戶端

    爲樂有效支持client訪問OSD上的對象,須要在計算節點實現對象存儲系統的client,通暢提供POSIX文件系統接口,容許應用程序像執行標準的文件系統操做同樣。

  • 關鍵技術

    (1)分佈元數據:傳統的存儲結構元數據服務器通暢提供兩個主要功能,一是爲計算節點提供一個存儲數據的邏輯視圖(Virtual File System, VFS層),文件名列表及目錄結構;二是組織物理存儲介質的數據分佈(inode層)。對象存儲結構將存儲數據的邏輯視圖與物理視圖分開,炳將負載分佈,避免元數據服務器引發的瓶頸。元數據的VFS部分一般是元數據服務器的10%的負載,剩下的90%工做(inode部分)是在存儲介質塊的數據物理分佈上完成的。在對象存儲結構中,inode工做分佈到每一個智能化的OSD,每一個OSD負責管理數據分佈和檢索,這樣90%的元數據管理工做分佈到智能的存儲設備,從而提升了系統元數據管理的性能。另外,分佈的元數據管理,在增長更多的OSD到系統中,能夠同時增長元數據的性能和系統存儲容量。

    (2)併發數據訪問:對象存儲體系結構定義了一個新的,更加智能話的磁盤接口OSD,OSD是雨網絡鏈接的設備,它自身包含存儲介質,如磁盤或磁帶,並具備足夠的智能能夠管理本地存儲的數據,計算節點直接與OSD通訊,訪問它存儲的數據。因爲OSD具備智能,所以不須要文件服務器的介入。若是將文件系統的數據分佈在多個OSD上,則聚合I/O速率和數據吞吐率講線性增加,對絕大多數Linux集羣應用來講,持續的I/O聚合帶寬和吞吐率對較多數目的計算節點是很是重要的。對象存儲結構提供的性能是目前其餘存儲結構難以達到的。

=============================================

綜上所述,對象存儲系統能夠理解爲數據和控制分離,基於智能存儲設備提供的數據存儲訪問能力,具有更好橫向容量、性能擴展能力、提供高性能、可共享的數據存儲服務的存儲系統和架構,其架構的優越性成爲大數據存儲的最優選擇。

 

參考:

http://storage.ctocio.com.cn/281/12110781.shtml

http://blog.csdn.net/liuaigui/article/details/17973039

相關文章
相關標籤/搜索