一、 什麼是drbd
drbd的全稱為:distributed replicated block device (drbd)分布式塊裝置複製,drbd是由核心模組和相關指令碼而構成,用以構建高可用性的集群。其實現方式是通過網路來映象整個裝置。它允許使用者在遠端機器上建立乙個本地塊裝置的實時映象。與心跳連線結合使用,也可以把它看作是一種網路raid。
二、drbd是如何工作的
drbd 負責接收資料,把資料寫到本地磁碟,然後傳送給另乙個主機。另乙個主機再將資料存到自己的磁碟中。目前,drbd 每次只允許對乙個節點進行讀寫訪問,這對於通常的故障切換高可用性集群來講已經足夠用了。以後的版本將支援兩個節點進行讀寫訪問。
三、 drbd與現在的ha集群的關係
乙個drbd系統由兩個以上節點構成,與ha集群類似,也有主用節點和備用節點之分,在帶有主要裝置的節點上,應用程式和作業系統可以執行和訪問drbd裝置(/dev/nbx)。
在主節點寫入的資料通過drbd裝置儲存到主節點的磁碟裝置中,同時,這個資料也會自動傳送到備用節點相應的drbd裝置,最終寫入備用節點的磁碟裝置中,在備用節點上,drbd只是將資料從drbd裝置寫入到備用節點的磁碟裝置中。
大部分現行高可用性集群都會使用共享儲存,而drbd也可以作為乙個共享儲存裝置,使用drbd不需要任何硬體的投資。因為它在ip網路中執行,所以,利用drbd作為共享儲存裝置,要節約很多成本,因為在**上ip網路要比專用的儲存網路經濟的多。
四、 drbd實現原理圖
drbd是linux的核心的儲存層中的乙個分布式儲存系統,可用使用drbd在兩台linux伺服器之間共享塊裝置,共享檔案系統和資料。類似於乙個網路raid1的功能,如圖1所示:
圖1六、配置drdb
drbd執行需要讀取/etc/drbd.conf配置檔案,下面是兩台主機節點配置的drbd.conf檔案的簡單示例:
[root@drbd1 ~]#cat /etc/drbd.conf
## drbd.conf
## create by [email protected] at 2010-08-12
global
common
#設定主備節點同步時的網路速率最大值,單位是位元組。
}resource r0
net
disk
startup
device /dev/drbd0;
on dbm157 中為這個主機的配置。
disk /dev/sda2;
#/dev/drbd0使用的磁碟分割槽是/dev/sda2。
address 192.168.0.157:7788;
#設定drbd的監聽埠,用於與另一台主機通訊。
meta-disk internal;
}on dbm158
七、啟動drbd
1 在兩個節點執行
在啟動drbd之前,你需要分別在兩台主機的hdb1分割槽上,建立供drbd記錄資訊的資料塊.分別在兩台主機上執行:
[root@drbd1 ~]# drbdadm create-md r0 或者執行drbdadm create-md all
[root@drbd2 ~]# drbdadm create-md r0
2在兩個節點啟動服務
[root@drbd1 ~]#/etc/init.d/drbd start
[root@drbd2 ~]#/etc/init.d/drbd start
最好同時啟動
3在任意節點檢視節點狀態
[root@drbd1 ~]# cat /proc/drbd
1: cs:connected ro:secondary/secondary ds:inconsistent/inconsistent c r----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:2007644
對輸出的含**釋如下:
ro表示角色資訊,第一次啟動drbd時,兩個drbd節點預設都處於secondary狀態,
ds是磁碟狀態資訊,「inconsistent/inconsisten」,即為「不一致/不一致」狀態,表示兩個節點的磁碟資料處於不一致狀態。
ns表示網路傳送的資料報資訊。
dw是磁碟寫資訊
dr是磁碟讀資訊
4設定主節點
由於預設沒有主次節點之分,因而需要設定兩個主機的主次節點,選擇需要設定為主節點的主機,然後執行如下命令:
[root@drbd1 ~]#drbdsetup /dev/drbd0 primary –o
或者執行下面命令也是可以的
[root@drbd1 ~]#drbdadm -- --overwrite-data-of-peer primary all
第一次執行完此命令後,在後面如果需要設定哪個是主節點時,就可以使用另外乙個命令:
[root@drbd1 ~]#/sbin/drbdadm primary r0或者/sbin/drbdadm primary all
執行此命令後,開始同步兩台機器對應磁碟的資料
[root@drbd1 ~]#cat /proc/drbd
1: cs:syncsource ro:primary/secondary ds:uptodate/inconsistent c r----
ns:576224 nr:0 dw:0 dr:581760 al:0 bm:34 lo:84 pe:369 ua:256 ap:0 ep:1 wo:b oos:1443196
[====>...............] sync'ed: 28.4% (1443196/2007644)k delay_probe: 69
finish: 0:03:56 speed: 6,024 (5,876) k/sec
從輸出可知:
「ro狀態現在變為「primary/secondary」,「ds」狀態也變為「uptodate/inconsistent」,也就是「實時/不一致」狀態,現在資料正在主備兩個主機的磁碟間進行同步,且同步進度為28.4%,同步速度每秒5.8m左右。
等待片刻,再次檢視同步狀態,輸出如下:
[root@drbd1 ~]#cat /proc/drbd
1: cs:connected ro:primary/secondary ds:uptodate/uptodate c r----
ns:2007644 nr:0 dw:0 dr:2007644 al:0 bm:123 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
可以看到同步完成了,並且「ds「狀態也變為「uptodate/uptodate」了。即為「實時/實時」狀態了。
如果第一次設定主備節點時使用「/sbin/drbdadm primary r0」命令,那麼會提示如下錯誤:
0: state change failed: (-2) need access to uptodate data
command '/sbin/drbdsetup 0 primary' terminated with exit code 17
只要第一次用上面命令成功後,以後就可以用「/sbin/drbdadm primary r0」命令了。
5格式化檔案系統
由於mount操作只能在主節點進行,所以只有設定了主節點後才能格式化磁碟分割槽,然後掛載:
[root@drbd1 ~]#mkfs.ext3 /dev/drbd0
[root@drbd1 ~]#mount /dev/drbd0 /mnt
八、 drbd主備節點切換
主備節點切換有兩種方式,分別是停止drbd服務切換和正常切換,依次介紹:
1停止drbd服務切換
關閉主節點服務,此時掛載的drbd分割槽就自動在主節點解除安裝了,然後在備用節點執行切換命令:
[root@drbd2 ~]#drbdadm primary all
此時會報錯:
2: state change failed: (-7) refusing to be primary while peer is not outdated
command 'drbdsetup 2 primary' terminated with exit code 11
因此,必須在備用節點執行如下命令:
[root@drbd2 ~]#drbdsetup /dev/drbd0 primary –o
或者[root@drbd2~]#drbdadm -- --overwrite-data-of-peer primary all
此時就可以正常切換了。
當在備用節點執行切換到主節點命令後,原來的主用節點自動變為備用節點。無需在主用節點再次執行切換到備用節點的命令。
2正常切換
在主節點解除安裝磁碟分割槽,然後執行
[root@drbd1 ~]#drbdadm secondary all
如果不執行這個命令,直接在備用節點執行切換到主節點的命令,會報錯:
2: state change failed: (-1) multiple primaries not allowed by config
command 'drbdsetup 2 primary' terminated with exit code 11
接著,在備用節點執行
[root@drbd2 ~]#drbdadm primary all
最後在備用節點掛載磁碟分割槽即可:
[root@drbd2 ~]#mount /dev/drbd2 /mnt
DRBD磁碟映象
1 新增硬碟,然後分割槽 1 2 3 fdisk l fdisk dev sdb partprob dev sdb 2 主備節點fqdn 主 hostname drbd1.company.com 備 hostname drbd2.company.com 寫入 etc hosts檔案 1 2 192....
虛擬磁碟映象格式整理
格式 字尾應用 特點詳細資料 qcow qcow qemu 加密和壓縮,但一旦損壞將很難恢復 rawraw,rw2.1 簡單,並能夠匯出為其他虛擬機器的虛擬硬碟格式 2 根據實際使用量來占用空間使用量,而非原先設定的最大值 比如設定最高20g,而實際只使用 3g 需要宿主分割槽支援hole 比如ex...
FAT格式磁碟映象製作方法
工作中需要製作乙個名為udisk.bin的檔案。此檔案是乙個fat格式的磁碟分割槽的映象檔案,大小為20mb。對於fat檔案格式,製作乙個2gb的fat映象就會有2gb大小,但由於只是乙個空檔案系統 其中並沒有儲存具體的檔案 其中有意義的只有前面一部分,包括引導記錄以及fat表所在的部分,所以實際上...