1. 程式人生 > >分散式檔案系統Hadoop、GoogleFS、RAID介紹

分散式檔案系統Hadoop、GoogleFS、RAID介紹

一、Hadoop

        Hadoop實現了一個分散式檔案系統(Hadoop Distributed File System),簡稱HDFS。HDFS有著高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬體上。而且它提供高傳輸率(high throughput)來訪問應用程式的資料,適合那些有著超大資料集(large data set)的應用程式。

        和MYSQL是建立在作業系統的檔案系統上一樣,Hbase也是建立在HDFS這樣的分散式檔案系統上。HDFS就像您說的,把一個檔案分成64M大小的塊,分佈到叢集裡各臺機器上(一般每一塊保留三個備份,同一機架上兩臺節點儲存其中兩個,另一機架上一個節點儲存另外一個,這樣來保證資料不至於因為一臺機器、一臺機架的宕機、斷網導致資料塊無法訪問),HDFS利用這種方法來儲存一個超大的檔案,使得儲存在不同節點上的檔案看上去像是儲存在本地硬碟的檔案。但是HDFS只儲存資料,對資料的解釋是由其上的程式來處理的。比如您可以利用一個map/reduce的程式來對一個超大檔案進行分析。

       Hbase實現了一個數據庫,和MYSQL類似,支援插入一行、增加一列之類的操作,你在Hbase裡儲存的資料最終會以某種格式存放在HDFS上,Hbase負責解釋這些資料。由於HBase建立在HDFS之上,天生就擁有分散式的儲存系統,這樣即使儲存PB級的資料,也完全可以支撐,相比之下,MYSQL只能執行在單機上,很難管理如此巨量的資料。

二、GoogleFS

        GoogleFS包括一個主伺服器和多個大資料塊伺服器,這些塊伺服器響應多個客戶端的訪問請求。檔案被分割成64MB固定大小的資料塊(Chunk),它分佈在各個塊伺服器上,每個塊在多個伺服器上都存有副本,為了可靠性,一般存放3個副本。塊伺服器使用下層物理檔案系統(如Ext3)來存放資料塊。

        主伺服器負責維護所有檔案系統的元資料,包括名稱空間、檔案至資料塊的對映資訊,訪問控制資訊,以及主存中資料塊的當前位置。之所以將資料塊讀入主存是為了提高主伺服器的操作效能。為了獲得資料塊的位置資訊,主伺服器只在塊伺服器啟動時輪詢一下資料塊資訊,直到新的資料塊產生並在心跳資訊的提示下主伺服器才更新這些位置資訊。客戶端直接使用檔案系統API來訪問主伺服器和塊伺服器。為了減少發給主伺服器的請求數量,客戶端只對元資料進行快取,需要注意的是,客戶端和塊伺服器對檔案資料不進行快取記憶體。GoogleFS採用的副本技術來提高資料可用性,資料塊和元資料都存在副本,比如每個資料塊在3臺塊伺服器上都存在副本;當管理元資料的主伺服器宕機時,備用的"影子"伺服器則切換過來,但它只能提供讀取操作,不支援修改、寫入操作。為了增加資料可恢復性,GoogleFs採用了操作日誌和快照技術。

三、RAID

      RAID 的初衷主要是為了大型伺服器提供高階的儲存功能和冗餘的資料安全。 在系統中,RAID 被看作是一個邏輯分割槽,但是它是由多個硬碟組成的(最少兩塊)。 它通過在多個硬碟上同時儲存和讀取資料來大幅提高儲存系統的資料吞吐量。

      RAID通俗的說就是通過將多個儲存裝置按照一定的形式和方案組織起來,如同使用一個硬碟一樣但是卻通過這樣的形式獲取了比單個儲存裝置更高的速度、更好的穩定性、更大的儲存能力的儲存裝置的解決方案。根據你的需要不同,可以採用不同形式以及不同價格(從幾千元到上百萬元)的RAID解決方案--很顯然,越好的RAID系統,價格越昂貴,所以幾乎沒有最好的RAID系統。

      優點1.傳輸速率高:在RAID中,可以讓很多磁碟驅動器同時傳輸資料,而這些磁碟驅動器在邏輯上又是一個磁碟驅動器,所以使用RAID可以達到單個磁碟驅動器幾倍、幾十倍甚至上百倍的速率。這是RAID最初想要解決的問題。因為CPU的速度增長很快,而磁碟驅動器的資料傳輸速率無法大幅提高,所以RAID解決了。

      優點2.提供容錯功能:這是使用RAID的第二個原因,因為普通磁碟驅動器無法提供容錯功能,如果不包括寫在磁碟上的CRC(迴圈冗餘校驗)碼的話。RAID容錯是建立在每個磁碟驅動器的硬體容錯功能之上的,所以它提供更高的安全性。

、直連式儲存(DAS)、儲存區域網路(SAN)、網路接入儲存(NAS)

        DAS——直連式儲存,這種出現相對較早的儲存方式,主要是將儲存裝置外掛於伺服器上,其構造與PC相同,將磁碟、多磁碟陣列或者磁帶等儲存介質以外設方式直接連線到伺服器總線上。這種儲存方式較適用於以往資訊量不大,應用需求不高的環境下,但顯然不能勝任今天海量的資料環境。

        SAN——儲存區域網路,即通過特定的互連方式連線的若干臺儲存伺服器組成一個單獨的資料網路,提供企業級的資料儲存服務。 SAN是一種特殊的高速網路,連線網路伺服器和諸如大磁碟陣列或備份磁帶庫的儲存裝置,SAN置於LAN之下,而不涉及LAN。利用SAN,不僅可以提供大容量的儲存資料,而且地域上可以分散,並緩解了大量資料傳輸對於區域網的影響。SAN的結構允許任何伺服器連線到任何儲存陣列,不管資料置放在哪裡,伺服器都可直接存取所需的資料。

        NAS——網路附加儲存,即將儲存裝置通過標準的網路拓撲結構(乙太網),連線到一群計算機上。NAS實際上是一個帶有瘦伺服器的儲存裝置,其作用類似於一個專用的檔案伺服器。NAS儲存裝置與網路直接相連,使用者通過網路對其進行訪問。NAS伺服器一般由儲存硬體、作業系統以及其上的檔案系統等幾個部分組成。簡單的說,NAS是通過與網路直接連線的磁碟陣列,它具備了磁碟陣列的所有主要特徵:高容量、高效能、高可靠。NAS將儲存裝置通過標準的網路拓撲結構連線,可以無需伺服器直接上網,不依賴通用的作業系統,而是採用一個面向使用者設計的、專門用於資料儲存的簡化作業系統,內建了與網路連線所需的協議,因此使整個系統的管理和設定較為簡單。其次NAS是真正即插即用的產品,並且物理位置靈活,可放置在工作組內,也可放在其他地點與網路連線。因此,使用者選擇NAS解決方案,原因在於NAS價格合理、便於管理、靈活且能實現檔案共享。