dbrd8.4.6源码编译安装

本文发布时间: 2019-Mar-22
----------------------------0.系统环境----------------------------db01 192.168.50.10 /dev/sdb1 主节点db02 192.168.50.20 /dev/sdb1 备节点# grep -v "#" /etc/hosts192.168.50.10 db01 db01.mysql.com192.168.50.20 db02 db02.mysql.com#一块新硬盘ll /dev/sd*ll /dev/sdb*brw-rw---- 1 root disk 8, 16 Jun 24 13:37 /dev/sdbbrw-rw---- 1 root disk 8, 17 Jun 24 13:37 /dev/sdb1NOTE:sdb1分区未格式化.----------------------------1.准备安装环境----------------------------yum install -y make automak kernel kernel-devel kernel-headers gcc flex libxslt----------------------------2.编译安装drbd----------------------------wget http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gztar xzf drbd-8.4.6.tar.gzcd drbd-8.4.6------------------#开始编译安装drbd,和8.4.5之前版本有所不同,这里不用./configure,直接make就可以了./configure --prefix=/usr/local/drbd --with-km --with-heartbeat --sysconfdir=/etc/#with-km开启内核模块#with-heartbeat 开启heart支持#ls -ld /usr/src/kernels/$(uname -r)/make KDIR=/usr/src/kernels/$(uname -r)/ #指定内核源路径开始编译#make install--直接结果:make -C drbd installmake[1]: Entering directory `/soft/drbd-8.4.6/drbd'install -d //lib/modules/2.6.32-431.el6.x86_64/updatesinstall -m 644 drbd.ko //lib/modules/2.6.32-431.el6.x86_64/updates/sbin/depmod -a || /sbin/depmod -e drbd.ko 2>&1 >/dev/null || truemake[1]: Leaving directory `/soft/drbd-8.4.6/drbd'编译成功模块安装位置#modprobe -l | grep -i drbdupdates/drbd.ko加载模块# modprobe drbd#lsmod | grep drbddrbd 376868 0 libcrc32c 1246 1 drbd----------------------------3.编译安装drbd-utils----------------------------#wget http://oss.linbit.com/drbd/drbd-utils-8.9.3.tar.gz-P /usr/local/src/# tar -xf drbd-utils-8.9.3.tar.gz -C /usr/local/src# cd /usr/local/src/drbd-utils-8.9.3这里用了--without-83support,因为安装的是8.4以上版本#./configure --prefix=/usr/local/drbd --sysconfdir=DIR --without-83support/******************参数详解Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/drbd] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR]Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-spec Rather than creating Makefiles, create an RPM spec file onlyOptional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-83support Do not include support for drbd driver/module <= 8.3 --without-84support Do not include support for drbd driver/module 8.4 --with-udev Enable udev integration --with-xen Enable Xen integration --with-pacemaker Enable Pacemaker integration --with-heartbeat Enable Heartbeat v1 haresources integration scripts --with-rgmanager Enable Red Hat Cluster Suite integration --with-bashcompletion Enable programmable bash completion --with-distro Configure for a specific distribution (supported values: generic, redhat, suse, debian, gentoo, slackware; default is to autodetect) --with-initdir Override directory for init scripts (default is distribution-specific) --with-noarchsubpkg Build subpackages that support it for the "noarch" architecture (makes sense only with --enable-spec, supported by RPM from 4.6.0 forward) --with-systemdunitdir=DIR Directory for systemd service files [Auto] --with-tmpfilesdir=DIR install configuration files for management of volatile files and directories in DIR [[PREFIX/lib/tmpfiles.d]] --with-initscripttype=INIT_SCRIPT_TYPE Type of init script to install (sysv|systemd|both). [auto]********************************/#make#make install 安装成功后drbd相关的工具(drbdadm,drbdsetup)被安装到/usr/local/drbd-utils-8.9.3/etc/sbin目录下#cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d/#chkconfig --add drbd#chkconfig --level 2345 drbd on#链接drbd的命令到系统命令路径ln -s /usr/local/drbd/sbin/* /usr/bin/----------------------------4.设置drbd.conf配置文件----------------------------本次编译安装配置文件位置:/usr/local/drbd/etc/#vi /etc/drbd.conf----------------------------5.启动--------------------------------5.0 在两台机器上配置r0资源 两台机器上分别初始化r0资源,创建DRBD分区准备初始化之前,需要分别在2个主机上的 空白分区上创建相应的元数据保存的数据块:常见之前现将两块空白分区彻底清除数据,分别在两个主机上执行dd if=/dev/zero of=/dev/sdb1 bs=1M count=128 drbdadm -c /etc/drbd.conf create-md all或drbdadm -c /etc/drbd.conf create-md r0 --5.1启动两个节点drbdmkdir -p /usr/local/drbd/var/run/drbd#/etc/init.d/drbd start Starting DRBD resources: no resources defined!no resources defined!no resources defined!PS:提示没有定义“资源”,这是因为刚安装好的DRBD,默认没有*.res配置文件#netstat |grep 7788--5.2 查看状态:#/etc/init.d/drbd status drbd driver loaded OK; device status:version: 8.4.6 (api:1/proto:86-101)GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by [email protected], 2015-06-24 13:47:15m:res cs ro ds p mounted fstype0:r0 Connected Secondary/Secondary Inconsistent/Inconsistent Ccs:表示连接状态ro: 表示主从关系 上面的表示都为从ds:硬盘状态信息 上面表示已经实时同步中,Inconsistent:不一致# cat /proc/drbd version: 8.4.6 (api:1/proto:86-101)GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by [email protected], 2015-06-24 13:47:15 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----- ns:40088 nr:0 dw:0 dr:40248 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0# drbd-overview 0:r0/0 Connected Secondary/Secondary Inconsistent/Inconsistent--5.3 查看版本#cat /proc/drbd --5.4 查看位置whereis drbd ----------------------------6.操作--------------------------------6.1 设置节点为主节点#第1步:设置主从第一次执行#drbdadm -- --overwrite-data-of-peer primary all#第2步:第一次执行后平常执行下面两个其中一个命令#drbdadm primary --force r0 #drbdadm primary all#第3步:设置当前节点为主节点# cat /proc/drbd version: 8.4.6 (api:1/proto:86-101)GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by [email protected], 2015-06-24 13:47:15 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----- ns:40088 nr:0 dw:0 dr:40248 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0#drbdadm primary --force r0 # cat /proc/drbd version: 8.4.6 (api:1/proto:86-101)GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by [email protected], 2015-06-24 13:47:15 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----- ns:40088 nr:0 dw:0 dr:40248 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0说明:ro状态变为ro:Primary/Secondary;ds状态为:UpToDate/UpToDate(inconsisten) 即"实时/实时(不一致)"-----6.2 磁盘格式化(只对primary节点格式化)#drbd-overview 0:r0/0 Connected Primary/Secondary UpToDate/UpToDate 同步完毕之后,就可以对空白磁盘格式化了.#mkfs.ext4 /dev/drbd0 mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=1024 (log=0)Fragment size=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks10040 inodes, 40088 blocks2004 blocks (5.00%) reserved for the super userFirst data block=1Maximum filesystem blocks=411566085 block groups8192 blocks per group, 8192 fragments per group2008 inodes per groupSuperblock backups stored on blocks: 8193, 24577Writing inode tables: done Creating journal (4096 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 33 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.----6.3挂载DRBD分区到本地(只能在primary节点上挂载)# mkdir /drbd_data# mount /dev/drbd0 /drbd_data/# cd /drbd_data/#ls ----6.4 常见命令--6.4.1 查看资源角色(前面代表当前资源角色)# drbdadm role r0 Primary/Secondary---6.4.2 查看资源连接状态#drbdadm cstate r0 Connected---6.4.3 查看硬盘数据状态# drbdadm dstate r0 UpToDate/UpToDate----6.4.4 注意事项1.主备服务器同步的两个分区大小最好相同(网上没有关于分区大小是否一定要相同的确切说法)2.开始同步两个节点的磁盘,需要一定时间,在同步完成前,不要重启,否则会重新同步。3.挂载之前一定要先切换当前节点为主节点4.两个节点中,同一时刻只能有一台处于primary状态,另一台处于secondary状态。5.处于从节点(secondary)状态的服务器不能加载drbd块设备6.将主节点切换为从节点之前要先卸载7.一台主机切换为主节点之前,要确保另一台主机已切换为从节点。----------------------------7.测试DRBD数据镜像--------------------------------7.1格式化挂载磁盘#mkfs.ext4 /dev/drbd0# mkdir /drbd_data# mount /dev/drbd0 /drbd_data/# cd /drbd_data/---7.2 生成测试数据#touch /drbd_data/test.txt#dd if=/dev/zero of=/drbd_data/test.tmp bs=1M count=20# drbdadm dstate r0 UpToDate/UpToDate---7.3 将主节点drbd的状态变为从# drbdadm role r0 Primary/Secondary#umount /drbd_data#drbdadm secondary all# drbdadm role r0 Secondary/Secondary---7.4 在从节点上进行挂载#drbdadm role r0 Secondary/Secondary#drbdadm primary all#drbdadm role r0 Primary/Secondary#mkdir /drbd_data#mount /dev/drbd0 /drbd_data/# ls -ls /drbd_data/total 20493 12 drwx------ 2 root root 12288 Jun 24 17:02 lost+found20481 -rw-r--r-- 1 root root 20971520 Jun 24 17:20 test.tmp测试成功.


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:09pm
栏目列表