存儲(chǔ)系統(tǒng)是數(shù)據(jù)中心IT環(huán)境的核心基礎(chǔ)架構(gòu),是數(shù)據(jù)中心數(shù)據(jù)訪問的最終承載體。存儲(chǔ)在云計(jì)算、虛擬化、大數(shù)據(jù)等相關(guān)技術(shù)進(jìn)入后已經(jīng)發(fā)生了巨大的改變,塊存儲(chǔ)、文件存儲(chǔ)、對(duì)象存儲(chǔ)支撐起多種數(shù)據(jù)類型的讀;集中式存儲(chǔ)已經(jīng)不再是數(shù)據(jù)中心的主流存儲(chǔ)架構(gòu),海量數(shù)據(jù)的存儲(chǔ)訪問,需要擴(kuò)展性、伸縮性極強(qiáng)的分布式存儲(chǔ)架構(gòu)來實(shí)現(xiàn)。
在新的IT發(fā)展過程中,數(shù)據(jù)中心建設(shè)已經(jīng)進(jìn)入云計(jì)算時(shí)代,企業(yè)IT存儲(chǔ)環(huán)境已經(jīng)不能簡單的從一般性業(yè)務(wù)運(yùn)營需求來構(gòu)建云計(jì)算的數(shù)據(jù)中心存儲(chǔ)環(huán)境。云計(jì)算數(shù)據(jù)中心的建設(shè)不是為了滿足某一個(gè)業(yè)務(wù)系統(tǒng)的特殊目標(biāo),是為了實(shí)現(xiàn)所有業(yè)務(wù)系統(tǒng)在云平臺(tái)上能夠?qū)崿F(xiàn)靈活的資源調(diào)度、良好的伸縮性、業(yè)務(wù)擴(kuò)展的彈性以及快速交付性。因此,是一種自下而上的建設(shè)模式(如圖1所示),基于云計(jì)算平臺(tái)的建設(shè)先于應(yīng)用系統(tǒng)需求,并不再與具體的業(yè)務(wù)捆綁,應(yīng)用系統(tǒng)的建設(shè)、擴(kuò)容、升級(jí)主要以軟件為主,硬件物理資源向資源池申請(qǐng),存儲(chǔ)系統(tǒng)成為云數(shù)據(jù)中心的可分配、可調(diào)度的資源,在這種情況下,有助于消除瓶頸、提高處理速度,使得業(yè)務(wù)系統(tǒng)穩(wěn)定、高效、持久運(yùn)行。
圖1 數(shù)據(jù)中心的系統(tǒng)建設(shè)發(fā)展
一、數(shù)據(jù)中心存儲(chǔ)架構(gòu)的演進(jìn)
隨著數(shù)據(jù)中心從最初的孤立系統(tǒng)企業(yè)級(jí)應(yīng)用,發(fā)展到互聯(lián)網(wǎng)化階段的大規(guī)模云計(jì)算服務(wù),其存儲(chǔ)架構(gòu)也不斷發(fā)展(如圖2所示)。從滿足關(guān)鍵系統(tǒng)的性能與容量需求,到以虛擬化架構(gòu)來整合數(shù)據(jù)中心存儲(chǔ)資源,提供按需的存儲(chǔ)服務(wù)和自動(dòng)化運(yùn)維,并進(jìn)一步向存儲(chǔ)系統(tǒng)的智能化、敏捷化演進(jìn),應(yīng)用需求的變化是存儲(chǔ)架構(gòu)不斷改進(jìn)提升的驅(qū)動(dòng)力,豎井式、虛擬化、云存儲(chǔ)三種架構(gòu)并存是當(dāng)前現(xiàn)狀,軟件定義存儲(chǔ)架構(gòu)的出現(xiàn)則是后云計(jì)算時(shí)代的存儲(chǔ)發(fā)展階段。
圖2 存儲(chǔ)系統(tǒng)系統(tǒng)架構(gòu)和管理演進(jìn)
豎井式架構(gòu)
對(duì)于早期的系統(tǒng),在主機(jī)架構(gòu)下,數(shù)據(jù)和邏輯是一體的,采用面向過程的設(shè)計(jì)方法,每個(gè)應(yīng)用是一個(gè)孤立的系統(tǒng),維護(hù)相對(duì)容易,難于相互集成;客戶機(jī)/服務(wù)器架構(gòu)將邏輯與數(shù)據(jù)進(jìn)行了分離(不論C/S還是B/S模式,本質(zhì)都是客戶機(jī)/服務(wù)器架構(gòu)),同樣采用面向?qū)ο蟮脑O(shè)計(jì)方法,每個(gè)應(yīng)用是一個(gè)孤立的系統(tǒng),提供了一定后臺(tái)集成的能力。這種架構(gòu)的存儲(chǔ)也隨著系統(tǒng)的建設(shè)形成了自身的獨(dú)立性,業(yè)務(wù)平臺(tái)的硬件設(shè)備按照規(guī)劃期內(nèi)最大用戶數(shù)來配置,而在業(yè)務(wù)初期和業(yè)務(wù)發(fā)展情況難預(yù)測(cè)的情況下,無法真實(shí)評(píng)估存儲(chǔ)的規(guī)模與性能要求,這往往會(huì)浪費(fèi)不少硬件設(shè)備資源和空間、動(dòng)力等資源,并且硬件資源不能靈活調(diào)度。 每個(gè)業(yè)務(wù)上線都需要經(jīng)過軟件選型、評(píng)估資源、硬件選型、采購和實(shí)施等環(huán)節(jié),業(yè)務(wù)上線流程長、時(shí)間跨度大,不利于業(yè)務(wù)發(fā)展。
即使是企業(yè)數(shù)據(jù)中心進(jìn)入云計(jì)算時(shí)代,大量的應(yīng)用逐步向云的環(huán)境遷移,但因?yàn)槟承┫到y(tǒng)獨(dú)特的技術(shù)要求,這種豎井式架構(gòu)也會(huì)長期存在。
存儲(chǔ)虛擬化
隨著業(yè)務(wù)發(fā)展,數(shù)據(jù)中心存儲(chǔ)不可避免形成大量的異構(gòu)環(huán)境,標(biāo)準(zhǔn)化的管理流程難以實(shí)施。存儲(chǔ)虛擬化架構(gòu)實(shí)現(xiàn)對(duì)不同結(jié)構(gòu)的存儲(chǔ)設(shè)備進(jìn)行集中化管理,統(tǒng)一整合形成一個(gè)存儲(chǔ)池,向服務(wù)器層屏蔽存儲(chǔ)設(shè)備硬件的特殊性,虛擬化出統(tǒng)一的邏輯特性,從而實(shí)現(xiàn)了存儲(chǔ)系統(tǒng)集中、統(tǒng)一而又方便的管理。使得存儲(chǔ)池中的所有存儲(chǔ)卷都擁有相同的屬性,如性能、冗余特性、備份需求或成本,并實(shí)現(xiàn)自動(dòng)化(如LUN管理)以及基于策略的集中存儲(chǔ)管理。
同時(shí),存儲(chǔ)資源的自動(dòng)化管理為用戶提供更高層次策略的選擇。在存儲(chǔ)池中可以定義多種存儲(chǔ)工具來代表不同業(yè)務(wù)領(lǐng)域或存儲(chǔ)用戶的不同服務(wù)等級(jí)。另外,還允許用戶以單元的方式管理每一存儲(chǔ)池內(nèi)部的存儲(chǔ)資源,根據(jù)需要添加、刪除或改變,同時(shí)保持對(duì)應(yīng)用服務(wù)器業(yè)務(wù)系統(tǒng)的透明性;诓呗缘拇鎯(chǔ)虛擬化能夠管理整個(gè)存儲(chǔ)基礎(chǔ)機(jī)構(gòu),保持合理分配存儲(chǔ)資源,高優(yōu)先級(jí)的應(yīng)用有更高的存儲(chǔ)優(yōu)先級(jí),使用性能最好的存儲(chǔ),低優(yōu)先級(jí)的應(yīng)用使用便宜的存儲(chǔ)。
云存儲(chǔ)架構(gòu)
云存儲(chǔ)架構(gòu)伴隨著大規(guī)模云計(jì)算的數(shù)據(jù)時(shí)代的到來,將存儲(chǔ)作為云的服務(wù)提供,不論是企業(yè)私有云還是公有云的存儲(chǔ),都著重于大量存儲(chǔ)數(shù)據(jù)的創(chuàng)建和分布,并關(guān)注快速通過云獲得數(shù)據(jù)的訪問。云存儲(chǔ)架構(gòu)需要支持大規(guī)模的數(shù)據(jù)負(fù)載的存儲(chǔ)、備份、遷移、傳輸,同時(shí)要求巨大的成本、性能和管理優(yōu)勢(shì)。
云存儲(chǔ)的技術(shù)部署,通過集群應(yīng)用或分布式文件系統(tǒng)等功能,網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問功能的一個(gè)系統(tǒng),保證數(shù)據(jù)的安全性,并節(jié)約存儲(chǔ)空間。
在大規(guī)模系統(tǒng)支撐上,分布式文件系統(tǒng)、分布式對(duì)象存儲(chǔ)等技術(shù),為云存儲(chǔ)的各種應(yīng)用提供了高度可伸縮、可擴(kuò)展和極大的彈性支撐和強(qiáng)大的數(shù)據(jù)訪問性能,并且因?yàn)檫@些分布式技術(shù)對(duì)標(biāo)準(zhǔn)化硬件的支持,使得大規(guī)模云存儲(chǔ)得以低成本的建設(shè)和運(yùn)維。
云存儲(chǔ)不是要取代現(xiàn)有的盤陣,而是為了應(yīng)付高速成長的數(shù)據(jù)量與帶寬而產(chǎn)生的新形態(tài)存儲(chǔ)系統(tǒng),因此云存儲(chǔ)在構(gòu)建時(shí)重點(diǎn)考慮的三點(diǎn):擴(kuò)容簡便、性能易于增長、管理簡易。
軟件定義存儲(chǔ)
軟件定義存儲(chǔ)當(dāng)前還未有確切的定義,但軟件定義存儲(chǔ)代表了一種趨勢(shì),即存儲(chǔ)架構(gòu)中軟件和硬件的分離,也就是數(shù)據(jù)層和控制層的分離。對(duì)于數(shù)據(jù)中心用戶而言,通過軟件來實(shí)現(xiàn)對(duì)存儲(chǔ)資源的管理和調(diào)度,如靈活的卷遷移等而無需考慮硬件設(shè)備本身。
通過軟件定義存儲(chǔ)實(shí)現(xiàn)存儲(chǔ)資源的虛擬化 、抽象化、自動(dòng)化,能夠完整的實(shí)現(xiàn)數(shù)據(jù)中心存儲(chǔ)系統(tǒng)的部署、管理、監(jiān)控、調(diào)整等多個(gè)要求,使得存儲(chǔ)系統(tǒng)具備靈活、自由和高可用等特點(diǎn)。
傳統(tǒng)存儲(chǔ)的虛擬化、自動(dòng)化都是由專用的存儲(chǔ)設(shè)備來實(shí)現(xiàn),許多廠商虛擬化存儲(chǔ)都要使用自己定制的設(shè)備,或者是在特定服務(wù)器上加載的一款軟件來支持。軟件定義存儲(chǔ)將存儲(chǔ)服務(wù)從存儲(chǔ)系統(tǒng)中抽象出來,且可同時(shí)向機(jī)械硬盤及固態(tài)硬盤提供存儲(chǔ)服務(wù),軟件定義存儲(chǔ)消除硬件設(shè)備的限制,采用開放的存儲(chǔ)架構(gòu),提供存儲(chǔ)的性能、可管理性,增強(qiáng)存儲(chǔ)系統(tǒng)的智能性和敏捷的服務(wù)能力,同時(shí)軟件定義存儲(chǔ)也以分布式技術(shù)如分布式文件存儲(chǔ)、對(duì)象存儲(chǔ)等大規(guī)?蓴U(kuò)展架構(gòu)為數(shù)據(jù)基礎(chǔ),對(duì)上支持靈活的控制管理,這將是存儲(chǔ)領(lǐng)域發(fā)展的大趨勢(shì)。
二、數(shù)據(jù)中心存儲(chǔ)的技術(shù)架構(gòu)
1.數(shù)據(jù)類型
數(shù)據(jù)中心的存儲(chǔ)數(shù)據(jù)類型發(fā)生了很大的變化,按照結(jié)構(gòu)化程度來分,可以大致分為以下三種。
結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)及應(yīng)用。這是一種用戶定義的數(shù)據(jù)類型,它包含了一系列的屬性,每一個(gè)屬性都有一個(gè)數(shù)據(jù)類型,存儲(chǔ)在關(guān)系數(shù)據(jù)庫里。一般的業(yè)務(wù)系統(tǒng)都有大量的結(jié)構(gòu)化數(shù)據(jù),一般存儲(chǔ)在Oracle或MySQL的等的關(guān)系型數(shù)據(jù)庫中,在企業(yè)級(jí)數(shù)據(jù)中心,一般在集中存儲(chǔ)架構(gòu)中保存,或成為主存儲(chǔ)系統(tǒng),以塊存儲(chǔ)訪問為主。
非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)及應(yīng)用。相對(duì)于結(jié)構(gòu)化數(shù)據(jù)而言,不方便用數(shù)據(jù)庫二維邏輯表來表現(xiàn)的數(shù)據(jù)即稱為非結(jié)構(gòu)化數(shù)據(jù),包括所有格式的辦公文檔、文本、圖片、XML、HTML、各類報(bào)表、圖像和音頻/視頻信息等等,分布式文件系統(tǒng)是實(shí)現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的主要技術(shù)。
半結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)及應(yīng)用。介于完全結(jié)構(gòu)化數(shù)據(jù)(如關(guān)系型數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫中的數(shù)據(jù))和完全無結(jié)構(gòu)的數(shù)據(jù)(如聲音、圖像文件等)之間的數(shù)據(jù),半結(jié)構(gòu)化數(shù)據(jù)模型具有一定的結(jié)構(gòu)性,但較之傳統(tǒng)的關(guān)系和面向?qū)ο蟮哪P透鼮殪`活。半結(jié)構(gòu)數(shù)據(jù)模型完全不基于傳統(tǒng)數(shù)據(jù)庫模式的嚴(yán)格概念,這些模型中的數(shù)據(jù)都是自描述的。由于半結(jié)構(gòu)化數(shù)據(jù)沒有嚴(yán)格的語義定義,所以不適合用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫進(jìn)行存儲(chǔ),適合存儲(chǔ)這類數(shù)據(jù)的數(shù)據(jù)庫被稱作“NoSQL”數(shù)據(jù)庫。
2.塊、文件、對(duì)象
塊存儲(chǔ)
對(duì)于存儲(chǔ)系統(tǒng),塊讀寫一般是在存儲(chǔ)介質(zhì)上的數(shù)據(jù)概念,對(duì)于磁盤來說,塊數(shù)據(jù)的存儲(chǔ)單元是一個(gè)或多個(gè)磁盤扇區(qū)。因此塊級(jí)數(shù)據(jù)的讀寫,是面向最底層的物理層的,數(shù)據(jù)操作基于起始扇區(qū)編號(hào)、操作碼(讀、寫等)、連續(xù)扇區(qū)數(shù)量等,塊數(shù)據(jù)訪問接口是SCSI接口。有兩種常用的兩種塊存儲(chǔ)方式。
DAS(Direct Attach STorage)。是直接連接于主機(jī)服務(wù)器的一種儲(chǔ)存方式,每一臺(tái)主機(jī)服務(wù)器有獨(dú)立的儲(chǔ)存設(shè)備,每臺(tái)主機(jī)服務(wù)器的儲(chǔ)存設(shè)備無法互通,需要跨主機(jī)存取資料時(shí),必須經(jīng)過相對(duì)復(fù)雜的設(shè)定,若主機(jī)服務(wù)器分屬不同的操作系統(tǒng),要存取彼此的數(shù)據(jù),更是復(fù)雜,有些系統(tǒng)甚至不能存取。通常用在單一網(wǎng)絡(luò)環(huán)境下且數(shù)據(jù)交換量不大,性能要求不高的環(huán)境下,是早期的技術(shù)實(shí)現(xiàn)。
SAN(Storage Area Network)。是一種用高速網(wǎng)絡(luò)聯(lián)接主機(jī)服務(wù)器與存儲(chǔ)設(shè)備的一種儲(chǔ)存方式,存儲(chǔ)系統(tǒng)會(huì)位于主機(jī)群的后端,它使用高速I/O網(wǎng)絡(luò)聯(lián)結(jié)方式,以FC、iSCSI、FCOE為當(dāng)前主流形式。一般而言,SAN應(yīng)用在對(duì)網(wǎng)絡(luò)速度要求高、對(duì)數(shù)據(jù)的可靠性和安全性要求高、對(duì)數(shù)據(jù)共享的性能要求高的應(yīng)用環(huán)境中,特點(diǎn)是代價(jià)高,性能好。它采用SCSI 塊I/O的命令集,在SAN網(wǎng)絡(luò)級(jí)的數(shù)據(jù)訪問提供高性能的隨機(jī)I/O和數(shù)據(jù)吞吐率,具有高帶寬、低延遲的優(yōu)勢(shì),但是由于SAN系統(tǒng)的價(jià)格較高,且不具備大規(guī)?蓴U(kuò)展性,不能滿足大型云計(jì)算數(shù)據(jù)中心的存儲(chǔ)需求。
文件存儲(chǔ)
對(duì)于文件,是“按名存取”的,為了區(qū)分磁盤上各個(gè)不同的文件,需要給每個(gè)文件取一個(gè)確定的名字,稱為文件名,它用來表示磁盤上的文件,以便于在磁盤上能夠“按名查找”這些文件。文件的數(shù)據(jù)操作基于文件名、偏移量、讀寫字節(jié)數(shù)等,但是文件本身并無文件自身的屬性、元數(shù)據(jù)信息。基于對(duì)不同環(huán)境的文件存儲(chǔ)發(fā)展了多種形式的文件系統(tǒng)(如表1所示)。
表1 幾種文件系統(tǒng)
對(duì)象存儲(chǔ)
對(duì)象是自完備的,包含元數(shù)據(jù)、數(shù)據(jù)和屬性,可以進(jìn)行自我管理,對(duì)象本身是平等的。也就是說,對(duì)象分布在一個(gè)平坦的空間中,而非文件系統(tǒng)那樣的樹狀邏輯結(jié)構(gòu)之中,對(duì)象存儲(chǔ)以ID為基礎(chǔ),根據(jù)ID可以直接訪問數(shù)據(jù),核心是將數(shù)據(jù)通路(數(shù)據(jù)讀或?qū)懀┖涂刂仆罚ㄔ獢?shù)據(jù))分離,并且基于對(duì)象存儲(chǔ)設(shè)備(Object-based Storage Device,OSD)構(gòu)建存儲(chǔ)系統(tǒng),每個(gè)對(duì)象存儲(chǔ)設(shè)備具有一定的智能,能夠自動(dòng)管理其上的數(shù)據(jù)分布。典型代表:Swift、CEPH
從設(shè)備級(jí)別看塊、文件、對(duì)象存儲(chǔ)(如表2所示)
表2 塊、文件、對(duì)象存儲(chǔ)的設(shè)備級(jí)訪問比較
3.主存儲(chǔ)架構(gòu)
主存儲(chǔ)是數(shù)據(jù)中心的重要存儲(chǔ)系統(tǒng),通常稱為Tier1存儲(chǔ),用于存儲(chǔ)活動(dòng)數(shù)據(jù)(經(jīng)常需要訪問的數(shù)據(jù))以及要求高性能、低延遲、高可用性的數(shù)據(jù)。主存儲(chǔ)通常用于支撐數(shù)據(jù)中心關(guān)鍵任務(wù)程序(如數(shù)據(jù)庫、電子郵件和事務(wù)處理)。大多數(shù)重要程序采用隨機(jī)數(shù)據(jù)訪問模式,具有不同的訪問要求,但是都能產(chǎn)生大量數(shù)據(jù),企業(yè)可以利用這些數(shù)據(jù)完成業(yè)務(wù)。
即使在虛擬領(lǐng)域中出現(xiàn)越來越多的新的數(shù)據(jù)存儲(chǔ)技術(shù),傳統(tǒng)的主存儲(chǔ)系統(tǒng)仍然普遍。DAS是最早的主存儲(chǔ)架構(gòu),但SAN已經(jīng)成為當(dāng)前使用最廣泛、也最為主流的存儲(chǔ)架構(gòu)。而NAS則在數(shù)據(jù)中心用于文件共享應(yīng)用,并且也在后端采用了SAN的擴(kuò)展。在數(shù)據(jù)中心領(lǐng)域,絕大多數(shù)廠商也均以SAN架構(gòu)來部署面向高級(jí)用戶的主存儲(chǔ)解決方案,以及在此基礎(chǔ)上相關(guān)的容災(zāi)備份方案和存儲(chǔ)虛擬化方案(如圖3所示)。
圖3 數(shù)據(jù)中心主存儲(chǔ)架構(gòu)
SAN的特點(diǎn)是性能高、穩(wěn)定性強(qiáng)、價(jià)格高。在一些需要集中存儲(chǔ)的數(shù)據(jù)庫等實(shí)時(shí)服務(wù)要求高的重要應(yīng)用領(lǐng)域,依然是當(dāng)前的主流的技術(shù),在存儲(chǔ)應(yīng)用中,需要集中存儲(chǔ)的高端應(yīng)用由SAN來承擔(dān),基于文件的小規(guī)模應(yīng)用由NAS承擔(dān)更合適,使得SAN與NAS成為互補(bǔ)存儲(chǔ)架構(gòu)出現(xiàn)。
最初的數(shù)據(jù)中心,大部分?jǐn)?shù)據(jù)都是主數(shù)據(jù)。隨著數(shù)據(jù)的存在時(shí)間增長,大量數(shù)據(jù)會(huì)通常移動(dòng)到次級(jí)和三級(jí)存儲(chǔ)。因此,隨著存儲(chǔ)各方面技術(shù)發(fā)展和業(yè)務(wù)的成熟,數(shù)據(jù)中心逐步開始尋求能夠減少主存儲(chǔ)的途徑,以充分利用容量,降低整個(gè)數(shù)據(jù)生命周期的成本。
4.分布式文件存儲(chǔ)架構(gòu)
分布式文件系統(tǒng)主要的功能是用于存儲(chǔ)文檔、圖像、視頻之類的非結(jié)構(gòu)化數(shù)據(jù),該系統(tǒng)建立在網(wǎng)絡(luò)之上的,以全局方式管理系統(tǒng)資源,它可以任意調(diào)度網(wǎng)絡(luò)中的存儲(chǔ)資源,并且調(diào)度過程是“透明”的。
分布式存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。以高性能、高容量為主要特性的分布式存儲(chǔ)系統(tǒng),一般滿足以下四個(gè)條件:
應(yīng)用于網(wǎng)絡(luò)環(huán)境中;
單個(gè)文件數(shù)據(jù)分布存放在不同的節(jié)點(diǎn)上;
支持多個(gè)終端多個(gè)進(jìn)程并發(fā)存;
提供統(tǒng)一的目錄空間和訪問名稱。
HDFS(Hadoop Distributed File System)是開源項(xiàng)目Hadoop的家族成員,是谷歌文件系統(tǒng)GoogleFS(Google File System)的開源實(shí)現(xiàn),以下僅簡單介紹HDFS工作模式。
HDFS被設(shè)計(jì)成適合運(yùn)行在通用硬件上的分布式文件系統(tǒng),是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化應(yīng)用。運(yùn)行在HDFS之上的程序有很大量的數(shù)據(jù)集,典型的HDFS文件大小是GB到TB的級(jí)別,因此,HDFS被調(diào)整成支持大文件。一個(gè)HDFS集群是有一個(gè)Namenode和一定數(shù)目的Datanode組成(如圖4所示):
NameNode(名稱節(jié)點(diǎn))是一個(gè)或一組中心服務(wù)器,是HDFS的中樞,負(fù)責(zé)管理文件系統(tǒng)的目錄名字空間信息(namespace)和客戶端對(duì)文件的訪問,并且管理所有的DataNode;
DataNode(數(shù)據(jù)節(jié)點(diǎn))在HDFS中負(fù)責(zé)管理本節(jié)點(diǎn)上附帶的存儲(chǔ)Block(數(shù)據(jù)塊)。在HDFS內(nèi)部,文件不是放在一塊磁盤上,一個(gè)文件其實(shí)分成多個(gè)block(數(shù)據(jù)塊),這些block存儲(chǔ)分散在Datanode組成的集群中,NameNode記錄block對(duì)應(yīng)在不同的DataNode上的映射關(guān)系。
NameNode接受客戶端的元數(shù)據(jù)請(qǐng)求,然后對(duì)DataNode發(fā)出Block Ops(塊操作)指令,文件的創(chuàng)建、刪除和復(fù)制操作,同時(shí)決定block到具體Datanode節(jié)點(diǎn)的映射。Datanode在Namenode的管理下進(jìn)行block的創(chuàng)建、刪除和復(fù)制。
圖4 HDFS經(jīng)典體系架構(gòu)圖示
HDFS可靠性和性能主要通過數(shù)據(jù)塊的副本來實(shí)現(xiàn),并且HDFS采用一種稱之為Rack-aware(機(jī)架感知)的策略來改進(jìn)數(shù)據(jù)的可靠性、有效性和網(wǎng)絡(luò)帶寬的利用。
在通常副本數(shù)為3的情況下,HDFS的策略將一個(gè)副本存放在本地機(jī)架上,一個(gè)副本放在同一個(gè)機(jī)架上的另一個(gè)節(jié)點(diǎn),最后一個(gè)副本放在不同機(jī)架上的一個(gè)節(jié)點(diǎn)。在讀取時(shí),為了降低整體的帶寬消耗和讀延時(shí),如果客戶端同一個(gè)機(jī)架上有一個(gè)副本,那么就讀該副本。
HDFS依然是主從結(jié)構(gòu),Namenode成為整個(gè)系統(tǒng)的瓶頸和關(guān)鍵故障點(diǎn),因此,眾多使用分布式文件系統(tǒng)的用戶均在此基礎(chǔ)上不斷完善其高可用性,比如發(fā)展出無中心存儲(chǔ)架構(gòu)。
5.分布式對(duì)象存儲(chǔ)架構(gòu)
在對(duì)象存儲(chǔ)中,存儲(chǔ)的不僅是數(shù)據(jù),還有與豐富的數(shù)據(jù)相關(guān)的屬性信息。系統(tǒng)會(huì)給每一個(gè)對(duì)象分配一個(gè)唯一的OID(Object ID)。對(duì)象本身是平等的,所有的OID都屬于一個(gè)平坦的地址空間,而并非文件系統(tǒng)那樣的樹狀邏輯結(jié)構(gòu)。對(duì)象存儲(chǔ)空間訪問對(duì)象只通過一個(gè)唯一的OID標(biāo)識(shí)即可,不需要復(fù)雜的路徑結(jié)構(gòu),沒有“路徑”他“文件夾”的概念。對(duì)象存儲(chǔ)架構(gòu)有以下組成部分。
對(duì)象
對(duì)象是系統(tǒng)中數(shù)據(jù)存儲(chǔ)的基本單位。一個(gè)對(duì)象實(shí)際上就是文件的數(shù)據(jù)和一組屬性信息(Meta Data)的組合(如圖5所示),這些屬性信息可以定義基于文件的RAID參數(shù)、數(shù)據(jù)分布和服務(wù)質(zhì)量等;而傳統(tǒng)的存儲(chǔ)系統(tǒng)中用文件或塊作為基本的存儲(chǔ)單位,在塊存儲(chǔ)系統(tǒng)中還需要始終追蹤系統(tǒng)中每個(gè)塊的屬性,對(duì)象通過與存儲(chǔ)系統(tǒng)通信維護(hù)自己的屬性。在存儲(chǔ)設(shè)備中,所有對(duì)象都有一個(gè)對(duì)象標(biāo)識(shí),通過對(duì)象標(biāo)識(shí)命令訪問該對(duì)象。通常有多種類型的對(duì)象,存儲(chǔ)設(shè)備上的根對(duì)象標(biāo)識(shí)存儲(chǔ)設(shè)備和該設(shè)備的各種屬性,組對(duì)象是存儲(chǔ)設(shè)備上共享資源管理策略的對(duì)象集合等。
圖5 對(duì)象存儲(chǔ)數(shù)據(jù)
對(duì)象存儲(chǔ)設(shè)備(OSD,Object Storage Device)
OSD有自己的CPU、內(nèi)存、網(wǎng)絡(luò)和磁盤系統(tǒng),和塊設(shè)備的區(qū)別不在于存儲(chǔ)介質(zhì),而在于兩者提供的訪問接口。OSD的主要功能包括數(shù)據(jù)存儲(chǔ)和安全訪問,目前國際上通常采用標(biāo)準(zhǔn)化計(jì)算單元結(jié)構(gòu)實(shí)現(xiàn)對(duì)象存儲(chǔ)設(shè)備。OSD執(zhí)行從對(duì)象到塊的映射,這個(gè)動(dòng)作允許本地實(shí)體以最佳方式?jīng)Q定怎樣存儲(chǔ)一個(gè)對(duì)象,OSD存儲(chǔ)節(jié)點(diǎn)不僅具備存儲(chǔ)功能,還包括智能化的高級(jí)能力。傳統(tǒng)的存儲(chǔ)驅(qū)動(dòng)只是作為Target響應(yīng)客戶端的I/O請(qǐng)求,而對(duì)象存儲(chǔ)設(shè)備是智能設(shè)備,它能同時(shí)執(zhí)行Target和Initiator的功能,支持與其他對(duì)象存儲(chǔ)設(shè)備的通信和協(xié)作,如數(shù)據(jù)分配、復(fù)制與恢復(fù)。
元數(shù)據(jù)服務(wù)器(MDS ,Metadata Server)
元數(shù)據(jù)服務(wù)器的工作就是管理文件系統(tǒng)的名稱空間、控制客戶端與OSD對(duì)象的交互,緩存和同步分布式元數(shù)據(jù)。雖然元數(shù)據(jù)和數(shù)據(jù)兩者都存儲(chǔ)在對(duì)象存儲(chǔ)集群,但兩者分別管理,支持可擴(kuò)展性。
對(duì)象存儲(chǔ)系統(tǒng)的客戶端Client
為了有效支持Client支持訪問OSD上的對(duì)象,需要在計(jì)算節(jié)點(diǎn)實(shí)現(xiàn)對(duì)象存儲(chǔ)系統(tǒng)的Client,通常提供POSIX文件系統(tǒng)接口,允許應(yīng)用程序像執(zhí)行標(biāo)準(zhǔn)的文件系統(tǒng)操作一樣。
在客戶端,用戶使用文件系統(tǒng)是透明的,Linux通過內(nèi)核虛擬文件系統(tǒng)交換(VFS)來進(jìn)行底層的操作訪問。終端用戶訪問大容量的存儲(chǔ)系統(tǒng),無需知道下面聚合成大容量存儲(chǔ)池的元數(shù)據(jù)服務(wù)器、監(jiān)視器、獨(dú)立的對(duì)象存儲(chǔ)設(shè)備。文件系統(tǒng)的智能化處理分布在節(jié)點(diǎn)上,這簡化了客戶端接口,可以支撐大規(guī)模動(dòng)態(tài)擴(kuò)展能力。
對(duì)象存儲(chǔ)構(gòu)筑在標(biāo)準(zhǔn)硬件存儲(chǔ)基礎(chǔ)設(shè)施之上,無需采用RAID(磁盤冗余陣列),通過在軟件層面引入一致性散列技術(shù)和數(shù)據(jù)冗余性,犧牲一定程度的數(shù)據(jù)一致性來達(dá)到高可用性和可伸縮性,支持多租戶模式、容器和對(duì)象讀寫操作,適合解決互聯(lián)網(wǎng)的應(yīng)用場(chǎng)景下非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)問題。
與通常的分布式文件系統(tǒng)一樣,放入對(duì)象存儲(chǔ)集群中的文件是條帶化的,依據(jù)特定的數(shù)據(jù)分布式算法放入集群節(jié)點(diǎn)中。應(yīng)用程序可以通過RESTful接口與各OSD節(jié)點(diǎn)其通信,將對(duì)象直接存儲(chǔ)在集群中.
以O(shè)penStack中的對(duì)象存儲(chǔ)組件Swift為例。從Swift的架構(gòu)與特性來看,除了極高的數(shù)據(jù)持久性,各個(gè)存儲(chǔ)的節(jié)點(diǎn)完全對(duì)等,是對(duì)稱的系統(tǒng)架構(gòu);擴(kuò)容的時(shí)候只需簡單的增加機(jī)器,擴(kuò)展性很好;沒有主從結(jié)構(gòu),不存在單節(jié)點(diǎn)故障,任意一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),數(shù)據(jù)并不會(huì)丟失。如圖6所示分別表示了上傳文件PUT和下載文件GET請(qǐng)求的數(shù)據(jù)流,兩個(gè)請(qǐng)求操作的是同一個(gè)對(duì)象。上傳文件時(shí),PUT請(qǐng)求通過負(fù)載均衡挑選一臺(tái)Proxy Server,將請(qǐng)求轉(zhuǎn)發(fā)到后者,后者通過查詢本地的Ring文件,選擇3個(gè)不同Zone中的后端來存儲(chǔ)這個(gè)文件,再給用戶返回文件寫成功的消息。下載文件時(shí),GET請(qǐng)求也通過負(fù)載均衡挑選一臺(tái)Proxy Server,后者上的Ring文件能查詢到這個(gè)文件存儲(chǔ)在哪三個(gè)節(jié)點(diǎn)中,然后同時(shí)去向后端查詢,Proxy Server從中選擇一個(gè)節(jié)點(diǎn)下載文件。
圖6 對(duì)象存儲(chǔ)Swift的部署與文件存取
三、結(jié)束語
企業(yè)及互聯(lián)網(wǎng)數(shù)據(jù)以每年50%的速率在增長,新增數(shù)據(jù)中結(jié)構(gòu)化數(shù)據(jù)總量有限,多數(shù)為非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)中心存儲(chǔ)架構(gòu)隨著業(yè)務(wù)發(fā)展需要極強(qiáng)的彈性適應(yīng)能力,低成本、大容量(海量)擴(kuò)展、高并發(fā)性能是面向大型云數(shù)據(jù)中心運(yùn)營存儲(chǔ)架構(gòu)的基本技術(shù)屬性。如何進(jìn)行數(shù)量龐大且雜亂無章的數(shù)據(jù)存儲(chǔ)與深度應(yīng)用處理,并迅速提取有價(jià)值的信息,形成迅速商業(yè)決策成為各類型企業(yè)生存基礎(chǔ)是今后存儲(chǔ)以及圍繞存儲(chǔ)架構(gòu)不斷衍生的業(yè)務(wù)發(fā)展方向。因此數(shù)據(jù)存儲(chǔ)技術(shù)變革方向必然是分布式并行文件系統(tǒng),并行數(shù)據(jù)庫、高效統(tǒng)一的數(shù)據(jù)裝載及存取,多接口、靈活擴(kuò)展、多業(yè)務(wù)承載的解決方案能力是大容量、海量存儲(chǔ)技術(shù)架構(gòu)的關(guān)鍵。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:數(shù)據(jù)中心存儲(chǔ)架構(gòu)
本文網(wǎng)址:http://www.oesoe.com/html/support/11121518156.html