企业~heartbeat&drbd

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业~heartbeat&drbd相关的知识,希望对你有一定的参考价值。


   Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。heartbeat的核是心跳监测和资源接管,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。

   heartbeat+drbd在Linux下创建一个高可用(HA)的集群服务器。DRBD是一种块设备,可以被用于高可用(HA)之中。当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上。以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。因为数据同时存在于本地主机和远程主机上。切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了。



准备三台虚拟机:

172.25.45.2  server2.example.com   主节点

172.25.45.3  server3.example.com   副节点




1.heartbeat的配置:

   在server2和server3上:

   yum install drbd-8.4.3.tar.gz  heartbeat-3.0.4-2.el6.x86_64.rpm   

   heartbeat-devel-3.0.4-2.el6.x86_64.rpm  heartbeat-libs-3.0.4-2.el6.x86_64.rpm   

   ldirectord-3.9.5-3.1.x86_64.rpm 


   在server2上:               

   cd /usr/share/doc/heartbeat-3.0.4

   cp ha.cf   haresources  authkeys /etc/ha.d

   cd /etc/ha.d

   vim ha.cf

keepalive  2
deadtime   30
warntime   10
initdead   60
udpport   694
bcast    eth0
node  server2.example.com
node  server3.example.com
ping  172.25.45.250
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster

logfacility local0

日志等级,默认值

keepalive 2

心跳频率

deadtime 30

节点死亡时间阀值,就是从节点在过了 30 后还没有收到心跳就认为主节点死亡

warntime 10

警告时间

initdead 120

守护进程首次启动后应该等待 120 秒后再启动主服务器上的资源

udpport 694

心跳信息传递的 udp 端口,使用端口 694 进行 bcast 和 ucast 通信

baud 19200

串口波特率,与 serial 一起使用。

serial /dev/ttyS0

采用串口来传递心跳信息。

bcast eth0

采用 udp 广播播来通知心跳

auto_failback on

当主节点恢复后,是否自动切回

stonith baytech /etc/ha.d/conf/stonith.baytech

stonith 用来保证共享存储环境中的数据完整性

node server2.example.com   (只能域名)

主节点名称,与 uname –n 保持一致。排在第一的默认为主节点,所以不要搞措顺序

node server3.example.com   

副节点名称,与 uname –n 保持一致

ping 172.25.45.250

respawn hacluster /usr/lib64/heartbeat/ipfail

apiauth ipfail gid=haclient uid=hacluster

默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况。

所以当网络中断时,并不会进行 Load Balancer 和 Backup 之间的切换。

可以通过 ipfail 插件,设置‘ping nodes‘来解决这一问题,但不能使用一个集群节点作为ping 的节点。


   vim haresources

server2.example.com   IPaddr::172.25.45.100/24/eth0  mysqld

  这个文件中定义了实现集群所需的各个软件的启动脚本,这些脚本必须放在/etc/init.d 或者

/etc/ha.d/resource.d 目录里 IPaddr 的作用是启动 Virutal IP,它是 HeartBeart 自带的一个

脚本;mysqld 是 mysql服务的启动脚本。


   vim authkeys

技术分享


   chmod 600 authkeys       ##仅超级用户可以读写

   scp ha.cf haresources authkeys 172.25.45.3:/etc/ha.d/

   /etc/init.d/heartbeat start

   tail -f /var/log/messages



    在server3上:

   /etc/init.d/heartbeat  start


检测:


     

   在server2上:

   /etc/init.d/heartbeat stop

技术分享

 

   在server3上可以登录:

技术分享




2.heartbeat&磁盘:

 

   给server2分配4G虚拟磁盘

 

   在server2上:

   fdisk -cu /dev/sda      ##(删除多于分区,然后创建一个新的2G的主分区)

   cat  /proc/partition

   mkfs.ext4  /dev/sda1

   vim haresources 


server2.example.com  IPaddr::172.25.45.100/24/eth0 Filesystem::/dev/sda1::/var/lib/mysql::ext4  mysqld

   scp haresources 172.25.45.3:/etc/ha.d/

    /etc/init.d/mysqld  stop

    mount /dev/sda1  /mnt

    cd /var/lib/mysql

    cp  -rp  *  /mnt

    chown  mysql.mysql   /mnt

    umount /mnt

    /etc/init.d/heartbeat  stop

    tail -f /var/log/messages



     在server3上:

  partprobe   

会同布出server2上进行的分区

  cat /pros/partitions



3. 编译drbd

    因为此次用的是之前的虚拟机,所以需要关闭一进程:     ##如果是新的虚拟机 则不需要

    

   在server2和server3上:

   /etc/init.d/iscsi stop

   chkconfig --list iscsi         ##iscsi的进程都关闭

   /etc/init.d/heartbest  stop


    在server2上:

    cd /root

    tar zxf  drbd-8.4.3.tar.gz

    cd  drbd-8.4.3

    yum install flex gcc rpm-build  kernel-devel -y   ##解决依赖性

    cp /root/drbd-8.4.3.tar.gz  /root/rpmbuild/SOURCES/ 

   ./configure  --enable-spec --with-km    

    rpmbuild -bb drbd.spec        ##编译drbd要在/root/rpmbuild/SOURCES/目录下

    rpmbuild -bb drbd-km.spec        ##  -bb建立二进制包

    cd /root/rpmbuild/RPMS/x86_64 

    rpm -ivh *

    scp * [email protected]:

    cd  /etc/drbd.d/

    vim example.res   ##创建以.res结尾文件

技术分享    ##/dev/vdb就是新分出来的4G虚拟磁盘

    scp example.res  [email protected]:/etc/drbd.d/

    drbdadm create-md sqldata

    /etc/init.d/drbd  start      ## server3也进行相同的操作,和server2同时完成

    drbdadm primary sqldata  --force    ##强制将server2设为主节点       

    cat /proc/drbd

  

技术分享

    cd /etc/ha.d/

    vim haresources

server2.example.com IPaddr::172.25.45.100/24/eth0  drbddisk::sqldata Filesystem::/dev/drbd1::/var/lib/mysql::ext4 mysqld

    scp /etc/ha.d/haresources  [email protected]:/etc/ha.d/

    tail  -f  /var/log/mesages

    

   

    在server3上:

    cd /root

    yum install *

    drbdadm create-md sqldata

   /etc/init.d/drbd  start

    cat /proc/drbd



 


      




     

  

   

  




  


   





本文出自 “11703145” 博客,谢绝转载!

以上是关于企业~heartbeat&drbd的主要内容,如果未能解决你的问题,请参考以下文章

heartbeat+drbd+mysql

Heartbeat+Drbd实现

mysql+DRBD+heartbeat

Heartbeat+Drbd+MySQL高可用

drbd+heartbeat+nfs

Heartbeat+DRBD+MySQL高可用方案