1。理论部分
1.1。群集的分类
我们使用两种主要的集群系统:
高可用性)HA集群,由Heartbeat实现;也将称为“双机热备”、“双机互备”、“双机”。
负载均衡集群由Linux虚拟服务器(LVS)实现;
1.2、心跳的作用
通过心跳、资源(IP和服务等。)可以快速地从故障计算机转移到另一台正常计算机上继续提供服务,一般称为高可用性服务。
1.3、心跳的工作原理(Linux-HA)
心跳包括两个核心部分:心跳监控部分和资源接管部分。可以通过网络链路和串口进行心跳监测,支持冗余链路。他们互相发信息告诉对方自己的现状。如果在规定时间内没有收到对方发送的消息,则认为对方无效。此时,需要启动资源接管模块来接管其他主机上运行的资源或服务。
1.4。心跳相关术语
1)节点——运行心跳进程的独立主机,称为节点,是HA的核心组件。
——有主次节点。
-具有唯一的主机名。
——有自己的资源。
-主节点运行一个或多个应用服务,而备用节点通常处于监控状态。
2)资源——资源是一个节点可以控制的实体,当出现故障时,这些资源可以被其他节点接管。
-磁盘分区、文件系统
-IP地址
-应用服务
-NFS文件系统
3)事件(事件)
-节点系统故障
-网络连接失败
-应用程序失败
-……
4)行动
事件发生时HA如何响应(由shell脚本控制)
1.5。心跳的组成
beartbeat-节点间通信检测模块
ha-logd-群集事件日志服务
CCM(一致集群成员资格)-集群成员一致性管理模块
LRM(本地资源经理)-本地资源管理模块
stonithDaemon——将问题节点从集群环境中取出。
CRM(集群资源管理)-集群资源管理模块
群集策略引擎-群集策略引擎
集群转换引擎-集群转换引擎
2。练习
2.1,主机信息
HA1:
eth0
IP地址=10.168.0.161
vip=10.168.0.160
网关=10.168.0.1
eth1
IP地址=10.0.0.1
主机名=HA1
HA2:
eth0
IP地址=10.168.0.162
vip=10.168.0.160
网关=10.168.0.161
eth1
IP地址=10.0.0.2
主机名=HA2
客户:
IP地址=10.168.0.8
2.2,yum源安装
在HA1&HA2
yum -y install http://mirrors.opencas.cn/epel/6/i386/epel-release-6-8.noarch.rpm yum -y install heartbeat* libnet nginx yum -y install ntp2.3。实验步骤
2.3.1、第一步
在HA1
cd /usr/share/doc/heartbeat-3.0.4/ cp authkeys ha.cf haresources /etc/ha.d/Vimedit/etc/ha.d/authkeys
删除(删除#)以下内容的注释或直接添加以下内容:
auth 3 3 md5 hello!更改文件权限
chmod 600 /etc/ha.d/authkeysvimeditor/etc/etc/ha.d/haresources添加了以下内容:
ha1 10.168.0.160/24/eth0 nginxVimedit/etc/ha.d/ha.cf,并删除注释(删除#)或直接添加以下内容:
debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keeplive 2 deadtime 30 warntime 10 initdead 60 udpport 694 ucast eth1 10.0.0.2 auto_failback on node HA1 node HA2 ping 10.168.0.1 #respawn hacluster /usr/libheartbeat/ipfail respawn hacluster /usr/lib64/heartbeat/ipfail注意:
1)带有1)主机名后缀的域名(HA1.cmdschool.org)将会出错。
2)x86和x64应该分别使用14行和15行。
2.3.2、第二步
在HA2中
scp 10.168.0.161:/etc/ha.d/{authkeys,ha.cf,haresources} /etc/ha.d/Vim编辑/etc/ha.d/ha.cf并修改ucast参数:
ucast eth1 10.0.0.1IP被更改为对等主机的IP地址(10.0.0.1)
2.3.3、步骤3
启动服务并配置自启动。
在HA1&HA2
/etc/init.d/nginx start /etc/init.d/heartbeat start chkconfig heartbeat on chkconfig nginx on
2.3.4、步骤4
港口
在HA1&HA2
1)vimedit/etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 694 -j ACCEPT2)重启防火墙
/etc/init.d/iptables restart2.3.5、第五步
调整时区并同步:
在HA1&HA2
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate 0.centos.pool.ntp.org2.3.6、第六步
1)创建网站测试网站。
在HA1
mkdir -p /var/www/www.cmdschool.org echo HA1 > /var/www/www.cmdschool.org/index.html在HA2中
mkdir -p /var/www/www.cmdschool.org echo HA2 > /var/www/www.cmdschool.org/index.html2)检查配置文件。
在HA1&HA2
grep include /etc/nginx/nginx.conf它应该包含以下声明:
include /etc/nginx/conf.d/*.conf;3)添加配置文件。
在HA1&HA2
vimeditor/etc/nginx/conf.d/www.cmdschool.org.conf
server { listen 80; server_name www.cmdschool.org; location / { root /var/www/www.cmdschool.org; index index.html index.htm; } }4)重新启动服务
在HA1&HA2
/etc/init.d/nginx restart5)模拟dns并测试
在客户端
Vim编辑/etc/hosts
10.168.0.161 www.cmdschool.org将www.cmdschool.org修改为指向10.168.0.161,并执行以下测试:
curl http://www.cmdschool.orgVim编辑/etc/hosts
10.168.0.162 www.cmdschool.org将www.cmdschool.org修改为指向10.168.0.162,并执行以下测试:
curl http://www.cmdschool.org5)配置虚拟IP的模拟dns指向
Vim编辑/etc/hosts
10.168.0.160 www.cmdschool.org将www.cmdschool.org修改为指向10.168.0.160,并执行以下测试:
curl http://www.cmdschool.org2.3.7、第7步
测试步骤
1)关闭或重启主节点的心跳服务。
在HA1
/etc/init.d/heartbeat restart在客户端
curl http://www.cmdschool.org注意:无缝服务切换
2)关闭主节点网络。
在HA1
ifdown eth0在客户端
等待30秒后:
curl http://www.cmdschool.org注意:30秒后接管
3)关闭主节点的电源。
在HA1
halt在客户端
等待30秒后:
curl http://www.cmdschool.org注意:30秒后接管。
4)切断主节点的所有网络。
在HA1
ifdown eth1注意:心跳中断不会导致资源接管。
ifdown eth0在客户端
等待30秒后:
curl http://www.cmdschool.org注意:30秒后接管。
5)心跳守护程序意外结束。
killall -9 heartbeat注意:30秒接管(包括内核模块看门狗,不存在资源争用)
看门狗模块的验证方法:
modinfo softdog显示如下:
filename: /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/watchdog/softdog.ko alias: char-major-10-130 license: GPL description: Software Watchdog Device Driver author: Alan Cox srcversion: 47DC8C5D5D2AF6E6652F271 depends: vermagic: 2.6.32-431.el6.x86_64 SMP mod_unload modversions parm: soft_margin:Watchdog soft_margin in seconds. (0 < soft_margin < 65536, default=60) (int) parm: nowayout:Watchdog cannot be stopped once started (default=0) (int) parm: soft_noboot:Softdog action, set to 1 to ignore reboots, 0 to reboot (default depends on ONLY_TESTING) (int) parm: soft_panic:Softdog action, set to 1 to panic, 0 to reboot (default=0) (int)-
参考资料:
http://www.linux-ha.org/
http://book.51cto.com/art/200912/168029.htm
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)