技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

HA集群理论及配置实例

服务器的衡量标准:计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:MTTF/(MTTF+MTTR)*100%99.9% 一年宕机时间不超过10h99.999% 一年宕机时间不超过6min如何提高服务器的可用性呢,这就需要使用HA(high availability)集群,一般是由多个节点的来组成。HA集群是集群中较为常见的一种,当硬件和软件系统发生故障的时候,运行在集群系统中的数据不易丢失,而且能在尽可能短的时间里恢复正常运行。双机热备是HA集群中常见的一种解决方案,双机热备按照工作方式不同可以分为一下几种:1.主-备(active-standby)主 - 备方式即指的是一台服务器处于某种业务的激活状态,另一台服务器处于该业务的备用状态;2.主-主(active-active)双主机方式即指两种不同业务分别在两台服务器上互为主备状态; 主服务器&&备用服务器主服务器和备用服务器是建立双机热备的基本条件。两个系统上的数据库服务器共享同一个数据库文件。通常情况下,数据库文件挂靠在主数据库服务器上,用户连接到主服务器上进行数据库操作。当主服务器出现故障时,备用服务器会自动连接数据库文件,并接替主系统的工作。用户在未告知的情况下,通过备用数据库连接到数据库文件进行操作。等主服务器的故障修复之后,又可以重新加入集群; 说到这里,那么备用服务器是如何知道主服务器挂掉了呢,这就要使用一定的机制,如心跳检测,也就是说每一个节点都会定期向其他节点通知自己的心跳信息,尤其主服务器,如果备用服务器在3~5个心跳周期还没有检测到的话,就认为主服务器宕掉了,而这期间在通告心跳信息当然不能使用tcp的,如果使用tcp检测,还要经过三次握手,等手握完了,不定经过几个心跳周期了,所以在检测心跳信息的时候采用的是udp的端口号694进行传递信息的如果主服务器在某一端时间由于服务繁忙,没时间响应心跳信息,如果这个时候备用服务器要是一下子把服务资源抢过去,但是这个时候主服务器还没有宕掉,这样就会导致资源抢占,就这样用户在主辅上都能访问,如果仅仅是读操作还没事,要是有写的操作,那就会导致文件系统崩溃,这样一切都玩了,所以在资源抢占的时候,可以采用一定的隔离方法,来实现,就是备用服务器抢占资源的时候,直接把主服务器给“一脚踹死”; 运行于备用主机上的Heartbeat可以通过以太网连接检测主服务器的运行状态,一旦其无法检测到主服务器的“心跳”则自动接管主服务器的资源。通常情况下,主、备服务器间的心跳连接是一个独立的物理连接,这个连接可以是串行线缆、一个由“交叉线”实现的以太网连接。Heartbeat甚至可同时通过多个物理连接检测主服务器的工作状态,而其只要能通过其中一个连接收到主服务器处于活动状态的信息,就会认为主服务器处于正常状态。从实践经验的角度来说,建议为Heartbeat配置多条独立的物理连接,以避免Heartbeat通信线路本身存在单点故障。 1、串行电缆:被认为是比以太网连接安全性稍好些的连接方式,因为hacker无法通过串行连接运行诸如telnet、ssh或rsh类的程序,从而可以降低其通过已劫持的服务器再次侵入备份服务器的几率。但串行线缆受限于可用长度,因此主、备服务器的距离必须非常短。 2、以太网连接:使用此方式可以消除串行线缆的在长度方面限制,并且可以通过此连接在主备服务器间同步文件系统,从而减少了从正常通信连接带宽的占用。 3、光电交换机总体部署如下图所示,当然只是选择其中的一种方式就行了: 隔离级别: 1.节点级别:   STONITH:Shoot The Other Node In the Head (俗称“爆头”)呵呵,挺形象的,意思就是直接切断电源;常用的方法是所有节点都接在一个电源交换机上,如果有故障,就直接导致该节点的电压不稳定,或断电,是有故障的节点重启 2.资源级别:   fencing 只是把某种资源截获过来   而对于多节点的集群就要复杂了,在多节点集群中要有个“头头”就是指定的“协调员”DC,就是一个集群中每个几点上都有一个相当于选举票的权值,而这个权值就是根据服务器的性能进行手动分配的,性能好的可以分配的大点,而所有的其他节点都要听从DC的调度,在一个集群中只有选票达到50%以上才能称为集群系统。如果出现故障了,就会有一个故障转移(failover),设置不同的优先级,可以使故障按照优先级的高低进行转移,选择一个性能好的服务器当DC。 既然前面讲到了共享存储,下面就简单的介绍一下共享存储的方式: DAS:(Direct attached storage)设备直接连接到主机总线上的,距离有限,而且还要重新挂载,之间有耽误时间   RAID   SCSI NAS:(network attached storage)网络附加存储   文件级别的共享 SAN:(storage area network)存储区域网络   块级别的   模拟的scsi协议     FC光网络(交换机的光接口超贵,有一个差不多2万,如果使用这个,代价太高)     IPSAN(iscsi)存取快,块级别集群文件系统:GFS2、OCFS2,这只能在集群中使用  HA的架构层次:从下向上讲:1.Messageing and Infrastructure Layer (信息基础架构层):<套件---heartbeat,keepalive,corosync/openais,RHCS  传递心跳信息的非常重要的子层,通过单独的服务组件来实现,除了心跳信息,还传递集群事务信息2.Membership 成员层: <套件-----pacemaker(心脏起搏器),cman (CCM,成员信息)  重新收敛集群成员信息,生成一个概览图,为第三层采取动作提供信息3.Resource Allocation资源分配层  Cluster Resource Manage(集群资源管理)  LRM,决策本地资源(local resource manage)。定义资源的属性,反映本地资源的信息  policy engine 策略引擎,做决策  transition engine 执行引擎,执行策略引擎做的决定  Cluster information Base 集群信息基础,他是一个包括membership,resoutces,constraints的XML文,在任意一个节点上使用命令进行修改,都会自动的同步到主节点DC的配置文件中去4.Resource Layer(资源层)  Resource Agent资源代理:就是运行具体的服务,服务启动的脚本,数据文件等资源整体结构如下图所示: heartbeat v1上的配置总体拓扑如下图所示: 一、首先实现两个节点之间的主机相互登录不使用密码,方便后面的使用 Node1上的配置 #ssh-keygen -t rsa  //生成公钥和密钥,一步enter到底就行了 ## ssh-copy-id -i .ssh/id_rsa root@10.1.1.2  //输入密码就行了 Node2上的配置 #ssh-keygen -t rsa  //生成公钥和密钥,一步enter到底就行了 ## ssh-copy-id -i .ssh/id_rsa root@10.1.1.1  //输入密码就行了  二、配置Node1: 1.配置网卡的地址,强烈建议使用静态地址 2.#vim /etc/hosts对所有的节点主机的心跳IP和主机名都写入     10.1.1.1 node1.a.org   node1     10.1.1.2 node2.a.org   node2 3.编辑主机名      #vim /etc/sysconfig/network     HOSTNAME=node1.a.org   #hostname node1.a.org   #yum install httpd    #echo "<h1>node1server</h1>" >/var/www/html/index.html   任何集群服务都不能自动启动,而且还不能开机自动启动   #server httpd stop   #chkconfig httpd off    4.安装heartbeat,复制配置文件及配置  所需的软件包如下所示   #yum localinstall * -y --nogpgcheck  //安装heartbeat软件包   #cd /usr/share/doc/heartbeat-2.1.4/   #cp ha.cf haresources authkeys /etc/ha.d/   #cd /etc/ha.d/   #vim /etc/ha.d/ha.cf    修改如下内容    keepalive 2    //保持时间    deadtime 30    //死亡时间    warntime 10    //警告时间    initdead 120   //启动时间    udpport 694    //使用udp的端口    bcast eth1     //心跳接口    logfile /var/log/ha-log  //日志文件    auto_failback on  //失败自动退回    node node1.a.org  //节点对应的主机名,这里面要写所有的    node node2.a.org   #vim authkeys    auth 2    2 sha1 jlasdlfladddd //这个后面的密码可以随意写,也可以使用自动生成随机数(#dd if=/dev/urandom bs=512 count=1 |md5sum )的方式来生成,但是节点之间是一样的   #chmod 400 authkeys  //修改权限   #vim haresources    node1.a.org 192.168.1.254/24eth0/192.168.1.255 httpd  //生成一个VIP  #cd /usr/lib/heabeat     ./ha_propagate //拷贝文件authkeys和ha.cf文件     三、配置Node2:    1.配置网卡的地址,强烈建议使用静态地址 2.#vim /etc/hosts对所有的节点主机的心跳IP和主机名都写入     10.1.1.1 node1.a.org   node1     10.1.1.2 node2.a.org   node2 3.编辑主机名      #vim /etc/sysconfig/network     HOSTNAME=node2.a.org   #hostname node2.a.org   #yum install httpd    #echo "<h1>node2server</h1>" >/var/www/html/index.html   任何集群服务都不能自动启动,而且还不能开机自动启动   #server httpd stop   #chkconfig httpd off   四、安装heartbeat软件包并拷贝配置文件   #yum localinstall * -y --nogpgcheck  //和Node1 一样的安装   #cd /usr/lib/heatbeat   #./ha_propagate //拷贝文件authkeys和ha.cf文件        #cd /etc/ha.d/   #scp haresources node2:/etc/ha.d/   五、启动服务     #/etc/init.d/heartbeat start   #ssh node2 --'/etc/init.d/heartbeat start' //无论哪个先启动,但是所有集群的节点必须在同一个上面启动其他节点    六、测试:   在浏览器中输入http://192.168.1.254进行访问   测试的时候,在Node2上停止Node1的服务   #ssh node1 --'/etc/init.d/heartbeat stop'   在主节点上执行/usr/lig/heartbeat/hb_standy 让出主节点                  /usr/lig/heartbeat/hb_takeover 主节点把资源抢回来实验结束!                          本文出自 “Ro の博客” 博客,谢绝转载!... 全文

集群 HA 休闲 HA高性能集群 HA理论

整合HA和LB来实现高可用的LB集群

首先简单的介绍一下这个小拓扑,CIP是客户端访问位于RealServer上的web服务,而为了实现负载均衡,通过LB-DR来实现负载,但是考虑到LB的单点故障,所以使用HA来实现高可用。整体规划如下所示一、配置Heartbeat和Directory来实现LB的高可用性的1、#hostname node1.a.org#vim /etc/sysconfig/network 修改HOSTNAME=node1.a.org2、配置/etc/hosts文件,添加如下信息:10.1.1.1 node1.a.org node110.1.1.2 node2.a.org node23、配置两台LB服务器相互登录不用密码的配置:#ssh-keygen –t rsa  然后一路Enter下去就行了#ssh-copy-id .ssh/id_rsa.pub root@10.1.1.2  然后输入密码就行了4、配置两个网卡的IP地址#vim /etc/sysconfig/network-scripts/ifcfg-eth0##vim /etc/sysconfig/network-scripts/ifcfg-eth1IP就照图上的配置进行,配置完成之后重新启动网络#service network restart 5、安装Heartbeat软件包[root@node1 heartbeat]# ls  //列出所需的软件包 heartbeat-2.1.4-9.el5.i386.rpm heartbeat-devel-2.1.4-9.el5.i386.rpm heartbeat-gui-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm使用本地安装,解除依赖关系#yum localinstall * --nogpgcheck –y#cd /usr/share/doc/heartbeat-2.1.4/#cp ha.cf  haresources  authkeys  /etc/ha.d/   //拷贝配置文件模版到/etc/ha.d下#cd /etc/ha.d#vim /etc/ha.d/ha.cf //编辑配置文件修改如下内容    keepalive 2    //保持时间    deadtime 30    //死亡时间    warntime 10    //警告时间    initdead 120   //启动时间    udpport 694    //使用udp的端口    bcast eth1     //心跳接口    logfile /var/log/ha-log  //日志文件    auto_failback on  //失败自动退回    node node1.a.org  //节点对应的主机名,这里面要写所有的    node node2.a.org    bcast node1.a.org#vim authkeys    auth 2    2 sha1 jlasdlfladddd //这个后面的密码可以随意写,也可以使用自动生成随机数(#dd if=/dev/urandom bs=512 count=1 |md5sum )的方式来生成,但是节点之间是一样的#chmod 400 authkeys  //修改权限#vim haresources    node1.a.org ipvsd  //指定主节点和VIP和流动资源,这里面定义的ipvsd是一个脚本,下面将介绍#cd /usr/lib/heabeat     ./ha_propagate //拷贝文件authkeys和ha.cf文件#cd /etc/ha.d/#scp haresources node2:/etc/ha.d/下面是ipvsd脚本 #vim ipvsd#!/bin/bash## LVS script for VS/DR#. /etc/rc.d/init.d/functions#VIP=192.168.1.80         //定义一个全局的变量VIPRIP1=192.168.1.172       //定义RealSever1的ip地址RIP2=192.168.1.178       // 定义RealSever2的ip地址PORT=80#case "$1" instart)             /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up  /sbin/route add -host $VIP dev eth0:1# Since this is the Director we must be able to forward packets  echo 1 > /proc/sys/net/ipv4/ip_forward# Clear all iptables rules.  /sbin/iptables -F# Reset iptables counters.  /sbin/iptables -Z# Clear all ipvsadm rules/services.  /sbin/ipvsadm -C# Add an IP virtual service for VIP 192.168.0.219 port 80# In this recipe, we will use the round-robin scheduling method. # In production, however, you should use a weighted, dynamic scheduling method.   /sbin/ipvsadm -A -t $VIP:80 -s wlc# Now direct packets for this VIP to# the real server IP (RIP) inside the cluster  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g -w 1  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g -w 2  /bin/touch /var/lock/subsys/ipvsadm &> /dev/null;; stop)# Stop forwarding packets  echo 0 > /proc/sys/net/ipv4/ip_forward# Reset ipvsadm  /sbin/ipvsadm -C# Bring down the VIP interface  /sbin/ifconfig eth0:1 down  /sbin/route del $VIP    /bin/rm -f /var/lock/subsys/ipvsadm    echo "ipvs is stopped...";;status)  if [ ! -e /var/lock/subsys/ipvsadm ]; then    echo "ipvsadm is stopped ..."  else    echo "ipvs is running ..."    ipvsadm -L -n  fi;;*)  echo "Usage: $0 {start|stop|status}";;esac这个脚本在写完之后,要赋予执行的权限,并且把他放到/etc/ha.c/resource.d/下#chmod +x ipvsd#cp ipvsd /etc/ha.d/resource.d/OK,HA和LB配置完成!接下来将配置两个realserver了 二、 RealServer1上的配置:1、配置VIP&&RIP#ifconfig eth0 192.168.1.172/24  //配置RIP#ifconfig lo:0  192.168.1.80 broadcast 192.168.1.80 netmask 255.255.255.255 up#route add –host 192.168.1.80 dev lo:02、定义内核参数,防止ARP解析的#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_igonre#echo 1 > /proc/sys/net/ipv4/conf/all/arp_igonre#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce3、安装LAMP服务#yum install mysql-server php httpd php-mysql php-mbstring#echo “<h2>Real Server1</h2>” >/var/www/html/index.html#service httpd start   //启动服务 三、 RealServer2上的配置:1、配置VIP&&RIP#ifconfig eth0 192.168.1.178/24  //配置RIP#ifconfig lo:0  192.168.1.80 broadcast 192.168.1.80 netmask 255.255.255.255 up#route add –host 192.168.1.80 dev lo:02、定义内核参数,防止ARP解析的#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_igonre#echo 1 > /proc/sys/net/ipv4/conf/all/arp_igonre#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce3、安装LAMP服务#yum install mysql-server php httpd php-mysql php-mbstring#echo “<h2>Real Server2</h2>” >/var/www/html/index.html#service httpd start   //启动服务当然这个过程也可以使用一个脚本实现。现在都配置好了,接下来就是启动HA的Heartbeat服务了:#/etc/init.d/heartbeat start#ssh node2 -- '/etc/init.d/heartbeat start'我这里都是在一个机器上启动的,启动完成之后,接下来就是验证了 四、验证在浏览器中输入http://192.168.1.80访问,可以看到分别显示两个RealServer上的网页,我这里是有意把两个网页做的不一样,以便区分的,由于我使用的是LB-DR的wlc算法,这个时候会响应用户两个页面,而且权重比值是1:2现在在Node1上使用ifconfig命令,可以看到一个eth0:1的端口 使用#ipvsadm -L -n查看,上面有对应的资源:而在Node2上就没有,我这里就不展示了,下面我把HA的主服务器调成Node2#cd /usr/lib/heartbeat[root@node1 heartbeat]#  ./hb_standby 2011/09/11_21:11:46 Going standby [all].这个是后我们在Node1上同样使用ifconfig查看,原本的那个接口没有了,而在Node2上使用ifconfig查看,就能看到上面的接口,这个时候使用#ipvsadm -L -n查看,资源已经从Node1转到了Node2上了,如图所示:实验结束!! 本文出自 “Ro の博客” 博客,请务必保留此出处http://luoweiro.blog.51cto.com/2186161/662548... 全文

集群 HA LB HA实验 HA和LB整合

VMware HA与VMotion的部署与搭建

VMware HA与VMotion的部署与搭建一.VMware HA    由于公司虚拟化的不断使用,不允许出现ESX Server的单点故障,因此考虑用VMware 自己的解决方案,及VMware的群集,对于群集的相关介绍,这里就不再叙述了,网上有很多相关的资料。下面介绍部署的细节:二.VMware HA的部署的前提条件  进行VMware HA操作时,并不用像Linux/Windows Cluster那样需要两张网卡来进行网络的链接和传送心跳信号。它仅仅只需要一张网卡和一个Service Console即可(但会有警告信息,在后面会提到)。  另外,进行VMware HA操作还需要满足以下两个条件:   群集中主机(host)中启动的虚拟机必须能够访问共同的存储器和网络,在这里使用的是Openfiler,当然你也可以选择其他的iscsi存储或光纤存储设备。群集中的主机(host)能够通过主机名、完整的正式域名和 IP来PING通对方,在这里你可以配置你的DNS使他们之间可以互相识别,在这里我直接用hosts文件指出的,其效果是一样的。当然前期你还需要准备一些工作,如网络环境,VCenter环境的搭建,openfiler环境的搭建。在文章的后面我会附上搭建Openfile的PDF文档。三. 我的测试环境四.HA配置过程... 全文

部署 搭建 ha VMware HA VMotion

VMware HA环境搭建三:VMware HA使用到2008R2域环境的安装

       按照前面安装2008R2的步骤安装完2008R2后,为了容易区分服务器的工作和后面更快的定位到服务器,安装好系统后,先修改一个直观的计算机名称,此实例就按前期规划的时候已经定义好的名字修改成2008R2-dc,重新启动。... 全文

VMware HA 域控制器 DC

HA(heartbeat)主备模式实现lvs群集的高可用性

案例要求:   1、通过HA主备模式实现对lvs群集(web服务器)的高可用性,并实现对内部web服务器在线状态进行探测。案例拓扑: ha-1配置 环境准备: a、用hostname修改主机名,    #hostname ha1.abc.com b、并修改/etc/sysconfig/network        HOSTNAME=ha1.abc.com c、因没有配置dns,所以直接hosts文件, #vim /etc/hosts/... 全文

ha高可用性 ha实现lvs群集的高可用性 ldiretord

Juniper实现HA

NSRP(NetScreen Redundant Protocol)是Juniper公司基于VRRP协议规范自行开发的设备冗余协议。... 全文

Juniper HA

RHCS集群之HA

集群管理:管理集群仲裁和集群成员关系。cman:cluster manager,是一个分布式的集群管理器,运行于所有的集群结点。锁管理:为其他集群架构组件提供对共享资源访问的同步机制,DLM,distributed lock manager,分布式架构的锁管理器,运行于所有结点。在 RHEL6中不能使用system-config-cluster。集群中的节点使用多播地址彼此沟通。因此必须将红帽高可用附加组件中的每个网络切换以及关联的联网设备配置为启用多播地址并支持 IGMP(互联网组管理协议)。请确定红帽高可用附加组件中的每个网络切换... 全文

红帽集群HA

RHCS实现HA

 RHCS的搭建拓扑图:Realserver1 配置yum[root@zlj ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo  [rhel-server]                                            #定义yum仓库... 全文

自动切换 RHCS HA

使用RHCS实现HA集群

使用RHCS实现HA集群   Clients       |      vip   |---------------------|   web1       web2   |---------------------|        |    share storage 例子:实现apache高可用... 全文

RHCS HA集群

HA技术简介

一、什么是HA?    HA(High Availability,简称HA),就是高可用性集群通过一组计算机系统提供透明的冗余处理能力,从而实现提供不间断的响应服务。其中每一台提供服务的计算机称为节点(Node)。当一个节点不可用或者不能处理客户的请求时,响应该请求的服务会及时转移到另外的可用节点来处理,而这些对于客户端是透明的,客户也不会去关心使用的资源具体是怎么提供的,集群系统会自动完成。二、衡量标准... 全文

技术简介 高可用 ha

VMware HA&VMotion演示

昨天实测了一下VMware HA&VMotion。只是演示迁移的过程: 环境: 可以看到一主机上运行win2k3的虚拟机远程桌面登录到win2k3的虚拟机,ping 外部的一台服务器... 全文

HA VMotion 休闲 职场

Hadoop2 NameNode HA配置

Hadoop2 NameNode HA配置Hadoop2 官方提供了两种NameNode HA的实现方式,分别基于QJM和NFS,这里以基于QJM的HDFS HA为例。实验环境系统版本:CentOS release 6.4 (Final)Hadoop版本:Apache Hadoop2.5.1Hive版本:Hive 0.13.1 IP列表IPHostnameNameNodeDataNodeRMNodeManagerJournalNode192.168.20.54had1YY192.168.20.62had4Y192.168.20.55had2YYY192.168.20.56had3YYYY ... 全文

Hadoop Hadoop2 NameNode HA

Neutron L3 agent HA

neutron-l3-agent is used for L3 config in neutron. Before the discuss of HA for neutron-l3-agent, we need to clarify the following things first: You create VM and router, then VM can work. After this, the neutron-l3-agent is down, what will happen? a) For the exist VM, the communication is still work, because the namespace and iptable rules is still on the node. So it can still work. b) If you create new router and new network, neutron-server will bind the new router to other alive neutron-l3-agent, so it can still work. c) If you want to boot new VM on the network which connect to this router (which belongs to the dead neutron-l3-agent), it still can boot success and commnuicate with outside. d) If you want to add/delete/modify network or floating ip on the router which belongs to the dead neutron-l3-agent, it can't work. Because there is no alive neutron-l3-agent can do this job.... 全文

openstack network neutron l3 ha

job 做 ha 问题?

Gibhub地址 https://github.com/zookeeper-user-group/zookeeper/issues/2 标题 job 做 ha 问题 描述 mogu1986 commented on 25 Mar环境:单机zk3.4.5 cleint : Curator 2.4 session timeout 5s connetion timeout 10s... 全文

ZooKeeper 技术交流 Github ha

Memcached HA架构探索

magent是一款开源的Memcached代理服务器软件,可以用它做一些高可用架构尝试。目前magent已更新到0.6,我在centos 6.0 64bit机器上面未编译通过,所以我在这里用0.5的源码来测试;google项目地址:http://code.google.com/p/memagent/ ... 全文

memcached magent 高可用 HA 架构

HA和负载均衡的区别

从字面上的意思,也可以大概区分一下的。 两者主要区别如下: 1、HA(High Available):主要解决可靠性问题,设备、部件的互备等,通过技术也可以实现部分的流量负载分担功能。 常见的有服务器的HA,俗称双机热备; 网络的HSRP/vrrp/glp,以及各厂商的私有技术,像cisco防火墙的failover,juniper防火墙的nsrp等等。 2、负载均衡:可分为网络层面和应用层面 网络层面一般可能使用端口聚合、多路径等技术,主要在网络层面实现流量负载均衡。 应用层面的负载均衡,主要厂商有F5、radware、cisco等等,通过专用的负载均衡设备实现基于不同应用类型的负载均衡。 ... 全文

负载均衡 HA 休闲 职场

Linux 系统下双机HA的实现

                               ————基于heartbeat方式  实验环境为两台虚拟机作为HA主备节点,第三台虚拟机作为客户端。具体网络网卡参数配置见拓扑图。  一、搭建实验环境1、设置主节点服务器主机名为:node1.example.com eth0网卡地址为:192.168.0.43 eth1网卡地址地址为:192.168.10.43设置备用节点服务器主机名为:node2.example.com eth0网卡地址为:192.168.0.45 eth1网卡地址为:192.168.10.45客户端IP地址为192.168.0.422、在主节点服务器上开启web服务,并验证web服务是否可以成功访问。  验证成功后,关闭web服务。为了试验的顺利进行,这里将web服务设置为开机不启动。关闭httpd服务的目的是为了验证后面客户端访问服务器时,web服务的开启是受heartbeat控制的,而不是人为开启的web服务。    在双机HA功能下,主备节点要通过heartbeat信息来保持联系,为了实现主备节点的heartbeat功能,需要安装额外的软件包。但是Redhat默认并没有安装这些软件包,这就需要到对应官方网站上去下载对应的软件包。需要安装的软件包有六个,分别是:libnet-1.1.4-3.el5.i386.rpmperl-MailTools-1.77-1.el5.noarch.rpm heartbeat-pils-2.1.4-10.el5.i386.rpmheartbeat-stonith-2.1.4-10.el5.i386.rpm heartbeat-gui-2.1.4-10.el5.i386.rpmheartbeat-ldirectord-2.1.4-10.el5.i386.rpmheartbeat-devel-2.1.4-10.el5.i386.rpmheartbeat-2.1.4-10.el5.i386.rpm安装上面六个软件包,会出现依赖关系,提示依赖下面的软件包(这些包在Redhat光盘文件中),因此为了方便安装这些软件包,建议建立本地yum库,如此以来就可以解决软件安装时出现的很多包依赖关系。perl-Compress-Zlibperl-HTML-Parserperl-HTML-Tagsetperl-URIperl-libwww-perlperl-MailToolsperl-TimeDateperl-String-CRC32net-snmp-libs把要安装的软件包复制到根目录下。然后通过本地yum库进行上述软件包的安装。由于上述软件包都是以.rpm结尾的,所以这里就使用*通配所有软件包。命令为:yum –nongpgcheck localinstall *.rpm安装完成后,再来确认一下安装了所有的软件包。  二、 软件的配置 Heartbeat软件的安装目录为/etc/ha.d,其中的README.config对配置文件进行了说明,共有三个主要的配置文件:ha.cf,haresources,authkeys。切换到/etc/ha.d目录下,却发现并没有这三个主要的配置文件。  那么这三个主要的配置文件在那里呢?可以切换到/usr/share/doc/heartbeat-2.1.4/目录下查看一下是否有这三个主要的配置文件。  将上述的三个主要的配置文件复制到/etc/ha.d/目录下。哈哈,三个主要配置的配置文件出来了吧?  下面依次对三个配置文件进行说明,此外还可以参考Linux-HA附带的安装文档以及配置文件自身的注释。2.1配置authkeys文件 authkeys文件用于heartbeat的鉴权设置,共有三种可用的鉴权方式:crc、md5和sha1。三种方式安全性依次提高,但同时占用的系统资源也依次扩大。crc安全性最低,适用于物理上比较安全的网络,sha1提供最为有效的鉴权方式,占用的系统资源也最多。其配置语句格式如下: auth <number> <number> <authmethod> [<authkey>] 举例说明: auth 1 1 sha1 key-for-sha1 其中键值key-for-sha1可以任意指定,number设置必须保证上下一致。 auth 2 2 crc crc方式不需要指定键值。还是先来看一下authkeys文件的内容吧?文件前面的内容可以直接忽略过去,需要修改的行数并不是很多。主要在最后面。可以看到这四行都默认被注释掉了。  修改的方法有很多的,最简单直接打开注释就行了,然后保存退出;也可以使用echo命令将要设定的值导入到该文件中;或者使用ssl加密并导入到该文件之中。  这里使用后两种来验证一下,打开文件,可以看到两种方式都将数据导入到文件中了。在试验过程中,为了节省时间,可以选用非加密传输方式。  为了文件的安全性,我们要设定该文件的权限为600,修改完成后,要记得查看是否修改成功。   2、2配置ha.cf文件 ha.cf是heartbeat的主要配置文件,可以对heartbeat的多数性能和状态进行配置。大部分选项的取值可以采用默认值,其中的主要选项及配置方法说明如下: debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息 logfile /var/log/ha-log:heartbeat的日志文件  keepalive 2:心跳的时间间隔,默认时间单位为秒deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。 warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。  initdead 120:在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。 udpport 694:设置广播通信使用的端口,694为默认使用的端口号。  bcast eth1:设置广播通信所使用的网络接口卡。  auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。  node 定义集群主机的节点号名称  另外还有一些设置,由于对实验作用不是很大,这里就不进行配置了。baud 19200:设置串行通信的波特率。 serial /dev/ttyS0:选择串行通信设备,用于双机使用串口线连接的情况。如果双机使用以太网连接,则应该关闭该选项。 ping ping-node1 ping-node2:指定ping node,ping node并不构成双机节点,它们仅仅用来测试网络连接。 respawn hacluster /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。    2、3 配置haresources文件 haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等。其配置语句格式如下: node-name network-config <resource-group> 其中node-name指定双机系统的主节点,取值必须匹配ha.cf文件中node选项设置的主机名中的一个,node选项设置的另一个主机名成为从节点。 network-config用于网络设置,包括指定集群IP、子网掩码、广播地址等。resource-group用于设置heartbeat启动的服务,该服务最终由双机系统通过集群IP对外提供。  指定主节点服务器为node1.example.com 对外宣称的IP地址为192.168.0.140的服务器提供web服务。  最后,别忘记修改/etc/hosts文件,保证主备节点服务器之间知道对方的IP地址,保证彼此可以正常通信。由于备用节点服务器的配置和主节点服务器的配置基本相同,只有主机名和IP地址不同,这里就省略配置备节点服务器的配置步骤了。  三、实验的验证当主备节点都配置完成后,要启动主备节点的heartbeat服务,然后就可以到客户端来验证测试实验成功与否了。有点激动啊!呵呵^_^,如图所示,实验配置是成功的。  再来到主节点服务器上,查看一下主节点服务器IP地址的变化吧!可以发现,对外宣称的VIP地址绑定在了主节点服务器上的eth0网卡上。  此时,假设由于某些意外原因(手动停止主节点服务器的heartbeat服务),主节点服务器突然宕机了。再来刷新客户端的浏览器,会发现主页内容变成了备节点服务器(这里为了区分客户端访问的是不同的服务器,主备节点服务器的网页内容不同)。  切换来到备节点服务器上,查看一下备节点服务器IP地址的变化可以发现,对外宣称的VIP地址绑定在了备节点服务器上的eth0网卡上。由此就可以说明双机系统可以实现无缝切换。  主节点再次启动heartbeat 在这种情况下,主节点将重新绑定VIP地址,备节点web释放该IP地址,并由主节点对外提供服务。在主节点启动heartbeat之后,集群IP地址的释放和绑定有一定的延迟。虽然有一定的延迟,但是集群IP地址的释放和绑定是同步进行的,使用ping命令可以发现集群IP地址一直处于可通状态,该过程并不影响双机系统的可用性。所以该过程仍然是一个无缝切换。  为了验证主备节点服务器之间的连通性,可以使用tcpump –i eth1 udp port 694本文出自 “linux on the way” 博客,请务必保留此出处http://linuxtro.blog.51cto.com/1239505/284869... 全文

双击 集群 系统 HA Linux

SUSE11_SP1_x64_HA安装配置指南

 SLES_11_SP1_x64 High Availability安装配置指南1   环境准备两台装有suse 11 sp1 OS的服务器,每台服务器有两块网卡。Suse 11 sp1系统安装盘或者ISO文件:SLES-11-SP1-DVD-x86_64-GM-DVD1.isosuse 11 sp1 HA安装盘或者ISO文件:SLES-11-SP1-HA-x86_64-GM-Media1.iso2   安装HA分别在主备机上执行如下安装操作:将刻有SLE-11-SP1-HA-x86_64-GM-Media1.iso的DVD插入光驱,然后以root用户登入,运行yast2命令启动YaST2控制中心,如下图:图2.1 YaST2控制中心点击YaST2控制中心里的“附加产品”,出现如下图所示的“媒体类型”选择界面:图2.2 媒体类型选择DVD,然后点击下一步,在确认完授权信息后,将显示如下的软件安装选择界面,在左边列表中勾选“高可用性”后点击“确定”即可进行安装。期间会提示插入SLES-11-SP1-DVD-x86_64-GM-DVD1.iso光盘。图2.3 选择安装高可用性组件 3   配置HA3.1主机准备1)在两台服务器上修改/etc/hosts文件,修改内容如下: server:/etc/corosync # cat /etc/hosts10.0.0.1        server.site server192.168.1.1     server.site server10.0.0.2        server1.site server1192.168.1.2     server1.site server13.2Cluster配置SuSE的HA提供了直观的图形配置管理界面,为了便于理解和操作我们以图形配置管理为主进行HA配置,并配以相关的配置命令及文件。本文档的配置按下图所示的网络拓扑结构来进行,其中suseA和suseB的eth1网络接口作为HA心跳连接网络(10.0.0.0网段),使用直连线进行连接,eth0网络接口作为生产(192.168.1.0网段)。图3.1.1 HA网络拓扑结构 1)在终端中执行如下命令启动cluster配置管理:yast2 cluster然后在“通讯通道”里的“Bind Network Address”里选择心跳连接的网段,本示例为10.0.0.0;在“Multicast Address”里填入组播IP 地址(组播IP地址范围是从224.0.0.0到239.255.255.255,详细内容请参阅“组播”的相关资料);在“Multicast Port”里填入组播端口;在“节点ID”处勾选中“Auto Generate Node ID”。这部分的配置对应“/etc/corosync/corosync.conf”文件中的“interface”部分的如下项目值:bindnetaddr:    10.0.0.0mcastaddr: 225.1.1.1mcastport: 5405注意:群集中的节点通过使用同一组播地址和同一端口号来相互了解。对于不同的群集,请使用不同的多路广播地址。图3.1.2 配置通讯通道 2)点击左边的“安全”项,进行安全配置:图3.1.3 配置安全项勾选“启用安全身份验证”,“Threads”里使用缺省的2即可。在主服务器上点击“Generate Auth Key File”生成安全验证文件“/etc/corosync/authKey”,然后将这个文件复制到从服务器上即可。这部分的配置对应“/etc/corosync/corosync.conf”文件中的“totem”部分的如下项目值:secauth:    onthreads: 23点击左边的“服务”项,进行服务配置:图3.1.4 配置服务项    选中“开启—引导时启动openais”,这个可以使用chkconfig对“/etc/init.d/openais”进行管理。勾选“Enable mgmtd. The GUI client require this.”项,这个配置对应“/etc/corosync/corosync.conf”文件中的“service”部分的如下项目值:use_mgmtd: yes4)群集通讯,添加群集中所有节点,点击同步文件,生成密钥,开启csync2服务。操作顺序:“Add”—“Generate Pre-Shared-Keys”—“Turn csync2 ON”—“Add Suggested Files” 5)然后使用下面的命令启动openais服务:rcopenais start在openais服务启动后,执行下面的配置命令:    crm configure property stonith-enabled=false    crm configure property no-quorum-policy=ignorecrm configure rsc_defaults resource-stickiness=100至此,cluster主节点配置完成。 6)配置同步服务,将节点2添加到集群中来:a.在群集中的其他服务器上完成同步服务器的配置,与主服务器相同,群集节点添加时无需添加服务器,只需要开启csync2服务。拷贝主服务器中/etc/csync2/csync2.cfg和/etc/csync2/key_hagroup。server:~ # cd /etc/csync2/server:/etc/csync2 # scp ./csync2.cfg root@192.168.1.2:/etc/csync2/server:/etc/csync2 # scp ./key_hagroup root@192.168.1.2:/etc/csync2/ b.在所有节点上开启rcxinetd服务server:~ # rcxinetd startserver:~ # chkconfig csync2 onserver:~ # chkconfig xinetd on c.在主服务器上同步所有配置文件server:~ # csync2 –xv第一次运行可能会有两个文件报错,那么可以强行同步这两个文件。如:/etc/csync2/csync2.cfg和/etc/csync2/key_hagroupserver:~ # csync2 -f /etc/csync2/csync2.cfgserver:~ # csync2 -f /etc/csync2/key_hagroup再运行同步命令server:~ # csync2 -xvMarking file as dirty: /etc/sysconfig/pacemakerMarking file as dirty: /etc/sysconfig/openaisMarking file as dirty: /etc/csync2/csync2.cfgMarking file as dirty: /etc/corosync/corosync.confConnecting to host server1 (SSL) ...Updating /etc/corosync/corosync.conf on server1 ...File is already up to date on peer.Updating /etc/csync2/csync2.cfg on server1 ...File is already up to date on peer.Updating /etc/sysconfig/openais on server1 ...File is already up to date on peer.Updating /etc/sysconfig/pacemaker on server1 ...File is already up to date on peer.Finished with 0 errors.同步完成,没有报错。在节点2上启动openais服务。rcopenais startchkconfig openais on 7)使用crm_mon查看联机运行状态:server:~ # crm_mon status============Last updated: Fri Aug 24 14:42:15 2012Stack: openaisCurrent DC: server - partition WITHOUT quorumVersion: 1.1.2-2e096a41a5f9e184a1c1537c82c6da1093698eb52 Nodes configured, 2 expected votes3 Resources configured.============ Online: [ server server1 ] 如上图,可看到群集中有两台主机,server 和 server1都为online状态。本文出自 “树欲静而风不止” 博客,请务必保留此出处http://bblxlit.blog.51cto.com/151710/972147... 全文

suse ha 集群

1 2 3 4 5 6 7 8