1.heartbeat服务
首先关掉之前所做的所有集群服务
Server4 && server5 端:
iscsiadm -m node -u
Iscsiadm -m node -o delete
/etc/init.d/rici stop
Chkconfig ricci off
/etc/init.d/iscsi stop
Chkconfig iscsi off
/etc/init.d/clvmd stop
Chkconfig clvmd off
/etcinit.d/modcluster stop
Chkconfig modcluster off
/etc/init.d/cman stop
Chkconfig camn off##若关不掉cman,先执行此命令,再重启虚拟机
Server6操作:
/etc/init.d/luci stop
Chkconfig luci off
如果还有其他集群服务没有关闭,请执行netstat -antlpe命令 以及ps -ax命令查看,并用合适命令将其关闭
先将网页的服务remove掉,然后将之前建立的server4,server5删掉
之后操作server4 && server5:
下载如图软件包并安装
Yum install * -y
命令查看heartbeat服务所在路径:
Rpm -q heartbeat -d
将authkeys,ha.cf,haresources复制到/etc/ha.d/目录
Cd /etc/ha.d/
cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} .
编辑ha.cf配置文件:
编辑vim authkeys文件
Vim haresources
将这三个文件scp到server5虚拟机上
Server4 && server5启动httpd && hearbeat服务
/etcinit.d/httpd start
/etc/init.d/heartbeat start
测试1:
真机测试172.25.15.100虚拟网络:
当断开server4服务时:
/etc/init.d/heartbeat stop
Server5虚拟机会接管业务:
同时虚拟ip也会转移到server5上来:
测试2:
但server4上关闭httpd服务时,服务会监测不到网络,所以server5不会接管业务
/etc/init.d/httpd stop
同时你也可以根据arp -an|grep 172.25.15.100命令查看虚拟ip所在的虚拟机
会发现过滤出来的UUID就是server4
测试3:
当破坏掉server4内核时:
echo c >/proc/sysrq-trigger
Server5会接管业务:
一旦重启server4,业务又会重新转移到server4上,因为配置ha.cf文件时,设置的
auto_failback on
即server4恢复正常时,会抢回业务
测试4:
当server4端的网卡关掉后:
Ip link set down eth0
Server5会认为server4坏掉,进而将服务抢到,
所以服务会自动转移到server5上
当两边同时关掉网卡后,server4 &&server5会同时都认为对方坏掉而发生资源服务争抢从而导致服务崩掉!!!
2.Drbd服务
首先在两个虚拟机上安装两块4G虚拟硬盘
下载drbd-8.4.2.tar.gz的tar包
Server4命令操作:
Tar zxf drbd-8.4.2.tar.gz
Cd drbd-8.4.2
./configure
Yum install gcc flex rpm-build kernel-devel -y #解决软件依赖性
Cd ~
Cp /mnt/drbd-8.4.2.tar.gz rpmbuild/SOURCES/
cd /mnt/drbd-8.4.2
./configure --enable-spec --with-km
Rpmbuild -bb drbd.spec #编译生成 drbd rpm 包
rpmbuild -bb drbd-km.spec #编译 drbd 内核模块
使其生成如下两个文件就说明操作无误:
cd ~/rpmbuild/RPMS/x86_64
rpm -ivh *
拷贝生成的 rpm 包到另一主机,并安装软件包:
在server4 && server5上编辑配置文件(该配置文件需自己创建,并且只要以.res结尾即可):
Cd /etc/drbe.d/
Vim test.res
并传给server5
scp test.res 172.25.15.5:/etc/drbd.d/
配置文件编辑完成后,server4 && server5就执行如下命令:
drbdadm create-md example
/etc/init.d/drbd start#注意,server4启动后会等待server5启动,双方确认后才能启动成功
将server4设置为primary节点,并同步数据:
drbdsetup /dev/drbd1 primary --force
在两台虚拟机上查看同步状态:
watch cat /proc/drbd
数据同步结束后创建文件系统,格式化为ext4
mkfs.ext4 /dev/drbd1
测试:
Server4操作:
Server4挂载文件系统:
mount /dev/drbd1 /mnt/
编辑文件index.html
Echo server4.example.com > index.html
卸载/dev/drbd1/
Umount /mnt/
将server4设置为secondary节点:
Drbdadm secondary example
Server5操作:
先将server5设置为primary节点:
drbdadm primary example
挂载:
mount /dev/drbd1 /mnt/
会发现server4上创建的index.html已经同步到server5上了
3.添加mysql服务:
Server4端:
先安装mysql软件包
yum install -y mysql-server
启动mysql服务
/etc/init.d/mysqld start
先将 /dev/drbd1 中所有内容删除:
再停掉mysql服务
/etc/init.d/mysqld stop
再将/var/lib/mysql/目录中所有内容复制到/dev/drbd1中:
卸载后并挂载到/var/lib/mysql上并修改权限:
关闭mysql服务后并卸载
/etc/init.d/mysqld stop
umount /var/lib/mysql/
Server5端操作:
Yum install -y mysql-server
进入mysql确认正常后退出并关闭mysql并卸载后设置为secondary节点:
mount /dev/drbd1 /var/lib/mysql/
/etc/init.d/mysqld start
Mysql
/etc/init.d/mysqld stop
umount /var/lib/mysql/
drbdadm secondary example
在server4端配置haresources文件:
cd /etc/ha.d/
vim haresources
将该文件传给server5虚拟机:
scp haresources 172.25.15.5:/etc/ha.d/
两边虚拟机启动heartbeat:
/etc/init.d/heartbeat start
测试:
两边启动hearbeat后,会自动挂载到/var/lib/mysql:
当server4端heartbeat服务关闭后 ,会自动挂载到server5上
Server4端:
/etc/init.d/heartbeat stop
查看server5端效果:
当heartbeat又重新启动后,server5端会自动卸载并重新挂载到server4上
####注:只存在drbd服务时,两台主机上的/dev/drbd1 不能同时挂载,只有状态为 primary 时,才能被挂载使用,而此时另一方的状态为 secondary。而加入heartbeat服务后,两边虚拟机都可以设成secondary也可以进行自动挂载!
本文出自 “12110289” 博客,谢绝转载!
原文地址:http://12120289.blog.51cto.com/12110289/1907569