官术网_书友最值得收藏!

3.3 存儲虛擬化(大數據存儲)

提起大數據,最容易想到的便是其數據量之龐大。如何高效地保存和管理這些海量數據是存儲面臨的首要問題。此外,大數據還有諸如種類結構不一、數據源雜多、增長速度快,以及存取形式和應用需求多樣化等特點。 

存儲虛擬化最通俗的理解就是對一個或者多個存儲硬件資源進行抽象,提供統一的、更有效的全面存儲服務。從用戶的角度來說,存儲虛擬化就像一個存儲的大池子,用戶看不到也不需要看到后面的磁盤和磁帶,也不必關心數據是通過哪條路徑存儲到硬件上的。 

存儲虛擬化分為兩大類:塊虛擬化(Block virtualizatlon)和文件虛擬化(File virtualization)。塊虛擬化就是將不同結構的物理存儲抽象成統一的邏輯存儲,這種抽象和隔離可以讓存儲系統的管理員為終端用戶提供更靈活的服務。文件虛擬化則是幫助用戶,使其在一個多結點的分布式存儲環境中再也不用關心文件的具體物理存儲位置了。 

3.3.1 傳統存儲系統時代

計算機的外部存儲系統,如果從1956年IBM制造出第一塊硬盤算起,發展至今已經有半個多世紀了。在這半個多世紀里,存儲介質和存儲系統都取得了很大的發展和進步。當時,IBM為RAMAC 305系統制造出的第一塊硬盤只有5MB的容量,而成本卻高達50000美元,平均每MB存儲需要10000美元。而現在的硬盤容量可高達幾個TB,成本則降至差不多8美分/GB。 

目前傳統存儲系統的架構主要包括DAS、NAS和SAN這3種。 

1.DAS(Direct-Attached Storage,直連式存儲) 

DAS是一種通過總線適配器直接將硬盤等存儲介質連接到主機上的存儲方式,在存儲設備和主機之間通常沒有任何網絡設備的參與。可以說DAS是最原始、最基本的存儲架構方式,在個人計算機和服務器上也最為常見。DAS的優勢在于架構簡單、成本低廉及讀寫效率高等;缺點是容量有限,難以共享,從而容易形成“信息孤島”。 

2.NAS(Network-Attached Storage,網絡存儲系統) 

NAS是一種提供文件級別訪問接口的網絡存儲系統,通常采用NFS、SMB/CIFS等網絡文件共享協議進行文件存取。NAS支持多客戶端同時訪問,為服務器提供了大容量的集中式存儲,從而也方便了服務器間的數據共享。 

3.SAN(Storage Area Network,存儲區域網絡) 

SAN通過光纖交換機等高速網絡設備在服務器和磁盤陣列等存儲設備間搭設專門的存儲網絡,從而提供高性能的存儲系統。 

SAN與NAS的基本區別在于其提供塊(block)級別的訪問接口,一般并不同時提供一個文件系統。通常情況下,服務器需要通過SCSI等訪問協議將SAN存儲映射為本地磁盤,在其上創建文件系統后進行使用。目前主流的企業級NAS或SAN存儲產品一般都可以提供TB級的存儲容量,當然高端的存儲產品也可以提供高達幾個PB的存儲容量。 

3.3.2 大數據時代的新挑戰 

相對于傳統的存儲系統,大數據存儲一般與上層的應用系統結合得更緊密。很多新興的大數據存儲都是專門為特定的大數據應用設計和開發的,比如專門用來存放大量圖片或者小文件的在線存儲,或者支持實時事務的高性能存儲等。因此,不同的應用場景,其底層大數據存儲的特點也不盡相同。但是,結合當前主流的大數據存儲系統(見圖3-5),可以總結出以下一些基本特點。 

978-7-111-53304-7-Chapter03-5.jpg

圖3-5 存儲系統

1.大容量及高可擴展性 

大數據一般可達到幾個PB甚至EB級的信息量,傳統的NAS或SAN存儲一般很難達到這個級別的存儲容量。大數據的主要來源包括社交網站、個人信息、科學研究數據、在線事務、系統日志,以及傳感和監控數據等。各種應用系統源源不斷地產生著大量數據,尤其是社交類網站的興起,更加快了數據增長的速度。比如,Instagram網站每天用戶上傳的圖片數量高達500萬張,而新浪微博宣布其用戶平均每天發布超過l億條微博。因此,除了巨大的存儲容量外,大數據存儲還必須擁有一定的可擴容能力。擴容包括Scale-up和Scale-out兩種方式。鑒于前者擴容能力有限且成本一般較高,因此能夠提供Scale-out能力的大數據存儲已經成為主流趨勢。 

2.高可用性 

對于大數據應用和服務來說,數據是其價值所在。因此,存儲系統的可用性至關重要。平均無故障時間(MTTF)和平均維修時間(MTTR)是衡量存儲系統可用性的兩個主要指標。傳統存儲系統一般采用RAID、數據通道冗余等方式保證數據的高可用性和高可靠性。除了這些傳統的技術手段外,大數據存儲還會采用其他一些技術。比如,分布式存儲系統中多采用簡單明了得多的副本來實現數據冗余;針對RAID導致的數據冗余率過高或者大容量磁盤的修復時間過長等問題,近年來學術界和工業界研究或采用了其他的編碼方式。 

3.高性能 

在考量大數據存儲性能時,吞吐率、延時和IOPS是其中幾個較為重要的指標。對于一些實時事務分析系統,存儲的響應速度至關重要;而在其他一些大數據應用場景中,每秒處理的事務數則可能是最重要的影響因素。大數據存儲系統的設計往往需要在大容量、高可擴展性、高可用性和高性能等特性間做出一個權衡。 

4.安全性 

大數據具有巨大的潛在商業價值,這也是大數據分析和數據挖掘興起的重要原因之一。因此,數據安全對于企業來說至關重要。數據的安全性體現在存儲如何保證數據完整性和持久化等方面。在云計算和云存儲行業風生水起的大背景下,如何在多租戶環境中保護好用戶隱私和數據安全成為大數據存儲面臨的一個新挑戰。 

5.自管理和自修復 

隨著數據量的增加和數據結構的多樣化,大數據存儲的系統架構也變得更加復雜,管理和維護便成了一大難題。這個問題在分布式存儲中尤其突出。因此,能夠實現自我管理、監測及自我修復將成為大數據存儲系統的重要特性之一。 

6.成本 

大數據存儲系統的成本包括存儲成本、使用成本和維護成本等。如何有效降低單位存儲給企業帶來的成本問題,在大數據背景下顯得極為重要。如果大數據存儲的成本降不下來,動輒幾個TB或者PB的數據量將會讓很多中小型企業在大數據掘金浪潮中望洋興嘆。 

7.訪問接口的多樣化 

同一份數據可能會被多個部門、用戶或者應用來訪問、處理和分析。不同的應用系統由于業務不同可能會采用不同的數據訪問方式。因此,大數據存儲系統需要提供多種接口來支持不同的應用系統。 

3.3.3 分布式存儲

大數據導致了數據量的爆發式增長,傳統的集中式存儲(比如NAS或SAN)在容量和性能上都無法較好地滿足大數據的需求。因此,具有優秀的可擴展能力的分布式存儲成為大數據存儲的主流架構方式。分布式存儲多以普通的硬件設備作為基礎設施,因此,單位容量的存儲成本也得到大大降低。另外,分布式存儲在性能、維護性和容災性等方面也具有不同程度的優勢。 

分布式存儲系統需要解決的關鍵技術問題包括可擴展性、數據冗余、數據一致性、全局命名空間和緩存等,從架構上講,大體上可以將分布式存儲分為C/S(Client-Server)架構和P2P(Peer-to-Peer)架構兩種。當然,也有一些分布式存儲中會同時存在這兩種架構方式。 

分布式存儲面臨的另外一個共同問題,就是如何組織和管理成員結點,以及如何建立數據與結點之間的映射關系。成員結點的動態增加或者離開,在分布式系統中基本上可以算是一種常態。 

Eric Brewer于2000年提出的分布式系統設計的CAP理論指出,一個分布式系統不可能同時保證一致性(Consistency)、可用性(Availability)和分區容忍性(Partition tolerance)這三個要素。因此,任何一個分布式存儲系統也只能根據其具體的業務特征和具體需求,最大地優化其中的兩個要素。當然,除了一致性、可用性和分區容忍性這三個維度,一個分布式存儲系統往往會根據具體業務的不同,在特性設計上有不同的取舍,比如,是否需要緩存模塊、是否支持通用的文件系統接口等。

3.3.4 云存儲及存儲虛擬化

云存儲是由第三方運營商提供的在線存儲系統,如面向個人用戶的在線網盤和面向企業的文件、塊或對象存儲系統等。云存儲的運營商負責數據中心的部署、運營和維護等工作,將數據存儲包裝成服務的形式提供給客戶。云存儲作為云計算的延伸和重要組件之一,提供了“按需分配、按量計費”的數據存儲服務。因此,云存儲的用戶不需要搭建自己的數據中心和基礎架構,也不需要關心底層存儲系統的管理和維護等工作,并可以根據其業務需求動態地擴大或減小其對存儲容量的需求。 

云存儲通過運營商來集中、統一地部署和管理存儲系統,降低了數據存儲的成本,從而也降低了大數據行業的準入門檻,為中小型企業進軍大數據行業提供了可能性。比如,著名的在線文件存儲服務提供商Dropbox,就是基于AWS(Amazon Web Services)提供的在線存儲系統S3創立起來的。在云存儲興起之前,創辦類似于Dropbox這樣的初創公司幾乎不太可能。 

云存儲背后使用的存儲系統其實多是采用分布式架構,而云存儲因其更多新的應用場景,在設計上也遇到了新的問題和需求。比如,云存儲在管理系統和訪問接口上大都需要解決如何支持多租戶的訪問方式,而多租戶環境下就無可避免地要解決諸如安全、性能隔離等一系列問題。另外,云存儲和云計算一樣,都需要解決的一個共同難題就是關于信任Trust)問題—如何從技術上保證企業的業務數據放在第三方存儲服務提供商平臺上的隱私和安全,的確是一個必須解決的技術挑戰。 

將存儲作為服務的形式提供給用戶,云存儲在訪問接口上一般都會秉承簡潔易用的特性。比如,亞馬遜的S3存儲通過標準的HTTP協議和簡單的REST接口進行存取數據,用戶分別通過Get、Put和Delete等HTTP方法進行數據塊的獲取、存放和刪除等操作。出于操作簡便方面的考慮,亞馬遜S3服務并不提供修改或者重命名等操作;同時,亞馬遜S3服務也并不提供復雜的數據目錄結構,而僅僅提供非常簡單的層級關系;用戶可以創建一個自己的數據桶(bucket),所有的數據直接存儲在這個bucket中。另外,云存儲還需要解決用戶分享的問題。亞馬遜S3存儲中的數據直接通過唯一的URL進行訪問和標識,因此,只要其他用戶經過授權,便可以通過數據的URL進行訪問了。

存儲虛擬化是云存儲的一個重要技術基礎,是通過抽象和封裝底層存儲系統的物理特性,將多個互相隔離的存儲系統統一化為一個抽象的資源池的技術。通過存儲虛擬化技術,云存儲可以實現很多新的特性。比如,用戶數據在邏輯上的隔離、存儲空間的精簡配置等。 

3.3.5 大數據存儲的其他需求及特點 

大數據存儲的其他需求及特點包括下面兩個。 

1.去重(Deduplication) 

數據快速增長是數據中心最大的挑戰。顯而易見,爆炸式的數據增長會消耗巨大的存儲空間,迫使數據提供商購買更多的存儲,然而卻未必能趕上數據的增長速度。這里有幾個相關問題值得考慮:產生的數據是不是都被生產系統循環使用?如果不是,是不是可以把這些數據放到廉價的存儲系統中?如何讓數據備份消耗的存儲更低?如何讓備份的時間更快?數據備份后能保存的時間有多久(物理介質原因)?備份后的數據能不能正常取出? 

所謂“去重”,即去除重復數據。數據去重大概可以分為基于文件級別的去重和基于數據塊級別的去重。一般來講,數據切成塊(chunk)有兩種分類:定長(Fixed size)和變長Variable size)。所謂定長,就是把一個接收到的數據流或者文件按照相同的大小切分,每個chunk都有一個獨立的“指紋”。從實現角度來講,定長文件的切片實現和管理比較簡單,但是數據去重的比率較低。這也是容易理解的,因為每個chunk在文件中都有固定的偏移。但是在最壞情況下,如果這個文件在文件增加或者減少一個字符,將導致所有chunk的“指紋”發生變化。最差的結果是:備份兩個僅差一個字符的文件,導致重復數據刪除率等于零。這顯然是不可接受的。為此,變長chunk技術應運而生,它不是簡單地根據文件偏移來劃分chunk,而是根據anchor(某個標記)來對數據分片。由于找的是特殊的標記,而不是數據的偏移,因此能完美地解決定長chunk中由于數據偏移略有變化而導致的低數據去重比率。 

2.分層存儲(Tiered Storage) 

眾所周知,性能好的存儲介質往往價格也很高。如何通過組合高性能、高成本的小容量存儲介質和低性能、低成本的大容量存儲介質,使其達到性能、價格、容量及功能上的最大優化,是一個經典的存儲問題。例如,計算機系統上通過從外部存儲(如硬盤等)到內存、緩存等一系列存儲介質組成的存儲金字塔,很好地解決了CPU的數據訪問瓶頸問題。分層存儲是存儲系統領域試圖解決類似問題的一個技術手段。近年來,各種新存儲介質的誕生給存儲系統帶來了新的希望,尤其是Flash和SSD(Solid-State Drive)存儲技術的成熟及其量化生產,使其在存儲產品中得到越來越廣泛的使用。然而,企業存儲,尤其是大數據存儲,全部使用SSD作為存儲介質,其成本依然是一個大問題。 

為了能夠更好地發揮新的存儲介質在讀、寫性能上的優勢,同時將存儲的總體成本控制在可接受的范圍之內,分層存儲系統應運而生。分層存儲系統集SSD和硬盤等存儲媒介于一體,通過智能監控和分析數據的訪問“熱度”,將不同熱度的數據自動、適時地動態遷移到不同的存儲介質上。經常被訪問的數據將被遷移到讀、寫性能好的SSD存儲上,不常被訪問的數據則會被存放在性能一般且價格低廉的硬盤矩陣上。這樣,分層存儲系統在保證不增加太多成本的前提下,大大提高了存儲系統的讀、寫性能。

主站蜘蛛池模板: 怀来县| 德庆县| 抚顺市| 手游| 夏津县| 岢岚县| 长沙市| 西吉县| 巴彦淖尔市| 武鸣县| 西城区| 外汇| 扎兰屯市| 怀集县| 弋阳县| 蒙阴县| 扶绥县| 新乡市| 齐齐哈尔市| 汽车| 延长县| 榆林市| 惠水县| 明星| 隆回县| 淳安县| 宜宾县| 民县| 新巴尔虎右旗| 工布江达县| 高台县| 旬阳县| 休宁县| 宾川县| 福州市| 和政县| 沁水县| 北流市| 腾冲县| 张北县| 阿拉善右旗|