linux服務之drbd

http://www.drbd.org/docs/about/
http://oss.linbit.com/drbd/node

 

 

通常咱們會在生產環境的MYSQL中用drbd +ha作master 備份,固然這是應對中小訪問量,大的訪問量就上LVS了。 DRBD已是不少年的事,之前DRBD只是有一個LINUX的外部內核模塊, 然而在高版本的LINUX內核中,已經集成了其中的這個模塊,在老的系統中咱們常把這個包叫作KMOD-DRBD,其實就是內核模塊安裝包,這是最重要的一個部分,經過調用內核模塊達到網絡RAID1的功能。
DRBD consists of two main components. The driver code in the kernel, and the user space tools to control, configure the driver, as well as integration programs and scripts that glues the DRBD system to cluster management software and other system components.
因爲這個內核模塊已經被集成到相對高版本的LINUX內核中,所以能夠這麼看,低於Linux-2.6.33 kernel 內核,必須安裝KMOD-DRBD模塊,高於這個版本的內核則不用。
有意思的是,在CENTOS5.X的時代,YUM INSTALL
yum install -y drbd83 kmod-drbd83  既能夠達到同時安裝DRBD內核模塊和管理工具包的目的,可是到了CENTOS6就不行了。直接YUM INSTALL是行不通的。
在這種狀況下,若是要安裝二進制包文件,必須去找Binary packages provided by LINBIT,這是收費的。要麼就是你升級內核,KMOD這個模塊就沒必要安裝了,直接安裝管理包。
CENTOS 6.3的內核很不幸的是2.6.32,還沒有達到2.6.33之上,因此必須升級內核。
看LINUX內核與DRBD的對應關係,至關明顯:

 

爲了drbd,更新了內核仍是不支持,從2.6.32-431到2.6.32-642仍是沒有用
在linux 2.6.33之後的版本中,drbd已經集成到內核中,但在cs7.2中好像沒有drbd.ko,可是在ubuntu14.04中有,因此只須要安裝用戶空間工具就好了linux

root@wo-KVM:/lib/modules/4.2.0-27-generic/kernel/drivers/block# cat /etc/issue
Ubuntu 14.04.4 LTS \n \l
root@wo-KVM:/lib/modules/4.2.0-27-generic/kernel/drivers/block# modprobe -r drbd
root@wo-KVM:/lib/modules/4.2.0-27-generic/kernel/drivers/block# lsmod |grep drbd
root@wo-KVM:/lib/modules/4.2.0-27-generic/kernel/drivers/block# modprobe drbd
root@wo-KVM:/lib/modules/4.2.0-27-generic/kernel/drivers/block# lsmod |grep drbd
drbd                  339968  0
lru_cache              16384  1 drbd
libcrc32c              16384  1 drbdubuntu

root@wo-KVM:/lib/modules/4.2.0-27-generic/kernel/drivers/block# apt search drbd
Sorting... Done
Full Text Search... Done
drbd8-utils/trusty 2:8.4.4-1ubuntu1 amd64
  RAID 1 over TCP/IP for Linux (user utilities)api

 

安裝drbd網絡

# wget http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz
# tar zxvf drbd-8.4.3.tar.gz
# cd drbd-8.4.3
# ./configure --prefix=/usr/local/drbd --with-km
# make KDIR=/usr/src/kernels/2.6.32-279.el6.x86_64/

yum  -y  install kernel-devel kernel-headers flex
注意:安裝kernel-devel必定要和你uname -r 看到的內核版本一致,建議kernel-devel用本地源安裝,不要用網絡源安裝
[root@node1 soft]# tar zxf drbd-8.4.3.tar.gz
[root@node1 soft]# cd drbd-8.4.3
[root@node1 drbd-8.4.3]# ./configure --prefix=/usr/local/drbd --with-km
注意:--with-km是啓用內核模塊
[root@node1 ~]# make KDIR=/usr/src/kernels/2.6.32-358.el6.i686
注意KDIR的路徑 (這個內核源碼路徑須要根據本身的系統修改)
[root@node1 drbd-8.4.3]# make install
[root@node1 ~]# mkdir -p /usr/local/drbd/var/run/drbd
[root@node1 ~]# cp /usr/local/drbd/etc/rc.d/init.d/drbd  /etc/rc.d/init.d/
[root@node1 ~]# chkconfig --add drbd
[root@node1 ~]# chkconfig drbd on
安裝drbd模塊
回到剛剛解壓drbd的目錄,而後
[root@node1 drbd-8.4.3]# cd drbd
[root@node1 drbd]# make clean
[root@node1drbd]#  make KDIR=/usr/src/kernels/2.6.32-358.el6.i686
[root@node1 drbd]# cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
[root@node1 drbd]# modprobe drbd
查看模塊是否加載成功
[root@node1 drbd]# lsmod | grep drbd
drbd                  292307  0tcp

先看看系統的內核版本
# uname -r            (目前的版本)
2.6.32-279.el6.x86_64
下面以安裝drbd模塊爲例進行說明
正確安裝drbd模塊後,使用modprobe進行加載
# modprobe drbd
FATAL: Module drbd not found.
出現如上錯誤
緣由:這是由於系統默認的內核並不支持此模塊,因此須要更新內核
更新內核的方法:
能夠用 yum install kernel* 方式來更新。
若是你要節約點時間的話能夠只更新一下的幾個包:
            kernel-devel
            kernel
            kernel-headers
更新後,記得要從新啓動操做系統!!!
# depmod
說明:在編譯並準備好一個Linux內核加載模塊後,modprobe前必須先執行命令depmod,此命令會生成新的modules.dep。
[root@bd2 ~]# depmod
[root@bd2 ~]# modprobe drbd
[root@bd2 ~]# lsmod|grep drbd
drbd                  325786  0
libcrc32c               1246  1 drbdide

編輯配文工具

[root@bd2 ~]# vi /etc/drbd.confflex

resource r0{
protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120;}
disk { on-io-error detach;}
net{
timeout 60;
connect-int 10;
ping-int 10;
max-buffers 2048;
max-epoch-size 2048;
}
syncer { rate 30M;}
on bd1{
device /dev/drbd0;
disk /dev/sdb1;
address 172.16.2.1:7788;
meta-disk internal;
}
on bd2{
device /dev/drbd0;
disk /dev/sdb1;
address 172.16.2.2:7788;
meta-disk internal;
}
}ui

建立分區

# fdisk /dev/sdb
----------------
n-p-1-1-"+1G"-w
----------------
# mkdir /data

建立DRBD設備並激活ro資源:(Primary,Secondary)

# mknod /dev/drbd0 b 147 0
# drbdadm create-md r0
等待片刻,顯示success表示drbd塊建立成功

  --==  Thank you for participating in the global usage survey  ==--
The server's response is:

you are the 19411th user to install this version
no resources defined!
由於配文錯誤應該是下面的位置,而不是/etc/drbd.conf

[root@bd2 ~]# vi /usr/local/drbd/etc/drbd.conf
[root@bd2 ~]# drbdadm create-md r0
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
success

命令彙總

[root@bd2 ~]# fdisk /dev/sdb[root@bd2 ~]# mkdir /data[root@bd2 ~]# depmod[root@bd2 ~]# modprobe drbd[root@bd2 ~]# lsmod |grep drbd[root@bd2 ~]# mknod /dev/drbd0 b 147 0[root@bd2 ~]# drbdadm create-md r0[root@bd1 ~]# service drbd start[root@bd2 ~]# drbdadm -- --overwrite-data-of-peer primary r0[root@bd2 ~]# ps -ef|grep drbdroot      1405     2  0 Aug11 ?        00:00:00 [drbd-reissue]root      1410     2  0 Aug11 ?        00:00:00 [drbd_submit]root      1417     2  0 Aug11 ?        00:00:52 [drbd_w_r0]root      1421     2  0 Aug11 ?        00:00:52 [drbd_r_r0]root      1426     2  0 Aug11 ?        00:00:01 [drbd_a_r0]root      1753  1692  0 12:02 pts/0    00:00:00 grep drbd[root@bd1 ~]# netstat -anput |grep 7788tcp        0     40 172.16.2.1:7788             172.16.2.2:48538            ESTABLISHED -tcp        0     80 172.16.2.1:7788             172.16.2.2:53019            ESTABLISHED -[root@bd1 ~]# drbdadm cstate r0Connected[root@bd1 ~]# drbdadm dstate r0UpToDate/UpToDate[root@bd1 ~]# drbdadm role r0Secondary/Primary[root@bd1 ~]# drbd-overview  0:r0  cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----[root@bd2 ~]# service drbd statusdrbd driver loaded OK; device status:version: 8.4.3 (api:1/proto:86-101)GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@bd2, 2014-08-11 14:53:29m:res  cs          ro                 ds                     p  mounted  fstype0:r0   SyncSource  Primary/Secondary  UpToDate/Inconsistent  C...    sync'ed:    90.0%              (1648/16376)M[root@bd1 ~]# cat /proc/drbdversion: 8.4.3 (api:1/proto:86-101)GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@bd2, 2014-08-11 14:53:29 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---n-    ns:15643840 nr:0 dw:0 dr:15645336 al:0 bm:954 lo:0 pe:3 ua:1 ap:0 ep:1 wo:f oos:1129680        [=================>..] sync'ed: 93.3% (1100/16376)M        finish: 0:01:35 speed: 11,824 (11,492) K/sec第一次數據同步完成以後,就能夠建立文件系統並掛載使用了,只能掛primary,備機只能接收主機數據[root@bd2 ~]# mkfs.ext3 /dev/drbd0[root@bd2 /]# mount /dev/drbd0 /data/

相關文章
相關標籤/搜索