服务器的高可用性——HA篇51CTO博客 - AG环亚娱乐

服务器的高可用性——HA篇51CTO博客

2019-01-03 16:41:21 | 作者: 昊嘉 | 标签: 效劳,高可用性,资源 | 浏览: 2154

     今日小编要和读者聊聊有关效劳器的高可用性的问题,当时读者应该知道,国内一些从事电子商务职业的效劳器功能是适当的强壮的(淘宝、阿里巴巴等等),这些电子商务的主站每秒钟的拜访量可是适当的可观,读者试着想想假如效劳器当掉了咋办,答复可能是必定还有其他效劳器代替啦,对,可是怎么敏捷代替让用户感觉不到现已有效劳器当掉了呢,那便引出小编今日要谈的HA。

      HA是啥?High-Availability Linux 的开源项目的方针是,经过社区开发尽力供给一个提高 Linux 可靠性(reliability)、可用性(availability)和可效劳性(serviceability)(RAS)的群集处理方案。Linux-HA 项目得到了广泛的运用,是许多风趣的高可用性处理方案的重要组成部分。

      高可用性集群一般是指当集群中有某个节点失效的状况下,其上的使命会主动转移到其他正常的节点上。还指能够将集群中的某节点进行离线保护再上线,该进程并不影响整个集群的运转。

今日小编的主要使命就是来完结HA群集。

Project 1:了解高可用性群集的架构

如图1-1所示,高可用性群集的几个重要部分

图1-1

1)同享信息层

在根底架构上完结心跳信息勘探。两边节点能够随时勘探到对方的心跳信息,以完结对对方主机作业状况的勘探。三类操控信息:心跳(Heartbeats),集群业务信息(Cluster Transition Messages),重传信息(Retransmission Request)。 装备文件:/etc/ha.d/ha.cf。各节点间域同享密钥,完结节点间彼此通讯的认证。加密办法:MD5、HMAC-SHA1 。常用完结软件:HeartBeat(小编这儿就是运用的这个)、keepalived、ultramonkey、openais/corosync。红帽官方供给的集群套件RHCS底层运用的通讯机制就是openais/corosync。

2)资源分配子层

在资源分配上界说资源品种,界定资源归属,每个效劳需求哪些资源及这些资源之间的前后次第。

集群资源办理器(CRM,常用软件pacemaker),办理两边向外供给效劳所需用到的资源,包含IP地址、Web效劳、同享存储等等。而这些资源需求依托集群信息库CIB(XML文件)来界说,一起还有必要确保一旦某个节点上的XML文件更新,马上告诉其他节点上的XML也要及时更新。

战略引擎(PE Policy Engine):界说法定人数以及依据法定人数所做出的动作等等。

本地资源办理器(LRM Local Resource Manager):监控本地某个资源的作业状况。

3)资源层

本地资源署理(Resource Agent),脚本文件,一旦集群资源办理器发现某个资源作业反常,当即告诉本地资源署理重启效劳。常用办法:

(1)Heartbeat v1(小编这儿运用的);

(2)运用脚本LSB scripts (Linux Standards Base );

(3)OCF Open Cluster Format 敞开集

Project 2:常用的架构模型

1)主从架构:正常状况下只有主效劳器作业,当主效劳器当掉从效劳器当即启用

2)互为主从架构:两台效劳器供给不同的效劳,彼此为主从架构,两台效劳器一起作业

3)多主机架构

N台主机组成一个集群,别离供给不同的效劳,一台效劳器闲暇做备节点。或许悉数处于作业状况,一台效劳器出毛病,马上将效劳转移到其他主机上。各节点之间需求以多播的办法将自己的健康状况发送给其他主机。

Project 3:高可用性集群的完结

1)主从架构

step 1:试验拓扑规划,如图3-1-1所示

图3-1-1

Primary eth0 192.168.1.100

           eth1 192.168.2.10 //心跳测验

Standby eth0 192.168.1.200

             eth1 192.168.2.20 //心跳测验

向外供给Web效劳IP:192.168.1.150

step 2:体系与软件资源需求装置

小编的体系是Red Hat EnterPrise Linux 5.4

小编的体系上现已装置了apache2.2.3和php环境,假如读者不会装置的话能够拜见小编的博客

小编将这些软件包放在/root/heart目录下了,然后运用不加gpg验证的本地yum装置完结

heartbeat-2.1.4-11.el5.i386.rpm

openhpi-libs-2.14.0-5.el5.i386.rpm

heartbeat-pils-2.1.4-11.el5.i386.rpm perl-MailTools-2.04-1.el5.rf.noarch.rpm

heartbeat-stonith-2.1.4-11.el5.i386.rpm perl-TimeDate-1.16-5.el5.noarch.rpm

libnet-1.1.5-1.el5.i386.rpm

primary效劳器的装置装备

# cd heart/

# yum localinstall ./* --nogpgcheck

这样装置省了许多事,体系会主动处理依托联络,可是读者还要记取装置完结之后查询一下heartbeat究竟产生了哪些文件

# rpm -ql heartbeat

其间/usr/share/doc/heartbeat-2.1.4/目录下就存放了heartbeat的样例装备文件

接下来的作业是修正主机名,Heartbeat依托效劳器的主机名来辨认效劳器,因而运用hostname指令得到的成果有必要与uname -n 成果保持共同。

# vim /etc/sysconfig/network //修正主机称号;

HOSTNAME=primary.a.com

# hostname primary.a.com

# vim /etc/hosts //修正主机地址映射;

192.168.1.100 primary.a.com primary

192.168.1.200 standby.a.com standby

# cd /etc/ha.d/

# cp /usr/share/doc/heartbeat-2.1.4/ha.cf ./

# cp /usr/share/doc/heartbeat-2.1.4/authkeys ./

# cp /usr/share/doc/heartbeat-2.1.4/haresources ./

# vim ha.cf //界说各节点之间Heartbeat进程怎么通讯;

debugfile /var/log/ha-debug //设置调试日志文件名

logfile /var/log/ha-log //设置其他日志文件名

keepalive 2 //设定heartbeat之间的时刻距离为2秒;

deadtime 30 //在30秒后宣告节点逝世;

warntime 10 //在日志中宣布late heartbeat正告之前等候的时刻,单位为秒;

udpport 694 // 运用端口694进行bcast和ucast通讯,默许参数;

bcast eth1 //在eth1接口上运用播送heartbeat-”心跳”;

node primary.a.com //界说节点;

node standby.a.com //界说节点;

# dd if=/dev/urandom bs=512 count=1 | openssl md5 //生成节点间域同享密钥;

14df2a6b5b26b510e7d5d5b16b7cc10b

# vim authkeys //界说心跳勘探包运用哪种加密办法;

auth 1

1 sha1 14df2a6b5b26b510e7d5d5b16b7cc10b

# chmod 600 authkeys //仅答应办理员修正文件;

# cp /etc/init.d/httpd /etc/ha.d/resource.d/

# vim haresources //界说资源;文件给出了相应的格局

primary.a.com 192.168.1.100/24/eth0/192.168.1.255 httpd

standby 效劳器的装备

从效劳器的主机称号为standby.a.com,装置heartbeat的办法同主效劳器共同。/etc/hosts文件、Heartbeat的装备文件也有必要与主机保持共同。因而这儿选用将primary上的装备文件直接长途仿制过来的办法:

# cd /etc/ha.d/

# scp 192.168.1.100:/etc/ha.d/ha.cf ./

# scp 192.168.1.100:/etc/ha.d/authkeys ./

# scp 192.168.1.100:/etc/ha.d/haresources ./

# cp /etc/init.d/httpd /etc/ha.d/resource.d/

# chmod 600 authkeys

step 3:会集测验

别离重新发动primary和standy效劳器的heartbeat效劳,如图3-1-2、3-1-3所示

图3-1-2

图3-1-3

这样就发动成功了,接下来编写测验网页,小编这儿为了让读者看的清楚两台效劳器的作业,所以两个测验网页的内容是不同的,而在实践的运用中两台效劳器上的内容必定是共同的啦。

primary效劳器的/var/www/html/index.php内容

<?php

for($i=0;$i<9;$i++)

echo $i."web1"."<br/>";

?>

standby效劳器的/var/www/html/index.php内容

<?php

for($i=0;$i<9;$i++)

echo $i."web2"."<br/>";

?>

在客户PC的浏览器上输入http://192.168.1.150试试看,成果如图3-1-4所示

图3-1-4

以上成果是在primary效劳器为主效劳器的状况才会呈现的,那么现在小编就来模仿以下主效劳器成为备份效劳器的状况再来看看,这儿heartbeat供给了一个东西来切换效劳器状况,在/usr/lib/heartbeat/目录下,这儿小编在切换效劳器状况的一起,来监控一下两台效劳器的日志,让读者清楚两台效劳器之间是怎么切换主从联络的

在primary效劳器上履行

# cd /usr/lib/heartbeat/

# ./hb_standby //恳求成为辅佐效劳器

主效劳器的日志状况如图3-1-5所示:

图3-1-5

从效劳器的日志状况如图3-1-6所示:

图3-1-6

小编现在来阐明一下切换流程

1.primary效劳器宣布请求说自己想成为standby效劳器,而且阐明standby效劳器能够拿走资源

2.”心跳“(播送)被standby效劳器抓到,知道primary要变为standby效劳器

3.primary开端开释资源,能够看到主效劳器封闭了httpd效劳器,当掉了192.168.1.150

4.standby开端请求资源,能够看到standby效劳器开端发动httpd效劳器,而且启用对外IP192.168.1.150

5.两边作业都完结显现success

此刻在改写一下PC机的浏览器看看,成果如图3-1-7所示

图3-1-7

看到了吧,成功转到standby效劳器了

刚刚不是standby效劳器成为了主效劳器么,那么下面小编就来模仿一下主效劳器当掉的状况,这儿小编将监控“心跳”的eth1端口当掉

# ifconfig eth1 down

能够在primary效劳器的日志上看到如图3-1-8所示的信息

图3-1-8

此刻再次改写一下PC的浏览器看看,成果如图3-1-9所示

图3-1-9

primary效劳器成功切换成为主效劳器啦

到这儿主从架构的装备以及测验小编就彻底演示完了,接下来的作业交个读者你去着手操作啦,接下来的作业是完结互为主从架构的事例啦

2)互为主从架构

step 1:试验拓扑规划,如图3-2-1所示:

图3-2-1

这儿小编依然运用主从架构的环境,稍作修正即可

step 2:

primary效劳器的资源装备修正

# vim /etc/ha.d/haresources

primary.a.com 192.168.1.150/24/eth0/192.168.1.255 httpd

standby.a.com 192.168.1.151/24/eth0/192.168.1.255 vsftpd //增加ftp

# touch /var/ftp/primary //作为区分用

standby效劳器的资源装备修正

# vim /etc/ha.d/haresources

primary.a.com 192.168.1.150/24/eth0/192.168.1.255 httpd

standby.a.com 192.168.1.151/24/eth0/192.168.1.255 vsftpd

# touch /var/ftp/standby

step 3:重新发动两台效劳器的heartbeat效劳

# service heartbeat restart

step 4:会集测验

依然在PC机的浏览器输入http://192.168.1.150,成果如图3-2-2所示

图3-2-2

PC浏览器输入ftp://192.168.1.151试试,成果如图3-2-3所示:

图3-2-3

看见了吧,两台效劳器彼此备份,都运转有运用效劳,读者能够自己测验一下将其间一台效劳器当掉,看看成果,小编这儿就不粉饰了,有啥问题请联络小编哈,至于第三种方式,因为小编的主机有限就没做了,假如读者能把上面两种方式了解透彻,第三种很简单完结啦。

编后语:HA集群一般都是以两个节点的办法呈现的,单机处理才能有限,所以当效劳器压力较大时,想扩容效劳器的处理才能往往得把曾经的效劳器筛选掉,浪费了曾经的出资;因而关于高拜访性需求的商业性网站单纯想运用HA群集来处理问题是不可行的,假如再结合LVS来运用,那就是极好的了,至于LVS的完结小编会在后续的博客中道来,敬请重视哈。。。。。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章