DRBD概要介紹

 

DRBD簡要介紹

DRBD,Distributed Replicated Block Device html

分佈式冗餘複製塊設備,由相關Linux內核模塊和腳本組成,用以構建高可用性集羣(HA, High Availability clusters)。 node

基於軟件的,無共享架構的,冗餘複製的存儲解決方案,可在服務器之間的對塊設備(磁盤,磁盤的某個分區,LVM邏輯卷等塊設備)進行遠程實時鏡像(mirror)。 數據庫

其實現方式是經過網絡來鏡像整個塊設備,所以,能夠把DRBD看做是一種基於網絡的RAID-1。 緩存

 

======== 安全

高可用集羣是指一組經過硬件和軟件鏈接起來的獨立計算機,它們在用戶面前表現爲一個單一系統,在這樣的一組計算機系統內部的一個或者多個節點中止工做,服務會從故障節點切換到正常工做的節點上運行,不會引發服務中斷。 服務器

========== 網絡

無共享架構(shared-nothing architecture) 架構

Shared nothing架構(shared-nothing architecture)是一種分佈式計算架構。架構中的每個節點( node)都是獨立、自給的,並且整個系統中沒有單點競爭。 異步

Shared Nothing在Web應用開發中尤爲受到歡迎,究其緣由是這種方案提供的scalability。在一個純Shared Nothing系統中,經過簡單地增長一些廉價的計算機作爲系統的節點卻能夠獲取幾乎無限的擴展。正是因爲Shared Nothing架構中不存在單一瓶頸而下降系統運行速度。Google 稱之爲sharding。 分佈式

Shared nothing系統一般須要將他的數據分佈在多個節點的不一樣數據庫中(不一樣的計算機處理不一樣的用戶和查詢)或者要求每一個節點經過使用某些協調協議來保留它本身的應用程序數據備份,這一般被成爲數據庫Sharding。

 

DRBD的基本特性

  1. 實時性:當應用對磁盤的數據進行修改或修改完成時,複製當即發生。
  2. 透明性:應用程序的數據存儲在鏡像設備上是獨立和透明的,數據可存儲在不一樣的服務器上。
  3. 同步鏡像和異步鏡像
  • 同步鏡像,當本地發申請進行寫操做進行時,同步寫到兩臺服務器上
  • 異步鏡像,當本地寫申請已經完成對本地的寫操做時,開始對對應的服務器進行寫操做。

 

DRBD架構概要

 

image

Heartbeat的做用

Heartbeat 項目是 Linux-HA 工程的一個組成部分,它實現了一個高可用集羣系統。心跳服務和集羣通訊是高可用集羣的兩個關鍵組件,在 Heartbeat 項目裏,由 heartbeat 模塊實現了這兩個功能。

failover:失效轉移。通俗地說,即當A沒法爲客戶服務時,系統可以自動地切換,使B可以及時地頂上繼續爲客戶提供服務,且客戶感受不到這個爲他提供服務的對象已經更換。

image

 

DRBD與RAID-1的異同

相同點

  • 都是作鏡像(Mirroring),全冗餘。
  • 都具備高可靠性和安全性。
  • 高可用性。支持"熱替換",即不斷電的狀況下對故障磁盤進行更換。
  • 磁盤的利用率都只有50%

 

不一樣點

  • 實現機制不一樣。DRBD經過網絡進行Mirror鏡像備份。
  • DRBD會感知設備底層的組成部分。而RAID-1雖然有兩個存儲設備,可是對於使用RAID-1系統的應用來講,並不會感知到底層的組成部分,甚至若是有一塊存儲設備讀/寫失效時,也不會被應用感知。

image

 

DRBD組件

分爲內核模塊和用戶空間管理工具.

DRBD技術的核心功能是Linux內核模塊實現的。具體來講,DRBD包含一個虛擬的塊設備。

DRBD技術,是由Linux內核架構所支撐的,它創建在不可知的架構層上面。

所以,DRBD不可能添加了上層所具有的一些新特性。例如,DRBD技術不能自動檢測文件系統損壞或添加雙主動羣集能力,像Ext3或者XFS文件系統。

 

DRBD的另一個重要組件是用戶空間管理工具User space tools,管理和配置DRBD的資源(resource),與DRBD內核模塊進行通訊。

安裝了該工具後,主要有以下命令:

  • drbdadm:高層的DRBD程序管理套件工具。它從配置文件/etc/drbd.conf 中獲取全部配置參數
  • drbd-overview
  • drbdsetup
  • drbdmeta

DRBD的角色

在DRBD中,全部資源都有本身的角色,包括主(Primary)或者次(Secondary)。

Primary設備,能夠進行不受限制的讀/寫操做,可建立和掛載文件系統、初始化或者是直接I/O 的塊設備等等。

Secondary設備,能夠接收全部來自對等設備(Peer)的更新,可是,徹底拒絕訪問也就是不能被使用(掛載)也不能被讀/寫訪問,緣由是爲了保持緩存的一致性。

 

在實際集羣中,主和備的概念是根據存儲的可用性的而肯定,一般狀況下在高可用環境中主節點也每每是活動的節點,可是這不是必須的,也就是資源角色之間能夠轉換。

轉換的方式主要有人工干預(manual intervention)或者用集羣管理工具進行自動轉換。其中資源從Secondary變爲Primary,叫作升級(promotion),反之,資源從Primary變爲Secondary,叫作降級(demotion)

 

人工干預: http://drbd.linbit.com/users-guide-9.0/s-switch-resource-roles.html

自動轉換: http://drbd.linbit.com/users-guide-9.0/s-automatic-promotion.html

peer:對等端,在兩個NameNode的環境下,指另一個NameNode

 

DRBD的資源

在DRBD中,資源是指全部特定的可複製數據集合的總稱,包括:

  • 資源(resource)

image

  • DRBD設備,DRBD管理的虛擬塊設備。它有一個主設備號爲147的設備,默認的它的次要編號從0開始。相關的DRBD塊設備命名爲/dev/drbdX,其中X是設備的次要號碼

  image

  • 配置文件。包括磁盤配置、網絡配置。

 

Metadata 資源的兩種存儲方式:internally和externally。存儲方式是在每一個resource配置段中指定的。這兩種存儲方式各有優缺點。

Internal metadata:

一個resource被配置成使用internal metadata,意味着DRBD把它的metadata,和實際生產數據存儲於相同的底層物理設備中。該存儲方式是在設備的最後位置留出一個區域來存儲metadata。

優勢:由於metadata是和實際生產數據緊密聯繫在一塊兒的,若是發生了硬盤損壞,不須要管理員作額外的工做,由於metadata會隨實際生產數據的丟失而丟失,一樣會隨着生產數據的恢復而恢復。

缺點:若是底層設備只有一塊物理硬盤(和RAID相反),這種存儲方式可能產生寫競爭,對寫操做的吞吐量有負面影響,由於應用程序的寫操做請求會觸發DRBD的metadata的更新。若是metadata存儲於硬盤的同一塊盤片上,那麼,寫操做會致使額外的兩次磁頭讀寫移動。

External metadata:

該存儲方式比較簡單,就是把metadata存儲於一個和生產數據分開的專門的設備塊中。

優勢:對某些寫操做,提供某些潛在的改進。

缺點:由於metadata和生產數據是分開的,若是發生了硬盤損壞,在更換硬盤後,須要管理員進行人工干預,從其它存活的節點向剛替換的硬盤進行徹底的數據同步。

何時應該使用Exteranl的存儲方式:設備中已經存有數據,而該設備不支持擴展(如LVM),也不支持收縮(shrinking)。

相關文章
相關標籤/搜索