heartbeat+drbd
heartbeat简介:Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。下面描述了 heartbeat 模块的可靠消息通信机制,并对其实现原理做了一些介绍。hartbeat原理:heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。实验环境: server1:172.25.45.1
server2:172.25.45.2
iptables off and selinux disabled所需软件包:heartbeat-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 heartbeat-devel-3.0.4-2.el6.x86_64.rpm
所需环境:若有其它集群,要先关闭相关进程
【server1/server2】
1rpm -ivh 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
需要先解决依赖性如下图:
可以直接yum install
如果是纯净的虚拟机还需要安装以下服务
【server1/server2】
12yum install -y mysql-server yum install -y iscsi-initiator-utils
【server3】
1yum install -y scsi-target-utils
添加一个硬盘/dev/vdb
1vim /etc/tgt/targets.conf
<target iqn.2016-07.com.example:server.target1> backing-store /dev/vdb initiator-address 172.25.45.1 initiator-address 172.25.45.2</target>
1/etc/init.d/tgtd start
【server1/server2】
12iscsiadm -t st -m discovery -p 172.25.45.3iscsiadm -m node -l
增加一个分区/dev/sda1,并格式化。
【server1】
123cd /usr/share/doc/heartbeat-3.0.4/cp haresources ha.cf authkeys /etc/ha.d/cd /etc/ha.d/
1vim ha.cf
将48行、56行、61行、71行、76行、91行、211行、212行、220行、253行、259行的注释取消将71行的initdead的值改为60将211行node后改为server1.example.com将212行node后改为server2.example.com将220行ping的IP改为172.25.45.250将253行的目录改为/usr/lib64/heartbeat/ipfail
1vim haresources
在最后添上以下内容:server1.example.com IPaddr::172.25.45.100/24/eth0 mysqld
1vim authkeys
将23行、24行的注释取消
12chmod 600 authkeysscp ha.cf haresources authkeys172.25.45.2:/etc/ha.d/
12/etc/init.d/heartbeat starttail -f /var/log/message
【server2】
1/etc/init.d/heartbeat start
【server1】
1ip addr show
关闭server1的heartbeat的服务,vip切到server2上,但把server1的heartbeat服务打开,vip会切回server1上
2.【server1】
1vim haresources
修改最后一行的内容为以下:server1.example.com IPaddr::172.25.45.100/24/eth0 Filesystem::/dev/sda1::/var/lib/mysql::ext4mysqld
1scp haresources172.25.45.2:/etc/ha.d/
1/etc/init.d/mysqld stop
12345678mount /dev/sda1 /mntcd /var/lib/mysql/cp -rp * /mnt/chown mysql.mysql /mnt/umount /mnt/etc/init.d/heartbeat stop/etc/init.d/heartbeat starttail -f /var/log/message
1/etc/init.d/heartbeat start ##在server2上
1ip addr show
1/etc/init.d/heartbeat stop
1ip addr show ##在server2上
将server1上的heartbeat服务再次打开,则server2上的vip和挂载都会切回server1
##drbd##为server1和server2都添加一个4G的虚拟硬盘
【server1/server2】
12/etc/init.d/heartbeat stop/etc/init.d/iscsi stop
1fdisk -l
所需软件包:drbd-8.4.3.tar.gz
123tar zxf drbd-8.4.3.tar.gzcd drbd-8.4.3./configure --enable-spec --with-km
1yum install -y gcc flex rpm-build ##解决依赖性
1rpmbuild -bb drbd.spec ##报错
1234cdcp drbd-8.4.3.tar.gz rpmbuild/SOURCES/cd -rpmbuild -bb drbd.spec
1rpmbuild -bb drbd-km.spec ##解决依赖性: yum install -y kernel-devel
12cd /root/rpmbuild/RPMS/x86_64ls
1rpm -ivh *
1scp * 172.25.45.2:
【server2】
1rpm -ivh drbd-*
【server1】
12cd /etc/drbd.d/vim example.res
添加以下内容:resource sqldata {meta-disk internal;device /dev/drbd1;
syncer {verify-alg sha1;}
on server1.example.com {disk /dev/vdb;address 172.25.45.1:7789;}
on server2.example.com {disk /dev/vdb;address 172.25.45.2:7789;}}
1scp example.res 172.25.45.2:/etc/drbd.d/
【server1/server2】
12drbdadm create-md sqldata/etc/init.d/drbd start
【server1】
1cat /proc/drbd
12drbdadm primary sqldata --forcecat /proc/drbd
1watch cat /proc/drbd
12mkfs.ext4 /dev/drbd1mount /dev/drbd1 /mnt
1234cd /var/lib/mysql/cp -rp * /mnt/chown mysql.mysql /mntumount /mnt
12drbdadm secondary sqldatacat /proc/drbd
【server2】
12drbdadm primary sqldatacat /proc/drbd
123mount /dev/drbd1 /mntcd /mntls
12cdumount /mnt
1drbdadm secondary sqldata
【server1】
1vim /etc/ha.d/haresources
修改内容为以下:server1.example.com IPaddr::172.25.45.100/24/eth0 drbddisk::sqldataFilesystem::/dev/drbd1::/var/lib/mysql::ext4mysqld
1scp /etc/ha.d/haresources 172.25.45.2:/etc/ha.d/
1cat /proc/drbd ##此时ro:Secondary/Secondary
12/etc/init.d/heartbeat starttail -f /var/log/messages
【server2】
1/etc/init.d/heartbeat start
【server1】
1cat /proc/drbd
1/etc/init.d/heartbeat stop
【server2】
1cat /proc/drbd
页:
[1]