Linux高可用叢集(二):DRBD分布式複製塊裝置簡介和使用

來源:互聯網
上載者:User

DRBD簡介:

DRBD全稱Distributed Replicated Block (分布式的複製塊裝置),屬於Device公司,但是完全開源。它是一款基於塊裝置的檔案複製解決方案,速度比檔案層級的軟體如NFS,samba快很多,是很多中小企業的共用儲存首選解決方案。


DRBD工作需要在兩個節點上同時準備一塊一模一樣的分區組成鏡像,這就是為什麼它叫做分布式複製塊裝置,它主要通過複製資料來實現檔案同步(備份),主要用於叢集檔案分享權限設定, 我們通過它的工作原理來瞭解塊複製和檔案複製的不同,如:

首先,您需要知道,DRBD是工作在系統核心空間,而不是使用者空間,它直接複製的是位元據,這是它速度快的根本原因。

其次,DRBD至少需要兩個節點來工作,一主一次。


DRBD的檔案同步過程和普通複製過程的不同: 

DRBD在資料進入Buffer Cache時,先經過DRBD這一層,複製一份資料經過TCP/IP協議封裝,發送到另一個節點上,另一個節點通過TCP/IP協議來接受複製過來的資料,同步到次節點的DRBD裝置上。

下面我們來配置DRBD,前提:

1)主機名稱和uname -n 命令輸出的一致,最好是FQDN格式

2)DRBD的兩個分區大小一致,先不要格式化

3)兩個節點上準備都準備一個2G的分區/dev/sda5

準備兩台虛擬機器 ,我使用的是vm6.5+redhat5.4 ,主機名稱和IP地址如下

node1.a.org   172.16.14.11

node2.a.org   172.16.14.12

一.安裝,修改設定檔

1)安裝drbd軟體包,需要的軟體包如下:

[root@node1 ~]# ls drbd/

drbd83-8.3.8-1.el5.centos.i386.rpm  kmod-drbd83-8.3.8-1.el5.centos.i686.rpm

# 使用rpm -i安裝,這兩個軟體包並沒有什麼依賴關係

[root@node1 drbd]# rpm -ivh *.rpm

[root@node2 drbd]# rpm -ivh *.rpm

2)複製設定檔到/etc下

[root@node2 drbd]# cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc/

cp: overwrite `/etc/drbd.conf'? Y       # 直接覆蓋,原檔案沒有任何內容

[root@node2 drbd]# cat /etc/drbd.conf 

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

# 設定檔裡只有下面兩行,告訴我們定義在drbd.d下面定義.res結尾的檔案為drbd的資源

include "drbd.d/global_common.conf";            # 真正的主設定檔

include "drbd.d/*.res";

# 修改 global_common.conf ,內容如下

[root@node2 drbd]# vim /etc/drbd.d/global_common.conf global {        usage-count no;}common {        protocol C;           # C 指同步    A 非同步 B 半同步           handlers {                pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";                pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";                local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";        }        startup {                wfc-timeout 120;                degr-wfc-timeout 120;        }        disk {                on-io-error detach;fencing resource-only;        }        net {cram-hmac-alg "sha1";  shared-secret "mydrbdlab";        }        syncer {                rate 100M;                    # 你網卡的速率        }}

3)定義一個資源web,用來存放網頁檔案,給叢集提供檔案服務

resource web {  on node1.a.org {                           # 注意主機名稱    device    /dev/drbd0;    disk      /dev/sda5;                     # 分區    address   172.16.14.11:7789;             # 注意IP    meta-disk internal;  }  on node2.a.org {                           # 注意主機名稱    device    /dev/drbd0;    disk      /dev/sda5;                     # 分區    address   172.16.14.12:7789;             # 注意IP    meta-disk internal;  }}

4)將設定檔複製到node1上

[root@node2 drbd]# scp /etc/drbd.conf node1:/etc/

[root@node2 drbd]# scp /etc/drbd.d/* node1:/etc/drbd.d/

二.初始化已經以的資源,啟動drbd服務

1)初始化資源

[root@node1 drbd]# drbdadm create-md web

[root@node2 drbd]# drbdadm create-md web

2)啟動服務,這裡需要說明,當一個節點啟動服務後,如果另一個節點不啟動,它會一直卡在那處於等待狀態。

[root@node1 drbd]# service drbd start

[root@node2 drbd]# service drbd start

3)查看同步狀態

[root@node1 drbd]# watch -n 1 'cat /proc/drbd'

也可以通過下面的命令來查看

[root@node1 drbd]# drbd-overview 

  0:web  Connected Secondary/Secondary Inconsistent/Inconsistent C r---- 

三.設定node1為主節點,開始資料同步

1)設定主節點

[root@node1 drbd]# drbdsetup /dev/drbd0 primary -o

或者drbdadm -- --overwrite-data-of-peer primary web

查看節點資訊狀態,已經成為primiary了,中間有一個資料同步過程

[root@node1 drbd]# drbd-overview 

  0:web  Connected Primary/Secondary UpToDate/UpToDate C r---- 

2)建立檔案系統,掛載之

[root@node1 drbd]# mke2fs -j -L DRBD /dev/drbd0

[root@node1 drbd]# mkdir /mnt/drbd

[root@node1 drbd]# mount /dev/drbd0 /mnt/drbd/

建立幾個空檔案

[root@node1 drbd]# cd /mnt/drbd/

[root@node1 drbd]# touch a b c

四.切換主節點

# 先卸載,將node1改為次節點

[root@node1 ~]# umount /mnt/drbd/

[root@node1 ~]# drbdadm secondary web

# 在node2上設定為主節點

[root@node2 ~]# mkdir /mnt/drbd            # 穿件掛載點

[root@node2 ~]# drbdadm primary web

[root@node2 ~]# drbd-overview 

  0:web  Connected Secondary/Primary UpToDate/UpToDate C r---- 

[root@node2 ~]# drbdadm primary web

查看剛才建立的檔案是否存在

[root@node2 ~]# mount /dev/drbd0 /mnt/drbd/

[root@node2 ~]# ls /mnt/drbd/

a  b  c  lost+found

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.