第二章 Heartbeat原理
高可用原理:两台机器A和B,正常是A提供服务,B闲置,当A宕机或服务宕掉,切换到B继续提供服务,使用心跳进行通信和选举
heartbeat原理:心跳检测和资源接管两个部分。集群中的主机互相发送报文,告诉对方自己当前的状态,如果在一定时间内未收到对方报文,认定对发死亡
心跳线的作用(内网IP):互相发送报文AB两台虚拟机上都装nginx和heartbeat,AB两台虚拟机都把heartbeat起来,但不启动nginx。
这时主节点上的nginx会自动启动,并获得VIP。
正常情况下是A提供服务,VIP在A上,如果A上的nginx出现故障停止工作,VIP会漂移到B上,B上的nginx也会自动启动,以此达到高可用效果
第三章 安装前准备
1.业务设计
1.系统:俩台centos 6.5【参考文档一vmware安装centos6.5】
2.IP、主机名和心跳线IP设置
业务IP:192.168.1.244 主机名node1 内网心跳线IP:192.168.8.244
业务IP:192.168.1.245 主机名node2 内网心跳线IP:192.168.8.245
3.虚拟vip
Vip:192.168.1.240 访问IP
4.安装软件包
libnetfilter_conntrack-devel-0.0.100-2.el6.x86_64.rpm
libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm
libxml2-static-2.7.6-14.el6.x86_64.rpm
rpm -ivh epel-release-6-8.noarch.rpm
libnet-1.2-rc3.tar.gz
heartbeat-2.0.6.tar.gz
ngx_cache_purge-2.3.tar.gz
nginx-1.9.7.tar.gz
2.安装前准备
1.关闭防火墙
# service iptables stop
#chkconfig iptables off
改完后确认
# service iptables status
Iptables: 未运行防火墙
2.关闭selinux
修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled或SELINUX=permissive
# vi /etc/selinux/config
……
SELINUX=disabled
……
3.时间同步
在两台主机中分别查看时间是否同步
[root@localhost ~]# date
如果同步,则无需修改,否则要进行同步,具体步骤如下:
若是联网的状态,执行以下命令:
ntpdate time.nist.gov
若是内网的状态,执行下列操作:
A、在ip为192.168.1.244中执行命令
vi /etc/ntp.conf
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap //允许192.168.1.0的网段同步
/etc/init.d/ntpd restart
B、在ip为192.168.1.245中执行命令
vi /etc/ntp.conf
192.168.1.244
/etc/init.d/ntpd restart
C、同步主时间服务器时间,执行命令
ntpdate 192.168.1.244
4.互相添加对方主机名解析
主节点 IP:192.168.1.244 主机名node1 内网心跳线IP:192.168.8.244
添加主机名node1
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
#HOSTNAME=localhost.localdomain
HOSTNAME=node1
:wq 保存退出
查看添加之后的结果
解析备节点主机名(注意备节点IP和主机名)
[root@localhost ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.245 node2
:wq 保存退出
查看添加结果
添加内网心跳线
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0:0
[root@localhost network-scripts]# vi ifcfg-eth0:0
DEVICE=eth0:0 网卡eth0:0
#HWADDR=00:0c:29:4f:02:ee 加#
TYPE=Ethernet
#UUID=7995f1d7-8789-43f1-b17e-c0441dfea01b 加#
NM_CONTROLLED=yes
BOOTPROTO=static static
IPV6INIT=no
USERCTL=no
IPADDR=192.168.8.244 心跳线
NETMASK=255.255.255.0
:wq 保存退出
重启网卡
[root@node1 network-scripts]# service network restart
[root@node1 network-scripts]# ifconfig
备节点 IP:192.168.1.245 主机名node2 内网心跳线IP:192.168.8.245
添加主机名node2
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
#HOSTNAME=localhost.localdomain
HOSTNAME=node2
:wq