linux下磁碟映象軟體DRBD的使用

2021-09-05 04:18:51 字數 4788 閱讀 3951

一、 什麼是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表所在的部分,所以實際上...