範文齋

位置:首頁 > 職場範文 > 職場百科

數據中心存儲架構

存儲系統是數據中心IT環境的核心基礎架構,是數據中心數據訪問的最終承載體。存儲在雲計算、虛擬化、大數據等相關技術進入後已經發生了巨大的改變,塊存儲、文件存儲、對象存儲支撐起多種數據類型的讀取;集中式存儲已經不再是數據中心的主流存儲架構,海量數據的存儲訪問,需要擴展性、伸縮性極強的分佈式存儲架構來實現。

數據中心存儲架構


在新的IT發展過程中,數據中心建設已經進入雲計算時代,企業IT存儲環境已經不能簡單的從一般性業務運營需求來構建雲計算的數據中心存儲環境。雲計算數據中心的建設不是爲了滿足某一個業務系統的特殊目標,是爲了實現所有業務系統在雲平臺上能夠實現靈活的資源調度、良好的伸縮性、業務擴展的彈性以及快速交付性。因此,是一種自下而上的建設模式(如圖1所示),基於雲計算平臺的建設先於應用系統需求,並不再與具體的業務捆綁,應用系統的建設、擴容、升級主要以軟件爲主,硬件物理資源向資源池申請,存儲系統成爲雲數據中心的可分配、可調度的資源,在這種情況下,有助於消除瓶頸、提高處理速度,使得業務系統穩定、高效、持久運行。

圖1 數據中心的系統建設發展

一、數據中心存儲架構的演進

隨着數據中心從最初的孤立系統企業級應用,發展到互聯網化階段的大規模雲計算服務,其存儲架構也不斷髮展(如圖2所示)。從滿足關鍵系統的性能與容量需求,到以虛擬化架構來整合數據中心存儲資源,提供按需的存儲服務和自動化運維,並進一步向存儲系統的智能化、敏捷化演進,應用需求的變化是存儲架構不斷改進提升的驅動力,豎井式、虛擬化、雲存儲三種架構並存是當前現狀,軟件定義存儲架構的出現則是後雲計算時代的存儲發展階段。

圖2 存儲系統系統架構和管理演進

豎井式架構

對於早期的系統,在主機架構下,數據和邏輯是一體的,採用面向過程的設計方法,每個應用是一個孤立的系統,維護相對容易,難於相互集成;客戶機/服務器架構將邏輯與數據進行了分離(不論C/S還是B/S模式,本質都是客戶機/服務器架構),同樣採用面向對象的設計方法,每個應用是一個孤立的系統,提供了一定後臺集成的能力。這種架構的存儲也隨着系統的建設形成了自身的獨立性,業務平臺的硬件設備按照規劃期內最大用戶數來配置,而在業務初期和業務發展情況難預測的情況下,無法真實評估存儲的規模與性能要求,這往往會浪費不少硬件設備資源和空間、動力等資源,並且硬件資源不能靈活調度。 每個業務上線都需要經過軟件選型、評估資源、硬件選型、採購和實施等環節,業務上線流程長、時間跨度大,不利於業務發展。

存儲虛擬化

隨着業務發展,數據中心存儲不可避免形成大量的異構環境,標準化的管理流程難以實施。存儲虛擬化架構實現對不同結構的存儲設備進行集中化管理,統一整合形成一個存儲池,向服務器層屏蔽存儲設備硬件的特殊性,虛擬化出統一的邏輯特性,從而實現了存儲系統集中、統一而又方便的管理。使得存儲池中的所有存儲卷都擁有相同的屬性,如性能、冗餘特性、備份需求或成本,並實現自動化(如LUN管理)以及基於策略的集中存儲管理。

同時,存儲資源的自動化管理爲用戶提供更高層次策略的選擇。在存儲池中可以定義多種存儲工具來代表不同業務領域或存儲用戶的不同服務等級。另外,還允許用戶以單元的方式管理每一存儲池內部的存儲資源,根據需要添加、刪除或改變,同時保持對應用服務器業務系統的透明性。基於策略的存儲虛擬化能夠管理整個存儲基礎機構,保持合理分配存儲資源,高優先級的應用有更高的存儲優先級,使用性能最好的存儲,低優先級的應用使用便宜的存儲。

雲存儲架構

雲存儲架構伴隨着大規模雲計算的數據時代的到來,將存儲作爲雲的服務提供,不論是企業私有云還是公有云的存儲,都着重於大量存儲數據的創建和分佈,並關注快速通過雲獲得數據的訪問。雲存儲架構需要支持大規模的數據負載的存儲、備份、遷移、傳輸,同時要求巨大的成本、性能和管理優勢。

雲存儲的技術部署,通過集羣應用或分佈式文件系統等功能,網絡中大量各種不同類型的存儲設備通過應用軟件集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一個系統,保證數據的安全性,並節約存儲空間。

在大規模系統支撐上,分佈式文件系統、分佈式對象存儲等技術,爲雲存儲的各種應用提供了高度可伸縮、可擴展和極大的彈性支撐和強大的數據訪問性能,並且因爲這些分佈式技術對標準化硬件的支持,使得大規模雲存儲得以低成本的建設和運維。

雲存儲不是要取代現有的盤陣,而是爲了應付高速成長的數據量與帶寬而產生的新形態存儲系統,因此雲存儲在構建時重點考慮的三點:擴容簡便、性能易於增長、管理簡易。

軟件定義存儲

軟件定義存儲當前還未有確切的定義,但軟件定義存儲代表了一種趨勢,即存儲架構中軟件和硬件的分離,也就是數據層和控制層的分離。對於數據中心用戶而言,通過軟件來實現對存儲資源的管理和調度,如靈活的卷遷移等而無需考慮硬件設備本身。

通過軟件定義存儲實現存儲資源的虛擬化 、抽象化、自動化,能夠完整的實現數據中心存儲系統的部署、管理、監控、調整等多個要求,使得存儲系統具備靈活、自由和高可用等特點。

二、數據中心存儲的技術架構

1.數據類型

數據中心的存儲數據類型發生了很大的變化,按照結構化程度來分,可以大致分爲以下三種。

○ 結構化數據的存儲及應用。這是一種用戶定義的數據類型,它包含了一系列的屬性,每一個屬性都有一個數據類型,存儲在關係數據庫裏。一般的業務系統都有大量的結構化數據,一般存儲在Oracle或MySQL的等的關係型數據庫中,在企業級數據中心,一般在集中存儲架構中保存,或成爲主存儲系統,以塊存儲訪問爲主。

○ 非結構化數據的存儲及應用。相對於結構化數據而言,不方便用數據庫二維邏輯表來表現的數據即稱爲非結構化數據,包括所有格式的辦公文檔、文本、圖片、XML、HTML、各類報表、圖像和音頻/視頻信息等等,分佈式文件系統是實現非結構化數據存儲的主要技術。

○ 半結構化數據的存儲及應用。介於完全結構化數據(如關係型數據庫、面向對象數據庫中的數據)和完全無結構的數據(如聲音、圖像文件等)之間的數據,半結構化數據模型具有一定的結構性,但較之傳統的關係和麪向對象的模型更爲靈活。半結構數據模型完全不基於傳統數據庫模式的嚴格概念,這些模型中的數據都是自描述的。由於半結構化數據沒有嚴格的語義定義,所以不適合用傳統的關係型數據庫進行存儲,適合存儲這類數據的數據庫被稱作"NoSQL"數據庫。

2.塊、文件、對象

塊存儲

對於存儲系統,塊讀寫一般是在存儲介質上的數據概念,對於磁盤來說,塊數據的存儲單元是一個或多個磁盤扇區。因此塊級數據的讀寫,是面向最底層的物理層的,數據操作基於起始扇區編號、操作碼(讀、寫等)、連續扇區數量等,塊數據訪問接口是SCSI接口。有兩種常用的兩種塊存儲方式。

○ DAS(Direct Attach STorage)。是直接連接於主機服務器的一種儲存方式,每一臺主機服務器有獨立的儲存設備,每臺主機服務器的儲存設備無法互通,需要跨主機存取資料時,必須經過相對複雜的設定,若主機服務器分屬不同的操作系統,要存取彼此的數據,更是複雜,有些系統甚至不能存取。通常用在單一網絡環境下且數據交換量不大,性能要求不高的環境下,是早期的技術實現。

○ SAN(Storage Area Network)。是一種用高速網絡聯接主機服務器與存儲設備的一種儲存方式,存儲系統會位於主機羣的後端,它使用高速I/O網絡聯結方式,以FC、iSCSI、FCOE爲當前主流形式。一般而言,SAN應用在對網絡速度要求高、對數據的可靠性和安全性要求高、對數據共享的性能要求高的應用環境中,特點是代價高,性能好。它採用SCSI 塊I/O的命令集,在SAN網絡級的數據訪問提供高性能的隨機I/O和數據吞吐率,具有高帶寬、低延遲的優勢,但是由於SAN系統的價格較高,且不具備大規模可擴展性,不能滿足大型雲計算數據中心的存儲需求。

表1 幾種文件系統

文件存儲

對於文件,是"按名存取"的,爲了區分磁盤上各個不同的文件,需要給每個文件取一個確定的名字,稱爲文件名,它用來表示磁盤上的文件,以便於在磁盤上能夠"按名查找"這些文件。文件的數據操作基於文件名、偏移量、讀寫字節數等,但是文件本身並無文件自身的屬性、元數據信息。基於對不同環境的文件存儲發展了多種形式的文件系統(如表1所示)。

對象存儲

對象是自完備的,包含元數據、數據和屬性,可以進行自我管理,對象本身是平等的。也就是說,對象分佈在一個平坦的空間中,而非文件系統那樣的樹狀邏輯結構之中,對象存儲以ID爲基礎,根據ID可以直接訪問數據,核心是將數據通路(數據讀或寫)和控制通路(元數據)分離,並且基於對象存儲設備(Object-based Storage Device,OSD)構建存儲系統,每個對象存儲設備具有一定的智能,能夠自動管理其上的數據分佈。典型代表:Swift、CEPH

從設備級別看塊、文件、對象存儲(如表2所示)

表2塊、文件、對象存儲的設備級訪問比較

3.主存儲架構

主存儲是數據中心的重要存儲系統,通常稱爲Tier1存儲,用於存儲活動數據(經常需要訪問的數據)以及要求高性能、低延遲、高可用性的數據。主存儲通常用於支撐數據中心關鍵任務程序(如數據庫、電子郵件和事務處理)。大多數重要程序採用隨機數據訪問模式,具有不同的訪問要求,但是都能產生大量數據,企業可以利用這些數據完成業務。

即使在虛擬領域中出現越來越多的新的數據存儲技術,傳統的主存儲系統仍然普遍。DAS是最早的主存儲架構,但SAN已經成爲當前使用最廣泛、也最爲主流的存儲架構。而NAS則在數據中心用於文件共享應用,並且也在後端採用了SAN的擴展。在數據中心領域,絕大多數廠商也均以SAN架構來部署面向高級用戶的主存儲解決方案,以及在此基礎上相關的容災備份方案和存儲虛擬化方案。

SAN的特點是性能高、穩定性強、價格高。在一些需要集中存儲的數據庫等實時服務要求高的重要應用領域,依然是當前的主流的技術,在存儲應用中,需要集中存儲的高端應用由SAN來承擔,基於文件的小規模應用由NAS承擔更合適,使得SAN與NAS成爲互補存儲架構出現。

最初的數據中心,大部分數據都是主數據。隨着數據的存在時間增長,大量數據會通常移動到次級和三級存儲。因此,隨着存儲各方面技術發展和業務的成熟,數據中心逐步開始尋求能夠減少主存儲的途徑,以充分利用容量,降低整個數據生命週期的成本。

4.分佈式文件存儲架構

分佈式文件系統主要的功能是用於存儲文檔、圖像、視頻之類的非結構化數據,該系統建立在網絡之上的,以全局方式管理系統資源,它可以任意調度網絡中的存儲資源,並且調度過程是"透明"的。

分佈式存儲系統採用可擴展的系統結構,利用多臺存儲服務器分擔存儲負荷,利用位置服務器定位存儲信息,不但提高了系統的可靠性、可用性和存取效率,還易於擴展。以高性能、高容量爲主要特性的分佈式存儲系統。

HDFS(Hadoop Distributed File System)是開源項目Hadoop的家族成員,是谷歌文件系統GoogleFS(Google File System)的開源實現,以下僅簡單介紹HDFS工作模式。

HDFS被設計成適合運行在通用硬件上的分佈式文件系統,是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的非結構化數據、半結構化應用。運行在HDFS之上的程序有很大量的數據集,典型的HDFS文件大小是GB到TB的級別,因此,HDFS被調整成支持大文件。一個HDFS集羣是有一個Namenode和一定數目的Datanode組成(如圖3所示):

NameNode(名稱節點)是一個或一組中心服務器,是HDFS的中樞,負責管理文件系統的目錄名字空間信息(namespace)和客戶端對文件的訪問,並且管理所有的DataNode;

DataNode(數據節點)在HDFS中負責管理本節點上附帶的存儲Block(數據塊)。在HDFS內部,文件不是放在一塊磁盤上,一個文件其實分成多個block(數據塊),這些block存儲分散在Datanode組成的集羣中,NameNode記錄block對應在不同的DataNode上的映射關係。

NameNode接受客戶端的元數據請求,然後對DataNode發出Block Ops(塊操作)指令,文件的創建、刪除和複製操作,同時決定block到具體Datanode節點的映射。Datanode在Namenode的管理下進行block的創建、刪除和複製。

圖3 HDFS經典體系架構圖示

HDFS可靠性和性能主要通過數據塊的副本來實現,並且HDFS採用一種稱之爲Rack-aware(機架感知)的策略來改進數據的可靠性、有效性和網絡帶寬的利用。

在通常副本數爲3的情況下,HDFS的策略將一個副本存放在本地機架上,一個副本放在同一個機架上的另一個節點,最後一個副本放在不同機架上的一個節點。在讀取時,爲了降低整體的帶寬消耗和讀延時,如果客戶端同一個機架上有一個副本,那麼就讀該副本。

HDFS依然是主從結構,Namenode成爲整個系統的瓶頸和關鍵故障點,因此,衆多使用分佈式文件系統的用戶均在此基礎上不斷完善其高可用性,比如發展出無中心存儲架構。

5.分佈式對象存儲架構

在對象存儲中,存儲的不僅是數據,還有與豐富的數據相關的屬性信息。系統會給每一個對象分配一個唯一的OID(Object ID)。對象本身是平等的,所有的OID都屬於一個平坦的地址空間,而並非文件系統那樣的樹狀邏輯結構。對象存儲空間訪問對象只通過一個唯一的OID標識即可,不需要複雜的路徑結構,沒有"路徑"他"文件夾"的概念。對象存儲架構有以下組成部分。

對象

對象是系統中數據存儲的基本單位。一個對象實際上就是文件的數據和一組屬性信息(Meta Data)的組合,這些屬性信息可以定義基於文件的RAID參數、數據分佈和服務質量等;而傳統的存儲系統中用文件或塊作爲基本的存儲單位,在塊存儲系統中還需要始終追蹤系統中每個塊的屬性,對象通過與存儲系統通信維護自己的屬性。在存儲設備中,所有對象都有一個對象標識,通過對象標識命令訪問該對象。通常有多種類型的對象,存儲設備上的根對象標識存儲設備和該設備的各種屬性,組對象是存儲設備上共享資源管理策略的對象集合等。

對象存儲設備(OSD,Object Storage Device)

OSD有自己的CPU、內存、網絡和磁盤系統,和塊設備的區別不在於存儲介質,而在於兩者提供的訪問接口。OSD的主要功能包括數據存儲和安全訪問,目前國際上通常採用標準化計算單元結構實現對象存儲設備。OSD執行從對象到塊的映射,這個動作允許本地實體以最佳方式決定怎樣存儲一個對象,OSD存儲節點不僅具備存儲功能,還包括智能化的高級能力。傳統的存儲驅動只是作爲Target響應客戶端的I/O請求,而對象存儲設備是智能設備,它能同時執行Target和Initiator的功能,支持與其他對象存儲設備的通信和協作,如數據分配、複製與恢復。

元數據服務器(MDS ,Metadata Server)

元數據服務器的工作就是管理文件系統的名稱空間、控制客戶端與OSD對象的交互,緩存和同步分佈式元數據。雖然元數據和數據兩者都存儲在對象存儲集羣,但兩者分別管理,支持可擴展性。

對象存儲系統的客戶端Client

爲了有效支持Client支持訪問OSD上的對象,需要在計算節點實現對象存儲系統的Client,通常提供POSIX文件系統接口,允許應用程序像執行標準的文件系統操作一樣。

在客戶端,用戶使用文件系統是透明的,Linux通過內核虛擬文件系統交換(VFS)來進行底層的操作訪問。終端用戶訪問大容量的存儲系統,無需知道下面聚合成大容量存儲池的元數據服務器、監視器、獨立的對象存儲設備。文件系統的智能化處理分佈在節點上,這簡化了客戶端接口,可以支撐大規模動態擴展能力。

對象存儲構築在標準硬件存儲基礎設施之上,無需採用RAID(磁盤冗餘陣列),通過在軟件層面引入一致性散列技術和數據冗餘性,犧牲一定程度的數據一致性來達到高可用性和可伸縮性,支持多租戶模式、容器和對象讀寫操作,適合解決互聯網的應用場景下非結構化數據存儲問題。

與通常的分佈式文件系統一樣,放入對象存儲集羣中的文件是條帶化的,依據特定的數據分佈式算法放入集羣節點中。應用程序可以通過RESTful接口與各OSD節點其通信,將對象直接存儲在集羣中.

三、結束語

企業及互聯網數據以每年50%的速率在增長,新增數據中結構化數據總量有限,多數爲非結構化、半結構化數據,數據中心存儲架構隨着業務發展需要極強的彈性適應能力,低成本、大容量(海量)擴展、高併發性能是面向大型雲數據中心運營存儲架構的基本技術屬性。如何進行數量龐大且雜亂無章的數據存儲與深度應用處理,並迅速提取有價值的信息,形成迅速商業決策成爲各類型企業生存基礎是今後存儲以及圍繞存儲架構不斷衍生的業務發展方向。因此數據存儲技術變革方向必然是分佈式並行文件系統,並行數據庫、高效統一的數據裝載及存取,多接口、靈活擴展、多業務承載的解決方案能力是大容量、海量存儲技術架構的關鍵。