准备两台虚拟机,IP地址为192.168.1.4和192.168.1.3
把节点时间同步,分别在两台虚拟机上设置时间同步:
crontab -e 打开后编辑,使每3分钟同步一次;指向可靠的网关;
*/3 * * * * /usr/sbin/ntpdate 192.168.1.1 &> /dev/null
节点间需要通过主机名互相通信,必须解析主机至IP地址,通信中使用的名字与节点名字必须保持一致
vim /etc/hosts
192.168.1.4 hsxaou
192.168.1.3 hsxaou1
编辑此文件可修改主机名称:/etc/sysconfig/network
建立各节点之间的root用户能够基于密钥认证
ssh-keygen -t rsa -P ‘‘
把生成的公钥复制到对应的节点上
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
查看来两台主机时间是否同步;
date; ssh hsxaou1 ‘date‘
准备好之后在各节点开始安装程序,先解决依赖的包,libnet需要epel源;
yum install net-snmp-libs libnet PyXML
下载heartbeat2.rpm包到本地,并复制到另外一个节点家目录;
scp -r heartbeat2/ hsxaou1:~/
在两个节点上分别安装;
rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm
配置文件在/etc/ha.d/目录下
配置IP可以使用IPaddr或者IPaddr2,前者使用ifconfig命令,后者时候ip命令;
v1版专用配置接口,不是V1版不使用,样例配置文件在:
把这3个样例文件authkeys,ha.cf,haresources复制到/etc/ha.d/目录下,并修改authkeys的权限需修改为400或600;
cp /usr/share/doc/heartbeat-2.1.4/{ha.cf,haresources,authkeys} /etc/ha.d/
修改权限为600
chmod 600 authkeys
编辑配置文件authkeys,在此文件内指明启用的算法和要启用的秘钥;
算法简单时自己可以生成一个,放在里面;
openssl rand -base64 16
auth #:使用第几个算法,#就填那个数字
编辑主配置文件ha.cf,启动基本功能;
日志功能,启用其中一个;
这里定义的是发往local0,需要在/etc/rsyslog.conf内定义,并重启服务
service rsyslog restart
默认发送心跳时间,默认为2秒;
keepalive 2
死亡时间;
deadtime 30
警告时间;
warntime 10
heartbeat运行在多个节点上时,启动时间比较长,可以根据情况延长时间;
initdead 120
基于UDP传送心跳默认端口
udpport 694
广播,使用哪个就启用哪个
多播
mcast eth0 225.22.190.1 694 1 0
地址不能和别人相同,自己修改下,694端口,1为ttl值表示只允许传递一次;0为loop值,不允许循环
ip link set eth0 multicast on|off 使用多播时需要启用;
资源转回
auto_failback on
指明高可用集群要使用的节点,节点名必须与uname -n的名字保持一致;
指明ping node,仲裁设备,探测辅助性设备
可以指定多个主机
对节点之间传递的信息压缩
compression bz2
指明2kb以上的才压缩
compression_threshold 2
vim /haresources
定义集群资源
指定主节点名字,后面为资源地址,每个资源单独进行指定
设置fip(公共IP),会自动设置在某块网卡的别名上, 从左侧第一个启动,在哪个主机上前面就使用哪个主机的名字
hsxaou 192.168.1.10/24/eth0/192.168.255.255 httpd
完成后把配置文件发送到另外一个节点,保留原来的权限
scp -p ha.cf haresources authkeys hsxaou1:/etc/ha.d/
分别在各节点上,启动heartbeat之前先要把httpd页面配置好,作为测试2个节点的页面设置不一样,作为区分并且设置为开机不自动启动;
vim /var/www/html/index.html
chkconfig httpd off
启动heartbeat服务,并查看80端口是否打开;
service heartbeat start
ss -tunl
使用浏览器访问fip192.168.1.10,完成了。。
基于共享文件的高可用:
在第3台主机上设置主页:
vim /web/htdocs/index.html
共享文件:vim /etc/exports
/web/htdocs *(rw,no_root_squash)
启动nfs服务:service nfs start
nfs开机自启:chkconfig nfs on
在192.168.1.4节点上挂载文件进行测试,使用浏览器访问测试
mount -t nfs 192.168.1.5:/web/htdocs /var/www/html/
设置成功后卸载掉;
umount /var/www/html/
编辑/etc/ha.d/haresoureces
/usr/lib64/heartbeat/hb_takeover 拿回资源
/usr/lib64/heartbeat/hb_standby 资源转出
/usr/lib64/heartbeat/ha_propagate 把本节点的上的ha.cf和athkeys文件自动发送到另外一个节点的/etc/ha.d/下,并显示可以设置为ha的有哪些