linux服务之drbd
http://www.drbd.org/docs/about/
http://oss.linbit.com/drbd/
?
?
一般我們會在生產(chǎn)環(huán)境的MYSQL中用drbd +ha做master 備份,當然這是應(yīng)對中小訪問量,大的訪問量就上LVS了。 DRBD已經(jīng)是很多年的事,以前DRBD只是有一個LINUX的外部內(nèi)核模塊, 然而在高版本的LINUX內(nèi)核中,已經(jīng)集成了其中的這個模塊,在老的系統(tǒng)中我們常把這個包叫做KMOD-DRBD,其實就是內(nèi)核模塊安裝包,這是最重要的一個部分,通過調(diào)用內(nèi)核模塊達到網(wǎng)絡(luò)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. 由于這個內(nèi)核模塊已經(jīng)被集成到相對高版本的LINUX內(nèi)核中,因此可以這么看,低于Linux-2.6.33 kernel 內(nèi)核,必須安裝KMOD-DRBD模塊,高于這個版本的內(nèi)核則不用。 有意思的是,在CENTOS5.X的時代,YUM INSTALL yum install -y drbd83 kmod-drbd83 既可以達到同時安裝DRBD內(nèi)核模塊和管理工具包的目的,但是到了CENTOS6就不行了。直接YUM INSTALL是行不通的。 在這種情況下,如果要安裝二進制包文件,必須去找Binary packages provided by LINBIT,這是收費的。要么就是你升級內(nèi)核,KMOD這個模塊就不必安裝了,直接安裝管理包。 CENTOS 6.3的內(nèi)核很不幸的是2.6.32,尚未達到2.6.33之上,所以必須升級內(nèi)核。 看LINUX內(nèi)核與DRBD的對應(yīng)關(guān)系,相當明顯:?
為了drbd,更新了內(nèi)核還是不支持,從2.6.32-431到2.6.32-642還是沒有用
在linux 2.6.33以后的版本中,drbd已經(jīng)集成到內(nèi)核中,但在cs7.2中好像沒有drbd.ko,但是在ubuntu14.04中有,所以只需要安裝用戶空間工具就行了
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 drbd
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)
?
安裝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 看到的內(nèi)核版本一致,建議kernel-devel用本地源安裝,不要用網(wǎng)絡(luò)源安裝
[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是啟用內(nèi)核模塊
[root@node1 ~]# make KDIR=/usr/src/kernels/2.6.32-358.el6.i686
注意KDIR的路徑 (這個內(nèi)核源碼路徑需要根據(jù)自己的系統(tǒng)修改)
[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? 0
先看看系統(tǒng)的內(nèi)核版本
# uname -r??????????? (目前的版本)
2.6.32-279.el6.x86_64
下面以安裝drbd模塊為例進行說明
正確安裝drbd模塊后,使用modprobe進行加載
# modprobe drbd
FATAL: Module drbd not found.
出現(xiàn)如上錯誤
原因:這是因為系統(tǒng)默認的內(nèi)核并不支持此模塊,所以需要更新內(nèi)核
更新內(nèi)核的方法:
可以用 yum install kernel* 方式來更新。
如果你要節(jié)約點時間的話可以只更新一下的幾個包:
??????????? kernel-devel
??????????? kernel
??????????? kernel-headers
更新后,記得要重新啟動操作系統(tǒng)!!!
# depmod
說明:在編譯并準備好一個Linux內(nèi)核加載模塊后,modprobe前必須先執(zhí)行命令depmod,此命令會生成新的modules.dep。
[root@bd2 ~]# depmod
[root@bd2 ~]# modprobe drbd
[root@bd2 ~]# lsmod|grep drbd
drbd????????????????? 325786? 0
libcrc32c?????????????? 1246? 1 drbd
編輯配文
[root@bd2 ~]# vi /etc/drbd.conf
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;
}
}
創(chuàng)建分區(qū)
# fdisk /dev/sdb
----------------
n-p-1-1-"+1G"-w
----------------
# mkdir /data
創(chuàng)建DRBD設(shè)備并激活ro資源:(Primary,Secondary)
# mknod /dev/drbd0 b 147 0
# drbdadm create-md r0
等待片刻,顯示success表示drbd塊創(chuàng)建成功
? --==? 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!
因為配文錯誤應(yīng)該是下面的位置,而不是/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 drbd
root????? 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 7788
tcp??????? 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 r0
Connected
[root@bd1 ~]# drbdadm dstate r0
UpToDate/UpToDate
[root@bd1 ~]# drbdadm role r0
Secondary/Primary
[root@bd1 ~]# drbd-overview
? 0:r0? cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
[root@bd2 ~]# service drbd status
drbd 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:29
m:res? cs????????? ro???????????????? ds???????????????????? p? mounted? fstype
0:r0?? SyncSource? Primary/Secondary? UpToDate/Inconsistent? C
...??? sync'ed:??? 90.0%????????????? (1648/16376)M
[root@bd1 ~]# cat /proc/drbd
version: 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
第一次數(shù)據(jù)同步完成之后,就可以創(chuàng)建文件系統(tǒng)并掛載使用了,只能掛primary,備機只能接收主機數(shù)據(jù)
[root@bd2 ~]# mkfs.ext3 /dev/drbd0
[root@bd2 /]# mount /dev/drbd0 /data/
轉(zhuǎn)載于:https://www.cnblogs.com/createyuan/p/3904849.html
總結(jié)
以上是生活随笔為你收集整理的linux服务之drbd的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php根据IP地址跳转对应的城市,淘宝R
- 下一篇: Linux学习笔记033_10