企业~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结尾文件
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的主要内容,如果未能解决你的问题,请参考以下文章