系統架構師成長之路(五)

     在計算機發展的初期,“大容量”硬盤的價格還相當高,解決數據存儲安全性問題的主要方法是使用磁帶機等設備進行備份,這種方法雖然可以保證數據的安全,但查閱和備份工作都相當繁瑣。爲什麼大數據集羣不需要做Raid?在集羣規模達到一定規模的時候,爲什麼需要使用DNS

     爲什麼大數據集羣不需要使用RAID

     1.HDFS所提供的節點間複製技術已經滿足了數據備份需求,無需使用Raid的冗餘機制

     2.儘管Raid條帶化技術被廣泛用於提升性能,但是其速度仍然比HDFSJBOD慢,Raid的讀寫操作受限於磁盤陣列中最慢盤片的速度,而JBOD得磁盤操作均獨立,因而平均讀寫速度高於最慢盤片的讀寫速度。

     3.如果JBOD配置的某一磁盤出現故障,HDFS還可以忽略該磁盤,繼續工作。相比之下,raid的某一盤片故障會導致整個磁盤陣列不可用。

     大規模集羣爲什麼需要使用DNS

     在做主機和IP解析的時候,通常的做法是寫hosts文件,但是Hadoop集羣大了以後做hosts文件很麻煩,每次加新的服務器都需要整個集羣重新同步一次hosts文件,另外,如果在同一個域下面做兩個集羣,做distcp,也需要把兩個集羣的hosts文件全寫完整並完全同步,很麻煩。那麼,一勞永逸的辦法就是做DNS

RAID磁盤陣列

     RAID是英文Redundant Array of Independent Disks的縮寫,中文簡稱爲獨立冗餘磁盤陣列。簡單的說,RAID是一種把多塊獨立的硬盤(物理硬盤)按不同的方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能和提供數據備份技術。

     最初開發RAID的主要目的是節省成本,當時幾塊小容量硬盤的價格總和要低於大容量的硬盤。目前來看RAID在節省成本方面的作用並不明顯,但是RAID可以充分發揮出多塊硬盤的優勢,實現遠遠超出任何一塊單獨硬盤的速度和吞吐量。除了性能上的提高之外,RAID還可以提供良好的容錯能力,在任何一塊硬盤出現問題的情況下都可以繼續工作,不會受到損壞磁盤的影響。

RAID分類

     RAID 0連續以位或字節爲單位分割數據,並行讀/寫於多個磁盤上,因此具有很高的數據傳輸率,但它沒有數據冗餘,因此並不能算是真正的RAID結構。RAID 0知識單純地提高性能,並沒有爲數據的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數據。因此,RAID 0不能應用於數據安全性要求高的場合。

    RAID 1它是通過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互爲備份的數據。當原始數據繁忙時,可直接從鏡像拷貝讀取數據,因此RAID 1可以提高讀取性能。RAID 1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重建組失效的數據。

     RAID 0+1也被成爲RAID 10標準,實際是將RAID 0RAID 1標準結合的產物,在連續地以位或字節爲單位分割數據並且並行讀/寫多個磁盤的同時,爲每一塊磁盤作磁盤鏡像進行冗餘。它的優點是同時擁有RAID 0的超凡速度和RAID 1的數據高可靠性,但是CPU佔用率同樣也更高,而且磁盤的利用率比較低。

     RAID 2將數據條塊化地分佈於不同的硬盤上,條塊單位爲位或字節,並使用稱爲“加重平均糾錯碼(海明碼)”的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁盤存放檢查及恢復信息,使得RAID 2技術實施更復雜,因此在商業環境中很少使用。

     RAID 3它同RAID 2非常類似,都是將數據條塊化分佈於不同的硬盤上,區別在於RAID 3使用簡單的奇偶校驗,並使用單塊磁盤存放奇偶校驗信息。如果一塊磁盤失效,奇偶盤及其他數據盤可以重新產生數據;如果奇偶盤失效則不影響數據使用。RAID 3對於大量的連續數據可提供很好的傳輸率,但對於隨機數據來說,奇偶盤會成爲寫操作的瓶頸。

    RAID 4RAID 4同樣也將數據條塊化並分佈於不同的磁盤上,但條塊化單位爲塊或記錄。RAID 4使用一塊磁盤作爲奇偶校驗盤,每次寫操作都需要訪問奇偶盤,這時奇偶校驗盤會成爲寫操作的瓶頸,因此RAID 4在商業環境中也很少使用。

    RAID 5RAID 5不單獨制定的奇偶盤,而是所有磁盤上交叉地存取數據及奇偶校驗信息。在RAID 5上,讀/寫指針可同時對陣列設備進行操作,提供了更高的數據流量。RAID 5更適合於小數據塊和隨機讀寫的數據。

     RAID 3RAID 5相比,最主要的區別在於RAID 3每進行一次數據傳輸就需涉及到所有的陣列盤;而對於RAID 5來說,大部分數據傳輸只對一塊磁盤操作,並可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

    RAID 6:RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的磁盤空間,相對於RAID 5有更大的“寫損失”,因此“寫性能”非常差。較差的性能和複雜的實施方式使得RAID 6很少得到實際應用。

     RAID 7:這是一種新的RAID標準,其自身帶有智能化實時操作系統和用於存儲管理的軟件工具,可完全獨立於主機運行,不佔用主機CPU資源。RAID 7可以看作是一種存儲計算機(Storage Computer),它與其他RAID標準有明顯區別。除了以上的各種標準,我們可以如RAID 0+1那樣結合多種RAID規範來構築所需的RAID陣列,例如RAID 5+3(RAID 53)就是一種應用較爲廣泛的陣列形式。用戶一般可以通過靈活配置磁盤陣列來獲得更加符合其要求的磁盤存儲系統

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章