linux服务之drbd
http://www.drbd.org/docs/about/
http://oss.linbit.com/drbd/
?
?
一般我們會在生產環境的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中有,所以只需要安裝用戶空間工具就行了
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 看到的內核版本一致,建議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? 0
先看看系統的內核版本
# 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 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;
}
}
創建分區
# 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 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
第一次數據同步完成之后,就可以創建文件系統并掛載使用了,只能掛primary,備機只能接收主機數據
[root@bd2 ~]# mkfs.ext3 /dev/drbd0
[root@bd2 /]# mount /dev/drbd0 /data/
轉載于:https://www.cnblogs.com/createyuan/p/3904849.html
總結
以上是生活随笔為你收集整理的linux服务之drbd的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php根据IP地址跳转对应的城市,淘宝R
- 下一篇: 首发