一、高性能大數(shù)據(jù)分析存儲(chǔ)框架
? 傳統(tǒng)HPC存儲(chǔ)系統(tǒng)存在的不足:
1、現(xiàn)今的存儲(chǔ)系統(tǒng)大多由不同供應(yīng)商們提供的不同技術(shù)部件組合而成,缺乏端到端的設(shè)計(jì)、傳輸數(shù)據(jù)的高性能計(jì)算問(wèn)題,增加了如測(cè)試和質(zhì)量管理過(guò)程的的復(fù)雜度。同時(shí),不同供應(yīng)商的高性能存儲(chǔ)系統(tǒng)占空間,高耗能,多個(gè)高性能應(yīng)用運(yùn)行時(shí)產(chǎn)生I/O瓶頸,還引起用戶對(duì)該存儲(chǔ)系統(tǒng)的擔(dān)心,諸如生存周期問(wèn)題。
2、自動(dòng)配置和處理的不足。由于設(shè)計(jì)到多個(gè)供應(yīng)商的不同部件安裝組合,高性能系統(tǒng)的安裝配置過(guò)程就顯得耗時(shí)、麻煩,造成系統(tǒng)更難適應(yīng)動(dòng)態(tài)變化的需求,對(duì)于每一個(gè)高性能應(yīng)用程序都需要再一次重復(fù)配置和處理程序安裝,不僅影響用戶的高效性交互,而且降低了整個(gè)系統(tǒng)的可靠性和高效性。
3、缺少核心軟件管理。由于傳統(tǒng)高性能存儲(chǔ)系統(tǒng)缺乏軟件管理的設(shè)計(jì)開發(fā),如缺少?gòu)?fù)雜的診斷工具(日志分析、故障處理),用戶在獲取性能、記錄系統(tǒng)參數(shù)的時(shí)候很困難。
? 隨著數(shù)據(jù)規(guī)模的擴(kuò)大,解決上述問(wèn)題就變得更加困難,特別是配置管理,維護(hù),整合,所以目前急需一種特定的滿足高性能計(jì)算應(yīng)用的存儲(chǔ)框架。
1、從DAS(Direct-Attached Storage)說(shuō)起
? 故名思議,不解釋。。。
? 主要介紹在DAS架構(gòu)中存儲(chǔ)設(shè)備支持的幾個(gè)流行I/O接口:
1)、SCSI (Small Computer System Interface)
? SCSI 接口用來(lái)直接連接磁盤驅(qū)動(dòng)和磁帶驅(qū)動(dòng)到服務(wù)或客戶端設(shè)備的,也可以用來(lái)連接打印機(jī)、掃描儀等外部設(shè)備,最新版本的SCSI Ultra320數(shù)據(jù)傳輸速度320MB/S,序列傳輸SAS(Serial Attached SCSI)數(shù)據(jù)傳輸達(dá)到6GB/S,相比其他在性能和擴(kuò)展性方面表現(xiàn)突出。
2)、Integrated Device Electronics/Advanced Technology Attachment (IDE/ATA)====》并行接口!!!
??? IDE/ATA 指的是一種特殊的連接在主板上的控制器,用于與附加設(shè)備通信傳輸。ATA部件指的是連接存儲(chǔ)設(shè)備到主板上的接口,如CD-ROMs,硬盤驅(qū)動(dòng),磁帶驅(qū)動(dòng)。最新版本Ultra DMA(UDAM)數(shù)據(jù)傳輸高達(dá)133Mb/s。
? 另外一號(hào)SATA ,是串行接口,數(shù)據(jù)傳輸達(dá)到6Gb/s。
3)、 disk drive與tap drive
??? disk drive相比于 tap drive來(lái)說(shuō)更適合作存儲(chǔ)媒介,原因是tap drive有幾個(gè)不足之處:(1)數(shù)據(jù)在tap上是順序存儲(chǔ)的,按照順序查詢操作;(2)不能多用戶同時(shí)訪問(wèn)存儲(chǔ)于tap上的數(shù)據(jù);(3)讀寫頭在tap的表面,數(shù)據(jù)很快就被擦除;(3)空間占用較disk大。而disk硬盤隨機(jī)查詢,可以多個(gè)應(yīng)用程序同時(shí)訪問(wèn)存儲(chǔ)于disk上的數(shù)據(jù)。
2、SAN (Storage area Network存儲(chǔ)局域網(wǎng)架構(gòu)): 分為兩種:FC SAN(光線通道協(xié)議SAN)、TCP/IP SAN
? ? 采用SCSI塊I/O的命令集,通過(guò)FC訪問(wèn)數(shù)據(jù),具有高帶寬、低延遲的優(yōu)勢(shì),在高性能計(jì)算中占有一席之地,如SGI的CXFS文件系統(tǒng)就是基于SAN實(shí)現(xiàn)高性能文件存儲(chǔ)的,但是由于SAN系統(tǒng)的價(jià)格較高,且可擴(kuò)展性較差,已不能滿足成千上萬(wàn)個(gè)CPU規(guī)模的系統(tǒng)。
3、NAS 它采用NFS或CIFS命令集訪問(wèn)數(shù)據(jù),以文件為傳輸協(xié)議,通過(guò)TCP/IP實(shí)現(xiàn)網(wǎng)絡(luò)化存儲(chǔ),可擴(kuò)展性好、價(jià)格便宜、用戶易管理,如目前在集群計(jì)算中應(yīng)用較多的NFS文件系統(tǒng),但由于NAS的協(xié)議開銷高、帶寬低、延遲大,不利于在高性能集群中應(yīng)用。
4、對(duì)象存儲(chǔ)結(jié)構(gòu) Object-based Storage Device,OSD
??? 數(shù)據(jù)訪問(wèn)有三種類型:
? 1)、塊級(jí)訪問(wèn):數(shù)據(jù)在固定大小的區(qū)塊上進(jìn)行存取。
? ? ? ? FC SAN采用塊級(jí)訪問(wèn)機(jī)制從存儲(chǔ)設(shè)備中獲取數(shù)據(jù)。主要由客戶端、支持FC協(xié)議的存儲(chǔ)設(shè)備或存儲(chǔ)陣列、光纖材料、交換機(jī)或路由、主機(jī)適配器組成,數(shù)據(jù)傳輸速率達(dá)16Gb/s,高度可擴(kuò)展,但是成本高昂(不適合大數(shù)據(jù)應(yīng)用的存儲(chǔ))。
???? 建立交換矩陣SAN可以使用一個(gè)或多個(gè)光纖通道交換機(jī),然而只有當(dāng)所有存儲(chǔ)設(shè)備的網(wǎng)卡象操作系統(tǒng)和應(yīng)用一樣能夠連接到這一交換矩陣上,才有可能訪問(wèn)由這一交換矩陣所提供的服務(wù)。這是因?yàn)槭紫染W(wǎng)卡要通過(guò)登錄到這一交換矩陣來(lái)成為網(wǎng)絡(luò)的一個(gè)成員,這一過(guò)程稱作FabricLogin。因而顯而易見,在組建SAN時(shí)選用支持Fabric Login的網(wǎng)卡是非常重要的。
??? 相比之下,IP SAN(Internet Protocol Storage Area Network)成本較低,也是采用塊級(jí)訪問(wèn)機(jī)制,其中iSCSI(SCSI over IP)是使用SCSI命令集的基于TCP/IP網(wǎng)絡(luò)協(xié)議的存儲(chǔ)網(wǎng),不僅成本低,采用1/10 Gb以太網(wǎng)傳輸,減少了網(wǎng)絡(luò)復(fù)雜度,而且?guī)讉€(gè)支持iSCSI的存儲(chǔ)陣列能提供百萬(wàn)級(jí)的iSCSI IOPS來(lái)處理大數(shù)據(jù)應(yīng)用的高性能問(wèn)題,但是對(duì)于選擇iSCSI作為存儲(chǔ)大數(shù)據(jù)的網(wǎng)絡(luò)架構(gòu)不足的是不能支持文件級(jí)存儲(chǔ)。
??? 2)、文件訪問(wèn):文件服務(wù)器利用IP網(wǎng)訪問(wèn)其提供的共享存儲(chǔ),通過(guò)文件名和路徑訪問(wèn)文件。例如,NAS(network-attached storage).
? ?? 3)、對(duì)象級(jí)訪問(wèn):數(shù)據(jù)訪問(wèn)在大小可變的稱作對(duì)象的塊區(qū)上。
? ? ? 每一個(gè)對(duì)象是一個(gè)包括數(shù)據(jù)和與之相關(guān)屬性的容器,由唯一地object ID(由128bit隨機(jī)數(shù)產(chǎn)生)進(jìn)行標(biāo)志,基于對(duì)象的存儲(chǔ)機(jī)制適用于存取非結(jié)構(gòu)化的數(shù)據(jù),它主要特征是可以為每個(gè)對(duì)象提供豐富的元數(shù)據(jù),從而利用這些元數(shù)據(jù)高效地對(duì)數(shù)據(jù)(特別是非結(jié)構(gòu)化數(shù)據(jù))操作和管理。具體的說(shuō),利用對(duì)象實(shí)體內(nèi)的命令來(lái)對(duì)數(shù)據(jù)進(jìn)行如創(chuàng)建、刪除等操作,唯一的object ID標(biāo)志方法管理每個(gè)對(duì)象,關(guān)于對(duì)象的其他信息,如位置,大小等被管理存儲(chǔ)于元數(shù)據(jù)中。另外,存儲(chǔ)于對(duì)象存儲(chǔ)設(shè)備中的數(shù)據(jù)通過(guò)Representation State Transfer(REST)和Simple Object Access Protocol(SOAP)進(jìn)行訪問(wèn);某些類型的對(duì)象存儲(chǔ)設(shè)備還提供對(duì)HTTP,XML等協(xié)議的支持。
??? 基于對(duì)象存儲(chǔ)的 機(jī)制一般不會(huì)對(duì)并發(fā)讀/寫、文件鎖、權(quán)限等有額外的負(fù)擔(dān),它在大規(guī)模拓展和性能上有極大提升;并且,每一個(gè)對(duì)象賦予豐富的元數(shù)據(jù)對(duì)性能分析非常有效,因此,對(duì)象存儲(chǔ)設(shè)備對(duì)于高性能大數(shù)據(jù)應(yīng)用產(chǎn)生的數(shù)據(jù)進(jìn)行存儲(chǔ)是個(gè)理想的選擇。
3、大數(shù)據(jù)存儲(chǔ)架構(gòu)總結(jié)
??
?1)靈活性:有能力存儲(chǔ)不同類型、不同格式的數(shù)據(jù);
?2) 支持異構(gòu)環(huán)境:在不需要修改任何配置,應(yīng)用服務(wù)器能夠通過(guò)LAN或SAN訪問(wèn)大量多種文件資源。
?3) 支持存儲(chǔ)虛擬化:能夠匯集不同類型存儲(chǔ)設(shè)備的數(shù)據(jù),并對(duì)存儲(chǔ)資源在一個(gè)單元下進(jìn)行高效的管理。
?4) 高性能:針對(duì)許多大數(shù)據(jù)應(yīng)用需要實(shí)時(shí)數(shù)據(jù)響應(yīng)的需求,就要求存儲(chǔ)架構(gòu)的設(shè)計(jì)具有高速進(jìn)行數(shù)據(jù)處理的能力。
?5) 擴(kuò)展:及時(shí)依據(jù)大數(shù)據(jù)需求快速擴(kuò)展。
? 1)FC SAN,屬于最推崇的存儲(chǔ)局域網(wǎng)之一,塊級(jí)存儲(chǔ),成本高昂,不推薦作為大數(shù)據(jù)存儲(chǔ)網(wǎng)絡(luò)架構(gòu)。
?? 2)IP SAN,基于此之上的iSCSI,成本較低,塊級(jí)存儲(chǔ),但是不支持大數(shù)據(jù)文件級(jí)訪問(wèn),不推薦
? 3)Fiber Channel Over Ethernet (FCoE),以太網(wǎng)的光纖傳輸通道技術(shù),一種通訊技術(shù),成本高昂,不推薦
? 4)Network -Attached Storage (NAS),文件級(jí)存儲(chǔ)
?在此基礎(chǔ)上作改進(jìn)的scale-out NAS被很多組織采納作為大數(shù)據(jù)存儲(chǔ),優(yōu)點(diǎn):高擴(kuò)展,它可以根據(jù)需求增加額外的存儲(chǔ)設(shè)備;靈活性高,可以用于UNIX和Windows平臺(tái)上,可被客戶端或服務(wù)器端訪問(wèn);10Gb以太網(wǎng)數(shù)據(jù)傳輸,性能提升。
?? 市場(chǎng)上Scale-out NAS存儲(chǔ)供應(yīng)商有EMC Isilon,IBM Scale-Out Network -Attached Storage (SONAS), and NetApp NAS
4、用于大數(shù)據(jù)分析的流行文件系統(tǒng)
?? 常見的GFS、HDFS、Panasas,下面主要了解集群高性能并行文件系統(tǒng)(Luster File System)。
1)集群高性能并行文件系統(tǒng)——基于linux系統(tǒng),采用內(nèi)核模塊傳輸實(shí)現(xiàn)高性能
?? 它能夠靈活的支持不同類型的客戶端,運(yùn)行于任何硬件之上
1. HDFS使用集中式單一節(jié)點(diǎn)架構(gòu)(NameNode)來(lái)維護(hù)文件系統(tǒng)元數(shù)據(jù),而在Swift中,元數(shù)據(jù)分布在整個(gè)集群中并擁有多個(gè)副本。注意:集中式元數(shù)據(jù)存儲(chǔ)使HDFS存在性能、單點(diǎn)故障和擴(kuò)展性問(wèn)題,因此規(guī)模越大就性能越低,就越容易不可用,就越難擴(kuò)展甚至不能擴(kuò)展,所幸的是HDFS2使用NameNode HA和HDFS Federation解決了這三個(gè)問(wèn)題。2. Swift在設(shè)計(jì)時(shí)考慮到了多租戶架構(gòu),而HDFS沒有多租戶架構(gòu)這個(gè)概念。3. HDFS針對(duì)大文件作了優(yōu)化(HDFS關(guān)注吞吐量,常用于批量數(shù)據(jù)處理),而Swift被設(shè)計(jì)成可以存儲(chǔ)任意大小的文件。4. 在HDFS中,文件只能寫入一次(部分版本可以使用Append操作在文件的末尾添加數(shù)據(jù),但不支持在文件的任意位置進(jìn)行修改),而在Swift中,文件可以寫入多次。5. HDFS用Java來(lái)編寫,而Swift用Python來(lái)編寫。